@leavittsoftware/web 1.0.0

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 (294) hide show
  1. package/leavitt/api-service/HttpError.d.ts +10 -0
  2. package/leavitt/api-service/HttpError.js +2 -0
  3. package/leavitt/api-service/HttpError.js.map +1 -0
  4. package/leavitt/api-service/api-service.d.ts +27 -0
  5. package/leavitt/api-service/api-service.js +332 -0
  6. package/leavitt/api-service/api-service.js.map +1 -0
  7. package/leavitt/api-service/api2-service.d.ts +338 -0
  8. package/leavitt/api-service/api2-service.js +17 -0
  9. package/leavitt/api-service/api2-service.js.map +1 -0
  10. package/leavitt/api-service/authenticated-token-provider.d.ts +5 -0
  11. package/leavitt/api-service/authenticated-token-provider.js +7 -0
  12. package/leavitt/api-service/authenticated-token-provider.js.map +1 -0
  13. package/leavitt/api-service/bearer-token-provider.d.ts +4 -0
  14. package/leavitt/api-service/bearer-token-provider.js +2 -0
  15. package/leavitt/api-service/bearer-token-provider.js.map +1 -0
  16. package/leavitt/api-service/mapi-service.d.ts +338 -0
  17. package/leavitt/api-service/mapi-service.js +17 -0
  18. package/leavitt/api-service/mapi-service.js.map +1 -0
  19. package/leavitt/api-service/no-authentication-token-provider.d.ts +5 -0
  20. package/leavitt/api-service/no-authentication-token-provider.js +6 -0
  21. package/leavitt/api-service/no-authentication-token-provider.js.map +1 -0
  22. package/leavitt/api-service/odata-dto.d.ts +6 -0
  23. package/leavitt/api-service/odata-dto.js +7 -0
  24. package/leavitt/api-service/odata-dto.js.map +1 -0
  25. package/leavitt/api-service/odata-model-info.d.ts +5 -0
  26. package/leavitt/api-service/odata-model-info.js +7 -0
  27. package/leavitt/api-service/odata-model-info.js.map +1 -0
  28. package/leavitt/api-service/odata-response.d.ts +15 -0
  29. package/leavitt/api-service/odata-response.js +50 -0
  30. package/leavitt/api-service/odata-response.js.map +1 -0
  31. package/leavitt/api-service/status-codes.d.ts +2 -0
  32. package/leavitt/api-service/status-codes.js +44 -0
  33. package/leavitt/api-service/status-codes.js.map +1 -0
  34. package/leavitt/company-select/company-select.d.ts +50 -0
  35. package/leavitt/company-select/company-select.js +157 -0
  36. package/leavitt/company-select/company-select.js.map +1 -0
  37. package/leavitt/person-company-select/person-company-select.d.ts +41 -0
  38. package/leavitt/person-company-select/person-company-select.js +180 -0
  39. package/leavitt/person-company-select/person-company-select.js.map +1 -0
  40. package/leavitt/person-group-select/people-group-icons.d.ts +5 -0
  41. package/leavitt/person-group-select/people-group-icons.js +66 -0
  42. package/leavitt/person-group-select/people-group-icons.js.map +1 -0
  43. package/leavitt/person-group-select/person-group-select.d.ts +41 -0
  44. package/leavitt/person-group-select/person-group-select.js +186 -0
  45. package/leavitt/person-group-select/person-group-select.js.map +1 -0
  46. package/leavitt/person-select/person-select.d.ts +33 -0
  47. package/leavitt/person-select/person-select.js +128 -0
  48. package/leavitt/person-select/person-select.js.map +1 -0
  49. package/leavitt/profile-picture/profile-picture-menu.d.ts +44 -0
  50. package/leavitt/profile-picture/profile-picture-menu.js +197 -0
  51. package/leavitt/profile-picture/profile-picture-menu.js.map +1 -0
  52. package/leavitt/profile-picture/profile-picture.d.ts +39 -0
  53. package/leavitt/profile-picture/profile-picture.js +151 -0
  54. package/leavitt/profile-picture/profile-picture.js.map +1 -0
  55. package/leavitt/user-feedback/user-feedback.d.ts +357 -0
  56. package/leavitt/user-feedback/user-feedback.js +207 -0
  57. package/leavitt/user-feedback/user-feedback.js.map +1 -0
  58. package/leavitt/user-manager/LssJwtToken.d.ts +21 -0
  59. package/leavitt/user-manager/LssJwtToken.js +2 -0
  60. package/leavitt/user-manager/LssJwtToken.js.map +1 -0
  61. package/leavitt/user-manager/user-manager-events.d.ts +5 -0
  62. package/leavitt/user-manager/user-manager-events.js +7 -0
  63. package/leavitt/user-manager/user-manager-events.js.map +1 -0
  64. package/leavitt/user-manager/user-manager.d.ts +37 -0
  65. package/leavitt/user-manager/user-manager.js +364 -0
  66. package/leavitt/user-manager/user-manager.js.map +1 -0
  67. package/package.json +36 -0
  68. package/titanium/access-denied-page/access-denied-page.d.ts +16 -0
  69. package/titanium/access-denied-page/access-denied-page.js +360 -0
  70. package/titanium/access-denied-page/access-denied-page.js.map +1 -0
  71. package/titanium/address-input/Address.js.map +1 -0
  72. package/titanium/address-input/address-input.d.ts +29 -0
  73. package/titanium/address-input/address-input.js +77 -0
  74. package/titanium/address-input/address-input.js.map +1 -0
  75. package/titanium/address-input/google-address-input.d.ts +30 -0
  76. package/titanium/address-input/google-address-input.js +202 -0
  77. package/titanium/address-input/google-address-input.js.map +1 -0
  78. package/titanium/address-input/manual-address-dialog.d.ts +30 -0
  79. package/titanium/address-input/manual-address-dialog.js +250 -0
  80. package/titanium/address-input/manual-address-dialog.js.map +1 -0
  81. package/titanium/address-input/types/address-input-address.d.ts +17 -0
  82. package/titanium/address-input/types/address-input-address.js +2 -0
  83. package/titanium/address-input/types/address-input-address.js.map +1 -0
  84. package/titanium/address-input/types/address.js.map +1 -0
  85. package/titanium/address-input/types/autocomplete-prediction-suggestion.js.map +1 -0
  86. package/titanium/address-input/utils/address-to-string.d.ts +3 -0
  87. package/titanium/address-input/utils/address-to-string.js +13 -0
  88. package/titanium/address-input/utils/address-to-string.js.map +1 -0
  89. package/titanium/address-input/utils/place-result-to-address.d.ts +4 -0
  90. package/titanium/address-input/utils/place-result-to-address.js +33 -0
  91. package/titanium/address-input/utils/place-result-to-address.js.map +1 -0
  92. package/titanium/address-input/utils/validate-street.d.ts +2 -0
  93. package/titanium/address-input/utils/validate-street.js +8 -0
  94. package/titanium/address-input/utils/validate-street.js.map +1 -0
  95. package/titanium/card/card.d.ts +23 -0
  96. package/titanium/card/card.js +160 -0
  97. package/titanium/card/card.js.map +1 -0
  98. package/titanium/chip-multi-select/chip-multi-select.d.ts +55 -0
  99. package/titanium/chip-multi-select/chip-multi-select.js +119 -0
  100. package/titanium/chip-multi-select/chip-multi-select.js.map +1 -0
  101. package/titanium/data-table/data-table-header.d.ts +67 -0
  102. package/titanium/data-table/data-table-header.js +207 -0
  103. package/titanium/data-table/data-table-header.js.map +1 -0
  104. package/titanium/data-table/data-table-item.d.ts +100 -0
  105. package/titanium/data-table/data-table-item.js +511 -0
  106. package/titanium/data-table/data-table-item.js.map +1 -0
  107. package/titanium/data-table/data-table.d.ts +146 -0
  108. package/titanium/data-table/data-table.js +605 -0
  109. package/titanium/data-table/data-table.js.map +1 -0
  110. package/titanium/data-table/filter-controller.d.ts +23 -0
  111. package/titanium/data-table/filter-controller.js +119 -0
  112. package/titanium/data-table/filter-controller.js.map +1 -0
  113. package/titanium/data-table/filter.d.ts +8 -0
  114. package/titanium/data-table/filter.js +11 -0
  115. package/titanium/data-table/filter.js.map +1 -0
  116. package/titanium/data-table/page-control.d.ts +54 -0
  117. package/titanium/data-table/page-control.js +196 -0
  118. package/titanium/data-table/page-control.js.map +1 -0
  119. package/titanium/date-range-selector/date-range-change-event.d.ts +8 -0
  120. package/titanium/date-range-selector/date-range-change-event.js +10 -0
  121. package/titanium/date-range-selector/date-range-change-event.js.map +1 -0
  122. package/titanium/date-range-selector/date-range-selector.d.ts +65 -0
  123. package/titanium/date-range-selector/date-range-selector.js +423 -0
  124. package/titanium/date-range-selector/date-range-selector.js.map +1 -0
  125. package/titanium/date-range-selector/range-label.d.ts +4 -0
  126. package/titanium/date-range-selector/range-label.js +25 -0
  127. package/titanium/date-range-selector/range-label.js.map +1 -0
  128. package/titanium/drawer/drawer.d.ts +39 -0
  129. package/titanium/drawer/drawer.js +233 -0
  130. package/titanium/drawer/drawer.js.map +1 -0
  131. package/titanium/duration-input/duration-input.d.ts +26 -0
  132. package/titanium/duration-input/duration-input.js +86 -0
  133. package/titanium/duration-input/duration-input.js.map +1 -0
  134. package/titanium/duration-input/human-interval.d.ts +19 -0
  135. package/titanium/duration-input/human-interval.js +74 -0
  136. package/titanium/duration-input/human-interval.js.map +1 -0
  137. package/titanium/error-page/error-page.d.ts +16 -0
  138. package/titanium/error-page/error-page.js +96 -0
  139. package/titanium/error-page/error-page.js.map +1 -0
  140. package/titanium/event-bus/event-bus.d.ts +10 -0
  141. package/titanium/event-bus/event-bus.js +52 -0
  142. package/titanium/event-bus/event-bus.js.map +1 -0
  143. package/titanium/extendable-outlined-text-field/extendable-outlined-text-field.d.ts +160 -0
  144. package/titanium/extendable-outlined-text-field/extendable-outlined-text-field.js +295 -0
  145. package/titanium/extendable-outlined-text-field/extendable-outlined-text-field.js.map +1 -0
  146. package/titanium/extendable-outlined-text-field/extensible-outlined-text-field.d.ts +45 -0
  147. package/titanium/extendable-outlined-text-field/extensible-outlined-text-field.js.map +1 -0
  148. package/titanium/full-page-loading-indicator/full-page-loading-indicator.d.ts +19 -0
  149. package/titanium/full-page-loading-indicator/full-page-loading-indicator.js +170 -0
  150. package/titanium/full-page-loading-indicator/full-page-loading-indicator.js.map +1 -0
  151. package/titanium/hacks/dialog-overflow-hacks.d.ts +4 -0
  152. package/titanium/hacks/dialog-overflow-hacks.js +21 -0
  153. package/titanium/hacks/dialog-overflow-hacks.js.map +1 -0
  154. package/titanium/header/header.d.ts +39 -0
  155. package/titanium/header/header.js +148 -0
  156. package/titanium/header/header.js.map +1 -0
  157. package/titanium/helpers/csv-download.d.ts +3 -0
  158. package/titanium/helpers/csv-download.js +78 -0
  159. package/titanium/helpers/csv-download.js.map +1 -0
  160. package/titanium/helpers/debouncer.d.ts +13 -0
  161. package/titanium/helpers/debouncer.js +33 -0
  162. package/titanium/helpers/debouncer.js.map +1 -0
  163. package/titanium/helpers/delay.d.ts +2 -0
  164. package/titanium/helpers/delay.js +6 -0
  165. package/titanium/helpers/delay.js.map +1 -0
  166. package/titanium/helpers/dev-detection.d.ts +3 -0
  167. package/titanium/helpers/dev-detection.js +12 -0
  168. package/titanium/helpers/dev-detection.js.map +1 -0
  169. package/titanium/helpers/helpers.d.ts +14 -0
  170. package/titanium/helpers/helpers.js +14 -0
  171. package/titanium/helpers/helpers.js.map +1 -0
  172. package/titanium/helpers/join.d.ts +2 -0
  173. package/titanium/helpers/join.js +5 -0
  174. package/titanium/helpers/join.js.map +1 -0
  175. package/titanium/helpers/leavitt-cdn.d.ts +5 -0
  176. package/titanium/helpers/leavitt-cdn.js +38 -0
  177. package/titanium/helpers/leavitt-cdn.js.map +1 -0
  178. package/titanium/helpers/load-while.d.ts +343 -0
  179. package/titanium/helpers/load-while.js +27 -0
  180. package/titanium/helpers/load-while.js.map +1 -0
  181. package/titanium/helpers/media-query.d.ts +2 -0
  182. package/titanium/helpers/media-query.js +6 -0
  183. package/titanium/helpers/media-query.js.map +1 -0
  184. package/titanium/helpers/middle-ellipsis.d.ts +2 -0
  185. package/titanium/helpers/middle-ellipsis.js +7 -0
  186. package/titanium/helpers/middle-ellipsis.js.map +1 -0
  187. package/titanium/helpers/not-null-or-undefined.d.ts +2 -0
  188. package/titanium/helpers/not-null-or-undefined.js +4 -0
  189. package/titanium/helpers/not-null-or-undefined.js.map +1 -0
  190. package/titanium/helpers/not-null.d.ts +2 -0
  191. package/titanium/helpers/not-null.js +4 -0
  192. package/titanium/helpers/not-null.js.map +1 -0
  193. package/titanium/helpers/not-undefined.d.ts +2 -0
  194. package/titanium/helpers/not-undefined.js +4 -0
  195. package/titanium/helpers/not-undefined.js.map +1 -0
  196. package/titanium/helpers/odata-helpers.d.ts +2 -0
  197. package/titanium/helpers/odata-helpers.js +2 -0
  198. package/titanium/helpers/odata-helpers.js.map +1 -0
  199. package/titanium/helpers/search-token.d.ts +2 -0
  200. package/titanium/helpers/search-token.js +17 -0
  201. package/titanium/helpers/search-token.js.map +1 -0
  202. package/titanium/icon-picker/icon-picker.d.ts +23 -0
  203. package/titanium/icon-picker/icon-picker.js +75 -0
  204. package/titanium/icon-picker/icon-picker.js.map +1 -0
  205. package/titanium/icon-picker/material-symbols.d.ts +3 -0
  206. package/titanium/icon-picker/material-symbols.js +3297 -0
  207. package/titanium/icon-picker/material-symbols.js.map +1 -0
  208. package/titanium/input-validator/input-validator.d.ts +20 -0
  209. package/titanium/input-validator/input-validator.js +45 -0
  210. package/titanium/input-validator/input-validator.js.map +1 -0
  211. package/titanium/search-input/search-input.d.ts +47 -0
  212. package/titanium/search-input/search-input.js +237 -0
  213. package/titanium/search-input/search-input.js.map +1 -0
  214. package/titanium/service-worker-notifier/service-worker-notifier.d.ts +9 -0
  215. package/titanium/service-worker-notifier/service-worker-notifier.js +57 -0
  216. package/titanium/service-worker-notifier/service-worker-notifier.js.map +1 -0
  217. package/titanium/show-hide/show-hide.d.ts +36 -0
  218. package/titanium/show-hide/show-hide.js +144 -0
  219. package/titanium/show-hide/show-hide.js.map +1 -0
  220. package/titanium/single-select-base/single-select-base.d.ts +449 -0
  221. package/titanium/single-select-base/single-select-base.js +411 -0
  222. package/titanium/single-select-base/single-select-base.js.map +1 -0
  223. package/titanium/smart-attachment-input/crop-and-save-image-dialog.d.ts +370 -0
  224. package/titanium/smart-attachment-input/crop-and-save-image-dialog.js +270 -0
  225. package/titanium/smart-attachment-input/crop-and-save-image-dialog.js.map +1 -0
  226. package/titanium/smart-attachment-input/cropper-styles.d.ts +3 -0
  227. package/titanium/smart-attachment-input/cropper-styles.js +311 -0
  228. package/titanium/smart-attachment-input/cropper-styles.js.map +1 -0
  229. package/titanium/smart-attachment-input/image-formats.d.ts +5 -0
  230. package/titanium/smart-attachment-input/image-formats.js +37 -0
  231. package/titanium/smart-attachment-input/image-formats.js.map +1 -0
  232. package/titanium/smart-attachment-input/image-preview-dialog.d.ts +21 -0
  233. package/titanium/smart-attachment-input/image-preview-dialog.js +83 -0
  234. package/titanium/smart-attachment-input/image-preview-dialog.js.map +1 -0
  235. package/titanium/smart-attachment-input/smart-attachment-input.d.ts +126 -0
  236. package/titanium/smart-attachment-input/smart-attachment-input.js +422 -0
  237. package/titanium/smart-attachment-input/smart-attachment-input.js.map +1 -0
  238. package/titanium/smart-attachment-input/type/smart-attachment.d.ts +7 -0
  239. package/titanium/smart-attachment-input/type/smart-attachment.js +2 -0
  240. package/titanium/smart-attachment-input/type/smart-attachment.js.map +1 -0
  241. package/titanium/snackbar/snackbar.d.ts +79 -0
  242. package/titanium/snackbar/snackbar.js +302 -0
  243. package/titanium/snackbar/snackbar.js.map +1 -0
  244. package/titanium/styles/a.d.ts +2 -0
  245. package/titanium/styles/a.js +18 -0
  246. package/titanium/styles/a.js.map +1 -0
  247. package/titanium/styles/data-row.d.ts +2 -0
  248. package/titanium/styles/data-row.js +52 -0
  249. package/titanium/styles/data-row.js.map +1 -0
  250. package/titanium/styles/ellipsis.d.ts +2 -0
  251. package/titanium/styles/ellipsis.js +9 -0
  252. package/titanium/styles/ellipsis.js.map +1 -0
  253. package/titanium/styles/h1.d.ts +2 -0
  254. package/titanium/styles/h1.js +17 -0
  255. package/titanium/styles/h1.js.map +1 -0
  256. package/titanium/styles/h2.d.ts +2 -0
  257. package/titanium/styles/h2.js +17 -0
  258. package/titanium/styles/h2.js.map +1 -0
  259. package/titanium/styles/h3.d.ts +2 -0
  260. package/titanium/styles/h3.js +17 -0
  261. package/titanium/styles/h3.js.map +1 -0
  262. package/titanium/styles/h4.d.ts +2 -0
  263. package/titanium/styles/h4.js +17 -0
  264. package/titanium/styles/h4.js.map +1 -0
  265. package/titanium/styles/h5.d.ts +2 -0
  266. package/titanium/styles/h5.js +19 -0
  267. package/titanium/styles/h5.js.map +1 -0
  268. package/titanium/styles/p.d.ts +2 -0
  269. package/titanium/styles/p.js +17 -0
  270. package/titanium/styles/p.js.map +1 -0
  271. package/titanium/styles/styles.d.ts +17 -0
  272. package/titanium/styles/styles.js +17 -0
  273. package/titanium/styles/styles.js.map +1 -0
  274. package/titanium/toolbar/toolbar.d.ts +34 -0
  275. package/titanium/toolbar/toolbar.js +104 -0
  276. package/titanium/toolbar/toolbar.js.map +1 -0
  277. package/titanium/types/any-function.d.ts +5 -0
  278. package/titanium/types/any-function.js +2 -0
  279. package/titanium/types/any-function.js.map +1 -0
  280. package/titanium/types/dom-event.d.ts +4 -0
  281. package/titanium/types/dom-event.js +2 -0
  282. package/titanium/types/dom-event.js.map +1 -0
  283. package/titanium/types/identifier-interface.d.ts +4 -0
  284. package/titanium/types/identifier-interface.js +2 -0
  285. package/titanium/types/identifier-interface.js.map +1 -0
  286. package/titanium/types/pending-state-event.d.ts +7 -0
  287. package/titanium/types/pending-state-event.js +7 -0
  288. package/titanium/types/pending-state-event.js.map +1 -0
  289. package/titanium/types/string-map.d.ts +7 -0
  290. package/titanium/types/string-map.js +5 -0
  291. package/titanium/types/string-map.js.map +1 -0
  292. package/titanium/youtube-input/youtube-input.d.ts +17 -0
  293. package/titanium/youtube-input/youtube-input.js +52 -0
  294. package/titanium/youtube-input/youtube-input.js.map +1 -0
@@ -0,0 +1,100 @@
1
+ import { LitElement, PropertyValues } from 'lit';
2
+ import { TitaniumDataTable } from './data-table';
3
+ import '@material/web/checkbox/checkbox';
4
+ import '@material/web/icon/icon';
5
+ /**
6
+ * A data table element to organize row data and handle row selection.
7
+ *
8
+ * row-item positioning attributes:
9
+ * - right
10
+ * - desktop
11
+ * - large
12
+ * - center
13
+ * - width - ex. "140px"
14
+ *
15
+ * @element titanium-data-table-item
16
+ *
17
+ * @fires titanium-data-table-item-navigate - Fired on double click of a row. detail: unknown(this.item)
18
+ * @fires titanium-data-table-item-selected-changed - Fired when item is selected. detail: { isSelected: boolean, item: unknown }
19
+ * @fires titanium-data-table-item-drop - Fired when item is dropped after a drag
20
+ *
21
+ * @slot default - Main slot that should contain a list of row-item elements
22
+ * @slot item-footer - Optional footer content below the row with the row-items
23
+ *
24
+ * @cssprop {Color} [--md-sys-color-secondary-container] - Row selected color
25
+ * @cssprop {Color} [--md-sys-color-on-surface] - Row hover color
26
+ * @cssprop {Color} [--md-sys-color-outline-variant] - Bottom division line
27
+ * @cssprop [--titanium-data-table-font-family=Roboto, Noto, sans-serif] - Set the font family of the data table item
28
+ */
29
+ export declare class TitaniumDataTableItem extends LitElement {
30
+ #private;
31
+ /**
32
+ * The backing object that is displayed in this row. Sent in navigate and selected events.
33
+ */
34
+ item: unknown;
35
+ /**
36
+ * True when row is selected.
37
+ */
38
+ selected: boolean;
39
+ /**
40
+ * Disables ability to select this row.
41
+ */
42
+ disableSelect: boolean;
43
+ /**
44
+ * Sets if view port is small
45
+ */
46
+ narrow: boolean;
47
+ /**
48
+ * Set to true to make item draggable. When items are dropped, the items in the list's array are sorted accordingly.
49
+ * In order to reflect those updates out to the DOM, you will need to call requestUpdate on the items array when
50
+ * items are dropped. ex.
51
+ *
52
+ * <titanium-data-table @titanium-data-table-items-reorder=${() => this.requestUpdate('items')} ... >
53
+ *
54
+ */
55
+ enableDrag: boolean;
56
+ protected nudgeDown: boolean;
57
+ protected nudgeUp: boolean;
58
+ protected dragged: boolean;
59
+ protected dragging: boolean;
60
+ protected nudgeHeight: number;
61
+ protected hoverIndex: number | null;
62
+ protected originIndex: number | null;
63
+ itemContent: HTMLDivElement;
64
+ protected mouseEvent: (e: any) => void;
65
+ protected touchEvent: (e: any) => void;
66
+ updated(changed: PropertyValues<this>): Promise<void>;
67
+ firstUpdated(): void;
68
+ /**
69
+ * @ignore
70
+ */
71
+ updateDragProps(dragging: boolean, originIndex: number | null, hoverIndex: number | null, originHeight: number): void;
72
+ /**
73
+ * toggles item's checkbox which triggers this.selected to toggle as well
74
+ */
75
+ toggleSelected(): void;
76
+ /**
77
+ * if not already checked, triggers click on checkbox which triggers this.selected to be set as well
78
+ */
79
+ select(): void;
80
+ /**
81
+ * if already checked, triggers click on checkbox which triggers this.selected to be set to false as well
82
+ */
83
+ deselect(): void;
84
+ protected get dataTable(): TitaniumDataTable;
85
+ protected get items(): TitaniumDataTableItem[];
86
+ protected get itemsContainer(): HTMLDivElement;
87
+ static styles: import("lit").CSSResult;
88
+ render(): import("lit-html").TemplateResult<1>;
89
+ }
90
+ /**
91
+ * @class
92
+ * @ignore
93
+ */
94
+ export declare class DataTableItemDropEvent extends Event {
95
+ static eventType: string;
96
+ hoverIndex: number;
97
+ originIndex: number;
98
+ constructor(originIndex: number, hoverIndex: number);
99
+ }
100
+ //# sourceMappingURL=data-table-item.d.ts.map
@@ -0,0 +1,511 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { property, customElement, query, state } from 'lit/decorators.js';
4
+ import '@material/web/checkbox/checkbox';
5
+ import '@material/web/icon/icon';
6
+ /**
7
+ * A data table element to organize row data and handle row selection.
8
+ *
9
+ * row-item positioning attributes:
10
+ * - right
11
+ * - desktop
12
+ * - large
13
+ * - center
14
+ * - width - ex. "140px"
15
+ *
16
+ * @element titanium-data-table-item
17
+ *
18
+ * @fires titanium-data-table-item-navigate - Fired on double click of a row. detail: unknown(this.item)
19
+ * @fires titanium-data-table-item-selected-changed - Fired when item is selected. detail: { isSelected: boolean, item: unknown }
20
+ * @fires titanium-data-table-item-drop - Fired when item is dropped after a drag
21
+ *
22
+ * @slot default - Main slot that should contain a list of row-item elements
23
+ * @slot item-footer - Optional footer content below the row with the row-items
24
+ *
25
+ * @cssprop {Color} [--md-sys-color-secondary-container] - Row selected color
26
+ * @cssprop {Color} [--md-sys-color-on-surface] - Row hover color
27
+ * @cssprop {Color} [--md-sys-color-outline-variant] - Bottom division line
28
+ * @cssprop [--titanium-data-table-font-family=Roboto, Noto, sans-serif] - Set the font family of the data table item
29
+ */
30
+ let TitaniumDataTableItem = class TitaniumDataTableItem extends LitElement {
31
+ constructor() {
32
+ super(...arguments);
33
+ /**
34
+ * True when row is selected.
35
+ */
36
+ this.selected = false;
37
+ /**
38
+ * Sets if view port is small
39
+ */
40
+ this.narrow = false;
41
+ /**
42
+ * Set to true to make item draggable. When items are dropped, the items in the list's array are sorted accordingly.
43
+ * In order to reflect those updates out to the DOM, you will need to call requestUpdate on the items array when
44
+ * items are dropped. ex.
45
+ *
46
+ * <titanium-data-table @titanium-data-table-items-reorder=${() => this.requestUpdate('items')} ... >
47
+ *
48
+ */
49
+ this.enableDrag = false;
50
+ this.hoverIndex = null;
51
+ this.originIndex = null;
52
+ this.mouseEvent = (e) => this.#startItemDrag(e, 'mouse');
53
+ this.touchEvent = (e) => {
54
+ this.#startItemDrag(e, 'touch');
55
+ };
56
+ }
57
+ async updated(changed) {
58
+ if (changed.has('enableDrag')) {
59
+ if (this.enableDrag) {
60
+ this.addEventListener('mousedown', this.mouseEvent);
61
+ this.addEventListener('touchstart', this.touchEvent);
62
+ }
63
+ else {
64
+ this.removeEventListener('mousedown', this.mouseEvent);
65
+ this.removeEventListener('touchstart', this.touchEvent);
66
+ }
67
+ }
68
+ }
69
+ firstUpdated() {
70
+ const elements = this.shadowRoot?.querySelector('slot')?.assignedElements();
71
+ elements?.forEach((e) => {
72
+ const element = e;
73
+ const width = element.getAttribute('width');
74
+ if (width) {
75
+ element.style.width = width;
76
+ }
77
+ });
78
+ this.addEventListener('dblclick', () => {
79
+ //Force the transition to end on the double-click
80
+ /**
81
+ * @internal
82
+ */
83
+ this.dispatchEvent(new Event('transitionend'));
84
+ this.dispatchEvent(new CustomEvent('titanium-data-table-item-navigate', { detail: this.item }));
85
+ });
86
+ }
87
+ /**
88
+ * @ignore
89
+ */
90
+ updateDragProps(dragging, originIndex, hoverIndex, originHeight) {
91
+ const myIndex = this.items.indexOf(this);
92
+ this.nudgeDown = originIndex !== null && hoverIndex !== null && myIndex < originIndex && myIndex >= hoverIndex;
93
+ this.nudgeUp = originIndex !== null && hoverIndex !== null && myIndex > originIndex && myIndex <= hoverIndex;
94
+ this.dragged = originIndex === myIndex;
95
+ this.dragging = dragging;
96
+ this.nudgeHeight = originHeight;
97
+ }
98
+ /**
99
+ * toggles item's checkbox which triggers this.selected to toggle as well
100
+ */
101
+ toggleSelected() {
102
+ this.selected ? this.deselect() : this.select();
103
+ }
104
+ /**
105
+ * if not already checked, triggers click on checkbox which triggers this.selected to be set as well
106
+ */
107
+ select() {
108
+ if (!this.selected) {
109
+ this.#setSelected(true);
110
+ }
111
+ }
112
+ /**
113
+ * if already checked, triggers click on checkbox which triggers this.selected to be set to false as well
114
+ */
115
+ deselect() {
116
+ if (this.selected) {
117
+ this.#setSelected(false);
118
+ }
119
+ }
120
+ #setSelected(value) {
121
+ this.selected = value;
122
+ this.dispatchEvent(new Event('titanium-data-table-item-selected-changed', { bubbles: true, composed: true }));
123
+ }
124
+ get dataTable() {
125
+ return this.parentElement;
126
+ }
127
+ get items() {
128
+ return this.dataTable.itemsSlot?.assignedElements() ?? [];
129
+ }
130
+ get itemsContainer() {
131
+ return this.dataTable.itemsContainer;
132
+ }
133
+ /**
134
+ * Return index of item over
135
+ */
136
+ #getIndexOver(itemEndPositions, hoverPosition) {
137
+ for (let index = 0; index < itemEndPositions.length; index++) {
138
+ const endPosition = itemEndPositions[index];
139
+ if (hoverPosition <= endPosition) {
140
+ return index;
141
+ }
142
+ }
143
+ return itemEndPositions.length - 1;
144
+ }
145
+ /**
146
+ * Given the origin and hover index determine items that will be affected
147
+ */
148
+ #determineRange(originIndex, hoverIndex) {
149
+ //PREF: ONLY UPDATE ITEMS BETWEEN ORIGIN AND HOVER (+1 and -1)
150
+ const high = Math.max(hoverIndex ?? 0, originIndex ?? 0) + 1;
151
+ let low = Math.min(hoverIndex ?? 0, originIndex ?? 0) - 1;
152
+ low = low < 0 ? 0 : low;
153
+ return [high, low];
154
+ }
155
+ #notifySiblingsDrag(originIndex, hoverIndex, dragging, itemHeight) {
156
+ const range = this.#determineRange(originIndex, hoverIndex);
157
+ for (let index = range[1]; index <= range[0]; index++) {
158
+ const o = this.items?.[index];
159
+ o?.updateDragProps(dragging, this.originIndex, this.hoverIndex, itemHeight);
160
+ }
161
+ }
162
+ #notifySiblingDragStop(originIndex, hoverIndex) {
163
+ const range = this.#determineRange(originIndex, hoverIndex);
164
+ for (let index = range[1]; index <= range[0]; index++) {
165
+ const o = this.items?.[index];
166
+ o?.updateDragProps(false, null, null, 0);
167
+ }
168
+ }
169
+ #startItemDrag(event, type) {
170
+ //only allow primary mouse for drag
171
+ if (type === 'mouse' && event.which !== 1) {
172
+ return;
173
+ }
174
+ //Prevent native scrolling
175
+ event.preventDefault();
176
+ this.dragging = true;
177
+ this.originIndex = this.items.indexOf(this);
178
+ const moveEvent = type === 'touch' ? 'touchmove' : 'mousemove';
179
+ const upEvent = type === 'touch' ? 'touchend' : 'mouseup';
180
+ const containerY = this.itemsContainer.getBoundingClientRect().top + window.scrollY;
181
+ const startY = event.pageY ?? event.touches[0].pageY;
182
+ const itemHeight = this.getBoundingClientRect().height - 1;
183
+ //Cache the end positions of each item for variable height list items
184
+ let cumulativeSum = 0;
185
+ const itemEndPositions = this.items.map((o) => {
186
+ cumulativeSum = cumulativeSum + (o.getBoundingClientRect().height - 1);
187
+ return cumulativeSum;
188
+ });
189
+ const moveItemHandler = (event) => {
190
+ // Translate and keep track of which index we are hovering over.
191
+ const pageY = event.pageY ?? event.touches[0].pageY;
192
+ const clientY = event.clientY ?? event.touches[0].clientY;
193
+ const itemAbsoluteTop = pageY - containerY;
194
+ const transformY = pageY - startY;
195
+ this.style.transform = `translateY(${transformY}px)`;
196
+ this.hoverIndex = this.#getIndexOver(itemEndPositions, itemAbsoluteTop);
197
+ this.#notifySiblingsDrag(this.originIndex, this.hoverIndex, this.dragging, itemHeight);
198
+ //Scroll on when item approaches bottom/top of viewport
199
+ if (clientY < 5) {
200
+ scrollBy({
201
+ top: -(window.innerHeight / 5),
202
+ behavior: 'smooth',
203
+ });
204
+ }
205
+ else if (clientY < 25) {
206
+ scrollBy({
207
+ top: -(window.innerHeight / 10),
208
+ behavior: 'smooth',
209
+ });
210
+ }
211
+ if (window.innerHeight - clientY < 5) {
212
+ scrollBy({
213
+ top: window.innerHeight / 5,
214
+ behavior: 'smooth',
215
+ });
216
+ }
217
+ else if (window.innerHeight - clientY < 25) {
218
+ scrollBy({
219
+ top: window.innerHeight / 10,
220
+ behavior: 'smooth',
221
+ });
222
+ }
223
+ };
224
+ const cancelDragHandler = () => {
225
+ document.removeEventListener(moveEvent, moveItemHandler);
226
+ this.removeEventListener(upEvent, dragCompleteHandler);
227
+ this.dragging = false;
228
+ const onTransitionEnd = () => {
229
+ this.#notifySiblingDragStop(this.originIndex, this.hoverIndex);
230
+ this.originIndex = null;
231
+ this.hoverIndex = null;
232
+ this.style.transform = '';
233
+ this.style.transition = '';
234
+ this.removeEventListener('transitionend', onTransitionEnd);
235
+ };
236
+ this.addEventListener('transitionend', onTransitionEnd);
237
+ this.style.transition = 'transform 0.1s ease-out';
238
+ this.style.transform = 'translate3d(0, 0, 0)';
239
+ document.removeEventListener('mouseout', cancelDragHandler);
240
+ };
241
+ const dragCompleteHandler = () => {
242
+ this.dragging = false;
243
+ this.items.forEach((o) => (o.dragging = false));
244
+ document.removeEventListener(moveEvent, moveItemHandler);
245
+ document.removeEventListener(upEvent, dragCompleteHandler);
246
+ if (type === 'mouse') {
247
+ document.removeEventListener('mouseout', cancelDragHandler);
248
+ }
249
+ // Perform the swap after the item translates to its resting spot.
250
+ const onTransitionEnd = () => {
251
+ if (this.originIndex !== null && this.hoverIndex !== null) {
252
+ /**
253
+ * @ignore
254
+ */
255
+ this.dispatchEvent(new DataTableItemDropEvent(this.originIndex, this.hoverIndex));
256
+ }
257
+ this.#notifySiblingDragStop(this.originIndex, this.hoverIndex);
258
+ this.originIndex = null;
259
+ this.hoverIndex = null;
260
+ this.style.transform = '';
261
+ this.style.transition = '';
262
+ this.removeEventListener('transitionend', onTransitionEnd);
263
+ };
264
+ this.addEventListener('transitionend', onTransitionEnd);
265
+ //Count the nudged items heights to know final transform amount
266
+ const finalTransformYUp = this.items
267
+ .filter((o) => o.nudgeUp)
268
+ .map((o) => (o.getBoundingClientRect().height > 0 ? o.getBoundingClientRect().height - 1 : 0))
269
+ .reduce((a, b) => a + b, 0);
270
+ const finalTransformYDown = this.items
271
+ .filter((o) => o.nudgeDown)
272
+ .map((o) => -o.getBoundingClientRect().height - 1)
273
+ .reduce((a, b) => a + b, 0);
274
+ const finalTransformY = finalTransformYUp !== 0 ? finalTransformYUp : finalTransformYDown;
275
+ // Translate the item to its resting spot.
276
+ this.style.transition = 'transform 0.1s ease-out';
277
+ this.style.transform = `translate3d(0, ${finalTransformY}px, 0)`;
278
+ };
279
+ if (type === 'mouse') {
280
+ window.addEventListener('mouseout', cancelDragHandler);
281
+ }
282
+ document.addEventListener(upEvent, dragCompleteHandler);
283
+ document.addEventListener(moveEvent, moveItemHandler);
284
+ moveItemHandler(event);
285
+ }
286
+ static { this.styles = css `
287
+ :host {
288
+ display: block;
289
+
290
+ -webkit-touch-callout: none;
291
+ user-select: none;
292
+ text-decoration: none;
293
+
294
+ font-family: var(--titanium-data-table-font-family, Roboto, Noto, sans-serif);
295
+ -webkit-font-smoothing: antialiased;
296
+
297
+ transition: none;
298
+ margin-top: -1px;
299
+ box-sizing: border-box;
300
+ border-bottom: 1px var(--md-sys-color-outline-variant) solid;
301
+ border-top: 1px var(--md-sys-color-outline-variant) solid;
302
+ position: relative;
303
+ }
304
+
305
+ :host(:not([disable-select])[selected]) {
306
+ background-color: var(--md-sys-color-secondary-container);
307
+ }
308
+
309
+ :host(:not([disable-select]):not([selected]):hover) {
310
+ background-color: rgb(from var(--md-sys-color-on-surface, #1d1b20) r g b / 0.08);
311
+ }
312
+
313
+ :host([enable-dragging]) {
314
+ cursor: grab;
315
+ }
316
+
317
+ md-icon[drag] {
318
+ display: none;
319
+ color: var(--md-sys-color-outline, #dadce0);
320
+ margin-right: -24px;
321
+ }
322
+
323
+ :host([enable-dragging]:hover) md-icon[drag] {
324
+ display: block;
325
+ }
326
+
327
+ :host([dragged]) {
328
+ box-shadow:
329
+ 0 3px 6px rgba(0, 0, 0, 0.16),
330
+ 0 3px 6px rgba(0, 0, 0, 0.23);
331
+ transition: none;
332
+ overflow: hidden;
333
+ z-index: 1 !important;
334
+ }
335
+
336
+ /* Only have transition under dragging, because we don't want nudged
337
+ * items to transition into place once dragging is complete */
338
+ :host([dragging]:not([dragged])) {
339
+ transition: transform 0.2s ease-out;
340
+ }
341
+
342
+ /* :host {
343
+ transition: transform 0.2s ease-out;
344
+ } */
345
+
346
+ :host main {
347
+ display: flex;
348
+ flex-direction: row;
349
+ align-items: center;
350
+ min-height: 48px;
351
+ }
352
+
353
+ /* Do not apply :hover style on touch devices */
354
+ @media (hover: hover) and (pointer: fine) {
355
+ :host([enable-dragging]) div[item-footer] ::slotted(*) {
356
+ pointer-events: none;
357
+ }
358
+ }
359
+
360
+ ::slotted(row-item) {
361
+ display: block;
362
+ font-size: 14px;
363
+ line-height: 18px;
364
+ font-weight: 400;
365
+ padding: 4px 8px;
366
+ margin: 0;
367
+ }
368
+
369
+ ::slotted(row-item:last-of-type) {
370
+ padding-right: 24px;
371
+ }
372
+
373
+ ::slotted(row-item:not([width])) {
374
+ -ms-flex: 3;
375
+ -webkit-flex: 3;
376
+ flex: 3;
377
+ }
378
+
379
+ ::slotted(row-item:not([width])[large]) {
380
+ -ms-flex: 5;
381
+ -webkit-flex: 5;
382
+ flex: 5;
383
+ }
384
+
385
+ ::slotted(row-item[center]) {
386
+ text-align: center;
387
+ }
388
+
389
+ ::slotted(row-item[image]) {
390
+ display: inline-flex;
391
+ align-items: center;
392
+ gap: 12px;
393
+ }
394
+
395
+ ::slotted(row-item[right]) {
396
+ text-align: right;
397
+ }
398
+
399
+ md-checkbox {
400
+ flex-shrink: 0;
401
+ align-self: center;
402
+ margin: 0 14px 0 20px;
403
+ }
404
+
405
+ :host([disable-select]) ::slotted(row-item:first-of-type) {
406
+ padding-left: 24px;
407
+ }
408
+
409
+ :host([narrow]) ::slotted(row-item[desktop]) {
410
+ display: none;
411
+ }
412
+
413
+ @media (max-width: 768px) {
414
+ :host([enable-dragging]) md-icon[drag] {
415
+ display: block;
416
+ }
417
+ }
418
+
419
+ [hidden] {
420
+ display: none;
421
+ }
422
+ `; }
423
+ render() {
424
+ return html `
425
+ <style>
426
+ :host([nudge-down]:not([dragged])) {
427
+ transform: translate3d(0, ${this.nudgeHeight}px, 0);
428
+ }
429
+
430
+ :host([nudge-up]:not([dragged])) {
431
+ transform: translate3d(0, -${this.nudgeHeight}px, 0);
432
+ }
433
+ </style>
434
+ <main part="main">
435
+ ${this.disableSelect
436
+ ? ''
437
+ : html `
438
+ <md-icon drag>drag_indicator</md-icon>
439
+ <md-checkbox
440
+ .checked=${this.selected}
441
+ @mousedown=${(e) => e.stopPropagation()}
442
+ @touchstart=${(e) => e.stopPropagation()}
443
+ @dblclick=${(e) => e.stopPropagation()}
444
+ @change=${(e) => this.#setSelected(e.target.checked)}
445
+ ></md-checkbox>
446
+ `}
447
+
448
+ <slot></slot>
449
+ </main>
450
+ <div item-footer part="item-footer-container">
451
+ <slot name="item-footer"></slot>
452
+ </div>
453
+ `;
454
+ }
455
+ };
456
+ __decorate([
457
+ property({ type: Object })
458
+ ], TitaniumDataTableItem.prototype, "item", void 0);
459
+ __decorate([
460
+ property({ reflect: true, type: Boolean })
461
+ ], TitaniumDataTableItem.prototype, "selected", void 0);
462
+ __decorate([
463
+ property({ type: Boolean, attribute: 'disable-select' })
464
+ ], TitaniumDataTableItem.prototype, "disableSelect", void 0);
465
+ __decorate([
466
+ property({ type: Boolean, reflect: true })
467
+ ], TitaniumDataTableItem.prototype, "narrow", void 0);
468
+ __decorate([
469
+ property({ type: Boolean, reflect: true, attribute: 'enable-dragging' })
470
+ ], TitaniumDataTableItem.prototype, "enableDrag", void 0);
471
+ __decorate([
472
+ property({ type: Boolean, reflect: true, attribute: 'nudge-down' })
473
+ ], TitaniumDataTableItem.prototype, "nudgeDown", void 0);
474
+ __decorate([
475
+ property({ type: Boolean, reflect: true, attribute: 'nudge-up' })
476
+ ], TitaniumDataTableItem.prototype, "nudgeUp", void 0);
477
+ __decorate([
478
+ property({ type: Boolean, reflect: true, attribute: 'dragged' })
479
+ ], TitaniumDataTableItem.prototype, "dragged", void 0);
480
+ __decorate([
481
+ property({ type: Boolean, reflect: true, attribute: 'dragging' })
482
+ ], TitaniumDataTableItem.prototype, "dragging", void 0);
483
+ __decorate([
484
+ state()
485
+ ], TitaniumDataTableItem.prototype, "nudgeHeight", void 0);
486
+ __decorate([
487
+ state()
488
+ ], TitaniumDataTableItem.prototype, "hoverIndex", void 0);
489
+ __decorate([
490
+ state()
491
+ ], TitaniumDataTableItem.prototype, "originIndex", void 0);
492
+ __decorate([
493
+ query('item-content')
494
+ ], TitaniumDataTableItem.prototype, "itemContent", void 0);
495
+ TitaniumDataTableItem = __decorate([
496
+ customElement('titanium-data-table-item')
497
+ ], TitaniumDataTableItem);
498
+ export { TitaniumDataTableItem };
499
+ /**
500
+ * @class
501
+ * @ignore
502
+ */
503
+ export class DataTableItemDropEvent extends Event {
504
+ static { this.eventType = 'titanium-data-table-item-drop'; }
505
+ constructor(originIndex, hoverIndex) {
506
+ super(DataTableItemDropEvent.eventType, { composed: true, bubbles: true });
507
+ this.hoverIndex = hoverIndex;
508
+ this.originIndex = originIndex;
509
+ }
510
+ }
511
+ //# sourceMappingURL=data-table-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-item.js","sourceRoot":"","sources":["data-table-item.ts"],"names":[],"mappings":"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"}