@covalent/core 6.3.0 → 7.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 (269) hide show
  1. package/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  2. package/dialogs/window-dialog/window-dialog.component.d.ts +1 -1
  3. package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +1 -1
  4. package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +1 -1
  5. package/dynamic-menu/dynamic-menu.component.d.ts +1 -1
  6. package/esm2022/breadcrumbs/breadcrumb/breadcrumb.component.mjs +94 -0
  7. package/esm2022/breadcrumbs/breadcrumbs.component.mjs +135 -0
  8. package/{esm2020 → esm2022}/breadcrumbs/breadcrumbs.module.mjs +5 -5
  9. package/esm2022/common/behaviors/control-value-accesor.mixin.mjs +43 -0
  10. package/esm2022/common/behaviors/disable-ripple.mixin.mjs +24 -0
  11. package/{esm2020 → esm2022}/common/behaviors/disabled.mixin.mjs +2 -2
  12. package/{esm2020 → esm2022}/common/common.module.mjs +17 -17
  13. package/esm2022/common/directives/fullscreen/fullscreen.directive.mjs +87 -0
  14. package/esm2022/common/forms/auto-trim/auto-trim.directive.mjs +37 -0
  15. package/esm2022/common/functions/convert.mjs +84 -0
  16. package/esm2022/common/functions/download.mjs +75 -0
  17. package/esm2022/common/pipes/bytes/bytes.pipe.mjs +42 -0
  18. package/esm2022/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +42 -0
  19. package/esm2022/common/pipes/digits/digits.pipe.mjs +41 -0
  20. package/{esm2020 → esm2022}/common/pipes/time-ago/time-ago.pipe.mjs +4 -4
  21. package/{esm2020 → esm2022}/common/pipes/time-difference/time-difference.pipe.mjs +4 -4
  22. package/{esm2020 → esm2022}/common/pipes/time-until/time-until.pipe.mjs +4 -4
  23. package/esm2022/common/pipes/truncate/truncate.pipe.mjs +27 -0
  24. package/esm2022/common/services/icon.service.mjs +1087 -0
  25. package/esm2022/common/services/router-path.service.mjs +30 -0
  26. package/esm2022/dialogs/alert-dialog/alert-dialog.component.mjs +26 -0
  27. package/esm2022/dialogs/confirm-dialog/confirm-dialog.component.mjs +31 -0
  28. package/esm2022/dialogs/dialog.component.mjs +60 -0
  29. package/{esm2020 → esm2022}/dialogs/dialogs.module.mjs +39 -39
  30. package/esm2022/dialogs/prompt-dialog/prompt-dialog.component.mjs +84 -0
  31. package/esm2022/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +220 -0
  32. package/esm2022/dialogs/services/dialog.service.mjs +179 -0
  33. package/esm2022/dialogs/window-dialog/window-dialog.component.mjs +40 -0
  34. package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +30 -0
  35. package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +23 -0
  36. package/esm2022/dynamic-menu/dynamic-menu.component.mjs +28 -0
  37. package/{esm2020 → esm2022}/dynamic-menu/dynamic-menu.module.mjs +19 -19
  38. package/esm2022/file/directives/file-drop.directive.mjs +145 -0
  39. package/esm2022/file/directives/file-select.directive.mjs +78 -0
  40. package/esm2022/file/file-input/file-input.component.mjs +146 -0
  41. package/esm2022/file/file-upload/file-upload.component.mjs +185 -0
  42. package/{esm2020 → esm2022}/file/file.module.mjs +21 -21
  43. package/esm2022/file/services/file.service.mjs +66 -0
  44. package/esm2022/json-formatter/json-formatter.component.mjs +222 -0
  45. package/{esm2020 → esm2022}/json-formatter/json-formatter.module.mjs +5 -5
  46. package/esm2022/layout/layout-card-over/layout-card-over.component.mjs +50 -0
  47. package/esm2022/layout/layout-footer/layout-footer.component.mjs +36 -0
  48. package/esm2022/layout/layout-manage-list/layout-manage-list.component.mjs +92 -0
  49. package/{esm2020 → esm2022}/layout/layout-manage-list/layout-manage-list.directives.mjs +10 -10
  50. package/esm2022/layout/layout-nav/layout-nav.component.mjs +76 -0
  51. package/esm2022/layout/layout-nav-list/layout-nav-list.component.mjs +154 -0
  52. package/{esm2020 → esm2022}/layout/layout-nav-list/layout-nav-list.directives.mjs +10 -10
  53. package/esm2022/layout/layout-toggle.class.mjs +96 -0
  54. package/esm2022/layout/layout.component.mjs +91 -0
  55. package/{esm2020 → esm2022}/layout/layout.directives.mjs +10 -10
  56. package/{esm2020 → esm2022}/layout/layout.module.mjs +55 -55
  57. package/esm2022/layout/navigation-drawer/navigation-drawer.component.mjs +221 -0
  58. package/esm2022/loading/directives/loading.directive.mjs +133 -0
  59. package/esm2022/loading/loading.component.mjs +193 -0
  60. package/{esm2020 → esm2022}/loading/loading.module.mjs +13 -13
  61. package/esm2022/loading/services/loading.factory.mjs +210 -0
  62. package/esm2022/loading/services/loading.service.mjs +219 -0
  63. package/{esm2020 → esm2022}/menu/menu.component.mjs +4 -4
  64. package/{esm2020 → esm2022}/menu/menu.module.mjs +5 -5
  65. package/esm2022/message/message.component.mjs +222 -0
  66. package/{esm2020 → esm2022}/message/message.module.mjs +7 -7
  67. package/esm2022/search/search-box/search-box.component.mjs +198 -0
  68. package/esm2022/search/search-input/search-input.component.mjs +214 -0
  69. package/{esm2020 → esm2022}/search/search.module.mjs +13 -13
  70. package/esm2022/side-sheet/side-sheet-container.mjs +285 -0
  71. package/esm2022/side-sheet/side-sheet-ref.mjs +30 -0
  72. package/{esm2020 → esm2022}/side-sheet/side-sheet.config.mjs +2 -5
  73. package/esm2022/side-sheet/side-sheet.content-directives.mjs +206 -0
  74. package/esm2022/side-sheet/side-sheet.mjs +236 -0
  75. package/{esm2020 → esm2022}/side-sheet/side-sheet.module.mjs +14 -14
  76. package/esm2022/user-profile/user-profile-menu/user-profile-menu.component.mjs +25 -0
  77. package/esm2022/user-profile/user-profile.component.mjs +21 -0
  78. package/{esm2020 → esm2022}/user-profile/user-profile.module.mjs +15 -15
  79. package/{fesm2015 → fesm2022}/covalent-core-breadcrumbs.mjs +28 -22
  80. package/{fesm2015 → fesm2022}/covalent-core-breadcrumbs.mjs.map +1 -1
  81. package/{fesm2020 → fesm2022}/covalent-core-common.mjs +1131 -1125
  82. package/fesm2022/covalent-core-common.mjs.map +1 -0
  83. package/{fesm2020 → fesm2022}/covalent-core-dialogs.mjs +109 -80
  84. package/{fesm2020 → fesm2022}/covalent-core-dialogs.mjs.map +1 -1
  85. package/fesm2022/covalent-core-dynamic-menu.mjs +125 -0
  86. package/{fesm2015 → fesm2022}/covalent-core-dynamic-menu.mjs.map +1 -1
  87. package/{fesm2020 → fesm2022}/covalent-core-file.mjs +148 -110
  88. package/{fesm2020 → fesm2022}/covalent-core-file.mjs.map +1 -1
  89. package/{fesm2020 → fesm2022}/covalent-core-json-formatter.mjs +26 -21
  90. package/{fesm2020 → fesm2022}/covalent-core-json-formatter.mjs.map +1 -1
  91. package/{fesm2020 → fesm2022}/covalent-core-layout.mjs +396 -271
  92. package/{fesm2015 → fesm2022}/covalent-core-layout.mjs.map +1 -1
  93. package/{fesm2020 → fesm2022}/covalent-core-loading.mjs +100 -78
  94. package/{fesm2020 → fesm2022}/covalent-core-loading.mjs.map +1 -1
  95. package/{fesm2015 → fesm2022}/covalent-core-menu.mjs +7 -7
  96. package/{fesm2015 → fesm2022}/covalent-core-menu.mjs.map +1 -1
  97. package/{fesm2020 → fesm2022}/covalent-core-message.mjs +42 -23
  98. package/{fesm2020 → fesm2022}/covalent-core-message.mjs.map +1 -1
  99. package/fesm2022/covalent-core-search.mjs +438 -0
  100. package/fesm2022/covalent-core-search.mjs.map +1 -0
  101. package/{fesm2020 → fesm2022}/covalent-core-side-sheet.mjs +124 -99
  102. package/{fesm2020 → fesm2022}/covalent-core-side-sheet.mjs.map +1 -1
  103. package/fesm2022/covalent-core-user-profile.mjs +87 -0
  104. package/fesm2022/covalent-core-user-profile.mjs.map +1 -0
  105. package/file/directives/file-drop.directive.d.ts +1 -1
  106. package/file/directives/file-select.directive.d.ts +1 -1
  107. package/file/file-input/file-input.component.d.ts +1 -1
  108. package/file/file-upload/file-upload.component.d.ts +1 -1
  109. package/json-formatter/json-formatter.component.d.ts +1 -1
  110. package/layout/layout-card-over/layout-card-over.component.d.ts +1 -1
  111. package/layout/layout-footer/layout-footer.component.d.ts +1 -1
  112. package/layout/layout-manage-list/layout-manage-list.component.d.ts +1 -1
  113. package/layout/layout-manage-list/layout-manage-list.directives.d.ts +3 -3
  114. package/layout/layout-nav/layout-nav.component.d.ts +1 -1
  115. package/layout/layout-nav-list/layout-nav-list.component.d.ts +1 -1
  116. package/layout/layout-nav-list/layout-nav-list.directives.d.ts +3 -3
  117. package/layout/layout-toggle.class.d.ts +1 -1
  118. package/layout/layout.component.d.ts +1 -1
  119. package/layout/layout.directives.d.ts +3 -3
  120. package/layout/navigation-drawer/navigation-drawer.component.d.ts +1 -1
  121. package/loading/directives/loading.directive.d.ts +1 -1
  122. package/message/message.component.d.ts +1 -1
  123. package/package.json +55 -91
  124. package/search/search-box/search-box.component.d.ts +1 -1
  125. package/search/search-input/search-input.component.d.ts +1 -1
  126. package/side-sheet/side-sheet.content-directives.d.ts +2 -2
  127. package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  128. package/user-profile/user-profile.component.d.ts +1 -1
  129. package/common/styles/font/README.md +0 -11
  130. package/dialogs/src/README.md +0 -223
  131. package/esm2020/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -92
  132. package/esm2020/breadcrumbs/breadcrumbs.component.mjs +0 -131
  133. package/esm2020/common/behaviors/control-value-accesor.mixin.mjs +0 -41
  134. package/esm2020/common/behaviors/disable-ripple.mixin.mjs +0 -24
  135. package/esm2020/common/directives/fullscreen/fullscreen.directive.mjs +0 -85
  136. package/esm2020/common/forms/auto-trim/auto-trim.directive.mjs +0 -36
  137. package/esm2020/common/functions/convert.mjs +0 -84
  138. package/esm2020/common/functions/download.mjs +0 -75
  139. package/esm2020/common/pipes/bytes/bytes.pipe.mjs +0 -42
  140. package/esm2020/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +0 -42
  141. package/esm2020/common/pipes/digits/digits.pipe.mjs +0 -39
  142. package/esm2020/common/pipes/truncate/truncate.pipe.mjs +0 -27
  143. package/esm2020/common/services/icon.service.mjs +0 -1089
  144. package/esm2020/common/services/router-path.service.mjs +0 -29
  145. package/esm2020/dialogs/alert-dialog/alert-dialog.component.mjs +0 -23
  146. package/esm2020/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -28
  147. package/esm2020/dialogs/dialog.component.mjs +0 -57
  148. package/esm2020/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -75
  149. package/esm2020/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +0 -216
  150. package/esm2020/dialogs/services/dialog.service.mjs +0 -174
  151. package/esm2020/dialogs/window-dialog/window-dialog.component.mjs +0 -38
  152. package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +0 -30
  153. package/esm2020/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +0 -24
  154. package/esm2020/dynamic-menu/dynamic-menu.component.mjs +0 -28
  155. package/esm2020/file/directives/file-drop.directive.mjs +0 -139
  156. package/esm2020/file/directives/file-select.directive.mjs +0 -77
  157. package/esm2020/file/file-input/file-input.component.mjs +0 -128
  158. package/esm2020/file/file-upload/file-upload.component.mjs +0 -174
  159. package/esm2020/file/services/file.service.mjs +0 -64
  160. package/esm2020/json-formatter/json-formatter.component.mjs +0 -217
  161. package/esm2020/layout/layout-card-over/layout-card-over.component.mjs +0 -40
  162. package/esm2020/layout/layout-footer/layout-footer.component.mjs +0 -33
  163. package/esm2020/layout/layout-manage-list/layout-manage-list.component.mjs +0 -93
  164. package/esm2020/layout/layout-nav/layout-nav.component.mjs +0 -50
  165. package/esm2020/layout/layout-nav-list/layout-nav-list.component.mjs +0 -128
  166. package/esm2020/layout/layout-toggle.class.mjs +0 -92
  167. package/esm2020/layout/layout.component.mjs +0 -92
  168. package/esm2020/layout/navigation-drawer/navigation-drawer.component.mjs +0 -163
  169. package/esm2020/loading/directives/loading.directive.mjs +0 -126
  170. package/esm2020/loading/loading.component.mjs +0 -187
  171. package/esm2020/loading/services/loading.factory.mjs +0 -207
  172. package/esm2020/loading/services/loading.service.mjs +0 -213
  173. package/esm2020/message/message.component.mjs +0 -203
  174. package/esm2020/search/search-box/search-box.component.mjs +0 -194
  175. package/esm2020/search/search-input/search-input.component.mjs +0 -207
  176. package/esm2020/side-sheet/side-sheet-container.mjs +0 -274
  177. package/esm2020/side-sheet/side-sheet-ref.mjs +0 -26
  178. package/esm2020/side-sheet/side-sheet.content-directives.mjs +0 -201
  179. package/esm2020/side-sheet/side-sheet.mjs +0 -228
  180. package/esm2020/user-profile/user-profile-menu/user-profile-menu.component.mjs +0 -23
  181. package/esm2020/user-profile/user-profile.component.mjs +0 -19
  182. package/fesm2015/covalent-core-common.mjs +0 -2281
  183. package/fesm2015/covalent-core-common.mjs.map +0 -1
  184. package/fesm2015/covalent-core-dialogs.mjs +0 -668
  185. package/fesm2015/covalent-core-dialogs.mjs.map +0 -1
  186. package/fesm2015/covalent-core-dynamic-menu.mjs +0 -126
  187. package/fesm2015/covalent-core-file.mjs +0 -621
  188. package/fesm2015/covalent-core-file.mjs.map +0 -1
  189. package/fesm2015/covalent-core-json-formatter.mjs +0 -298
  190. package/fesm2015/covalent-core-json-formatter.mjs.map +0 -1
  191. package/fesm2015/covalent-core-layout.mjs +0 -1024
  192. package/fesm2015/covalent-core-loading.mjs +0 -766
  193. package/fesm2015/covalent-core-loading.mjs.map +0 -1
  194. package/fesm2015/covalent-core-message.mjs +0 -284
  195. package/fesm2015/covalent-core-message.mjs.map +0 -1
  196. package/fesm2015/covalent-core-search.mjs +0 -430
  197. package/fesm2015/covalent-core-search.mjs.map +0 -1
  198. package/fesm2015/covalent-core-side-sheet.mjs +0 -784
  199. package/fesm2015/covalent-core-side-sheet.mjs.map +0 -1
  200. package/fesm2015/covalent-core-user-profile.mjs +0 -83
  201. package/fesm2015/covalent-core-user-profile.mjs.map +0 -1
  202. package/fesm2020/covalent-core-breadcrumbs.mjs +0 -243
  203. package/fesm2020/covalent-core-breadcrumbs.mjs.map +0 -1
  204. package/fesm2020/covalent-core-common.mjs.map +0 -1
  205. package/fesm2020/covalent-core-dynamic-menu.mjs +0 -126
  206. package/fesm2020/covalent-core-dynamic-menu.mjs.map +0 -1
  207. package/fesm2020/covalent-core-layout.mjs.map +0 -1
  208. package/fesm2020/covalent-core-menu.mjs +0 -37
  209. package/fesm2020/covalent-core-menu.mjs.map +0 -1
  210. package/fesm2020/covalent-core-search.mjs +0 -427
  211. package/fesm2020/covalent-core-search.mjs.map +0 -1
  212. package/fesm2020/covalent-core-user-profile.mjs +0 -83
  213. package/fesm2020/covalent-core-user-profile.mjs.map +0 -1
  214. package/fesm2020/covalent-core.mjs +0 -4
  215. package/fesm2020/covalent-core.mjs.map +0 -1
  216. package/file/src/file-input/README.md +0 -147
  217. package/file/src/file-upload/README.md +0 -136
  218. package/layout/src/layout-card-over/README.md +0 -43
  219. package/layout/src/layout-manage-list/README.md +0 -80
  220. package/layout/src/layout-nav/README.md +0 -50
  221. package/layout/src/layout-nav-list/README.md +0 -105
  222. package/search/src/search-box/README.md +0 -73
  223. package/search/src/search-input/README.md +0 -74
  224. /package/{esm2020 → esm2022}/breadcrumbs/covalent-core-breadcrumbs.mjs +0 -0
  225. /package/{esm2020 → esm2022}/breadcrumbs/public_api.mjs +0 -0
  226. /package/{esm2020 → esm2022}/common/animations/bounce/bounce.animation.mjs +0 -0
  227. /package/{esm2020 → esm2022}/common/animations/collapse/collapse.animation.mjs +0 -0
  228. /package/{esm2020 → esm2022}/common/animations/common/interfaces.mjs +0 -0
  229. /package/{esm2020 → esm2022}/common/animations/fade/fadeInOut.animation.mjs +0 -0
  230. /package/{esm2020 → esm2022}/common/animations/flash/flash.animation.mjs +0 -0
  231. /package/{esm2020 → esm2022}/common/animations/headshake/headshake.animation.mjs +0 -0
  232. /package/{esm2020 → esm2022}/common/animations/jello/jello.animation.mjs +0 -0
  233. /package/{esm2020 → esm2022}/common/animations/pulse/pulse.animation.mjs +0 -0
  234. /package/{esm2020 → esm2022}/common/animations/rotate/rotate.animation.mjs +0 -0
  235. /package/{esm2020 → esm2022}/common/covalent-core-common.mjs +0 -0
  236. /package/{esm2020 → esm2022}/common/forms/validators/validators.mjs +0 -0
  237. /package/{esm2020 → esm2022}/common/functions/clipboard.mjs +0 -0
  238. /package/{esm2020 → esm2022}/common/functions/file.mjs +0 -0
  239. /package/{esm2020 → esm2022}/common/public_api.mjs +0 -0
  240. /package/{esm2020 → esm2022}/covalent-core.mjs +0 -0
  241. /package/{esm2020 → esm2022}/dialogs/covalent-core-dialogs.mjs +0 -0
  242. /package/{esm2020 → esm2022}/dialogs/public_api.mjs +0 -0
  243. /package/{esm2020 → esm2022}/dynamic-menu/covalent-core-dynamic-menu.mjs +0 -0
  244. /package/{esm2020 → esm2022}/dynamic-menu/dynamic-menu.menu.mjs +0 -0
  245. /package/{esm2020 → esm2022}/dynamic-menu/public_api.mjs +0 -0
  246. /package/{esm2020 → esm2022}/file/covalent-core-file.mjs +0 -0
  247. /package/{esm2020 → esm2022}/file/public_api.mjs +0 -0
  248. /package/{esm2020 → esm2022}/json-formatter/collapse.animation.mjs +0 -0
  249. /package/{esm2020 → esm2022}/json-formatter/covalent-core-json-formatter.mjs +0 -0
  250. /package/{esm2020 → esm2022}/json-formatter/public_api.mjs +0 -0
  251. /package/{esm2020 → esm2022}/layout/covalent-core-layout.mjs +0 -0
  252. /package/{esm2020 → esm2022}/layout/public_api.mjs +0 -0
  253. /package/{esm2020 → esm2022}/loading/covalent-core-loading.mjs +0 -0
  254. /package/{esm2020 → esm2022}/loading/public_api.mjs +0 -0
  255. /package/{esm2020 → esm2022}/menu/covalent-core-menu.mjs +0 -0
  256. /package/{esm2020 → esm2022}/menu/public_api.mjs +0 -0
  257. /package/{esm2020 → esm2022}/message/collapse.animation.mjs +0 -0
  258. /package/{esm2020 → esm2022}/message/covalent-core-message.mjs +0 -0
  259. /package/{esm2020 → esm2022}/message/public_api.mjs +0 -0
  260. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  261. /package/{esm2020 → esm2022}/search/covalent-core-search.mjs +0 -0
  262. /package/{esm2020 → esm2022}/search/public_api.mjs +0 -0
  263. /package/{esm2020 → esm2022}/side-sheet/covalent-core-side-sheet.mjs +0 -0
  264. /package/{esm2020 → esm2022}/side-sheet/public_api.mjs +0 -0
  265. /package/{esm2020 → esm2022}/side-sheet/side-sheet.animation.mjs +0 -0
  266. /package/{esm2020 → esm2022}/user-profile/covalent-core-user-profile.mjs +0 -0
  267. /package/{esm2020 → esm2022}/user-profile/public_api.mjs +0 -0
  268. /package/{fesm2015 → fesm2022}/covalent-core.mjs +0 -0
  269. /package/{fesm2015 → fesm2022}/covalent-core.mjs.map +0 -0
@@ -1,77 +0,0 @@
1
- import { Directive, Input, Output, EventEmitter } from '@angular/core';
2
- import { HostListener, HostBinding, Host, Optional } from '@angular/core';
3
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { NgModel } from '@angular/forms';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- export class TdFileSelectDirective {
8
- /**
9
- * multiple?: boolean
10
- * Sets whether multiple files can be selected at once in host element, or just a single file.
11
- * Can also be 'multiple' native attribute.
12
- */
13
- set multiple(multiple) {
14
- this._multiple = coerceBooleanProperty(multiple);
15
- }
16
- /**
17
- * Binds native 'multiple' attribute if [multiple] property is 'true'.
18
- */
19
- get multipleBinding() {
20
- return this._multiple ? '' : undefined;
21
- }
22
- constructor(model) {
23
- this.model = model;
24
- this._multiple = false;
25
- /**
26
- * fileSelect?: function
27
- * Event emitted when a file or files are selected in host [HTMLInputElement].
28
- * Emits a [FileList | File] object.
29
- * Alternative to not use [(ngModel)].
30
- */
31
- this.fileSelect = new EventEmitter();
32
- }
33
- /**
34
- * Listens to 'change' host event to get [HTMLInputElement] files.
35
- * Emits the 'fileSelect' event with a [FileList] or [File] depending if 'multiple' attr exists in host.
36
- * Uses [(ngModel)] if declared, instead of emitting 'fileSelect' event.
37
- */
38
- onChange(event) {
39
- if (event.target instanceof HTMLInputElement) {
40
- const fileInputEl = event.target;
41
- const files = fileInputEl.files || new FileList();
42
- if (files.length) {
43
- const value = this._multiple
44
- ? files.length > 1
45
- ? files
46
- : files[0]
47
- : files[0];
48
- this.model
49
- ? this.model.update.emit(value)
50
- : this.fileSelect.emit(value);
51
- }
52
- }
53
- }
54
- }
55
- TdFileSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileSelectDirective, deps: [{ token: i1.NgModel, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
56
- TdFileSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: TdFileSelectDirective, selector: "[tdFileSelect]", inputs: { multiple: "multiple" }, outputs: { fileSelect: "fileSelect" }, host: { listeners: { "change": "onChange($event)" }, properties: { "attr.multiple": "this.multipleBinding" } }, ngImport: i0 });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileSelectDirective, decorators: [{
58
- type: Directive,
59
- args: [{
60
- selector: '[tdFileSelect]',
61
- }]
62
- }], ctorParameters: function () { return [{ type: i1.NgModel, decorators: [{
63
- type: Optional
64
- }, {
65
- type: Host
66
- }] }]; }, propDecorators: { multiple: [{
67
- type: Input
68
- }], fileSelect: [{
69
- type: Output
70
- }], multipleBinding: [{
71
- type: HostBinding,
72
- args: ['attr.multiple']
73
- }], onChange: [{
74
- type: HostListener,
75
- args: ['change', ['$event']]
76
- }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ZpbGUvc3JjL2RpcmVjdGl2ZXMvZmlsZS1zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUt6QyxNQUFNLE9BQU8scUJBQXFCO0lBR2hDOzs7O09BSUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxRQUEwQjtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFZRDs7T0FFRztJQUNILElBQ0ksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUF3QyxLQUFjO1FBQWQsVUFBSyxHQUFMLEtBQUssQ0FBUztRQTlCOUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVkxQjs7Ozs7V0FLRztRQUNPLGVBQVUsR0FBa0MsSUFBSSxZQUFZLEVBRW5FLENBQUM7SUFVcUQsQ0FBQztJQUUxRDs7OztPQUlHO0lBRUgsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxLQUFLLENBQUMsTUFBTSxZQUFZLGdCQUFnQixFQUFFO1lBQzVDLE1BQU0sV0FBVyxHQUFxQixLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25ELE1BQU0sS0FBSyxHQUFhLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM1RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLE1BQU0sS0FBSyxHQUFvQixJQUFJLENBQUMsU0FBUztvQkFDM0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQzt3QkFDaEIsQ0FBQyxDQUFDLEtBQUs7d0JBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ1osQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDYixJQUFJLENBQUMsS0FBSztvQkFDUixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1NBQ0Y7SUFDSCxDQUFDOztrSEF0RFUscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjs7MEJBZ0NjLFFBQVE7OzBCQUFJLElBQUk7NENBdEJ6QixRQUFRO3NCQURYLEtBQUs7Z0JBV0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFRSCxlQUFlO3NCQURsQixXQUFXO3VCQUFDLGVBQWU7Z0JBYTVCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG9zdExpc3RlbmVyLCBIb3N0QmluZGluZywgSG9zdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGRGaWxlU2VsZWN0XScsXG59KVxuZXhwb3J0IGNsYXNzIFRkRmlsZVNlbGVjdERpcmVjdGl2ZSB7XG4gIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIG11bHRpcGxlPzogYm9vbGVhblxuICAgKiBTZXRzIHdoZXRoZXIgbXVsdGlwbGUgZmlsZXMgY2FuIGJlIHNlbGVjdGVkIGF0IG9uY2UgaW4gaG9zdCBlbGVtZW50LCBvciBqdXN0IGEgc2luZ2xlIGZpbGUuXG4gICAqIENhbiBhbHNvIGJlICdtdWx0aXBsZScgbmF0aXZlIGF0dHJpYnV0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtdWx0aXBsZShtdWx0aXBsZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIHRoaXMuX211bHRpcGxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KG11bHRpcGxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBmaWxlU2VsZWN0PzogZnVuY3Rpb25cbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgZmlsZSBvciBmaWxlcyBhcmUgc2VsZWN0ZWQgaW4gaG9zdCBbSFRNTElucHV0RWxlbWVudF0uXG4gICAqIEVtaXRzIGEgW0ZpbGVMaXN0IHwgRmlsZV0gb2JqZWN0LlxuICAgKiBBbHRlcm5hdGl2ZSB0byBub3QgdXNlIFsobmdNb2RlbCldLlxuICAgKi9cbiAgQE91dHB1dCgpIGZpbGVTZWxlY3Q6IEV2ZW50RW1pdHRlcjxGaWxlTGlzdCB8IEZpbGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBGaWxlTGlzdCB8IEZpbGVcbiAgPigpO1xuXG4gIC8qKlxuICAgKiBCaW5kcyBuYXRpdmUgJ211bHRpcGxlJyBhdHRyaWJ1dGUgaWYgW211bHRpcGxlXSBwcm9wZXJ0eSBpcyAndHJ1ZScuXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIubXVsdGlwbGUnKVxuICBnZXQgbXVsdGlwbGVCaW5kaW5nKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlID8gJycgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgbW9kZWw6IE5nTW9kZWwpIHt9XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgdG8gJ2NoYW5nZScgaG9zdCBldmVudCB0byBnZXQgW0hUTUxJbnB1dEVsZW1lbnRdIGZpbGVzLlxuICAgKiBFbWl0cyB0aGUgJ2ZpbGVTZWxlY3QnIGV2ZW50IHdpdGggYSBbRmlsZUxpc3RdIG9yIFtGaWxlXSBkZXBlbmRpbmcgaWYgJ211bHRpcGxlJyBhdHRyIGV4aXN0cyBpbiBob3N0LlxuICAgKiBVc2VzIFsobmdNb2RlbCldIGlmIGRlY2xhcmVkLCBpbnN0ZWFkIG9mIGVtaXR0aW5nICdmaWxlU2VsZWN0JyBldmVudC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICBjb25zdCBmaWxlSW5wdXRFbDogSFRNTElucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgICAgIGNvbnN0IGZpbGVzOiBGaWxlTGlzdCA9IGZpbGVJbnB1dEVsLmZpbGVzIHx8IG5ldyBGaWxlTGlzdCgpO1xuICAgICAgaWYgKGZpbGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCB2YWx1ZTogRmlsZUxpc3QgfCBGaWxlID0gdGhpcy5fbXVsdGlwbGVcbiAgICAgICAgICA/IGZpbGVzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgID8gZmlsZXNcbiAgICAgICAgICAgIDogZmlsZXNbMF1cbiAgICAgICAgICA6IGZpbGVzWzBdO1xuICAgICAgICB0aGlzLm1vZGVsXG4gICAgICAgICAgPyB0aGlzLm1vZGVsLnVwZGF0ZS5lbWl0KHZhbHVlKVxuICAgICAgICAgIDogdGhpcy5maWxlU2VsZWN0LmVtaXQodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,128 +0,0 @@
1
- import { Component, Directive, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewChild, ElementRef, Renderer2, TemplateRef, ViewContainerRef, ChangeDetectorRef, forwardRef, NgZone, } from '@angular/core';
2
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
- import { TemplatePortalDirective } from '@angular/cdk/portal';
4
- import { ENTER } from '@angular/cdk/keycodes';
5
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
- import { fromEvent, merge, Subject } from 'rxjs';
7
- import { filter, takeUntil } from 'rxjs/operators';
8
- import { mixinControlValueAccessor, mixinDisabled, } from '@covalent/core/common';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/material/button";
11
- import * as i2 from "../directives/file-select.directive";
12
- import * as i3 from "../directives/file-drop.directive";
13
- export class TdFileInputLabelDirective extends TemplatePortalDirective {
14
- constructor(templateRef, viewContainerRef) {
15
- super(templateRef, viewContainerRef);
16
- }
17
- }
18
- TdFileInputLabelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileInputLabelDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
- TdFileInputLabelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", type: TdFileInputLabelDirective, selector: "[tdFileInputLabel]ng-template", usesInheritance: true, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileInputLabelDirective, decorators: [{
21
- type: Directive,
22
- args: [{
23
- selector: '[tdFileInputLabel]ng-template',
24
- }]
25
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
26
- export class TdFileInputBase {
27
- constructor(_changeDetectorRef) {
28
- this._changeDetectorRef = _changeDetectorRef;
29
- }
30
- }
31
- export const _TdFileInputMixinBase = mixinControlValueAccessor(mixinDisabled(TdFileInputBase));
32
- export class TdFileInputComponent extends _TdFileInputMixinBase {
33
- get inputElement() {
34
- return this._inputElement.nativeElement;
35
- }
36
- /**
37
- * multiple?: boolean
38
- * Sets if multiple files can be dropped/selected at once in [TdFileInputComponent].
39
- */
40
- set multiple(multiple) {
41
- this._multiple = coerceBooleanProperty(multiple);
42
- }
43
- get multiple() {
44
- return this._multiple;
45
- }
46
- constructor(_ngZone, _renderer, _changeDetectorRef) {
47
- super(_changeDetectorRef);
48
- this._ngZone = _ngZone;
49
- this._renderer = _renderer;
50
- this._multiple = false;
51
- /**
52
- * select?: function
53
- * Event emitted a file is selected
54
- * Emits a [File | FileList] object.
55
- */
56
- this.selectFile = new EventEmitter();
57
- this._destroy$ = new Subject();
58
- }
59
- ngOnInit() {
60
- this._ngZone.runOutsideAngular(() => {
61
- merge(fromEvent(this._inputButton.nativeElement, 'click'), fromEvent(this._inputButton.nativeElement, 'keyup').pipe(filter((event) => event.keyCode === ENTER)))
62
- .pipe(takeUntil(this._destroy$))
63
- .subscribe(() => this._inputElement.nativeElement.click());
64
- });
65
- }
66
- ngOnDestroy() {
67
- this._destroy$.next();
68
- }
69
- /**
70
- * Method executed when a file is selected.
71
- */
72
- handleSelect(files) {
73
- this.writeValue(files);
74
- this.selectFile.emit(files);
75
- }
76
- /**
77
- * Used to clear the selected files from the [TdFileInputComponent].
78
- */
79
- clear() {
80
- this.writeValue(undefined);
81
- this._renderer.setProperty(this.inputElement, 'value', '');
82
- }
83
- /** Method executed when the disabled value changes */
84
- onDisabledChange(v) {
85
- if (v) {
86
- this.clear();
87
- }
88
- }
89
- /**
90
- * Sets disable to the component. Implemented as part of ControlValueAccessor.
91
- */
92
- setDisabledState(isDisabled) {
93
- this.disabled = isDisabled;
94
- }
95
- }
96
- TdFileInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileInputComponent, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
97
- TdFileInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdFileInputComponent, selector: "td-file-input", inputs: { disabled: "disabled", value: "value", color: "color", multiple: "multiple", accept: "accept" }, outputs: { selectFile: "selectFile" }, providers: [
98
- {
99
- provide: NG_VALUE_ACCESSOR,
100
- useExisting: forwardRef(() => TdFileInputComponent),
101
- multi: true,
102
- },
103
- ], viewQueries: [{ propertyName: "_inputButton", first: true, predicate: ["fileInputButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "_inputElement", first: true, predicate: ["fileInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<button\n #fileInputButton\n mat-raised-button\n class=\"td-file-input\"\n type=\"button\"\n [color]=\"color\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileDrop)=\"handleSelect($event)\"\n tdFileDrop\n>\n <ng-content></ng-content>\n</button>\n<input\n #fileInput\n class=\"td-file-input-hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n (fileSelect)=\"handleSelect($event)\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n tdFileSelect\n/>\n", styles: [":host .td-file-input{padding-left:8px;padding-right:8px}:host input.td-file-input-hidden{display:none}:host ::ng-deep .mdc-button__label{display:flex;align-items:center}:host .drop-zone{border-radius:3px}:host .drop-zone *{pointer-events:none}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2.TdFileSelectDirective, selector: "[tdFileSelect]", inputs: ["multiple"], outputs: ["fileSelect"] }, { kind: "directive", type: i3.TdFileDropDirective, selector: "[tdFileDrop]", inputs: ["multiple", "disabled"], outputs: ["fileDrop"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileInputComponent, decorators: [{
105
- type: Component,
106
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [
107
- {
108
- provide: NG_VALUE_ACCESSOR,
109
- useExisting: forwardRef(() => TdFileInputComponent),
110
- multi: true,
111
- },
112
- ], selector: 'td-file-input', inputs: ['disabled', 'value'], template: "<button\n #fileInputButton\n mat-raised-button\n class=\"td-file-input\"\n type=\"button\"\n [color]=\"color\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n (fileDrop)=\"handleSelect($event)\"\n tdFileDrop\n>\n <ng-content></ng-content>\n</button>\n<input\n #fileInput\n class=\"td-file-input-hidden\"\n type=\"file\"\n [attr.accept]=\"accept\"\n (fileSelect)=\"handleSelect($event)\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n tdFileSelect\n/>\n", styles: [":host .td-file-input{padding-left:8px;padding-right:8px}:host input.td-file-input-hidden{display:none}:host ::ng-deep .mdc-button__label{display:flex;align-items:center}:host .drop-zone{border-radius:3px}:host .drop-zone *{pointer-events:none}\n"] }]
113
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _inputButton: [{
114
- type: ViewChild,
115
- args: ['fileInputButton', { static: true, read: ElementRef }]
116
- }], _inputElement: [{
117
- type: ViewChild,
118
- args: ['fileInput', { static: true }]
119
- }], color: [{
120
- type: Input
121
- }], multiple: [{
122
- type: Input
123
- }], accept: [{
124
- type: Input
125
- }], selectFile: [{
126
- type: Output
127
- }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvZmlsZS9zcmMvZmlsZS1pbnB1dC9maWxlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9maWxlL3NyYy9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFHVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFHTCx5QkFBeUIsRUFDekIsYUFBYSxHQUNkLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBSy9CLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx1QkFBdUI7SUFDcEUsWUFDRSxXQUFpQyxFQUNqQyxnQkFBa0M7UUFFbEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZDLENB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LFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLHNIQWNtRCxVQUFVLDZLQ3pFaEUscWVBdUJBOzJGRDJDYSxvQkFBb0I7a0JBZmhDLFNBQVM7c0NBQ1MsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUyxlQUFlLFVBRWpCLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQztxSkFZN0IsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUtoRSxhQUFhO3NCQURaLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFVL0IsS0FBSztzQkFBYixLQUFLO2dCQU9GLFFBQVE7c0JBRFgsS0FBSztnQkFhRyxNQUFNO3NCQUFkLEtBQUs7Z0JBT0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBmb3J3YXJkUmVmLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIElDYW5EaXNhYmxlLFxuICBJQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIG1peGluQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIG1peGluRGlzYWJsZWQsXG59IGZyb20gJ0Bjb3ZhbGVudC9jb3JlL2NvbW1vbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZEZpbGVJbnB1dExhYmVsXW5nLXRlbXBsYXRlJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRGaWxlSW5wdXRMYWJlbERpcmVjdGl2ZSBleHRlbmRzIFRlbXBsYXRlUG9ydGFsRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+LFxuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7XG4gICAgc3VwZXIodGVtcGxhdGVSZWYsIHZpZXdDb250YWluZXJSZWYpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZEZpbGVJbnB1dEJhc2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbn1cblxuZXhwb3J0IGNvbnN0IF9UZEZpbGVJbnB1dE1peGluQmFzZSA9IG1peGluQ29udHJvbFZhbHVlQWNjZXNzb3IoXG4gIG1peGluRGlzYWJsZWQoVGRGaWxlSW5wdXRCYXNlKVxuKTtcblxuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRkRmlsZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHNlbGVjdG9yOiAndGQtZmlsZS1pbnB1dCcsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICd2YWx1ZSddLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRGaWxlSW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBfVGRGaWxlSW5wdXRNaXhpbkJhc2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgSUNvbnRyb2xWYWx1ZUFjY2Vzc29yLCBJQ2FuRGlzYWJsZVxue1xuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgbmF0aXZlIGA8YnV0dG9uIGNsYXNzPVwidGQtZmlsZS1pbnB1dFwiPjwvYnV0dG9uPmAgZWxlbWVudCAqL1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXRCdXR0b24nLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBfaW5wdXRCdXR0b24hOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKiogVGhlIG5hdGl2ZSBgPGlucHV0IHR5cGU9XCJmaWxlXCI+IGVsZW1lbnQgKi9cbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgX2lucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIGdldCBpbnB1dEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIGNvbG9yPzogJ2FjY2VudCcgfCAncHJpbWFyeScgfCAnd2FybidcbiAgICogU2V0cyBidXR0b24gY29sb3IuIFVzZXMgc2FtZSBjb2xvciBwYWxldHRlIGFjY2VwdGVkIGFzIFtNYXRCdXR0b25dLlxuICAgKi9cbiAgQElucHV0KCkgY29sb3I/OiAnYWNjZW50JyB8ICdwcmltYXJ5JyB8ICd3YXJuJztcblxuICAvKipcbiAgICogbXVsdGlwbGU/OiBib29sZWFuXG4gICAqIFNldHMgaWYgbXVsdGlwbGUgZmlsZXMgY2FuIGJlIGRyb3BwZWQvc2VsZWN0ZWQgYXQgb25jZSBpbiBbVGRGaWxlSW5wdXRDb21wb25lbnRdLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IG11bHRpcGxlKG11bHRpcGxlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkobXVsdGlwbGUpO1xuICB9XG4gIGdldCBtdWx0aXBsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbXVsdGlwbGU7XG4gIH1cblxuICAvKipcbiAgICogYWNjZXB0Pzogc3RyaW5nXG4gICAqIFNldHMgZmlsZXMgYWNjZXB0ZWQgd2hlbiBvcGVuaW5nIHRoZSBmaWxlIGJyb3dzZXIgZGlhbG9nLlxuICAgKiBTYW1lIGFzICdhY2NlcHQnIGF0dHJpYnV0ZSBpbiA8aW5wdXQvPiBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgYWNjZXB0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBzZWxlY3Q/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIGEgZmlsZSBpcyBzZWxlY3RlZFxuICAgKiBFbWl0cyBhIFtGaWxlIHwgRmlsZUxpc3RdIG9iamVjdC5cbiAgICovXG4gIEBPdXRwdXQoKSBzZWxlY3RGaWxlOiBFdmVudEVtaXR0ZXI8RmlsZSB8IEZpbGVMaXN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgRmlsZSB8IEZpbGVMaXN0XG4gID4oKTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3RvclJlZik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgbWVyZ2UoXG4gICAgICAgIGZyb21FdmVudCh0aGlzLl9pbnB1dEJ1dHRvbi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKSxcbiAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHRoaXMuX2lucHV0QnV0dG9uLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgZXhlY3V0ZWQgd2hlbiBhIGZpbGUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBoYW5kbGVTZWxlY3QoZmlsZXM6IEZpbGUgfCBGaWxlTGlzdCk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZShmaWxlcyk7XG4gICAgdGhpcy5zZWxlY3RGaWxlLmVtaXQoZmlsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gY2xlYXIgdGhlIHNlbGVjdGVkIGZpbGVzIGZyb20gdGhlIFtUZEZpbGVJbnB1dENvbXBvbmVudF0uXG4gICAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLndyaXRlVmFsdWUodW5kZWZpbmVkKTtcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWxlbWVudCwgJ3ZhbHVlJywgJycpO1xuICB9XG5cbiAgLyoqIE1ldGhvZCBleGVjdXRlZCB3aGVuIHRoZSBkaXNhYmxlZCB2YWx1ZSBjaGFuZ2VzICovXG4gIG92ZXJyaWRlIG9uRGlzYWJsZWRDaGFuZ2UodjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLmNsZWFyKCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBTZXRzIGRpc2FibGUgdG8gdGhlIGNvbXBvbmVudC4gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gICNmaWxlSW5wdXRCdXR0b25cbiAgbWF0LXJhaXNlZC1idXR0b25cbiAgY2xhc3M9XCJ0ZC1maWxlLWlucHV0XCJcbiAgdHlwZT1cImJ1dHRvblwiXG4gIFtjb2xvcl09XCJjb2xvclwiXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIChmaWxlRHJvcCk9XCJoYW5kbGVTZWxlY3QoJGV2ZW50KVwiXG4gIHRkRmlsZURyb3Bcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9idXR0b24+XG48aW5wdXRcbiAgI2ZpbGVJbnB1dFxuICBjbGFzcz1cInRkLWZpbGUtaW5wdXQtaGlkZGVuXCJcbiAgdHlwZT1cImZpbGVcIlxuICBbYXR0ci5hY2NlcHRdPVwiYWNjZXB0XCJcbiAgKGZpbGVTZWxlY3QpPVwiaGFuZGxlU2VsZWN0KCRldmVudClcIlxuICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICB0ZEZpbGVTZWxlY3Rcbi8+XG4iXX0=
@@ -1,174 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewChild, ContentChild, ChangeDetectorRef, forwardRef, } from '@angular/core';
2
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
- import { TdFileInputComponent, TdFileInputLabelDirective, } from '../file-input/file-input.component';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@angular/material/icon";
9
- import * as i4 from "@angular/material/button";
10
- import * as i5 from "@angular/cdk/portal";
11
- import * as i6 from "../file-input/file-input.component";
12
- export class TdFileUploadBase {
13
- constructor(_changeDetectorRef) {
14
- this._changeDetectorRef = _changeDetectorRef;
15
- }
16
- }
17
- export class TdFileUploadComponent {
18
- /**
19
- * multiple?: boolean
20
- * Sets if multiple files can be dropped/selected at once in [TdFileUploadComponent].
21
- */
22
- set multiple(multiple) {
23
- this._multiple = coerceBooleanProperty(multiple);
24
- }
25
- get multiple() {
26
- return this._multiple;
27
- }
28
- /**
29
- * required?: boolean
30
- * Forces at least one file upload.
31
- * Defaults to 'false'
32
- */
33
- set required(required) {
34
- this._required = coerceBooleanProperty(required);
35
- }
36
- get required() {
37
- return this._required;
38
- }
39
- set disabled(disabled) {
40
- this._disabled = disabled;
41
- this.onDisabledChange(disabled);
42
- }
43
- get disabled() {
44
- return this._disabled;
45
- }
46
- constructor(_changeDetectorRef) {
47
- this._changeDetectorRef = _changeDetectorRef;
48
- this._multiple = false;
49
- this._required = false;
50
- this._disabled = false;
51
- /**
52
- * defaultColor?: 'accent' | 'primary' | 'warn'
53
- * Sets browse button color. Uses same color palette accepted as [MatButton] and defaults to 'primary'.
54
- */
55
- this.defaultColor = 'primary';
56
- /**
57
- * activeColor?: 'accent' | 'primary' | 'warn'
58
- * Sets upload button color. Uses same color palette accepted as [MatButton] and defaults to 'accent'.
59
- */
60
- this.activeColor = 'accent';
61
- /**
62
- * cancelColor?: 'accent' | 'primary' | 'warn'
63
- * Sets cancel button color. Uses same color palette accepted as [MatButton] and defaults to 'warn'.
64
- */
65
- this.cancelColor = 'warn';
66
- /**
67
- * select?: function
68
- * Event emitted when a file is selected.
69
- * Emits a [File | FileList] object.
70
- */
71
- this.selectFile = new EventEmitter();
72
- /**
73
- * upload?: function
74
- * Event emitted when upload button is clicked.
75
- * Emits a [File | FileList] object.
76
- */
77
- this.upload = new EventEmitter();
78
- /**
79
- * cancel?: function
80
- * Event emitted when cancel button is clicked.
81
- */
82
- this.cancel = new EventEmitter();
83
- }
84
- writeValue(value) {
85
- this.value = value;
86
- this._changeDetectorRef.markForCheck();
87
- }
88
- registerOnChange() {
89
- //
90
- }
91
- registerOnTouched() {
92
- //
93
- }
94
- /**
95
- * Method executed when upload button is clicked.
96
- */
97
- uploadPressed() {
98
- if (this.value) {
99
- this.upload.emit(this.value);
100
- }
101
- }
102
- /**
103
- * Method executed when a file is selected.
104
- */
105
- handleSelect(value) {
106
- this.value = value;
107
- this.selectFile.emit(value);
108
- }
109
- /**
110
- * Methods executed when cancel button is clicked.
111
- * Clears files.
112
- */
113
- _cancel() {
114
- this.value = undefined;
115
- this.cancel.emit();
116
- // check if the file input is rendered before clearing it
117
- if (this.fileInput) {
118
- this.fileInput.clear();
119
- }
120
- }
121
- /** Method executed when the disabled value changes */
122
- onDisabledChange(v) {
123
- if (v) {
124
- this._cancel();
125
- }
126
- }
127
- }
128
- TdFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileUploadComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
129
- TdFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: TdFileUploadComponent, selector: "td-file-upload", inputs: { defaultColor: "defaultColor", activeColor: "activeColor", cancelColor: "cancelColor", multiple: "multiple", required: "required", accept: "accept", disabled: "disabled", value: "value" }, outputs: { selectFile: "selectFile", upload: "upload", cancel: "cancel" }, providers: [
130
- {
131
- provide: NG_VALUE_ACCESSOR,
132
- useExisting: forwardRef(() => TdFileUploadComponent),
133
- multi: true,
134
- },
135
- ], queries: [{ propertyName: "inputLabel", first: true, predicate: TdFileInputLabelDirective, descendants: true }], viewQueries: [{ propertyName: "fileInput", first: true, predicate: TdFileInputComponent, descendants: true }], ngImport: i0, template: "<td-file-input\n *ngIf=\"!value\"\n [(ngModel)]=\"value\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n [color]=\"defaultColor\"\n (selectFile)=\"(handleSelect)\"\n>\n <ng-template [cdkPortalOutlet]=\"inputLabel\" [ngIf]=\"true\"></ng-template>\n</td-file-input>\n<div *ngIf=\"value\">\n <button\n #fileUpload\n class=\"td-file-upload\"\n mat-raised-button\n type=\"button\"\n [color]=\"activeColor\"\n (keyup.delete)=\"_cancel()\"\n (keyup.backspace)=\"_cancel()\"\n (keyup.escape)=\"_cancel()\"\n (click)=\"uploadPressed()\"\n >\n <ng-content></ng-content>\n </button>\n <button\n mat-icon-button\n type=\"button\"\n class=\"td-file-upload-cancel\"\n [color]=\"cancelColor\"\n (click)=\"_cancel()\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n", styles: [".td-file-upload{padding-left:8px;padding-right:8px}.td-file-upload-cancel{height:24px;width:24px;position:relative;top:24px;left:-12px}::ng-deep [dir=rtl] .td-file-upload-cancel{right:-12px;left:0}.td-file-upload-cancel mat-icon{border-radius:12px;vertical-align:baseline}.drop-zone{border-radius:3px}.drop-zone *{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i6.TdFileInputComponent, selector: "td-file-input", inputs: ["disabled", "value", "color", "multiple", "accept"], outputs: ["selectFile"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileUploadComponent, decorators: [{
137
- type: Component,
138
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [
139
- {
140
- provide: NG_VALUE_ACCESSOR,
141
- useExisting: forwardRef(() => TdFileUploadComponent),
142
- multi: true,
143
- },
144
- ], selector: 'td-file-upload', template: "<td-file-input\n *ngIf=\"!value\"\n [(ngModel)]=\"value\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n [color]=\"defaultColor\"\n (selectFile)=\"(handleSelect)\"\n>\n <ng-template [cdkPortalOutlet]=\"inputLabel\" [ngIf]=\"true\"></ng-template>\n</td-file-input>\n<div *ngIf=\"value\">\n <button\n #fileUpload\n class=\"td-file-upload\"\n mat-raised-button\n type=\"button\"\n [color]=\"activeColor\"\n (keyup.delete)=\"_cancel()\"\n (keyup.backspace)=\"_cancel()\"\n (keyup.escape)=\"_cancel()\"\n (click)=\"uploadPressed()\"\n >\n <ng-content></ng-content>\n </button>\n <button\n mat-icon-button\n type=\"button\"\n class=\"td-file-upload-cancel\"\n [color]=\"cancelColor\"\n (click)=\"_cancel()\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n", styles: [".td-file-upload{padding-left:8px;padding-right:8px}.td-file-upload-cancel{height:24px;width:24px;position:relative;top:24px;left:-12px}::ng-deep [dir=rtl] .td-file-upload-cancel{right:-12px;left:0}.td-file-upload-cancel mat-icon{border-radius:12px;vertical-align:baseline}.drop-zone{border-radius:3px}.drop-zone *{pointer-events:none}\n"] }]
145
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { fileInput: [{
146
- type: ViewChild,
147
- args: [TdFileInputComponent]
148
- }], inputLabel: [{
149
- type: ContentChild,
150
- args: [TdFileInputLabelDirective]
151
- }], defaultColor: [{
152
- type: Input
153
- }], activeColor: [{
154
- type: Input
155
- }], cancelColor: [{
156
- type: Input
157
- }], multiple: [{
158
- type: Input
159
- }], required: [{
160
- type: Input
161
- }], accept: [{
162
- type: Input
163
- }], disabled: [{
164
- type: Input
165
- }], value: [{
166
- type: Input
167
- }], selectFile: [{
168
- type: Output
169
- }], upload: [{
170
- type: Output
171
- }], cancel: [{
172
- type: Output
173
- }] } });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ZpbGUvc3JjL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9maWxlL3NyYy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQix5QkFBeUIsR0FDMUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBR3pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFBbUIsa0JBQXFDO1FBQXJDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7SUFBRyxDQUFDO0NBQzdEO0FBZUQsTUFBTSxPQUFPLHFCQUFxQjtJQTRCaEM7OztPQUdHO0lBQ0gsSUFDSSxRQUFRLENBQUMsUUFBaUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRLENBQUMsUUFBaUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMs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QVU7c0JBRFQsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBTzlCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsV0FBVztzQkFBbkIsS0FBSztnQkFNRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9GLFFBQVE7c0JBRFgsS0FBSztnQkFjRixRQUFRO3NCQURYLEtBQUs7Z0JBYUcsTUFBTTtzQkFBZCxLQUFLO2dCQUdGLFFBQVE7c0JBRFgsS0FBSztnQkFTRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFTRyxNQUFNO3NCQUFmLE1BQU07Z0JBUUcsTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3Q2hpbGQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIFRkRmlsZUlucHV0Q29tcG9uZW50LFxuICBUZEZpbGVJbnB1dExhYmVsRGlyZWN0aXZlLFxufSBmcm9tICcuLi9maWxlLWlucHV0L2ZpbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIFRkRmlsZVVwbG9hZEJhc2Uge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbn1cblxuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRkRmlsZVVwbG9hZENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBzZWxlY3RvcjogJ3RkLWZpbGUtdXBsb2FkJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIF9tdWx0aXBsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoVGRGaWxlSW5wdXRDb21wb25lbnQpIGZpbGVJbnB1dD86IFRkRmlsZUlucHV0Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoVGRGaWxlSW5wdXRMYWJlbERpcmVjdGl2ZSlcbiAgaW5wdXRMYWJlbD86IFRkRmlsZUlucHV0TGFiZWxEaXJlY3RpdmU7XG5cbiAgLyoqXG4gICAqIGRlZmF1bHRDb2xvcj86ICdhY2NlbnQnIHwgJ3ByaW1hcnknIHwgJ3dhcm4nXG4gICAqIFNldHMgYnJvd3NlIGJ1dHRvbiBjb2xvci4gVXNlcyBzYW1lIGNvbG9yIHBhbGV0dGUgYWNjZXB0ZWQgYXMgW01hdEJ1dHRvbl0gYW5kIGRlZmF1bHRzIHRvICdwcmltYXJ5Jy5cbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRDb2xvcjogJ2FjY2VudCcgfCAncHJpbWFyeScgfCAnd2FybicgPSAncHJpbWFyeSc7XG5cbiAgLyoqXG4gICAqIGFjdGl2ZUNvbG9yPzogJ2FjY2VudCcgfCAncHJpbWFyeScgfCAnd2FybidcbiAgICogU2V0cyB1cGxvYWQgYnV0dG9uIGNvbG9yLiBVc2VzIHNhbWUgY29sb3IgcGFsZXR0ZSBhY2NlcHRlZCBhcyBbTWF0QnV0dG9uXSBhbmQgZGVmYXVsdHMgdG8gJ2FjY2VudCcuXG4gICAqL1xuICBASW5wdXQoKSBhY3RpdmVDb2xvcjogJ2FjY2VudCcgfCAncHJpbWFyeScgfCAnd2FybicgPSAnYWNjZW50JztcblxuICAvKipcbiAgICogY2FuY2VsQ29sb3I/OiAnYWNjZW50JyB8ICdwcmltYXJ5JyB8ICd3YXJuJ1xuICAgKiBTZXRzIGNhbmNlbCBidXR0b24gY29sb3IuIFVzZXMgc2FtZSBjb2xvciBwYWxldHRlIGFjY2VwdGVkIGFzIFtNYXRCdXR0b25dIGFuZCBkZWZhdWx0cyB0byAnd2FybicuXG4gICAqL1xuICBASW5wdXQoKSBjYW5jZWxDb2xvcjogJ2FjY2VudCcgfCAncHJpbWFyeScgfCAnd2FybicgPSAnd2Fybic7XG5cbiAgLyoqXG4gICAqIG11bHRpcGxlPzogYm9vbGVhblxuICAgKiBTZXRzIGlmIG11bHRpcGxlIGZpbGVzIGNhbiBiZSBkcm9wcGVkL3NlbGVjdGVkIGF0IG9uY2UgaW4gW1RkRmlsZVVwbG9hZENvbXBvbmVudF0uXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbXVsdGlwbGUobXVsdGlwbGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9tdWx0aXBsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShtdWx0aXBsZSk7XG4gIH1cbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aXBsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXF1aXJlZD86IGJvb2xlYW5cbiAgICogRm9yY2VzIGF0IGxlYXN0IG9uZSBmaWxlIHVwbG9hZC5cbiAgICogRGVmYXVsdHMgdG8gJ2ZhbHNlJ1xuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHJlcXVpcmVkKHJlcXVpcmVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVxdWlyZWQpO1xuICB9XG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cblxuICAvKipcbiAgICogYWNjZXB0Pzogc3RyaW5nXG4gICAqIFNldHMgZmlsZXMgYWNjZXB0ZWQgd2hlbiBvcGVuaW5nIHRoZSBmaWxlIGJyb3dzZXIgZGlhbG9nLlxuICAgKiBTYW1lIGFzICdhY2NlcHQnIGF0dHJpYnV0ZSBpbiA8aW5wdXQvPiBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgYWNjZXB0Pzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgdGhpcy5vbkRpc2FibGVkQ2hhbmdlKGRpc2FibGVkKTtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KCkgdmFsdWU/OiB1bmtub3duIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBzZWxlY3Q/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBmaWxlIGlzIHNlbGVjdGVkLlxuICAgKiBFbWl0cyBhIFtGaWxlIHwgRmlsZUxpc3RdIG9iamVjdC5cbiAgICovXG4gIEBPdXRwdXQoKSBzZWxlY3RGaWxlOiBFdmVudEVtaXR0ZXI8RmlsZSB8IEZpbGVMaXN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgRmlsZSB8IEZpbGVMaXN0XG4gID4oKTtcblxuICAvKipcbiAgICogdXBsb2FkPzogZnVuY3Rpb25cbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHVwbG9hZCBidXR0b24gaXMgY2xpY2tlZC5cbiAgICogRW1pdHMgYSBbRmlsZSB8IEZpbGVMaXN0XSBvYmplY3QuXG4gICAqL1xuICBAT3V0cHV0KCkgdXBsb2FkOiBFdmVudEVtaXR0ZXI8RmlsZSB8IEZpbGVMaXN0IHwgdW5rbm93bj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEZpbGUgfCBGaWxlTGlzdCB8IHVua25vd25cbiAgPigpO1xuXG4gIC8qKlxuICAgKiBjYW5jZWw/OiBmdW5jdGlvblxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gY2FuY2VsIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIGNhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAvL1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoKTogdm9pZCB7XG4gICAgLy9cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgZXhlY3V0ZWQgd2hlbiB1cGxvYWQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICB1cGxvYWRQcmVzc2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLnVwbG9hZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgZXhlY3V0ZWQgd2hlbiBhIGZpbGUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBoYW5kbGVTZWxlY3QodmFsdWU6IEZpbGUgfCBGaWxlTGlzdCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdEZpbGUuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kcyBleGVjdXRlZCB3aGVuIGNhbmNlbCBidXR0b24gaXMgY2xpY2tlZC5cbiAgICogQ2xlYXJzIGZpbGVzLlxuICAgKi9cbiAgX2NhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgICAvLyBjaGVjayBpZiB0aGUgZmlsZSBpbnB1dCBpcyByZW5kZXJlZCBiZWZvcmUgY2xlYXJpbmcgaXRcbiAgICBpZiAodGhpcy5maWxlSW5wdXQpIHtcbiAgICAgIHRoaXMuZmlsZUlucHV0LmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIE1ldGhvZCBleGVjdXRlZCB3aGVuIHRoZSBkaXNhYmxlZCB2YWx1ZSBjaGFuZ2VzICovXG4gIG9uRGlzYWJsZWRDaGFuZ2UodjogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9jYW5jZWwoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjx0ZC1maWxlLWlucHV0XG4gICpuZ0lmPVwiIXZhbHVlXCJcbiAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgW2NvbG9yXT1cImRlZmF1bHRDb2xvclwiXG4gIChzZWxlY3RGaWxlKT1cIihoYW5kbGVTZWxlY3QpXCJcbj5cbiAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiaW5wdXRMYWJlbFwiIFtuZ0lmXT1cInRydWVcIj48L25nLXRlbXBsYXRlPlxuPC90ZC1maWxlLWlucHV0PlxuPGRpdiAqbmdJZj1cInZhbHVlXCI+XG4gIDxidXR0b25cbiAgICAjZmlsZVVwbG9hZFxuICAgIGNsYXNzPVwidGQtZmlsZS11cGxvYWRcIlxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2NvbG9yXT1cImFjdGl2ZUNvbG9yXCJcbiAgICAoa2V5dXAuZGVsZXRlKT1cIl9jYW5jZWwoKVwiXG4gICAgKGtleXVwLmJhY2tzcGFjZSk9XCJfY2FuY2VsKClcIlxuICAgIChrZXl1cC5lc2NhcGUpPVwiX2NhbmNlbCgpXCJcbiAgICAoY2xpY2spPVwidXBsb2FkUHJlc3NlZCgpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cInRkLWZpbGUtdXBsb2FkLWNhbmNlbFwiXG4gICAgW2NvbG9yXT1cImNhbmNlbENvbG9yXCJcbiAgICAoY2xpY2spPVwiX2NhbmNlbCgpXCJcbiAgPlxuICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -1,64 +0,0 @@
1
- import { Injectable, Optional } from '@angular/core';
2
- import { HttpClient, HttpRequest, HttpEventType, HttpHeaders, HttpParams, } from '@angular/common/http';
3
- import { Subject } from 'rxjs';
4
- import { tap } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- export class TdFileService {
8
- /**
9
- * Gets progress observable to keep track of the files being uploaded.
10
- * Needs to be supported by backend.
11
- */
12
- get progress() {
13
- return this._progressObservable;
14
- }
15
- /**
16
- * Creates a new instance
17
- * @param _http the http client instance
18
- * @breaking-change 3.0.0 remove 'Optional' decorator once the legay upload method is removed
19
- */
20
- constructor(_http) {
21
- this._http = _http;
22
- this._progressSubject = new Subject();
23
- this._progressObservable = this._progressSubject.asObservable();
24
- }
25
- /**
26
- * Uploads a file to a URL.
27
- */
28
- send(url, method, body, { headers, params } = {}) {
29
- if (!this._http) {
30
- throw new Error('The HttpClient module needs to be imported at root module level');
31
- }
32
- const req = new HttpRequest(method.toUpperCase(), url, body, {
33
- reportProgress: true,
34
- headers: new HttpHeaders(headers || {}),
35
- params: new HttpParams({ fromObject: params || {} }),
36
- });
37
- return this._http
38
- .request(req)
39
- .pipe(tap((event) => this.handleEvent(event)));
40
- }
41
- handleEvent(event) {
42
- switch (event.type) {
43
- case HttpEventType.Sent:
44
- this._progressSubject.next(0);
45
- break;
46
- case HttpEventType.UploadProgress:
47
- this._progressSubject.next(Math.round((100 * event.loaded) / (event.total ?? 0)));
48
- break;
49
- case HttpEventType.Response:
50
- this._progressSubject.next(100);
51
- break;
52
- default:
53
- break;
54
- }
55
- }
56
- }
57
- TdFileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileService, deps: [{ token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
58
- TdFileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileService });
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: TdFileService, decorators: [{
60
- type: Injectable
61
- }], ctorParameters: function () { return [{ type: i1.HttpClient, decorators: [{
62
- type: Optional
63
- }] }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2ZpbGUvc3JjL3NlcnZpY2VzL2ZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFFWCxhQUFhLEVBQ2IsV0FBVyxFQUNYLFVBQVUsR0FDWCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRckMsTUFBTSxPQUFPLGFBQWE7SUFJeEI7OztPQUdHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUF5QyxLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBaEJsRCxxQkFBZ0IsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQWlCaEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLENBQ0YsR0FBVyxFQUNYLE1BQWMsRUFDZCxJQUFxQixFQUNyQixFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQW9CLEVBQUU7UUFFdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUNiLGlFQUFpRSxDQUNsRSxDQUFDO1NBQ0g7UUFDRCxNQUFNLEdBQUcsR0FBaUMsSUFBSSxXQUFXLENBQ3ZELE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFDcEIsR0FBRyxFQUNILElBQUksRUFDSjtZQUNFLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7U0FDckQsQ0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLFdBQVcsQ0FBVSxLQUFtQjtRQUM5QyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDbEIsS0FBSyxhQUFhLENBQUMsSUFBSTtnQkFDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssYUFBYSxDQUFDLGNBQWM7Z0JBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN0RCxDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLGFBQWEsQ0FBQyxRQUFRO2dCQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtTQUNUO0lBQ0gsQ0FBQzs7MEdBbEVVLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVOzswQkFrQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwUmVxdWVzdCxcbiAgSHR0cEV2ZW50LFxuICBIdHRwRXZlbnRUeXBlLFxuICBIdHRwSGVhZGVycyxcbiAgSHR0cFBhcmFtcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElVcGxvYWRFeHRyYXMge1xuICBoZWFkZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfTtcbiAgcGFyYW1zPzogeyBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH07XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZEZpbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfcHJvZ3Jlc3NTdWJqZWN0OiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHByaXZhdGUgX3Byb2dyZXNzT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHByb2dyZXNzIG9ic2VydmFibGUgdG8ga2VlcCB0cmFjayBvZiB0aGUgZmlsZXMgYmVpbmcgdXBsb2FkZWQuXG4gICAqIE5lZWRzIHRvIGJlIHN1cHBvcnRlZCBieSBiYWNrZW5kLlxuICAgKi9cbiAgZ2V0IHByb2dyZXNzKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb2dyZXNzT2JzZXJ2YWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlXG4gICAqIEBwYXJhbSBfaHR0cCB0aGUgaHR0cCBjbGllbnQgaW5zdGFuY2VcbiAgICogQGJyZWFraW5nLWNoYW5nZSAzLjAuMCByZW1vdmUgJ09wdGlvbmFsJyBkZWNvcmF0b3Igb25jZSB0aGUgbGVnYXkgdXBsb2FkIG1ldGhvZCBpcyByZW1vdmVkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9odHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgdGhpcy5fcHJvZ3Jlc3NPYnNlcnZhYmxlID0gdGhpcy5fcHJvZ3Jlc3NTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZHMgYSBmaWxlIHRvIGEgVVJMLlxuICAgKi9cbiAgc2VuZChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBtZXRob2Q6IHN0cmluZyxcbiAgICBib2R5OiBGaWxlIHwgRm9ybURhdGEsXG4gICAgeyBoZWFkZXJzLCBwYXJhbXMgfTogSVVwbG9hZEV4dHJhcyA9IHt9XG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICBpZiAoIXRoaXMuX2h0dHApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZSBIdHRwQ2xpZW50IG1vZHVsZSBuZWVkcyB0byBiZSBpbXBvcnRlZCBhdCByb290IG1vZHVsZSBsZXZlbCdcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHJlcTogSHR0cFJlcXVlc3Q8RmlsZSB8IEZvcm1EYXRhPiA9IG5ldyBIdHRwUmVxdWVzdChcbiAgICAgIG1ldGhvZC50b1VwcGVyQ2FzZSgpLFxuICAgICAgdXJsLFxuICAgICAgYm9keSxcbiAgICAgIHtcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyhoZWFkZXJzIHx8IHt9KSxcbiAgICAgICAgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IHBhcmFtcyB8fCB7fSB9KSxcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLl9odHRwXG4gICAgICAucmVxdWVzdChyZXEpXG4gICAgICAucGlwZSh0YXAoKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4gdGhpcy5oYW5kbGVFdmVudChldmVudCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXZlbnQ8VCA9IGFueT4oZXZlbnQ6IEh0dHBFdmVudDxUPik6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XG4gICAgICAgIHRoaXMuX3Byb2dyZXNzU3ViamVjdC5uZXh0KDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcbiAgICAgICAgdGhpcy5fcHJvZ3Jlc3NTdWJqZWN0Lm5leHQoXG4gICAgICAgICAgTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIChldmVudC50b3RhbCA/PyAwKSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgIHRoaXMuX3Byb2dyZXNzU3ViamVjdC5uZXh0KDEwMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=