@aquera/nile-elements 0.0.112 → 0.0.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/README.md +8 -0
  2. package/dist/nile-accordion/nile-accordion.cjs.js +1 -1
  3. package/dist/nile-accordion/nile-accordion.cjs.js.map +1 -1
  4. package/dist/nile-accordion/nile-accordion.esm.js +1 -1
  5. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
  6. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  7. package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
  8. package/dist/nile-avatar/nile-avatar.cjs.js +1 -1
  9. package/dist/nile-avatar/nile-avatar.cjs.js.map +1 -1
  10. package/dist/nile-avatar/nile-avatar.esm.js +1 -1
  11. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  12. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  13. package/dist/nile-badge/nile-badge.esm.js +1 -1
  14. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js +1 -1
  15. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js.map +1 -1
  16. package/dist/nile-breadcrumb/nile-breadcrumb.esm.js +1 -1
  17. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
  18. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
  19. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +2 -2
  20. package/dist/nile-button/nile-button.cjs.js +1 -1
  21. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  22. package/dist/nile-button/nile-button.esm.js +1 -1
  23. package/dist/nile-button-toggle/nile-button-toggle.cjs.js +1 -1
  24. package/dist/nile-button-toggle/nile-button-toggle.cjs.js.map +1 -1
  25. package/dist/nile-button-toggle/nile-button-toggle.esm.js +1 -1
  26. package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js +1 -1
  27. package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js.map +1 -1
  28. package/dist/nile-button-toggle-group/nile-button-toggle-group.esm.js +1 -1
  29. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  30. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  31. package/dist/nile-calendar/nile-calendar.esm.js +1 -1
  32. package/dist/nile-card/nile-card.cjs.js +1 -1
  33. package/dist/nile-card/nile-card.cjs.js.map +1 -1
  34. package/dist/nile-card/nile-card.esm.js +1 -1
  35. package/dist/nile-checkbox/nile-checkbox.cjs.js +1 -1
  36. package/dist/nile-checkbox/nile-checkbox.cjs.js.map +1 -1
  37. package/dist/nile-checkbox/nile-checkbox.esm.js +1 -1
  38. package/dist/nile-chip/nile-chip.cjs.js +1 -1
  39. package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
  40. package/dist/nile-chip/nile-chip.esm.js +1 -1
  41. package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
  42. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  43. package/dist/nile-code-editor/nile-code-editor.esm.js +1 -1
  44. package/dist/nile-content-editor/nile-content-editor.cjs.js +1 -1
  45. package/dist/nile-content-editor/nile-content-editor.cjs.js.map +1 -1
  46. package/dist/nile-content-editor/nile-content-editor.esm.js +5 -5
  47. package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
  48. package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
  49. package/dist/nile-date-picker/nile-date-picker.esm.js +5 -3
  50. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  51. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  52. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  53. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  54. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  55. package/dist/nile-drawer/nile-drawer.esm.js +1 -1
  56. package/dist/nile-empty-state/nile-empty-state.cjs.js +1 -1
  57. package/dist/nile-empty-state/nile-empty-state.cjs.js.map +1 -1
  58. package/dist/nile-empty-state/nile-empty-state.esm.js +1 -1
  59. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  60. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  61. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  62. package/dist/nile-input/nile-input.cjs.js +1 -1
  63. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  64. package/dist/nile-input/nile-input.esm.js +1 -1
  65. package/dist/nile-link/nile-link.cjs.js +1 -1
  66. package/dist/nile-link/nile-link.cjs.js.map +1 -1
  67. package/dist/nile-link/nile-link.esm.js +1 -1
  68. package/dist/nile-list/nile-list.cjs.js +1 -1
  69. package/dist/nile-list/nile-list.cjs.js.map +1 -1
  70. package/dist/nile-list/nile-list.esm.js +1 -1
  71. package/dist/nile-list-item/nile-list-item.cjs.js +1 -1
  72. package/dist/nile-list-item/nile-list-item.cjs.js.map +1 -1
  73. package/dist/nile-list-item/nile-list-item.esm.js +1 -1
  74. package/dist/nile-menu/nile-menu.cjs.js +1 -1
  75. package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
  76. package/dist/nile-menu/nile-menu.esm.js +1 -1
  77. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  78. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  79. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  80. package/dist/nile-option/nile-option.cjs.js +1 -1
  81. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  82. package/dist/nile-option/nile-option.esm.js +1 -1
  83. package/dist/nile-popover/nile-popover.cjs.js +1 -1
  84. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  85. package/dist/nile-popover/nile-popover.esm.js +2 -2
  86. package/dist/nile-popup/nile-popup.cjs.js +1 -1
  87. package/dist/nile-popup/nile-popup.cjs.js.map +1 -1
  88. package/dist/nile-popup/nile-popup.esm.js +1 -1
  89. package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
  90. package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
  91. package/dist/nile-radio-group/nile-radio-group.esm.js +1 -1
  92. package/dist/nile-select/nile-select.cjs.js +1 -1
  93. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  94. package/dist/nile-select/nile-select.esm.js +1 -1
  95. package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js +1 -1
  96. package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js.map +1 -1
  97. package/dist/nile-slide-toggle/nile-slide-toggle.esm.js +1 -1
  98. package/dist/nile-split-panel/nile-split-panel.cjs.js +1 -1
  99. package/dist/nile-split-panel/nile-split-panel.cjs.js.map +1 -1
  100. package/dist/nile-split-panel/nile-split-panel.esm.js +1 -1
  101. package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
  102. package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
  103. package/dist/nile-stepper/nile-stepper.esm.js +1 -1
  104. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  105. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  106. package/dist/nile-tab/nile-tab.esm.js +1 -1
  107. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  108. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  109. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  110. package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
  111. package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
  112. package/dist/nile-table-body/nile-table-body.esm.js +1 -1
  113. package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
  114. package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
  115. package/dist/nile-table-header-item/nile-table-header-item.esm.js +1 -1
  116. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  117. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  118. package/dist/nile-tag/nile-tag.esm.js +1 -1
  119. package/dist/nile-textarea/nile-textarea.cjs.js +1 -1
  120. package/dist/nile-textarea/nile-textarea.cjs.js.map +1 -1
  121. package/dist/nile-textarea/nile-textarea.esm.js +1 -1
  122. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  123. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  124. package/dist/nile-toast/nile-toast.esm.js +1 -1
  125. package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
  126. package/dist/nile-tooltip/nile-tooltip.cjs.js.map +1 -1
  127. package/dist/nile-tooltip/nile-tooltip.esm.js +1 -1
  128. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  129. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  130. package/dist/nile-tree/nile-tree.esm.js +1 -1
  131. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  132. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  133. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  134. package/dist/src/nile-accordion/nile-accordion.d.ts +0 -1
  135. package/dist/src/nile-accordion/nile-accordion.js +0 -1
  136. package/dist/src/nile-accordion/nile-accordion.js.map +1 -1
  137. package/dist/src/nile-auto-complete/nile-auto-complete.d.ts +0 -1
  138. package/dist/src/nile-auto-complete/nile-auto-complete.js +0 -1
  139. package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
  140. package/dist/src/nile-avatar/nile-avatar.d.ts +0 -1
  141. package/dist/src/nile-avatar/nile-avatar.js +0 -1
  142. package/dist/src/nile-avatar/nile-avatar.js.map +1 -1
  143. package/dist/src/nile-badge/nile-badge.d.ts +0 -1
  144. package/dist/src/nile-badge/nile-badge.js +0 -1
  145. package/dist/src/nile-badge/nile-badge.js.map +1 -1
  146. package/dist/src/nile-breadcrumb/nile-breadcrumb.d.ts +0 -1
  147. package/dist/src/nile-breadcrumb/nile-breadcrumb.js +0 -5
  148. package/dist/src/nile-breadcrumb/nile-breadcrumb.js.map +1 -1
  149. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.d.ts +0 -1
  150. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js +0 -1
  151. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js.map +1 -1
  152. package/dist/src/nile-button/nile-button.d.ts +0 -1
  153. package/dist/src/nile-button/nile-button.js +0 -1
  154. package/dist/src/nile-button/nile-button.js.map +1 -1
  155. package/dist/src/nile-button-toggle/nile-button-toggle.d.ts +0 -1
  156. package/dist/src/nile-button-toggle/nile-button-toggle.js +0 -1
  157. package/dist/src/nile-button-toggle/nile-button-toggle.js.map +1 -1
  158. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.d.ts +0 -1
  159. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.js +0 -1
  160. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.js.map +1 -1
  161. package/dist/src/nile-calendar/nile-calendar.d.ts +0 -1
  162. package/dist/src/nile-calendar/nile-calendar.js +0 -1
  163. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  164. package/dist/src/nile-card/nile-card.d.ts +0 -1
  165. package/dist/src/nile-card/nile-card.js +0 -1
  166. package/dist/src/nile-card/nile-card.js.map +1 -1
  167. package/dist/src/nile-checkbox/nile-checkbox.d.ts +0 -1
  168. package/dist/src/nile-checkbox/nile-checkbox.js +0 -1
  169. package/dist/src/nile-checkbox/nile-checkbox.js.map +1 -1
  170. package/dist/src/nile-chip/nile-chip.d.ts +0 -1
  171. package/dist/src/nile-chip/nile-chip.js +0 -1
  172. package/dist/src/nile-chip/nile-chip.js.map +1 -1
  173. package/dist/src/nile-code-editor/nile-code-editor.d.ts +0 -1
  174. package/dist/src/nile-code-editor/nile-code-editor.js +0 -1
  175. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  176. package/dist/src/nile-content-editor/nile-content-editor.d.ts +0 -1
  177. package/dist/src/nile-content-editor/nile-content-editor.js +0 -1
  178. package/dist/src/nile-content-editor/nile-content-editor.js.map +1 -1
  179. package/dist/src/nile-date-picker/nile-date-picker.d.ts +0 -1
  180. package/dist/src/nile-date-picker/nile-date-picker.js +4 -2
  181. package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
  182. package/dist/src/nile-dialog/nile-dialog.d.ts +0 -1
  183. package/dist/src/nile-dialog/nile-dialog.js +0 -1
  184. package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
  185. package/dist/src/nile-drawer/nile-drawer.d.ts +0 -1
  186. package/dist/src/nile-drawer/nile-drawer.js +0 -1
  187. package/dist/src/nile-drawer/nile-drawer.js.map +1 -1
  188. package/dist/src/nile-empty-state/nile-empty-state.d.ts +0 -1
  189. package/dist/src/nile-empty-state/nile-empty-state.js +0 -1
  190. package/dist/src/nile-empty-state/nile-empty-state.js.map +1 -1
  191. package/dist/src/nile-icon-button/nile-icon-button.d.ts +0 -1
  192. package/dist/src/nile-icon-button/nile-icon-button.js +0 -1
  193. package/dist/src/nile-icon-button/nile-icon-button.js.map +1 -1
  194. package/dist/src/nile-input/nile-input.d.ts +0 -1
  195. package/dist/src/nile-input/nile-input.js +0 -1
  196. package/dist/src/nile-input/nile-input.js.map +1 -1
  197. package/dist/src/nile-link/nile-link.d.ts +0 -1
  198. package/dist/src/nile-link/nile-link.js +0 -1
  199. package/dist/src/nile-link/nile-link.js.map +1 -1
  200. package/dist/src/nile-list/nile-list.d.ts +0 -1
  201. package/dist/src/nile-list/nile-list.js +0 -5
  202. package/dist/src/nile-list/nile-list.js.map +1 -1
  203. package/dist/src/nile-list-item/nile-list-item.d.ts +0 -1
  204. package/dist/src/nile-list-item/nile-list-item.js +0 -1
  205. package/dist/src/nile-list-item/nile-list-item.js.map +1 -1
  206. package/dist/src/nile-menu/nile-menu.d.ts +0 -1
  207. package/dist/src/nile-menu/nile-menu.js +0 -1
  208. package/dist/src/nile-menu/nile-menu.js.map +1 -1
  209. package/dist/src/nile-menu-item/nile-menu-item.d.ts +0 -2
  210. package/dist/src/nile-menu-item/nile-menu-item.js +0 -2
  211. package/dist/src/nile-menu-item/nile-menu-item.js.map +1 -1
  212. package/dist/src/nile-option/nile-option.d.ts +0 -2
  213. package/dist/src/nile-option/nile-option.js +0 -2
  214. package/dist/src/nile-option/nile-option.js.map +1 -1
  215. package/dist/src/nile-popover/nile-popover.d.ts +0 -1
  216. package/dist/src/nile-popover/nile-popover.js +0 -1
  217. package/dist/src/nile-popover/nile-popover.js.map +1 -1
  218. package/dist/src/nile-popup/nile-popup.d.ts +0 -2
  219. package/dist/src/nile-popup/nile-popup.js +0 -2
  220. package/dist/src/nile-popup/nile-popup.js.map +1 -1
  221. package/dist/src/nile-radio-group/nile-radio-group.d.ts +0 -1
  222. package/dist/src/nile-radio-group/nile-radio-group.js +0 -1
  223. package/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
  224. package/dist/src/nile-select/nile-select.d.ts +0 -1
  225. package/dist/src/nile-select/nile-select.js +0 -1
  226. package/dist/src/nile-select/nile-select.js.map +1 -1
  227. package/dist/src/nile-slide-toggle/nile-slide-toggle.d.ts +0 -1
  228. package/dist/src/nile-slide-toggle/nile-slide-toggle.js +0 -1
  229. package/dist/src/nile-slide-toggle/nile-slide-toggle.js.map +1 -1
  230. package/dist/src/nile-split-panel/nile-split-panel.d.ts +0 -1
  231. package/dist/src/nile-split-panel/nile-split-panel.js +0 -1
  232. package/dist/src/nile-split-panel/nile-split-panel.js.map +1 -1
  233. package/dist/src/nile-stepper/nile-stepper.d.ts +0 -1
  234. package/dist/src/nile-stepper/nile-stepper.js +0 -1
  235. package/dist/src/nile-stepper/nile-stepper.js.map +1 -1
  236. package/dist/src/nile-tab/nile-tab.d.ts +0 -1
  237. package/dist/src/nile-tab/nile-tab.js +0 -1
  238. package/dist/src/nile-tab/nile-tab.js.map +1 -1
  239. package/dist/src/nile-tab-group/nile-tab-group.d.ts +0 -1
  240. package/dist/src/nile-tab-group/nile-tab-group.js +0 -1
  241. package/dist/src/nile-tab-group/nile-tab-group.js.map +1 -1
  242. package/dist/src/nile-table-body/nile-table-body.d.ts +0 -1
  243. package/dist/src/nile-table-body/nile-table-body.js +0 -1
  244. package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
  245. package/dist/src/nile-table-header-item/nile-table-header-item.d.ts +0 -1
  246. package/dist/src/nile-table-header-item/nile-table-header-item.js +0 -1
  247. package/dist/src/nile-table-header-item/nile-table-header-item.js.map +1 -1
  248. package/dist/src/nile-tag/nile-tag.d.ts +0 -1
  249. package/dist/src/nile-tag/nile-tag.js +0 -1
  250. package/dist/src/nile-tag/nile-tag.js.map +1 -1
  251. package/dist/src/nile-textarea/nile-textarea.d.ts +0 -1
  252. package/dist/src/nile-textarea/nile-textarea.js +0 -1
  253. package/dist/src/nile-textarea/nile-textarea.js.map +1 -1
  254. package/dist/src/nile-toast/nile-toast.d.ts +0 -1
  255. package/dist/src/nile-toast/nile-toast.js +0 -1
  256. package/dist/src/nile-toast/nile-toast.js.map +1 -1
  257. package/dist/src/nile-tooltip/nile-tooltip.d.ts +0 -1
  258. package/dist/src/nile-tooltip/nile-tooltip.js +0 -1
  259. package/dist/src/nile-tooltip/nile-tooltip.js.map +1 -1
  260. package/dist/src/nile-tree/nile-tree.d.ts +0 -1
  261. package/dist/src/nile-tree/nile-tree.js +0 -1
  262. package/dist/src/nile-tree/nile-tree.js.map +1 -1
  263. package/dist/src/nile-tree-item/nile-tree-item.d.ts +0 -1
  264. package/dist/src/nile-tree-item/nile-tree-item.js +0 -1
  265. package/dist/src/nile-tree-item/nile-tree-item.js.map +1 -1
  266. package/dist/tsconfig.tsbuildinfo +1 -1
  267. package/package.json +1 -1
  268. package/src/nile-accordion/nile-accordion.ts +0 -1
  269. package/src/nile-auto-complete/nile-auto-complete.ts +0 -2
  270. package/src/nile-avatar/nile-avatar.ts +0 -2
  271. package/src/nile-badge/nile-badge.ts +0 -2
  272. package/src/nile-breadcrumb/nile-breadcrumb.ts +0 -2
  273. package/src/nile-breadcrumb-item/nile-breadcrumb-item.ts +0 -2
  274. package/src/nile-button/nile-button.ts +0 -2
  275. package/src/nile-button-toggle/nile-button-toggle.ts +0 -2
  276. package/src/nile-button-toggle-group/nile-button-toggle-group.ts +0 -2
  277. package/src/nile-calendar/nile-calendar.ts +1 -1
  278. package/src/nile-card/nile-card.ts +0 -2
  279. package/src/nile-checkbox/nile-checkbox.ts +0 -2
  280. package/src/nile-chip/nile-chip.ts +0 -2
  281. package/src/nile-code-editor/nile-code-editor.ts +0 -2
  282. package/src/nile-content-editor/nile-content-editor.ts +0 -2
  283. package/src/nile-date-picker/nile-date-picker.ts +4 -3
  284. package/src/nile-dialog/nile-dialog.ts +0 -2
  285. package/src/nile-drawer/nile-drawer.ts +0 -2
  286. package/src/nile-empty-state/nile-empty-state.ts +0 -2
  287. package/src/nile-icon-button/nile-icon-button.ts +0 -2
  288. package/src/nile-input/nile-input.ts +0 -2
  289. package/src/nile-link/nile-link.ts +0 -2
  290. package/src/nile-list/nile-list.ts +0 -2
  291. package/src/nile-list-item/nile-list-item.ts +0 -2
  292. package/src/nile-menu/nile-menu.ts +0 -3
  293. package/src/nile-menu-item/nile-menu-item.ts +0 -3
  294. package/src/nile-option/nile-option.ts +0 -3
  295. package/src/nile-popover/nile-popover.ts +0 -2
  296. package/src/nile-popup/nile-popup.ts +0 -3
  297. package/src/nile-radio-group/nile-radio-group.ts +0 -2
  298. package/src/nile-select/nile-select.ts +0 -2
  299. package/src/nile-slide-toggle/nile-slide-toggle.ts +0 -2
  300. package/src/nile-split-panel/nile-split-panel.ts +0 -2
  301. package/src/nile-stepper/nile-stepper.ts +0 -2
  302. package/src/nile-tab/nile-tab.ts +0 -2
  303. package/src/nile-tab-group/nile-tab-group.ts +0 -2
  304. package/src/nile-table-body/nile-table-body.ts +0 -2
  305. package/src/nile-table-header-item/nile-table-header-item.ts +0 -2
  306. package/src/nile-tag/nile-tag.ts +0 -2
  307. package/src/nile-textarea/nile-textarea.ts +0 -2
  308. package/src/nile-toast/nile-toast.ts +0 -2
  309. package/src/nile-tooltip/nile-tooltip.ts +0 -2
  310. package/src/nile-tree/nile-tree.ts +0 -2
  311. package/src/nile-tree-item/nile-tree-item.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"nile-toast.js","sourceRoot":"","sources":["../../../src/nile-toast/nile-toast.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, CSSResultArray, TemplateResult } from 'lit-element';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { html } from 'lit';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport { styles } from './nile-toast.css';\nimport type { CSSResultGroup } from 'lit';\n\nconst toastStack = Object.assign(document.createElement('div'), {\n className: 'nile-toast-stack',\n});\n\n/**\n * Nile icon component.\n *\n * @tag nile-toast\n *\n * @dependency nile-icon-button\n *\n * @slot - The alert's main content.\n * @slot icon - An icon to show in the alert. Works best with `<nile-icon>`.\n *\n * @event nile-show - Emitted when the alert opens.\n * @event nile-after-show - Emitted after the alert opens and all animations are complete.\n * @event nile-hide - Emitted when the alert closes.\n * @event nile-after-hide - Emitted after the alert closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart icon - The container that wraps the optional icon.\n * @csspart message - The container that wraps the alert's main content.\n * @csspart close-button - The close button, an `<nile-icon-button>`.\n * @csspart close-button__base - The close button's exported `base` part.\n *\n * @animation alert.show - The animation to use when showing the alert.\n * @animation alert.hide - The animation to use when hiding the alert.\n */\n\n@customElement('nile-toast')\nexport class NileToast extends NileElement {\n static styles: CSSResultGroup = styles;\n\n protected override BUBBLES: boolean=false;\n\n private autoHideTimeout: number;\n private readonly hasSlotController = new HasSlotController(\n this,\n 'icon',\n 'suffix'\n );\n\n @query('[part~=\"base\"]') base: HTMLElement;\n\n /**\n * Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ type: Boolean, reflect: true }) noIcon = false;\n\n /** Enables a close button that allows the user to dismiss the alert. */\n\n @property({ type: Boolean, reflect: true }) closable = false;\n\n @property({ type: Boolean, reflect: true }) hasSlottedContent = false;\n\n @property({ type: Boolean, reflect: true }) hasSlottedIcon = false;\n\n @property({ type: String, reflect: true }) prefixImageUrl = '';\n\n /** The alert's theme variant. */\n @property({ reflect: true }) variant:\n | 'success'\n | 'info'\n | 'warning'\n | 'error'\n | 'gray'\n | 'black' = 'success';\n\n /**\n * The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\n * the alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\n * the alert will not close on its own.\n */\n @property({ type: Number }) duration = Infinity;\n\n @property({ type: String }) title = '';\n\n @property({ type: String }) content = '';\n\n @property({ type: Array, reflect: true }) tags: any[] = [];\n\n firstUpdated() {\n this.base.hidden = !this.open;\n }\n\n private restartAutoHide() {\n clearTimeout(this.autoHideTimeout);\n if (this.open && this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(\n () => this.hide(),\n this.duration\n );\n }\n }\n\n private handleCloseClick() {\n this.hide();\n }\n\n private handleMouseMove() {\n this.restartAutoHide();\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit('nile-show');\n\n if (this.duration < Infinity) {\n this.restartAutoHide();\n }\n\n await stopAnimations(this.base);\n this.base.hidden = false;\n const { keyframes, options } = getAnimation(this, 'alert.show', {\n dir: 'ltr',\n });\n await animateTo(this.base, keyframes, options);\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n\n clearTimeout(this.autoHideTimeout);\n\n await stopAnimations(this.base);\n const { keyframes, options } = getAnimation(this, 'alert.hide', {\n dir: 'ltr',\n });\n await animateTo(this.base, keyframes, options);\n this.base.hidden = true;\n\n this.emit('nile-after-hide');\n }\n }\n\n @watch('duration')\n handleDurationChange() {\n this.restartAutoHide();\n }\n\n /** Shows the alert. */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the alert */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n getIconNameByVariant() {\n switch (this.variant) {\n case 'success':\n return 'check-circle';\n case 'info':\n return 'info-circle';\n case 'warning':\n return 'alert-circle';\n case 'error':\n return 'alert-circle';\n case 'gray':\n return 'info-circle';\n case 'black':\n return 'info-circle';\n }\n }\n\n getIconColorByVariant() {\n switch (this.variant) {\n case 'success':\n return 'var(--nile-toast-color-icon-color-success)';\n case 'info':\n return 'var(--nile-toast-color-icon-color-info)';\n case 'warning':\n return 'var(--nile-toast-color-icon-color-warning)';\n case 'error':\n return 'var(--nile-toast-color-icon-color-error)';\n case 'gray':\n return 'var(--nile-toast-color-icon-color-gray)';\n case 'black':\n return 'var(--nile-toast-color-icon-color-black)';\n }\n }\n\n handleSlotChange(e: any) {\n const slot = e.target;\n const nodes = slot.assignedNodes({ flatten: true });\n if (slot.name === 'message') {\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasSlottedContent = nodes.length > 0;\n }\n\n if (slot.name === 'icon') {\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasSlottedIcon = nodes.length > 0;\n }\n }\n\n /**\n * Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\n * dismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\n * calling this method again. The returned promise will resolve after the alert is hidden.\n */\n async toast() {\n return new Promise<void>(resolve => {\n if (toastStack.parentElement === null) {\n document.body.append(toastStack);\n }\n\n toastStack.appendChild(this);\n\n // Wait for the toast stack to render\n requestAnimationFrame(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- force a reflow for the initial transition\n this.clientWidth;\n this.show();\n });\n\n this.addEventListener(\n 'nile-after-hide',\n () => {\n toastStack.removeChild(this);\n resolve();\n\n // Remove the toast stack from the DOM when there are no more alerts\n if (toastStack.querySelector('nile-alert') === null) {\n toastStack.remove();\n }\n },\n { once: true }\n );\n });\n }\n\n private toastTags(content: string, imageUrl: string) {\n return html`\n <div class=\"alert__tag\">\n <img class=\"alert__tag-image\" src=\"${imageUrl}\" />\n <span class=\"alert__tag-content\"> ${content} </span>\n </div>\n `;\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n alert: true,\n 'alert--open': this.open,\n 'alert--closable': this.closable,\n 'alert--has-icon': this.hasSlotController.test('icon'),\n 'alert--success': this.variant === 'success',\n 'alert--info': this.variant === 'info',\n 'alert--warning': this.variant === 'warning',\n 'alert--error': this.variant === 'error',\n 'alert--gray': this.variant === 'gray',\n 'alert--black': this.variant === 'black',\n 'alert--no-content': this.content === '',\n })}\n role=\"alert\"\n aria-hidden=${this.open ? 'false' : 'true'}\n @mousemove=${this.handleMouseMove}\n >\n <slot name=\"icon\" part=\"icon\" ?hidden=\"${this.noIcon === true}\">\n ${!this.prefixImageUrl\n ? html`\n <div\n class=\"alert__prefix-icon-container\"\n ?hidden=\"${this.hasSlottedIcon ||\n this.prefixImageUrl.length > 0}\"\n >\n <nile-icon\n name=\"${this.getIconNameByVariant()}\"\n size=\"20\"\n color=\"${this.getIconColorByVariant()}\"\n method=\"stroke\"\n ></nile-icon>\n </div>\n `\n : html`\n <img src=\"${this.prefixImageUrl}\" class=\"alert__prefix-img\" />\n `}\n </slot>\n\n <slot\n name=\"message\"\n part=\"message\"\n class=\"alert__message\"\n aria-live=\"polite\"\n @slotchange=\"${this.handleSlotChange}\"\n >\n <span\n ?hidden=\"${this.hasSlottedContent && this.title === ''}\"\n class=\"alert__message--title\"\n >\n ${this.title}\n </span>\n ${this.title\n ? html` <span\n ?hidden=\"${this.content === ''}\"\n class=${classMap({\n 'alert__message--content': true,\n 'alert__message--content-only': !!this.title,\n })}\n >\n ${this.content}\n </span>`\n : null}\n ${this.tags?.length > 0\n ? html`\n <div class=\"alert__tags\">\n ${this.tags.map(\n tag =>\n html`<span\n >${this.toastTags(tag.content, tag.imageUrl)}</span\n >`\n )}\n </div>\n `\n : ``}\n </slot>\n\n ${this.closable\n ? html`\n <nile-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n class=\"alert__close-button\"\n name=\"close\"\n label=\"close\"\n size=\"20\"\n color=\"#98A2B3\"\n @click=${this.handleCloseClick}\n ></nile-icon-button>\n `\n : null}\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('alert.show', {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nsetDefaultAnimation('alert.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nexport default NileToast;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-toast': NileToast;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-toast.js","sourceRoot":"","sources":["../../../src/nile-toast/nile-toast.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, CSSResultArray, TemplateResult } from 'lit-element';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { animateTo, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { HasSlotController } from '../internal/slot';\nimport { html } from 'lit';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport { styles } from './nile-toast.css';\nimport type { CSSResultGroup } from 'lit';\n\nconst toastStack = Object.assign(document.createElement('div'), {\n className: 'nile-toast-stack',\n});\n\n/**\n * Nile icon component.\n *\n * @tag nile-toast\n *\n * @dependency nile-icon-button\n *\n * @slot - The alert's main content.\n * @slot icon - An icon to show in the alert. Works best with `<nile-icon>`.\n *\n * @event nile-show - Emitted when the alert opens.\n * @event nile-after-show - Emitted after the alert opens and all animations are complete.\n * @event nile-hide - Emitted when the alert closes.\n * @event nile-after-hide - Emitted after the alert closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart icon - The container that wraps the optional icon.\n * @csspart message - The container that wraps the alert's main content.\n * @csspart close-button - The close button, an `<nile-icon-button>`.\n * @csspart close-button__base - The close button's exported `base` part.\n *\n * @animation alert.show - The animation to use when showing the alert.\n * @animation alert.hide - The animation to use when hiding the alert.\n */\n\n@customElement('nile-toast')\nexport class NileToast extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private autoHideTimeout: number;\n private readonly hasSlotController = new HasSlotController(\n this,\n 'icon',\n 'suffix'\n );\n\n @query('[part~=\"base\"]') base: HTMLElement;\n\n /**\n * Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ type: Boolean, reflect: true }) noIcon = false;\n\n /** Enables a close button that allows the user to dismiss the alert. */\n\n @property({ type: Boolean, reflect: true }) closable = false;\n\n @property({ type: Boolean, reflect: true }) hasSlottedContent = false;\n\n @property({ type: Boolean, reflect: true }) hasSlottedIcon = false;\n\n @property({ type: String, reflect: true }) prefixImageUrl = '';\n\n /** The alert's theme variant. */\n @property({ reflect: true }) variant:\n | 'success'\n | 'info'\n | 'warning'\n | 'error'\n | 'gray'\n | 'black' = 'success';\n\n /**\n * The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\n * the alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\n * the alert will not close on its own.\n */\n @property({ type: Number }) duration = Infinity;\n\n @property({ type: String }) title = '';\n\n @property({ type: String }) content = '';\n\n @property({ type: Array, reflect: true }) tags: any[] = [];\n\n firstUpdated() {\n this.base.hidden = !this.open;\n }\n\n private restartAutoHide() {\n clearTimeout(this.autoHideTimeout);\n if (this.open && this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(\n () => this.hide(),\n this.duration\n );\n }\n }\n\n private handleCloseClick() {\n this.hide();\n }\n\n private handleMouseMove() {\n this.restartAutoHide();\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit('nile-show');\n\n if (this.duration < Infinity) {\n this.restartAutoHide();\n }\n\n await stopAnimations(this.base);\n this.base.hidden = false;\n const { keyframes, options } = getAnimation(this, 'alert.show', {\n dir: 'ltr',\n });\n await animateTo(this.base, keyframes, options);\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n\n clearTimeout(this.autoHideTimeout);\n\n await stopAnimations(this.base);\n const { keyframes, options } = getAnimation(this, 'alert.hide', {\n dir: 'ltr',\n });\n await animateTo(this.base, keyframes, options);\n this.base.hidden = true;\n\n this.emit('nile-after-hide');\n }\n }\n\n @watch('duration')\n handleDurationChange() {\n this.restartAutoHide();\n }\n\n /** Shows the alert. */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the alert */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n getIconNameByVariant() {\n switch (this.variant) {\n case 'success':\n return 'check-circle';\n case 'info':\n return 'info-circle';\n case 'warning':\n return 'alert-circle';\n case 'error':\n return 'alert-circle';\n case 'gray':\n return 'info-circle';\n case 'black':\n return 'info-circle';\n }\n }\n\n getIconColorByVariant() {\n switch (this.variant) {\n case 'success':\n return 'var(--nile-toast-color-icon-color-success)';\n case 'info':\n return 'var(--nile-toast-color-icon-color-info)';\n case 'warning':\n return 'var(--nile-toast-color-icon-color-warning)';\n case 'error':\n return 'var(--nile-toast-color-icon-color-error)';\n case 'gray':\n return 'var(--nile-toast-color-icon-color-gray)';\n case 'black':\n return 'var(--nile-toast-color-icon-color-black)';\n }\n }\n\n handleSlotChange(e: any) {\n const slot = e.target;\n const nodes = slot.assignedNodes({ flatten: true });\n if (slot.name === 'message') {\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasSlottedContent = nodes.length > 0;\n }\n\n if (slot.name === 'icon') {\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasSlottedIcon = nodes.length > 0;\n }\n }\n\n /**\n * Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\n * dismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\n * calling this method again. The returned promise will resolve after the alert is hidden.\n */\n async toast() {\n return new Promise<void>(resolve => {\n if (toastStack.parentElement === null) {\n document.body.append(toastStack);\n }\n\n toastStack.appendChild(this);\n\n // Wait for the toast stack to render\n requestAnimationFrame(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- force a reflow for the initial transition\n this.clientWidth;\n this.show();\n });\n\n this.addEventListener(\n 'nile-after-hide',\n () => {\n toastStack.removeChild(this);\n resolve();\n\n // Remove the toast stack from the DOM when there are no more alerts\n if (toastStack.querySelector('nile-alert') === null) {\n toastStack.remove();\n }\n },\n { once: true }\n );\n });\n }\n\n private toastTags(content: string, imageUrl: string) {\n return html`\n <div class=\"alert__tag\">\n <img class=\"alert__tag-image\" src=\"${imageUrl}\" />\n <span class=\"alert__tag-content\"> ${content} </span>\n </div>\n `;\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n alert: true,\n 'alert--open': this.open,\n 'alert--closable': this.closable,\n 'alert--has-icon': this.hasSlotController.test('icon'),\n 'alert--success': this.variant === 'success',\n 'alert--info': this.variant === 'info',\n 'alert--warning': this.variant === 'warning',\n 'alert--error': this.variant === 'error',\n 'alert--gray': this.variant === 'gray',\n 'alert--black': this.variant === 'black',\n 'alert--no-content': this.content === '',\n })}\n role=\"alert\"\n aria-hidden=${this.open ? 'false' : 'true'}\n @mousemove=${this.handleMouseMove}\n >\n <slot name=\"icon\" part=\"icon\" ?hidden=\"${this.noIcon === true}\">\n ${!this.prefixImageUrl\n ? html`\n <div\n class=\"alert__prefix-icon-container\"\n ?hidden=\"${this.hasSlottedIcon ||\n this.prefixImageUrl.length > 0}\"\n >\n <nile-icon\n name=\"${this.getIconNameByVariant()}\"\n size=\"20\"\n color=\"${this.getIconColorByVariant()}\"\n method=\"stroke\"\n ></nile-icon>\n </div>\n `\n : html`\n <img src=\"${this.prefixImageUrl}\" class=\"alert__prefix-img\" />\n `}\n </slot>\n\n <slot\n name=\"message\"\n part=\"message\"\n class=\"alert__message\"\n aria-live=\"polite\"\n @slotchange=\"${this.handleSlotChange}\"\n >\n <span\n ?hidden=\"${this.hasSlottedContent && this.title === ''}\"\n class=\"alert__message--title\"\n >\n ${this.title}\n </span>\n ${this.title\n ? html` <span\n ?hidden=\"${this.content === ''}\"\n class=${classMap({\n 'alert__message--content': true,\n 'alert__message--content-only': !!this.title,\n })}\n >\n ${this.content}\n </span>`\n : null}\n ${this.tags?.length > 0\n ? html`\n <div class=\"alert__tags\">\n ${this.tags.map(\n tag =>\n html`<span\n >${this.toastTags(tag.content, tag.imageUrl)}</span\n >`\n )}\n </div>\n `\n : ``}\n </slot>\n\n ${this.closable\n ? html`\n <nile-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n class=\"alert__close-button\"\n name=\"close\"\n label=\"close\"\n size=\"20\"\n color=\"#98A2B3\"\n @click=${this.handleCloseClick}\n ></nile-icon-button>\n `\n : null}\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('alert.show', {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nsetDefaultAnimation('alert.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nexport default NileToast;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-toast': NileToast;\n }\n}\n"]}
@@ -20,7 +20,6 @@ export declare class NileTooltip extends NileElement {
20
20
  * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
21
21
  */
22
22
  static get styles(): CSSResultArray;
23
- protected BUBBLES: boolean;
24
23
  private hoverTimeout;
25
24
  defaultSlot: HTMLSlotElement;
26
25
  body: HTMLElement;
@@ -25,7 +25,6 @@ import NileElement from '../internal/nile-element';
25
25
  let NileTooltip = class NileTooltip extends NileElement {
26
26
  constructor() {
27
27
  super(...arguments);
28
- this.BUBBLES = false;
29
28
  /** The tooltip's content. If you need to display HTML, use the `content` slot instead. */
30
29
  this.content = '';
31
30
  /** Size Property to decide the tool tip size */
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tooltip.js","sourceRoot":"","sources":["../../../src/nile-tooltip/nile-tooltip.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,8DAA8D;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAGnD;;;;;GAKG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,WAAW;IAArC;;QASc,YAAO,GAAU,KAAK,CAAC;QAS1C,0FAA0F;QAC/C,YAAO,GAAG,EAAE,CAAC;QAExD,gDAAgD;QACnB,SAAI,GAAsB,OAAO,CAAC;QAE/D;;;WAGG;QACS,cAAS,GAYJ,KAAK,CAAC;QAEvB,4DAA4D;QAChB,aAAQ,GAAG,KAAK,CAAC;QAE7D,oFAAoF;QACxD,aAAQ,GAAG,CAAC,CAAC;QAEzC,uGAAuG;QAC3D,SAAI,GAAG,KAAK,CAAC;QAEzD,gFAAgF;QACpD,aAAQ,GAAG,CAAC,CAAC;QAEzC;;;;WAIG;QACS,YAAO,GAAG,aAAa,CAAC;QAEpC;;;;WAIG;QAC0B,UAAK,GAAG,KAAK,CAAC;IA4M7C,CAAC;IA7QC;;;OAGG;IACI,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IA6DD,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAE9B,yDAAyD;QACzD,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;iBAAM;gBACL,IAAI,CAAC,IAAI,EAAE,CAAC;aACb;SACF;IACH,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAEO,aAAa,CAAC,KAAoB;QACxC,+EAA+E;QAC/E,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACvC,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,MAAM,KAAK,GAAG,aAAa,CACzB,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CACxD,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SACjE;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,MAAM,KAAK,GAAG,aAAa,CACzB,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CACxD,CAAC;YACF,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SACjE;IACH,CAAC;IAEO,UAAU,CAAC,WAAmB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAGK,AAAN,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;aACR;YAED,OAAO;YACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEvB,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACzB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE;gBAChE,GAAG,EAAE,EAAE;aACR,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAEtD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO;YACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEvB,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE;gBAChE,GAAG,EAAE,EAAE;aACR,CAAC,CAAC;YACH,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SAC9B;IACH,CAAC;IAGK,AAAN,KAAK,CAAC,mBAAmB;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,MAAM,IAAI,CAAC,cAAc,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SACzB;IACH,CAAC;IAGD,oBAAoB;QAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;YAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE;YAC7C,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;gBAOC,QAAQ,CAAC;YACf,OAAO,EAAE,IAAI;YACb,eAAe,EAAE,IAAI,CAAC,IAAI;SAC3B,CAAC;oBACU,IAAI,CAAC,SAAS;mBACf,IAAI,CAAC,QAAQ;mBACb,IAAI,CAAC,QAAQ;mBACb,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;;;;;;;;;;;kBAWlC,QAAQ,CAAC;YACf,aAAa,EAAE,IAAI;YACnB,sBAAsB,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;SAC9C,CAAC;;sBAEU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;;YAEtC,IAAI,CAAC,OAAO;;;KAGnB,CAAC;IACJ,CAAC;CACF,CAAA;AAhQ4B;IAA1B,KAAK,CAAC,kBAAkB,CAAC;gDAA8B;AAC/B;IAAxB,KAAK,CAAC,gBAAgB,CAAC;yCAAmB;AACtB;IAApB,KAAK,CAAC,YAAY,CAAC;0CAAkB;AAGK;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAc;AAG3B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAmC;AAMnD;IAAX,QAAQ,EAAE;8CAYY;AAGqB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAkB;AAGjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAc;AAGG;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAAc;AAG7B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAc;AAO7B;IAAX,QAAQ,EAAE;4CAAyB;AAOP;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAAe;AAiGrC;IADL,KAAK,CAAC,MAAM,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;mDAiC7C;AAGK;IADL,KAAK,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;sDAMhE;AAGD;IADC,KAAK,CAAC,UAAU,CAAC;uDAKjB;AAlNU,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CA8QvB;SA9QY,WAAW;AAgRxB,mBAAmB,CAAC,cAAc,EAAE;IAClC,SAAS,EAAE;QACT,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QAC1B,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;KACzB;IACD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;CAC3C,CAAC,CAAC;AAEH,mBAAmB,CAAC,cAAc,EAAE;IAClC,SAAS,EAAE;QACT,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACxB,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;KAC3B;IACD,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;CAC3C,CAAC,CAAC;AAEH,eAAe,WAAW,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, CSSResultArray, TemplateResult } from 'lit-element';\nimport { styles } from './nile-tooltip.css';\nimport '../nile-popup/nile-popup';\nimport { animateTo, parseDuration, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { html } from 'lit';\n// import { LocalizeController } from '../utilities/localize';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\nimport type NilePopup from '../nile-popup/nile-popup';\n/**\n * Nile icon component.\n *\n * @tag nile-tooltip\n *\n */\n@customElement('nile-tooltip')\nexport class NileTooltip extends NileElement {\n /**\n * The styles for Tooltip\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n protected override BUBBLES: boolean=false;\n\n private hoverTimeout: number;\n // private readonly localize = new LocalizeController(this);\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('.tooltip__body') body: HTMLElement;\n @query('nile-popup') popup: NilePopup;\n\n /** The tooltip's content. If you need to display HTML, use the `content` slot instead. */\n @property({ type: String, reflect: true }) content = '';\n\n /** Size Property to decide the tool tip size */\n @property({ reflect: true }) size: 'small' | 'large' = 'small';\n\n /**\n * The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\n * inside of the viewport.\n */\n @property() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'top';\n\n /** Disables the tooltip so it won't show when triggered. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The distance in pixels from which to offset the tooltip away from its target. */\n @property({ type: Number }) distance = 8;\n\n /** Indicates whether or not the tooltip is open. You can use this in lieu of the show/hide methods. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /** The distance in pixels from which to offset the tooltip along its target. */\n @property({ type: Number }) skidding = 0;\n\n /**\n * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\n * options can be passed by separating them with a space. When manual is used, the tooltip must be activated\n * programmatically.\n */\n @property() trigger = 'hover focus';\n\n /**\n * Enable this option to prevent the tooltip from being clipped when the component is placed inside a container with\n * `overflow: auto|hidden|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all,\n * scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseOver = this.handleMouseOver.bind(this);\n this.handleMouseOut = this.handleMouseOut.bind(this);\n\n this.updateComplete.then(() => {\n this.addEventListener('blur', this.handleBlur, true);\n this.addEventListener('focus', this.handleFocus, true);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeyDown);\n this.addEventListener('mouseover', this.handleMouseOver);\n this.addEventListener('mouseout', this.handleMouseOut);\n });\n }\n\n firstUpdated() {\n this.body.hidden = !this.open;\n\n // If the tooltip is visible on init, update its position\n if (this.open) {\n this.popup.active = true;\n this.popup.reposition();\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('blur', this.handleBlur, true);\n this.removeEventListener('focus', this.handleFocus, true);\n this.removeEventListener('click', this.handleClick);\n this.removeEventListener('keydown', this.handleKeyDown);\n this.removeEventListener('mouseover', this.handleMouseOver);\n this.removeEventListener('mouseout', this.handleMouseOut);\n }\n\n private handleBlur() {\n if (this.hasTrigger('focus')) {\n this.hide();\n }\n }\n\n private handleClick() {\n if (this.hasTrigger('click')) {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n }\n\n private handleFocus() {\n if (this.hasTrigger('focus')) {\n this.show();\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n // Pressing escape when the target element has focus should dismiss the tooltip\n if (this.open && event.key === 'Escape') {\n event.stopPropagation();\n this.hide();\n }\n }\n\n private handleMouseOver() {\n if (this.hasTrigger('hover')) {\n const delay = parseDuration(\n getComputedStyle(this).getPropertyValue('--show-delay')\n );\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.show(), delay);\n }\n }\n\n private handleMouseOut() {\n if (this.hasTrigger('hover')) {\n const delay = parseDuration(\n getComputedStyle(this).getPropertyValue('--hide-delay')\n );\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.hide(), delay);\n }\n }\n\n private hasTrigger(triggerType: string) {\n const triggers = this.trigger.split(' ');\n return triggers.includes(triggerType);\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n if (this.disabled) {\n return;\n }\n\n // Show\n this.emit('nile-show');\n\n await stopAnimations(this.body);\n this.body.hidden = false;\n this.popup.active = true;\n const { keyframes, options } = getAnimation(this, 'tooltip.show', {\n dir: '',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n\n await stopAnimations(this.body);\n const { keyframes, options } = getAnimation(this, 'tooltip.hide', {\n dir: '',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n this.body.hidden = true;\n\n this.emit('nile-after-hide');\n }\n }\n\n @watch(['content', 'distance', 'hoist', 'placement', 'skidding'])\n async handleOptionsChange() {\n if (this.hasUpdated) {\n await this.updateComplete;\n this.popup.reposition();\n }\n }\n\n @watch('disabled')\n handleDisabledChange() {\n if (this.disabled && this.open) {\n this.hide();\n }\n }\n\n /** Shows the tooltip. */\n async show() {\n if (this.open || !this.content?.trim().length) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the tooltip */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n render() {\n return html`\n <nile-popup\n part=\"base\"\n exportparts=\"\n popup:base__popup,\n arrow:base__arrow\n \"\n class=${classMap({\n tooltip: true,\n 'tooltip--open': this.open,\n })}\n placement=${this.placement}\n distance=${this.distance}\n skidding=${this.skidding}\n strategy=${this.hoist ? 'fixed' : 'absolute'}\n flip\n shift\n arrow\n >\n <slot slot=\"anchor\" aria-describedby=\"tooltip\"></slot>\n\n <slot\n name=\"content\"\n part=\"body\"\n id=\"tooltip\"\n class=${classMap({\n tooltip__body: true,\n 'tooltip__body--large': this.size === 'large',\n })}\n role=\"tooltip\"\n aria-live=${this.open ? 'polite' : 'off'}\n >\n ${this.content}\n </slot>\n </nile-popup>\n `;\n }\n}\n\nsetDefaultAnimation('tooltip.show', {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 150, easing: 'ease' },\n});\n\nsetDefaultAnimation('tooltip.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 150, easing: 'ease' },\n});\n\nexport default NileTooltip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tooltip': NileTooltip;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-tooltip.js","sourceRoot":"","sources":["../../../src/nile-tooltip/nile-tooltip.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, CSSResultArray, TemplateResult } from 'lit-element';\nimport { styles } from './nile-tooltip.css';\nimport '../nile-popup/nile-popup';\nimport { animateTo, parseDuration, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { html } from 'lit';\n// import { LocalizeController } from '../utilities/localize';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\nimport type NilePopup from '../nile-popup/nile-popup';\n/**\n * Nile icon component.\n *\n * @tag nile-tooltip\n *\n */\n@customElement('nile-tooltip')\nexport class NileTooltip extends NileElement {\n /**\n * The styles for Tooltip\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n private hoverTimeout: number;\n // private readonly localize = new LocalizeController(this);\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('.tooltip__body') body: HTMLElement;\n @query('nile-popup') popup: NilePopup;\n\n /** The tooltip's content. If you need to display HTML, use the `content` slot instead. */\n @property({ type: String, reflect: true }) content = '';\n\n /** Size Property to decide the tool tip size */\n @property({ reflect: true }) size: 'small' | 'large' = 'small';\n\n /**\n * The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\n * inside of the viewport.\n */\n @property() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'top';\n\n /** Disables the tooltip so it won't show when triggered. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The distance in pixels from which to offset the tooltip away from its target. */\n @property({ type: Number }) distance = 8;\n\n /** Indicates whether or not the tooltip is open. You can use this in lieu of the show/hide methods. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /** The distance in pixels from which to offset the tooltip along its target. */\n @property({ type: Number }) skidding = 0;\n\n /**\n * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\n * options can be passed by separating them with a space. When manual is used, the tooltip must be activated\n * programmatically.\n */\n @property() trigger = 'hover focus';\n\n /**\n * Enable this option to prevent the tooltip from being clipped when the component is placed inside a container with\n * `overflow: auto|hidden|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all,\n * scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseOver = this.handleMouseOver.bind(this);\n this.handleMouseOut = this.handleMouseOut.bind(this);\n\n this.updateComplete.then(() => {\n this.addEventListener('blur', this.handleBlur, true);\n this.addEventListener('focus', this.handleFocus, true);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeyDown);\n this.addEventListener('mouseover', this.handleMouseOver);\n this.addEventListener('mouseout', this.handleMouseOut);\n });\n }\n\n firstUpdated() {\n this.body.hidden = !this.open;\n\n // If the tooltip is visible on init, update its position\n if (this.open) {\n this.popup.active = true;\n this.popup.reposition();\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('blur', this.handleBlur, true);\n this.removeEventListener('focus', this.handleFocus, true);\n this.removeEventListener('click', this.handleClick);\n this.removeEventListener('keydown', this.handleKeyDown);\n this.removeEventListener('mouseover', this.handleMouseOver);\n this.removeEventListener('mouseout', this.handleMouseOut);\n }\n\n private handleBlur() {\n if (this.hasTrigger('focus')) {\n this.hide();\n }\n }\n\n private handleClick() {\n if (this.hasTrigger('click')) {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n }\n\n private handleFocus() {\n if (this.hasTrigger('focus')) {\n this.show();\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n // Pressing escape when the target element has focus should dismiss the tooltip\n if (this.open && event.key === 'Escape') {\n event.stopPropagation();\n this.hide();\n }\n }\n\n private handleMouseOver() {\n if (this.hasTrigger('hover')) {\n const delay = parseDuration(\n getComputedStyle(this).getPropertyValue('--show-delay')\n );\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.show(), delay);\n }\n }\n\n private handleMouseOut() {\n if (this.hasTrigger('hover')) {\n const delay = parseDuration(\n getComputedStyle(this).getPropertyValue('--hide-delay')\n );\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.hide(), delay);\n }\n }\n\n private hasTrigger(triggerType: string) {\n const triggers = this.trigger.split(' ');\n return triggers.includes(triggerType);\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n if (this.disabled) {\n return;\n }\n\n // Show\n this.emit('nile-show');\n\n await stopAnimations(this.body);\n this.body.hidden = false;\n this.popup.active = true;\n const { keyframes, options } = getAnimation(this, 'tooltip.show', {\n dir: '',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n\n await stopAnimations(this.body);\n const { keyframes, options } = getAnimation(this, 'tooltip.hide', {\n dir: '',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n this.body.hidden = true;\n\n this.emit('nile-after-hide');\n }\n }\n\n @watch(['content', 'distance', 'hoist', 'placement', 'skidding'])\n async handleOptionsChange() {\n if (this.hasUpdated) {\n await this.updateComplete;\n this.popup.reposition();\n }\n }\n\n @watch('disabled')\n handleDisabledChange() {\n if (this.disabled && this.open) {\n this.hide();\n }\n }\n\n /** Shows the tooltip. */\n async show() {\n if (this.open || !this.content?.trim().length) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the tooltip */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n render() {\n return html`\n <nile-popup\n part=\"base\"\n exportparts=\"\n popup:base__popup,\n arrow:base__arrow\n \"\n class=${classMap({\n tooltip: true,\n 'tooltip--open': this.open,\n })}\n placement=${this.placement}\n distance=${this.distance}\n skidding=${this.skidding}\n strategy=${this.hoist ? 'fixed' : 'absolute'}\n flip\n shift\n arrow\n >\n <slot slot=\"anchor\" aria-describedby=\"tooltip\"></slot>\n\n <slot\n name=\"content\"\n part=\"body\"\n id=\"tooltip\"\n class=${classMap({\n tooltip__body: true,\n 'tooltip__body--large': this.size === 'large',\n })}\n role=\"tooltip\"\n aria-live=${this.open ? 'polite' : 'off'}\n >\n ${this.content}\n </slot>\n </nile-popup>\n `;\n }\n}\n\nsetDefaultAnimation('tooltip.show', {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 150, easing: 'ease' },\n});\n\nsetDefaultAnimation('tooltip.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 150, easing: 'ease' },\n});\n\nexport default NileTooltip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tooltip': NileTooltip;\n }\n}\n"]}
@@ -28,7 +28,6 @@ import type { CSSResultGroup } from 'lit';
28
28
  */
29
29
  export declare class NileTree extends NileElement {
30
30
  static styles: CSSResultGroup;
31
- protected BUBBLES: boolean;
32
31
  defaultSlot: HTMLSlotElement;
33
32
  expandedIconSlot: HTMLSlotElement;
34
33
  collapsedIconSlot: HTMLSlotElement;
@@ -64,7 +64,6 @@ function syncCheckboxes(changedTreeItem, initialSync = false) {
64
64
  let NileTree = class NileTree extends NileElement {
65
65
  constructor() {
66
66
  super(...arguments);
67
- this.BUBBLES = false;
68
67
  /**
69
68
  * The selection behavior of the tree. Single selection allows only one node to be selected at a time. Multiple
70
69
  * displays checkboxes and allows more than one node to be selected. Leaf allows only leaf nodes to be selected.
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tree.js","sourceRoot":"","sources":["../../../src/nile-tree/nile-tree.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, CSSResultArray, TemplateResult} from 'lit-element';\nimport {styles} from './nile-tree.css';\nimport NileElement from '../internal/nile-element';\nimport { clamp } from '../internal/math';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport NileTreeItem from '../nile-tree-item/nile-tree-item';\nimport type { CSSResultGroup } from 'lit';\n\nfunction syncCheckboxes(changedTreeItem: NileTreeItem, initialSync = false) {\n function syncParentItem(treeItem: NileTreeItem) {\n const children = treeItem.getChildrenItems({ includeDisabled: false });\n\n if (children.length) {\n const allChecked = children.every(item => item.selected);\n const allUnchecked = children.every(item => !item.selected && !item.indeterminate);\n\n treeItem.selected = allChecked;\n treeItem.indeterminate = !allChecked && !allUnchecked;\n }\n }\n\n function syncAncestors(treeItem: NileTreeItem) {\n const parentItem: NileTreeItem | null = treeItem.parentElement as NileTreeItem;\n\n if (NileTreeItem.isTreeItem(parentItem)) {\n syncParentItem(parentItem);\n syncAncestors(parentItem);\n }\n }\n\n function syncDescendants(treeItem: NileTreeItem) {\n for (const childItem of treeItem.getChildrenItems()) {\n childItem.selected = initialSync\n ? treeItem.selected || childItem.selected\n : !childItem.disabled && treeItem.selected;\n\n syncDescendants(childItem);\n }\n\n if (initialSync) {\n syncParentItem(treeItem);\n }\n }\n\n syncDescendants(changedTreeItem);\n syncAncestors(changedTreeItem);\n}\n\n\n/**\n * @summary Trees allow you to display a hierarchical list of selectable [tree items](/components/tree-item). Items with children can be expanded and collapsed as desired by the user.\n *\n * @event {{ selection: NileTreeItem[] }} nile-selection-change - Emitted when a tree item is selected or deselected.\n *\n * @slot - The default slot.\n * @slot expand-icon - The icon to show when the tree item is expanded. Works best with `<nile-icon>`.\n * @slot collapse-icon - The icon to show when the tree item is collapsed. Works best with `<nile-icon>`.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty [--indent-size=var(--nile-spacing-medium)] - The size of the indentation for nested items.\n * @cssproperty [--indent-guide-color=var(--nile-color-neutral-200)] - The color of the indentation line.\n * @cssproperty [--indent-guide-offset=0] - The amount of vertical spacing to leave between the top and bottom of the\n * indentation line's starting position.\n * @cssproperty [--indent-guide-style=solid] - The style of the indentation line, e.g. solid, dotted, dashed.\n * @cssproperty [--indent-guide-width=0] - The width of the indentation line.\n */\n\n@customElement('nile-tree')\nexport class NileTree extends NileElement {\n\n\tstatic styles: CSSResultGroup = styles;\n\n protected override BUBBLES: boolean=false;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('slot[name=expand-icon]') expandedIconSlot: HTMLSlotElement;\n @query('slot[name=collapse-icon]') collapsedIconSlot: HTMLSlotElement;\n\n /**\n * The selection behavior of the tree. Single selection allows only one node to be selected at a time. Multiple\n * displays checkboxes and allows more than one node to be selected. Leaf allows only leaf nodes to be selected.\n */\n @property() selection: 'single' | 'multiple' | 'leaf' = 'leaf';\n\n //\n // A collection of all the items in the tree, in the order they appear. The collection is live, meaning it is\n // automatically updated when the underlying document is changed.\n //\n private lastFocusedItem: NileTreeItem;\n private mutationObserver: MutationObserver;\n private clickTarget: NileTreeItem | null = null;\n\n async connectedCallback() {\n super.connectedCallback();\n this.handleTreeChanged = this.handleTreeChanged.bind(this);\n this.handleFocusIn = this.handleFocusIn.bind(this);\n this.handleFocusOut = this.handleFocusOut.bind(this);\n\n this.setAttribute('role', 'tree');\n this.setAttribute('tabindex', '0');\n\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n this.addEventListener('nile-lazy-change', this.handleSlotChange);\n\n await this.updateComplete;\n\n this.mutationObserver = new MutationObserver(this.handleTreeChanged);\n this.mutationObserver.observe(this, { childList: true, subtree: true });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.mutationObserver.disconnect();\n\n this.removeEventListener('focusin', this.handleFocusIn);\n this.removeEventListener('focusout', this.handleFocusOut);\n this.removeEventListener('nile-lazy-change', this.handleSlotChange);\n }\n\n // Generates a clone of the expand icon element to use for each tree item\n private getExpandButtonIcon(status: 'expand' | 'collapse') {\n const slot = status === 'expand' ? this.expandedIconSlot : this.collapsedIconSlot;\n const icon = slot.assignedElements({ flatten: true })[0] as HTMLElement;\n\n // Clone it, remove ids, and slot it\n if (icon) {\n const clone = icon.cloneNode(true) as HTMLElement;\n [clone, ...clone.querySelectorAll('[id]')].forEach(el => el.removeAttribute('id'));\n clone.setAttribute('data-default', '');\n clone.slot = `${status}-icon`;\n\n return clone;\n }\n\n return null;\n }\n\n // Initializes new items by setting the `selectable` property and the expanded/collapsed icons if any\n private initTreeItem = (item: NileTreeItem) => {\n item.selectable = this.selection === 'multiple';\n\n ['expand', 'collapse']\n .filter(status => !!this.querySelector(`[slot=\"${status}-icon\"]`))\n .forEach((status: 'expand' | 'collapse') => {\n const existingIcon = item.querySelector(`[slot=\"${status}-icon\"]`);\n\n if (existingIcon === null) {\n // No separator exists, add one\n item.append(this.getExpandButtonIcon(status)!);\n } else if (existingIcon.hasAttribute('data-default')) {\n // A default separator exists, replace it\n existingIcon.replaceWith(this.getExpandButtonIcon(status)!);\n } else {\n // The user provided a custom icon, leave it alone\n }\n });\n };\n\n private handleTreeChanged(mutations: MutationRecord[]) {\n for (const mutation of mutations) {\n const addedNodes: NileTreeItem[] = [...mutation.addedNodes].filter(NileTreeItem.isTreeItem) as NileTreeItem[];\n const removedNodes = [...mutation.removedNodes].filter(NileTreeItem.isTreeItem) as NileTreeItem[];\n\n addedNodes.forEach(this.initTreeItem);\n\n // If the focused item has been removed form the DOM, move the focus to the first focusable item\n if (removedNodes.includes(this.lastFocusedItem)) {\n this.focusItem(this.getFocusableItems()[0]);\n }\n }\n }\n\n private syncTreeItems(selectedItem: NileTreeItem) {\n const items = this.getAllTreeItems();\n\n if (this.selection === 'multiple') {\n syncCheckboxes(selectedItem);\n } else {\n for (const item of items) {\n if (item !== selectedItem) {\n item.selected = false;\n }\n }\n }\n }\n\n private selectItem(selectedItem: NileTreeItem) {\n const previousSelection = [...this.selectedItems];\n\n if (this.selection === 'multiple') {\n selectedItem.selected = !selectedItem.selected;\n if (selectedItem.lazy) {\n selectedItem.expanded = true;\n }\n this.syncTreeItems(selectedItem);\n } else if (this.selection === 'single' || selectedItem.isLeaf) {\n selectedItem.expanded = !selectedItem.expanded;\n selectedItem.selected = true;\n\n this.syncTreeItems(selectedItem);\n } else if (this.selection === 'leaf') {\n selectedItem.expanded = !selectedItem.expanded;\n }\n\n const nextSelection = this.selectedItems;\n\n if (\n previousSelection.length !== nextSelection.length ||\n nextSelection.some(item => !previousSelection.includes(item))\n ) {\n // Wait for the tree items' DOM to update before emitting\n Promise.all(nextSelection.map(el => el.updateComplete)).then(() => {\n this.emit('nile-selection-change', { detail: { selection: nextSelection } });\n });\n }\n }\n\n private getAllTreeItems() {\n return [...this.querySelectorAll<NileTreeItem>('nile-tree-item')];\n }\n\n private focusItem(item?: NileTreeItem | null) {\n item?.focus();\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Home', 'End', 'Enter', ' '].includes(event.key)) {\n return;\n }\n\n const items = this.getFocusableItems();\n const isLtr = true;\n const isRtl = false;\n\n if (items.length > 0) {\n event.preventDefault();\n const activeItemIndex = items.findIndex(item => item.matches(':focus'));\n const activeItem: NileTreeItem | undefined = items[activeItemIndex];\n\n const focusItemAt = (index: number) => {\n const item = items[clamp(index, 0, items.length - 1)];\n this.focusItem(item);\n };\n const toggleExpand = (expanded: boolean) => {\n activeItem.expanded = expanded;\n };\n\n if (event.key === 'ArrowDown') {\n // Moves focus to the next node that is focusable without opening or closing a node.\n focusItemAt(activeItemIndex + 1);\n } else if (event.key === 'ArrowUp') {\n // Moves focus to the next node that is focusable without opening or closing a node.\n focusItemAt(activeItemIndex - 1);\n } else if ((isLtr && event.key === 'ArrowRight') || (isRtl && event.key === 'ArrowLeft')) {\n //\n // When focus is on a closed node, opens the node; focus does not move.\n // When focus is on a open node, moves focus to the first child node.\n // When focus is on an end node (a tree item with no children), does nothing.\n //\n if (!activeItem || activeItem.disabled || activeItem.expanded || (activeItem.isLeaf && !activeItem.lazy)) {\n focusItemAt(activeItemIndex + 1);\n } else {\n toggleExpand(true);\n }\n } else if ((isLtr && event.key === 'ArrowLeft') || (isRtl && event.key === 'ArrowRight')) {\n //\n // When focus is on an open node, closes the node.\n // When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.\n // When focus is on a closed `tree`, does nothing.\n //\n if (!activeItem || activeItem.disabled || activeItem.isLeaf || !activeItem.expanded) {\n focusItemAt(activeItemIndex - 1);\n } else {\n toggleExpand(false);\n }\n } else if (event.key === 'Home') {\n // Moves focus to the first node in the tree without opening or closing a node.\n focusItemAt(0);\n } else if (event.key === 'End') {\n // Moves focus to the last node in the tree that is focusable without opening the node.\n focusItemAt(items.length - 1);\n } else if (event.key === 'Enter' || event.key === ' ') {\n // Selects the focused node.\n if (!activeItem.disabled) {\n this.selectItem(activeItem);\n }\n }\n }\n }\n\n private handleClick(event: Event) {\n const target = event.target as NileTreeItem;\n const treeItem = target.closest('nile-tree-item')!;\n const isExpandButton = event\n .composedPath()\n .some((el: HTMLElement) => el?.classList?.contains('tree-item__expand-button'));\n\n //\n // Don't Do anything if there's no tree item, if it's disabled, or if the click doesn't match the initial target\n // from mousedown. The latter case prevents the user from starting a click on one item and ending it on another,\n // causing the parent node to collapse.\n //\n if (!treeItem || treeItem.disabled || target !== this.clickTarget) {\n return;\n }\n\n if (this.selection === 'multiple' && isExpandButton) {\n treeItem.expanded = !treeItem.expanded;\n } else {\n this.selectItem(treeItem);\n }\n }\n\n handleMouseDown(event: MouseEvent) {\n // Record the click target so we know which item the click initially targeted\n this.clickTarget = event.target as NileTreeItem;\n }\n\n private handleFocusOut(event: FocusEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n // If the element that got the focus is not in the tree\n if (!relatedTarget || !this.contains(relatedTarget)) {\n this.tabIndex = 0;\n }\n }\n\n private handleFocusIn(event: FocusEvent) {\n const target = event.target as NileTreeItem;\n\n // If the tree has been focused, move the focus to the last focused item\n if (event.target === this) {\n this.focusItem(this.lastFocusedItem || this.getAllTreeItems()[0]);\n }\n\n // If the target is a tree item, update the tabindex\n if (NileTreeItem.isTreeItem(target) && !target.disabled) {\n if (this.lastFocusedItem) {\n this.lastFocusedItem.tabIndex = -1;\n }\n this.lastFocusedItem = target;\n this.tabIndex = -1;\n\n target.tabIndex = 0;\n }\n }\n\n private handleSlotChange() {\n const items = this.getAllTreeItems();\n items.forEach(this.initTreeItem);\n }\n\n @watch('selection')\n async handleSelectionChange() {\n const isSelectionMultiple = this.selection === 'multiple';\n const items = this.getAllTreeItems();\n\n this.setAttribute('aria-multiselectable', isSelectionMultiple ? 'true' : 'false');\n\n for (const item of items) {\n item.selectable = isSelectionMultiple;\n }\n\n if (isSelectionMultiple) {\n await this.updateComplete;\n\n [...this.querySelectorAll(':scope > nile-tree-item')].forEach((treeItem: NileTreeItem) =>\n syncCheckboxes(treeItem, true)\n );\n }\n }\n\n /** @internal Returns the list of tree items that are selected in the tree. */\n get selectedItems(): NileTreeItem[] {\n const items = this.getAllTreeItems();\n const isSelected = (item: NileTreeItem) => item.selected;\n\n return items.filter(isSelected);\n }\n\n /** @internal Gets focusable tree items in the tree. */\n getFocusableItems() {\n const items = this.getAllTreeItems();\n const collapsedItems = new Set();\n\n return items.filter(item => {\n // Exclude disabled elements\n if (item.disabled) return false;\n\n // Exclude those whose parent is collapsed or loading\n const parent: NileTreeItem | null | undefined = item.parentElement?.closest('[role=treeitem]');\n if (parent && (!parent.expanded || parent.loading || collapsedItems.has(parent))) {\n collapsedItems.add(item);\n }\n\n return !collapsedItems.has(item);\n });\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=\"tree\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n @mousedown=${this.handleMouseDown}\n >\n <slot @slotchange=${this.handleSlotChange}></slot>\n <slot name=\"expand-icon\" hidden aria-hidden=\"true\"> </slot>\n <slot name=\"collapse-icon\" hidden aria-hidden=\"true\"> </slot>\n </div>\n `;\n }\n}\n\nexport default NileTree;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tree': NileTree;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-tree.js","sourceRoot":"","sources":["../../../src/nile-tree/nile-tree.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, CSSResultArray, TemplateResult} from 'lit-element';\nimport {styles} from './nile-tree.css';\nimport NileElement from '../internal/nile-element';\nimport { clamp } from '../internal/math';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { html } from 'lit';\nimport { watch } from '../internal/watch';\nimport NileTreeItem from '../nile-tree-item/nile-tree-item';\nimport type { CSSResultGroup } from 'lit';\n\nfunction syncCheckboxes(changedTreeItem: NileTreeItem, initialSync = false) {\n function syncParentItem(treeItem: NileTreeItem) {\n const children = treeItem.getChildrenItems({ includeDisabled: false });\n\n if (children.length) {\n const allChecked = children.every(item => item.selected);\n const allUnchecked = children.every(item => !item.selected && !item.indeterminate);\n\n treeItem.selected = allChecked;\n treeItem.indeterminate = !allChecked && !allUnchecked;\n }\n }\n\n function syncAncestors(treeItem: NileTreeItem) {\n const parentItem: NileTreeItem | null = treeItem.parentElement as NileTreeItem;\n\n if (NileTreeItem.isTreeItem(parentItem)) {\n syncParentItem(parentItem);\n syncAncestors(parentItem);\n }\n }\n\n function syncDescendants(treeItem: NileTreeItem) {\n for (const childItem of treeItem.getChildrenItems()) {\n childItem.selected = initialSync\n ? treeItem.selected || childItem.selected\n : !childItem.disabled && treeItem.selected;\n\n syncDescendants(childItem);\n }\n\n if (initialSync) {\n syncParentItem(treeItem);\n }\n }\n\n syncDescendants(changedTreeItem);\n syncAncestors(changedTreeItem);\n}\n\n\n/**\n * @summary Trees allow you to display a hierarchical list of selectable [tree items](/components/tree-item). Items with children can be expanded and collapsed as desired by the user.\n *\n * @event {{ selection: NileTreeItem[] }} nile-selection-change - Emitted when a tree item is selected or deselected.\n *\n * @slot - The default slot.\n * @slot expand-icon - The icon to show when the tree item is expanded. Works best with `<nile-icon>`.\n * @slot collapse-icon - The icon to show when the tree item is collapsed. Works best with `<nile-icon>`.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty [--indent-size=var(--nile-spacing-medium)] - The size of the indentation for nested items.\n * @cssproperty [--indent-guide-color=var(--nile-color-neutral-200)] - The color of the indentation line.\n * @cssproperty [--indent-guide-offset=0] - The amount of vertical spacing to leave between the top and bottom of the\n * indentation line's starting position.\n * @cssproperty [--indent-guide-style=solid] - The style of the indentation line, e.g. solid, dotted, dashed.\n * @cssproperty [--indent-guide-width=0] - The width of the indentation line.\n */\n\n@customElement('nile-tree')\nexport class NileTree extends NileElement {\n\n\tstatic styles: CSSResultGroup = styles;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('slot[name=expand-icon]') expandedIconSlot: HTMLSlotElement;\n @query('slot[name=collapse-icon]') collapsedIconSlot: HTMLSlotElement;\n\n /**\n * The selection behavior of the tree. Single selection allows only one node to be selected at a time. Multiple\n * displays checkboxes and allows more than one node to be selected. Leaf allows only leaf nodes to be selected.\n */\n @property() selection: 'single' | 'multiple' | 'leaf' = 'leaf';\n\n //\n // A collection of all the items in the tree, in the order they appear. The collection is live, meaning it is\n // automatically updated when the underlying document is changed.\n //\n private lastFocusedItem: NileTreeItem;\n private mutationObserver: MutationObserver;\n private clickTarget: NileTreeItem | null = null;\n\n async connectedCallback() {\n super.connectedCallback();\n this.handleTreeChanged = this.handleTreeChanged.bind(this);\n this.handleFocusIn = this.handleFocusIn.bind(this);\n this.handleFocusOut = this.handleFocusOut.bind(this);\n\n this.setAttribute('role', 'tree');\n this.setAttribute('tabindex', '0');\n\n this.addEventListener('focusin', this.handleFocusIn);\n this.addEventListener('focusout', this.handleFocusOut);\n this.addEventListener('nile-lazy-change', this.handleSlotChange);\n\n await this.updateComplete;\n\n this.mutationObserver = new MutationObserver(this.handleTreeChanged);\n this.mutationObserver.observe(this, { childList: true, subtree: true });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.mutationObserver.disconnect();\n\n this.removeEventListener('focusin', this.handleFocusIn);\n this.removeEventListener('focusout', this.handleFocusOut);\n this.removeEventListener('nile-lazy-change', this.handleSlotChange);\n }\n\n // Generates a clone of the expand icon element to use for each tree item\n private getExpandButtonIcon(status: 'expand' | 'collapse') {\n const slot = status === 'expand' ? this.expandedIconSlot : this.collapsedIconSlot;\n const icon = slot.assignedElements({ flatten: true })[0] as HTMLElement;\n\n // Clone it, remove ids, and slot it\n if (icon) {\n const clone = icon.cloneNode(true) as HTMLElement;\n [clone, ...clone.querySelectorAll('[id]')].forEach(el => el.removeAttribute('id'));\n clone.setAttribute('data-default', '');\n clone.slot = `${status}-icon`;\n\n return clone;\n }\n\n return null;\n }\n\n // Initializes new items by setting the `selectable` property and the expanded/collapsed icons if any\n private initTreeItem = (item: NileTreeItem) => {\n item.selectable = this.selection === 'multiple';\n\n ['expand', 'collapse']\n .filter(status => !!this.querySelector(`[slot=\"${status}-icon\"]`))\n .forEach((status: 'expand' | 'collapse') => {\n const existingIcon = item.querySelector(`[slot=\"${status}-icon\"]`);\n\n if (existingIcon === null) {\n // No separator exists, add one\n item.append(this.getExpandButtonIcon(status)!);\n } else if (existingIcon.hasAttribute('data-default')) {\n // A default separator exists, replace it\n existingIcon.replaceWith(this.getExpandButtonIcon(status)!);\n } else {\n // The user provided a custom icon, leave it alone\n }\n });\n };\n\n private handleTreeChanged(mutations: MutationRecord[]) {\n for (const mutation of mutations) {\n const addedNodes: NileTreeItem[] = [...mutation.addedNodes].filter(NileTreeItem.isTreeItem) as NileTreeItem[];\n const removedNodes = [...mutation.removedNodes].filter(NileTreeItem.isTreeItem) as NileTreeItem[];\n\n addedNodes.forEach(this.initTreeItem);\n\n // If the focused item has been removed form the DOM, move the focus to the first focusable item\n if (removedNodes.includes(this.lastFocusedItem)) {\n this.focusItem(this.getFocusableItems()[0]);\n }\n }\n }\n\n private syncTreeItems(selectedItem: NileTreeItem) {\n const items = this.getAllTreeItems();\n\n if (this.selection === 'multiple') {\n syncCheckboxes(selectedItem);\n } else {\n for (const item of items) {\n if (item !== selectedItem) {\n item.selected = false;\n }\n }\n }\n }\n\n private selectItem(selectedItem: NileTreeItem) {\n const previousSelection = [...this.selectedItems];\n\n if (this.selection === 'multiple') {\n selectedItem.selected = !selectedItem.selected;\n if (selectedItem.lazy) {\n selectedItem.expanded = true;\n }\n this.syncTreeItems(selectedItem);\n } else if (this.selection === 'single' || selectedItem.isLeaf) {\n selectedItem.expanded = !selectedItem.expanded;\n selectedItem.selected = true;\n\n this.syncTreeItems(selectedItem);\n } else if (this.selection === 'leaf') {\n selectedItem.expanded = !selectedItem.expanded;\n }\n\n const nextSelection = this.selectedItems;\n\n if (\n previousSelection.length !== nextSelection.length ||\n nextSelection.some(item => !previousSelection.includes(item))\n ) {\n // Wait for the tree items' DOM to update before emitting\n Promise.all(nextSelection.map(el => el.updateComplete)).then(() => {\n this.emit('nile-selection-change', { detail: { selection: nextSelection } });\n });\n }\n }\n\n private getAllTreeItems() {\n return [...this.querySelectorAll<NileTreeItem>('nile-tree-item')];\n }\n\n private focusItem(item?: NileTreeItem | null) {\n item?.focus();\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (!['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft', 'Home', 'End', 'Enter', ' '].includes(event.key)) {\n return;\n }\n\n const items = this.getFocusableItems();\n const isLtr = true;\n const isRtl = false;\n\n if (items.length > 0) {\n event.preventDefault();\n const activeItemIndex = items.findIndex(item => item.matches(':focus'));\n const activeItem: NileTreeItem | undefined = items[activeItemIndex];\n\n const focusItemAt = (index: number) => {\n const item = items[clamp(index, 0, items.length - 1)];\n this.focusItem(item);\n };\n const toggleExpand = (expanded: boolean) => {\n activeItem.expanded = expanded;\n };\n\n if (event.key === 'ArrowDown') {\n // Moves focus to the next node that is focusable without opening or closing a node.\n focusItemAt(activeItemIndex + 1);\n } else if (event.key === 'ArrowUp') {\n // Moves focus to the next node that is focusable without opening or closing a node.\n focusItemAt(activeItemIndex - 1);\n } else if ((isLtr && event.key === 'ArrowRight') || (isRtl && event.key === 'ArrowLeft')) {\n //\n // When focus is on a closed node, opens the node; focus does not move.\n // When focus is on a open node, moves focus to the first child node.\n // When focus is on an end node (a tree item with no children), does nothing.\n //\n if (!activeItem || activeItem.disabled || activeItem.expanded || (activeItem.isLeaf && !activeItem.lazy)) {\n focusItemAt(activeItemIndex + 1);\n } else {\n toggleExpand(true);\n }\n } else if ((isLtr && event.key === 'ArrowLeft') || (isRtl && event.key === 'ArrowRight')) {\n //\n // When focus is on an open node, closes the node.\n // When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.\n // When focus is on a closed `tree`, does nothing.\n //\n if (!activeItem || activeItem.disabled || activeItem.isLeaf || !activeItem.expanded) {\n focusItemAt(activeItemIndex - 1);\n } else {\n toggleExpand(false);\n }\n } else if (event.key === 'Home') {\n // Moves focus to the first node in the tree without opening or closing a node.\n focusItemAt(0);\n } else if (event.key === 'End') {\n // Moves focus to the last node in the tree that is focusable without opening the node.\n focusItemAt(items.length - 1);\n } else if (event.key === 'Enter' || event.key === ' ') {\n // Selects the focused node.\n if (!activeItem.disabled) {\n this.selectItem(activeItem);\n }\n }\n }\n }\n\n private handleClick(event: Event) {\n const target = event.target as NileTreeItem;\n const treeItem = target.closest('nile-tree-item')!;\n const isExpandButton = event\n .composedPath()\n .some((el: HTMLElement) => el?.classList?.contains('tree-item__expand-button'));\n\n //\n // Don't Do anything if there's no tree item, if it's disabled, or if the click doesn't match the initial target\n // from mousedown. The latter case prevents the user from starting a click on one item and ending it on another,\n // causing the parent node to collapse.\n //\n if (!treeItem || treeItem.disabled || target !== this.clickTarget) {\n return;\n }\n\n if (this.selection === 'multiple' && isExpandButton) {\n treeItem.expanded = !treeItem.expanded;\n } else {\n this.selectItem(treeItem);\n }\n }\n\n handleMouseDown(event: MouseEvent) {\n // Record the click target so we know which item the click initially targeted\n this.clickTarget = event.target as NileTreeItem;\n }\n\n private handleFocusOut(event: FocusEvent) {\n const relatedTarget = event.relatedTarget as HTMLElement;\n\n // If the element that got the focus is not in the tree\n if (!relatedTarget || !this.contains(relatedTarget)) {\n this.tabIndex = 0;\n }\n }\n\n private handleFocusIn(event: FocusEvent) {\n const target = event.target as NileTreeItem;\n\n // If the tree has been focused, move the focus to the last focused item\n if (event.target === this) {\n this.focusItem(this.lastFocusedItem || this.getAllTreeItems()[0]);\n }\n\n // If the target is a tree item, update the tabindex\n if (NileTreeItem.isTreeItem(target) && !target.disabled) {\n if (this.lastFocusedItem) {\n this.lastFocusedItem.tabIndex = -1;\n }\n this.lastFocusedItem = target;\n this.tabIndex = -1;\n\n target.tabIndex = 0;\n }\n }\n\n private handleSlotChange() {\n const items = this.getAllTreeItems();\n items.forEach(this.initTreeItem);\n }\n\n @watch('selection')\n async handleSelectionChange() {\n const isSelectionMultiple = this.selection === 'multiple';\n const items = this.getAllTreeItems();\n\n this.setAttribute('aria-multiselectable', isSelectionMultiple ? 'true' : 'false');\n\n for (const item of items) {\n item.selectable = isSelectionMultiple;\n }\n\n if (isSelectionMultiple) {\n await this.updateComplete;\n\n [...this.querySelectorAll(':scope > nile-tree-item')].forEach((treeItem: NileTreeItem) =>\n syncCheckboxes(treeItem, true)\n );\n }\n }\n\n /** @internal Returns the list of tree items that are selected in the tree. */\n get selectedItems(): NileTreeItem[] {\n const items = this.getAllTreeItems();\n const isSelected = (item: NileTreeItem) => item.selected;\n\n return items.filter(isSelected);\n }\n\n /** @internal Gets focusable tree items in the tree. */\n getFocusableItems() {\n const items = this.getAllTreeItems();\n const collapsedItems = new Set();\n\n return items.filter(item => {\n // Exclude disabled elements\n if (item.disabled) return false;\n\n // Exclude those whose parent is collapsed or loading\n const parent: NileTreeItem | null | undefined = item.parentElement?.closest('[role=treeitem]');\n if (parent && (!parent.expanded || parent.loading || collapsedItems.has(parent))) {\n collapsedItems.add(item);\n }\n\n return !collapsedItems.has(item);\n });\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=\"tree\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n @mousedown=${this.handleMouseDown}\n >\n <slot @slotchange=${this.handleSlotChange}></slot>\n <slot name=\"expand-icon\" hidden aria-hidden=\"true\"> </slot>\n <slot name=\"collapse-icon\" hidden aria-hidden=\"true\"> </slot>\n </div>\n `;\n }\n}\n\nexport default NileTree;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tree': NileTree;\n }\n}\n"]}
@@ -51,7 +51,6 @@ import '../nile-spinner/nile-spinner';
51
51
  */
52
52
  export declare class NileTreeItem extends NileElement {
53
53
  static styles: CSSResultGroup;
54
- protected BUBBLES: boolean;
55
54
  static isTreeItem(node: Node): boolean;
56
55
  indeterminate: boolean;
57
56
  isLeaf: boolean;
@@ -61,7 +61,6 @@ import '../nile-spinner/nile-spinner';
61
61
  let NileTreeItem = NileTreeItem_1 = class NileTreeItem extends NileElement {
62
62
  constructor() {
63
63
  super(...arguments);
64
- this.BUBBLES = false;
65
64
  this.indeterminate = false;
66
65
  this.isLeaf = false;
67
66
  this.loading = false;
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tree-item.js","sourceRoot":"","sources":["../../../src/nile-tree-item/nile-tree-item.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, CSSResultArray, TemplateResult} from 'lit-element';\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { getAnimation, setDefaultAnimation } from '../utilities/animation-registry';\nimport { html } from 'lit';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../internal/watch';\nimport { when } from 'lit/directives/when.js';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport {styles} from './nile-tree-item.css';\nimport NileElement from '../internal/nile-element';\nimport '../nile-checkbox/nile-checkbox';\nimport '../nile-icon';\nimport '../nile-spinner/nile-spinner';\n\n/**\n * @summary A tree item serves as a hierarchical node that lives inside a [tree](/components/tree).\n *\n * @dependency nile-checkbox\n * @dependency nile-icon\n * @dependency nile-spinner\n *\n * @event nile-expand - Emitted when the tree item expands.\n * @event nile-after-expand - Emitted after the tree item expands and all animations are complete.\n * @event nile-collapse - Emitted when the tree item collapses.\n * @event nile-after-collapse - Emitted after the tree item collapses and all animations are complete.\n * @event nile-lazy-change - Emitted when the tree item's lazy state changes.\n * @event nile-lazy-load - Emitted when a lazy item is selected. Use this event to asynchronously load data and append\n * items to the tree before expanding. After appending new items, remove the `lazy` attribute to remove the loading\n * state and update the tree.\n *\n * @slot - The default slot.\n * @slot expand-icon - The icon to show when the tree item is expanded.\n * @slot collapse-icon - The icon to show when the tree item is collapsed.\n *\n * @csspart base - The component's base wrapper.\n * @csspart item - The tree item's container. This element wraps everything except slotted tree item children.\n * @csspart item--disabled - Applied when the tree item is disabled.\n * @csspart item--expanded - Applied when the tree item is expanded.\n * @csspart item--indeterminate - Applied when the selection is indeterminate.\n * @csspart item--selected - Applied when the tree item is selected.\n * @csspart indentation - The tree item's indentation container.\n * @csspart expand-button - The container that wraps the tree item's expand button and spinner.\n * @csspart label - The tree item's label.\n * @csspart children - The container that wraps the tree item's nested children.\n * @csspart checkbox - The checkbox that shows when using multiselect.\n * @csspart checkbox__base - The checkbox's exported `base` part.\n * @csspart checkbox__control - The checkbox's exported `control` part.\n * @csspart checkbox__control--checked - The checkbox's exported `control--checked` part.\n * @csspart checkbox__control--indeterminate - The checkbox's exported `control--indeterminate` part.\n * @csspart checkbox__checked-icon - The checkbox's exported `checked-icon` part.\n * @csspart checkbox__indeterminate-icon - The checkbox's exported `indeterminate-icon` part.\n * @csspart checkbox__label - The checkbox's exported `label` part.\n */\n@customElement('nile-tree-item')\nexport class NileTreeItem extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n protected override BUBBLES: boolean=false;\n\n static isTreeItem(node: Node) {\n return node instanceof Element && node.getAttribute('role') === 'treeitem';\n }\n\n\n @state() indeterminate = false;\n @state() isLeaf = false;\n @state() loading = false;\n @state() selectable = false;\n\n /** Expands the tree item. */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /** Draws the tree item in a selected state. */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n /** Disables the tree item. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Enables lazy loading behavior. */\n @property({ type: Boolean, reflect: true }) lazy = false;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('slot[name=children]') childrenSlot: HTMLSlotElement;\n @query('.tree-item__item') itemElement: HTMLDivElement;\n @query('.tree-item__children') childrenContainer: HTMLDivElement;\n @query('.tree-item__expand-button slot') expandButtonSlot: HTMLSlotElement;\n\n connectedCallback() {\n super.connectedCallback();\n\n this.setAttribute('role', 'treeitem');\n this.setAttribute('tabindex', '-1');\n\n if (this.isNestedItem()) {\n this.slot = 'children';\n }\n }\n\n firstUpdated() {\n this.childrenContainer.hidden = !this.expanded;\n this.childrenContainer.style.height = this.expanded ? 'auto' : '0';\n\n this.isLeaf = !this.lazy && this.getChildrenItems().length === 0;\n this.handleExpandedChange();\n }\n\n private async animateCollapse() {\n this.emit('nile-collapse');\n\n await stopAnimations(this.childrenContainer);\n\n const { keyframes, options } = getAnimation(this, 'tree-item.collapse', { dir: 'ltr' });\n await animateTo(\n this.childrenContainer,\n shimKeyframesHeightAuto(keyframes, this.childrenContainer.scrollHeight),\n options\n );\n this.childrenContainer.hidden = true;\n\n this.emit('nile-after-collapse');\n }\n\n // Checks whether the item is nested into an item\n private isNestedItem(): boolean {\n const parent = this.parentElement;\n return !!parent && NileTreeItem.isTreeItem(parent);\n }\n\n private handleChildrenSlotChange() {\n this.loading = false;\n this.isLeaf = !this.lazy && this.getChildrenItems().length === 0;\n }\n\n protected willUpdate(changedProperties: PropertyValueMap<NileTreeItem> | Map<PropertyKey, unknown>) {\n if (changedProperties.has('selected') && !changedProperties.has('indeterminate')) {\n this.indeterminate = false;\n }\n }\n\n private async animateExpand() {\n this.emit('nile-expand');\n\n await stopAnimations(this.childrenContainer);\n this.childrenContainer.hidden = false;\n\n const { keyframes, options } = getAnimation(this, 'tree-item.expand', { dir: 'ltr' });\n await animateTo(\n this.childrenContainer,\n shimKeyframesHeightAuto(keyframes, this.childrenContainer.scrollHeight),\n options\n );\n this.childrenContainer.style.height = 'auto';\n\n this.emit('nile-after-expand');\n }\n\n @watch('loading', { waitUntilFirstUpdate: true })\n handleLoadingChange() {\n this.setAttribute('aria-busy', this.loading ? 'true' : 'false');\n\n if (!this.loading) {\n this.animateExpand();\n }\n }\n\n @watch('disabled')\n handleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n @watch('selected')\n handleSelectedChange() {\n this.setAttribute('aria-selected', this.selected ? 'true' : 'false');\n }\n\n @watch('expanded', { waitUntilFirstUpdate: true })\n handleExpandedChange() {\n if (!this.isLeaf) {\n this.setAttribute('aria-expanded', this.expanded ? 'true' : 'false');\n } else {\n this.removeAttribute('aria-expanded');\n }\n }\n\n @watch('expanded', { waitUntilFirstUpdate: true })\n handleExpandAnimation() {\n if (this.expanded) {\n if (this.lazy) {\n this.loading = true;\n\n this.emit('nile-lazy-load');\n } else {\n this.animateExpand();\n }\n } else {\n this.animateCollapse();\n }\n }\n\n @watch('lazy', { waitUntilFirstUpdate: true })\n handleLazyChange() {\n this.emit('nile-lazy-change');\n }\n\n /** Gets all the nested tree items in this node. */\n getChildrenItems({ includeDisabled = true }: { includeDisabled?: boolean } = {}): NileTreeItem[] {\n return this.childrenSlot\n ? ([...this.childrenSlot.assignedElements({ flatten: true })].filter(\n (item: NileTreeItem) => NileTreeItem.isTreeItem(item) && (includeDisabled || !item.disabled)\n ) as NileTreeItem[])\n : [];\n }\n\n render() {\n const isRtl = false;\n const showExpandButton = !this.loading && (!this.isLeaf || this.lazy);\n\n return html`\n <div\n part=\"base\"\n class=\"${classMap({\n 'tree-item': true,\n 'tree-item--expanded': this.expanded,\n 'tree-item--selected': this.selected,\n 'tree-item--disabled': this.disabled,\n 'tree-item--leaf': this.isLeaf,\n 'tree-item--has-expand-button': showExpandButton,\n 'tree-item--rtl': false\n })}\"\n >\n <div\n class=\"tree-item__item\"\n part=\"\n item\n ${this.disabled ? 'item--disabled' : ''}\n ${this.expanded ? 'item--expanded' : ''}\n ${this.indeterminate ? 'item--indeterminate' : ''}\n ${this.selected ? 'item--selected' : ''}\n \"\n >\n <div class=\"tree-item__indentation\" part=\"indentation\"></div>\n\n <div\n part=\"expand-button\"\n class=${classMap({\n 'tree-item__expand-button': true,\n 'tree-item__expand-button--visible': showExpandButton\n })}\n aria-hidden=\"true\"\n >\n ${when(this.loading, () => html` <nile-spinner></nile-spinner> `)}\n <slot class=\"tree-item__expand-icon-slot\" name=\"expand-icon\">\n <nile-icon library=\"system\" name=${isRtl ? 'arrowleft' : 'arrowright'}></nile-icon>\n </slot>\n <slot class=\"tree-item__expand-icon-slot\" name=\"collapse-icon\">\n <nile-icon library=\"system\" name=${isRtl ? 'arrowleft' : 'arrowright'}></nile-icon>\n </slot>\n </div>\n\n ${when(\n this.selectable,\n () =>\n html`\n <nile-checkbox\n part=\"checkbox\"\n exportparts=\"\n base:checkbox__base,\n control:checkbox__control,\n control--checked:checkbox__control--checked,\n control--indeterminate:checkbox__control--indeterminate,\n checked-icon:checkbox__checked-icon,\n indeterminate-icon:checkbox__indeterminate-icon,\n label:checkbox__label\n \"\n class=\"tree-item__checkbox\"\n ?disabled=\"${this.disabled}\"\n ?checked=\"${live(this.selected)}\"\n ?indeterminate=\"${this.indeterminate}\"\n tabindex=\"-1\"\n ></nile-checkbox>\n `\n )}\n\n <slot class=\"tree-item__label\" part=\"label\"></slot>\n </div>\n\n <slot\n name=\"children\"\n class=\"tree-item__children\"\n part=\"children\"\n role=\"group\"\n @slotchange=\"${this.handleChildrenSlotChange}\"\n ></slot>\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('tree-item.expand', {\n keyframes: [\n { height: '0', opacity: '0', overflow: 'hidden' },\n { height: 'auto', opacity: '1', overflow: 'hidden' }\n ],\n options: { duration: 250, easing: 'cubic-bezier(0.4, 0.0, 0.2, 1)' }\n});\n\nsetDefaultAnimation('tree-item.collapse', {\n keyframes: [\n { height: 'auto', opacity: '1', overflow: 'hidden' },\n { height: '0', opacity: '0', overflow: 'hidden' }\n ],\n options: { duration: 200, easing: 'cubic-bezier(0.4, 0.0, 0.2, 1)' }\n});\n\n\nexport default NileTreeItem;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tree-item': NileTreeItem;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-tree-item.js","sourceRoot":"","sources":["../../../src/nile-tree-item/nile-tree-item.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, CSSResultArray, TemplateResult} from 'lit-element';\nimport { animateTo, shimKeyframesHeightAuto, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { getAnimation, setDefaultAnimation } from '../utilities/animation-registry';\nimport { html } from 'lit';\nimport { live } from 'lit/directives/live.js';\nimport { watch } from '../internal/watch';\nimport { when } from 'lit/directives/when.js';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport {styles} from './nile-tree-item.css';\nimport NileElement from '../internal/nile-element';\nimport '../nile-checkbox/nile-checkbox';\nimport '../nile-icon';\nimport '../nile-spinner/nile-spinner';\n\n/**\n * @summary A tree item serves as a hierarchical node that lives inside a [tree](/components/tree).\n *\n * @dependency nile-checkbox\n * @dependency nile-icon\n * @dependency nile-spinner\n *\n * @event nile-expand - Emitted when the tree item expands.\n * @event nile-after-expand - Emitted after the tree item expands and all animations are complete.\n * @event nile-collapse - Emitted when the tree item collapses.\n * @event nile-after-collapse - Emitted after the tree item collapses and all animations are complete.\n * @event nile-lazy-change - Emitted when the tree item's lazy state changes.\n * @event nile-lazy-load - Emitted when a lazy item is selected. Use this event to asynchronously load data and append\n * items to the tree before expanding. After appending new items, remove the `lazy` attribute to remove the loading\n * state and update the tree.\n *\n * @slot - The default slot.\n * @slot expand-icon - The icon to show when the tree item is expanded.\n * @slot collapse-icon - The icon to show when the tree item is collapsed.\n *\n * @csspart base - The component's base wrapper.\n * @csspart item - The tree item's container. This element wraps everything except slotted tree item children.\n * @csspart item--disabled - Applied when the tree item is disabled.\n * @csspart item--expanded - Applied when the tree item is expanded.\n * @csspart item--indeterminate - Applied when the selection is indeterminate.\n * @csspart item--selected - Applied when the tree item is selected.\n * @csspart indentation - The tree item's indentation container.\n * @csspart expand-button - The container that wraps the tree item's expand button and spinner.\n * @csspart label - The tree item's label.\n * @csspart children - The container that wraps the tree item's nested children.\n * @csspart checkbox - The checkbox that shows when using multiselect.\n * @csspart checkbox__base - The checkbox's exported `base` part.\n * @csspart checkbox__control - The checkbox's exported `control` part.\n * @csspart checkbox__control--checked - The checkbox's exported `control--checked` part.\n * @csspart checkbox__control--indeterminate - The checkbox's exported `control--indeterminate` part.\n * @csspart checkbox__checked-icon - The checkbox's exported `checked-icon` part.\n * @csspart checkbox__indeterminate-icon - The checkbox's exported `indeterminate-icon` part.\n * @csspart checkbox__label - The checkbox's exported `label` part.\n */\n@customElement('nile-tree-item')\nexport class NileTreeItem extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n static isTreeItem(node: Node) {\n return node instanceof Element && node.getAttribute('role') === 'treeitem';\n }\n\n\n @state() indeterminate = false;\n @state() isLeaf = false;\n @state() loading = false;\n @state() selectable = false;\n\n /** Expands the tree item. */\n @property({ type: Boolean, reflect: true }) expanded = false;\n\n /** Draws the tree item in a selected state. */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n /** Disables the tree item. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Enables lazy loading behavior. */\n @property({ type: Boolean, reflect: true }) lazy = false;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('slot[name=children]') childrenSlot: HTMLSlotElement;\n @query('.tree-item__item') itemElement: HTMLDivElement;\n @query('.tree-item__children') childrenContainer: HTMLDivElement;\n @query('.tree-item__expand-button slot') expandButtonSlot: HTMLSlotElement;\n\n connectedCallback() {\n super.connectedCallback();\n\n this.setAttribute('role', 'treeitem');\n this.setAttribute('tabindex', '-1');\n\n if (this.isNestedItem()) {\n this.slot = 'children';\n }\n }\n\n firstUpdated() {\n this.childrenContainer.hidden = !this.expanded;\n this.childrenContainer.style.height = this.expanded ? 'auto' : '0';\n\n this.isLeaf = !this.lazy && this.getChildrenItems().length === 0;\n this.handleExpandedChange();\n }\n\n private async animateCollapse() {\n this.emit('nile-collapse');\n\n await stopAnimations(this.childrenContainer);\n\n const { keyframes, options } = getAnimation(this, 'tree-item.collapse', { dir: 'ltr' });\n await animateTo(\n this.childrenContainer,\n shimKeyframesHeightAuto(keyframes, this.childrenContainer.scrollHeight),\n options\n );\n this.childrenContainer.hidden = true;\n\n this.emit('nile-after-collapse');\n }\n\n // Checks whether the item is nested into an item\n private isNestedItem(): boolean {\n const parent = this.parentElement;\n return !!parent && NileTreeItem.isTreeItem(parent);\n }\n\n private handleChildrenSlotChange() {\n this.loading = false;\n this.isLeaf = !this.lazy && this.getChildrenItems().length === 0;\n }\n\n protected willUpdate(changedProperties: PropertyValueMap<NileTreeItem> | Map<PropertyKey, unknown>) {\n if (changedProperties.has('selected') && !changedProperties.has('indeterminate')) {\n this.indeterminate = false;\n }\n }\n\n private async animateExpand() {\n this.emit('nile-expand');\n\n await stopAnimations(this.childrenContainer);\n this.childrenContainer.hidden = false;\n\n const { keyframes, options } = getAnimation(this, 'tree-item.expand', { dir: 'ltr' });\n await animateTo(\n this.childrenContainer,\n shimKeyframesHeightAuto(keyframes, this.childrenContainer.scrollHeight),\n options\n );\n this.childrenContainer.style.height = 'auto';\n\n this.emit('nile-after-expand');\n }\n\n @watch('loading', { waitUntilFirstUpdate: true })\n handleLoadingChange() {\n this.setAttribute('aria-busy', this.loading ? 'true' : 'false');\n\n if (!this.loading) {\n this.animateExpand();\n }\n }\n\n @watch('disabled')\n handleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n @watch('selected')\n handleSelectedChange() {\n this.setAttribute('aria-selected', this.selected ? 'true' : 'false');\n }\n\n @watch('expanded', { waitUntilFirstUpdate: true })\n handleExpandedChange() {\n if (!this.isLeaf) {\n this.setAttribute('aria-expanded', this.expanded ? 'true' : 'false');\n } else {\n this.removeAttribute('aria-expanded');\n }\n }\n\n @watch('expanded', { waitUntilFirstUpdate: true })\n handleExpandAnimation() {\n if (this.expanded) {\n if (this.lazy) {\n this.loading = true;\n\n this.emit('nile-lazy-load');\n } else {\n this.animateExpand();\n }\n } else {\n this.animateCollapse();\n }\n }\n\n @watch('lazy', { waitUntilFirstUpdate: true })\n handleLazyChange() {\n this.emit('nile-lazy-change');\n }\n\n /** Gets all the nested tree items in this node. */\n getChildrenItems({ includeDisabled = true }: { includeDisabled?: boolean } = {}): NileTreeItem[] {\n return this.childrenSlot\n ? ([...this.childrenSlot.assignedElements({ flatten: true })].filter(\n (item: NileTreeItem) => NileTreeItem.isTreeItem(item) && (includeDisabled || !item.disabled)\n ) as NileTreeItem[])\n : [];\n }\n\n render() {\n const isRtl = false;\n const showExpandButton = !this.loading && (!this.isLeaf || this.lazy);\n\n return html`\n <div\n part=\"base\"\n class=\"${classMap({\n 'tree-item': true,\n 'tree-item--expanded': this.expanded,\n 'tree-item--selected': this.selected,\n 'tree-item--disabled': this.disabled,\n 'tree-item--leaf': this.isLeaf,\n 'tree-item--has-expand-button': showExpandButton,\n 'tree-item--rtl': false\n })}\"\n >\n <div\n class=\"tree-item__item\"\n part=\"\n item\n ${this.disabled ? 'item--disabled' : ''}\n ${this.expanded ? 'item--expanded' : ''}\n ${this.indeterminate ? 'item--indeterminate' : ''}\n ${this.selected ? 'item--selected' : ''}\n \"\n >\n <div class=\"tree-item__indentation\" part=\"indentation\"></div>\n\n <div\n part=\"expand-button\"\n class=${classMap({\n 'tree-item__expand-button': true,\n 'tree-item__expand-button--visible': showExpandButton\n })}\n aria-hidden=\"true\"\n >\n ${when(this.loading, () => html` <nile-spinner></nile-spinner> `)}\n <slot class=\"tree-item__expand-icon-slot\" name=\"expand-icon\">\n <nile-icon library=\"system\" name=${isRtl ? 'arrowleft' : 'arrowright'}></nile-icon>\n </slot>\n <slot class=\"tree-item__expand-icon-slot\" name=\"collapse-icon\">\n <nile-icon library=\"system\" name=${isRtl ? 'arrowleft' : 'arrowright'}></nile-icon>\n </slot>\n </div>\n\n ${when(\n this.selectable,\n () =>\n html`\n <nile-checkbox\n part=\"checkbox\"\n exportparts=\"\n base:checkbox__base,\n control:checkbox__control,\n control--checked:checkbox__control--checked,\n control--indeterminate:checkbox__control--indeterminate,\n checked-icon:checkbox__checked-icon,\n indeterminate-icon:checkbox__indeterminate-icon,\n label:checkbox__label\n \"\n class=\"tree-item__checkbox\"\n ?disabled=\"${this.disabled}\"\n ?checked=\"${live(this.selected)}\"\n ?indeterminate=\"${this.indeterminate}\"\n tabindex=\"-1\"\n ></nile-checkbox>\n `\n )}\n\n <slot class=\"tree-item__label\" part=\"label\"></slot>\n </div>\n\n <slot\n name=\"children\"\n class=\"tree-item__children\"\n part=\"children\"\n role=\"group\"\n @slotchange=\"${this.handleChildrenSlotChange}\"\n ></slot>\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('tree-item.expand', {\n keyframes: [\n { height: '0', opacity: '0', overflow: 'hidden' },\n { height: 'auto', opacity: '1', overflow: 'hidden' }\n ],\n options: { duration: 250, easing: 'cubic-bezier(0.4, 0.0, 0.2, 1)' }\n});\n\nsetDefaultAnimation('tree-item.collapse', {\n keyframes: [\n { height: 'auto', opacity: '1', overflow: 'hidden' },\n { height: '0', opacity: '0', overflow: 'hidden' }\n ],\n options: { duration: 200, easing: 'cubic-bezier(0.4, 0.0, 0.2, 1)' }\n});\n\n\nexport default NileTreeItem;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tree-item': NileTreeItem;\n }\n}\n"]}