@covalent/core 9.1.3 → 10.0.1

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 (222) hide show
  1. package/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +1 -1
  2. package/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  3. package/breadcrumbs/breadcrumbs.module.d.ts +5 -3
  4. package/common/common.module.d.ts +5 -1
  5. package/common/directives/fullscreen/fullscreen.directive.d.ts +1 -1
  6. package/common/forms/auto-trim/auto-trim.directive.d.ts +1 -1
  7. package/common/material-icons.css +1 -1
  8. package/common/pipes/bytes/bytes.pipe.d.ts +1 -1
  9. package/common/pipes/decimal-bytes/decimal-bytes.pipe.d.ts +1 -1
  10. package/common/pipes/digits/digits.pipe.d.ts +1 -1
  11. package/common/pipes/time-ago/time-ago.pipe.d.ts +1 -1
  12. package/common/pipes/time-difference/time-difference.pipe.d.ts +1 -1
  13. package/common/pipes/time-until/time-until.pipe.d.ts +1 -1
  14. package/common/pipes/truncate/truncate.pipe.d.ts +1 -1
  15. package/common/platform.css +1 -1
  16. package/common/platform.css.map +1 -1
  17. package/dialogs/alert-dialog/alert-dialog.component.d.ts +1 -1
  18. package/dialogs/confirm-dialog/confirm-dialog.component.d.ts +1 -1
  19. package/dialogs/dialog.component.d.ts +5 -5
  20. package/dialogs/dialogs.module.d.ts +5 -9
  21. package/dialogs/prompt-dialog/prompt-dialog.component.d.ts +1 -1
  22. package/dialogs/status-dialog/status-dialog.component.d.ts +1 -1
  23. package/dialogs/window-dialog/window-dialog.component.d.ts +1 -1
  24. package/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.d.ts +1 -1
  25. package/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.d.ts +1 -1
  26. package/dynamic-menu/dynamic-menu.component.d.ts +1 -1
  27. package/dynamic-menu/dynamic-menu.module.d.ts +5 -7
  28. package/fesm2022/covalent-core-breadcrumbs.mjs +83 -44
  29. package/fesm2022/covalent-core-breadcrumbs.mjs.map +1 -1
  30. package/fesm2022/covalent-core-common.mjs +146 -138
  31. package/fesm2022/covalent-core-common.mjs.map +1 -1
  32. package/fesm2022/covalent-core-dialogs.mjs +448 -169
  33. package/fesm2022/covalent-core-dialogs.mjs.map +1 -1
  34. package/fesm2022/covalent-core-dynamic-menu.mjs +351 -82
  35. package/fesm2022/covalent-core-dynamic-menu.mjs.map +1 -1
  36. package/fesm2022/covalent-core-file.mjs +256 -181
  37. package/fesm2022/covalent-core-file.mjs.map +1 -1
  38. package/fesm2022/covalent-core-json-formatter.mjs +119 -31
  39. package/fesm2022/covalent-core-json-formatter.mjs.map +1 -1
  40. package/fesm2022/covalent-core-layout.mjs +738 -384
  41. package/fesm2022/covalent-core-layout.mjs.map +1 -1
  42. package/fesm2022/covalent-core-loading.mjs +98 -76
  43. package/fesm2022/covalent-core-loading.mjs.map +1 -1
  44. package/fesm2022/covalent-core-menu.mjs +33 -19
  45. package/fesm2022/covalent-core-menu.mjs.map +1 -1
  46. package/fesm2022/covalent-core-message.mjs +112 -53
  47. package/fesm2022/covalent-core-message.mjs.map +1 -1
  48. package/fesm2022/covalent-core-search.mjs +260 -193
  49. package/fesm2022/covalent-core-search.mjs.map +1 -1
  50. package/fesm2022/covalent-core-side-sheet.mjs +224 -192
  51. package/fesm2022/covalent-core-side-sheet.mjs.map +1 -1
  52. package/fesm2022/covalent-core-user-profile.mjs +118 -59
  53. package/fesm2022/covalent-core-user-profile.mjs.map +1 -1
  54. package/file/directives/file-drop.directive.d.ts +1 -1
  55. package/file/directives/file-select.directive.d.ts +1 -1
  56. package/file/file-input/file-input.component.d.ts +2 -2
  57. package/file/file-upload/file-upload.component.d.ts +1 -1
  58. package/file/file.module.d.ts +5 -6
  59. package/json-formatter/json-formatter.component.d.ts +1 -1
  60. package/json-formatter/json-formatter.module.d.ts +5 -4
  61. package/layout/layout-card-over/layout-card-over.component.d.ts +1 -1
  62. package/layout/layout-footer/layout-footer.component.d.ts +1 -1
  63. package/layout/layout-manage-list/layout-manage-list.component.d.ts +1 -1
  64. package/layout/layout-manage-list/layout-manage-list.directives.d.ts +3 -3
  65. package/layout/layout-nav/layout-nav.component.d.ts +1 -1
  66. package/layout/layout-nav-list/layout-nav-list.component.d.ts +1 -1
  67. package/layout/layout-nav-list/layout-nav-list.directives.d.ts +3 -3
  68. package/layout/layout-toggle.class.d.ts +1 -1
  69. package/layout/layout.component.d.ts +1 -1
  70. package/layout/layout.directives.d.ts +3 -3
  71. package/layout/layout.module.d.ts +5 -10
  72. package/layout/navigation-drawer/navigation-drawer.component.d.ts +3 -3
  73. package/loading/directives/loading.directive.d.ts +1 -1
  74. package/loading/loading.component.d.ts +1 -1
  75. package/loading/loading.module.d.ts +1 -6
  76. package/menu/menu.component.d.ts +1 -1
  77. package/menu/menu.module.d.ts +5 -4
  78. package/message/message.component.d.ts +2 -2
  79. package/message/message.module.d.ts +5 -3
  80. package/package.json +13 -38
  81. package/search/search-box/search-box.component.d.ts +1 -1
  82. package/search/search-input/search-input.component.d.ts +1 -1
  83. package/search/search.module.d.ts +5 -6
  84. package/side-sheet/side-sheet-container.d.ts +2 -2
  85. package/side-sheet/side-sheet.content-directives.d.ts +5 -5
  86. package/side-sheet/side-sheet.d.ts +1 -1
  87. package/side-sheet/side-sheet.module.d.ts +5 -4
  88. package/theming/prebuilt/all-theme-dark.css +1 -1
  89. package/theming/prebuilt/all-theme-dark.css.map +1 -1
  90. package/theming/prebuilt/all-theme-light.css +1 -1
  91. package/theming/prebuilt/all-theme-light.css.map +1 -1
  92. package/theming/prebuilt/blue-grey-deep-orange.css +1 -1
  93. package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
  94. package/theming/prebuilt/blue-orange.css +1 -1
  95. package/theming/prebuilt/blue-orange.css.map +1 -1
  96. package/theming/prebuilt/indigo-pink.css +1 -1
  97. package/theming/prebuilt/indigo-pink.css.map +1 -1
  98. package/theming/prebuilt/orange-light-blue.css +1 -1
  99. package/theming/prebuilt/orange-light-blue.css.map +1 -1
  100. package/theming/prebuilt/teal-orange.css +1 -1
  101. package/theming/prebuilt/teal-orange.css.map +1 -1
  102. package/user-profile/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  103. package/user-profile/user-profile.component.d.ts +1 -1
  104. package/user-profile/user-profile.module.d.ts +5 -8
  105. package/esm2022/breadcrumbs/breadcrumb/breadcrumb.component.mjs +0 -94
  106. package/esm2022/breadcrumbs/breadcrumbs.component.mjs +0 -142
  107. package/esm2022/breadcrumbs/breadcrumbs.module.mjs +0 -20
  108. package/esm2022/breadcrumbs/covalent-core-breadcrumbs.mjs +0 -5
  109. package/esm2022/breadcrumbs/public_api.mjs +0 -4
  110. package/esm2022/common/animations/bounce/bounce.animation.mjs +0 -70
  111. package/esm2022/common/animations/collapse/collapse.animation.mjs +0 -51
  112. package/esm2022/common/animations/common/interfaces.mjs +0 -2
  113. package/esm2022/common/animations/fade/fadeInOut.animation.mjs +0 -37
  114. package/esm2022/common/animations/flash/flash.animation.mjs +0 -34
  115. package/esm2022/common/animations/headshake/headshake.animation.mjs +0 -47
  116. package/esm2022/common/animations/jello/jello.animation.mjs +0 -59
  117. package/esm2022/common/animations/pulse/pulse.animation.mjs +0 -32
  118. package/esm2022/common/animations/rotate/rotate.animation.mjs +0 -30
  119. package/esm2022/common/behaviors/control-value-accesor.mixin.mjs +0 -43
  120. package/esm2022/common/behaviors/disable-ripple.mixin.mjs +0 -24
  121. package/esm2022/common/behaviors/disabled.mixin.mjs +0 -24
  122. package/esm2022/common/common.module.mjs +0 -83
  123. package/esm2022/common/covalent-core-common.mjs +0 -5
  124. package/esm2022/common/directives/fullscreen/fullscreen.directive.mjs +0 -87
  125. package/esm2022/common/forms/auto-trim/auto-trim.directive.mjs +0 -37
  126. package/esm2022/common/forms/validators/validators.mjs +0 -29
  127. package/esm2022/common/functions/clipboard.mjs +0 -23
  128. package/esm2022/common/functions/convert.mjs +0 -84
  129. package/esm2022/common/functions/download.mjs +0 -75
  130. package/esm2022/common/functions/file.mjs +0 -16
  131. package/esm2022/common/pipes/bytes/bytes.pipe.mjs +0 -42
  132. package/esm2022/common/pipes/decimal-bytes/decimal-bytes.pipe.mjs +0 -42
  133. package/esm2022/common/pipes/digits/digits.pipe.mjs +0 -41
  134. package/esm2022/common/pipes/time-ago/time-ago.pipe.mjs +0 -72
  135. package/esm2022/common/pipes/time-difference/time-difference.pipe.mjs +0 -51
  136. package/esm2022/common/pipes/time-until/time-until.pipe.mjs +0 -72
  137. package/esm2022/common/pipes/truncate/truncate.pipe.mjs +0 -27
  138. package/esm2022/common/public_api.mjs +0 -39
  139. package/esm2022/common/services/icon.service.mjs +0 -1087
  140. package/esm2022/common/services/router-path.service.mjs +0 -30
  141. package/esm2022/covalent-core.mjs +0 -5
  142. package/esm2022/dialogs/alert-dialog/alert-dialog.component.mjs +0 -26
  143. package/esm2022/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -31
  144. package/esm2022/dialogs/covalent-core-dialogs.mjs +0 -5
  145. package/esm2022/dialogs/dialog.component.mjs +0 -75
  146. package/esm2022/dialogs/dialogs.module.mjs +0 -94
  147. package/esm2022/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -84
  148. package/esm2022/dialogs/public_api.mjs +0 -10
  149. package/esm2022/dialogs/resizable-draggable-dialog/resizable-draggable-dialog.mjs +0 -222
  150. package/esm2022/dialogs/services/dialog.service.mjs +0 -215
  151. package/esm2022/dialogs/status-dialog/status-dialog.component.mjs +0 -55
  152. package/esm2022/dialogs/window-dialog/window-dialog.component.mjs +0 -40
  153. package/esm2022/dynamic-menu/covalent-core-dynamic-menu.mjs +0 -5
  154. package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-item.component.mjs +0 -30
  155. package/esm2022/dynamic-menu/dynamic-menu-item/dynamic-menu-link/dynamic-menu-link.component.mjs +0 -23
  156. package/esm2022/dynamic-menu/dynamic-menu.component.mjs +0 -28
  157. package/esm2022/dynamic-menu/dynamic-menu.menu.mjs +0 -2
  158. package/esm2022/dynamic-menu/dynamic-menu.module.mjs +0 -55
  159. package/esm2022/dynamic-menu/public_api.mjs +0 -6
  160. package/esm2022/file/covalent-core-file.mjs +0 -5
  161. package/esm2022/file/directives/file-drop.directive.mjs +0 -145
  162. package/esm2022/file/directives/file-select.directive.mjs +0 -78
  163. package/esm2022/file/file-input/file-input.component.mjs +0 -146
  164. package/esm2022/file/file-upload/file-upload.component.mjs +0 -188
  165. package/esm2022/file/file.module.mjs +0 -56
  166. package/esm2022/file/public_api.mjs +0 -7
  167. package/esm2022/file/services/file.service.mjs +0 -66
  168. package/esm2022/json-formatter/collapse.animation.mjs +0 -51
  169. package/esm2022/json-formatter/covalent-core-json-formatter.mjs +0 -5
  170. package/esm2022/json-formatter/json-formatter.component.mjs +0 -222
  171. package/esm2022/json-formatter/json-formatter.module.mjs +0 -20
  172. package/esm2022/json-formatter/public_api.mjs +0 -3
  173. package/esm2022/layout/covalent-core-layout.mjs +0 -5
  174. package/esm2022/layout/layout-card-over/layout-card-over.component.mjs +0 -50
  175. package/esm2022/layout/layout-footer/layout-footer.component.mjs +0 -36
  176. package/esm2022/layout/layout-manage-list/layout-manage-list.component.mjs +0 -92
  177. package/esm2022/layout/layout-manage-list/layout-manage-list.directives.mjs +0 -84
  178. package/esm2022/layout/layout-nav/layout-nav.component.mjs +0 -76
  179. package/esm2022/layout/layout-nav-list/layout-nav-list.component.mjs +0 -154
  180. package/esm2022/layout/layout-nav-list/layout-nav-list.directives.mjs +0 -84
  181. package/esm2022/layout/layout-toggle.class.mjs +0 -96
  182. package/esm2022/layout/layout.component.mjs +0 -91
  183. package/esm2022/layout/layout.directives.mjs +0 -85
  184. package/esm2022/layout/layout.module.mjs +0 -115
  185. package/esm2022/layout/navigation-drawer/navigation-drawer.component.mjs +0 -221
  186. package/esm2022/layout/public_api.mjs +0 -13
  187. package/esm2022/loading/covalent-core-loading.mjs +0 -5
  188. package/esm2022/loading/directives/loading.directive.mjs +0 -133
  189. package/esm2022/loading/loading.component.mjs +0 -193
  190. package/esm2022/loading/loading.module.mjs +0 -41
  191. package/esm2022/loading/public_api.mjs +0 -6
  192. package/esm2022/loading/services/loading.factory.mjs +0 -210
  193. package/esm2022/loading/services/loading.service.mjs +0 -219
  194. package/esm2022/menu/covalent-core-menu.mjs +0 -5
  195. package/esm2022/menu/menu.component.mjs +0 -12
  196. package/esm2022/menu/menu.module.mjs +0 -21
  197. package/esm2022/menu/public_api.mjs +0 -3
  198. package/esm2022/message/collapse.animation.mjs +0 -51
  199. package/esm2022/message/covalent-core-message.mjs +0 -5
  200. package/esm2022/message/message.component.mjs +0 -222
  201. package/esm2022/message/message.module.mjs +0 -25
  202. package/esm2022/message/public_api.mjs +0 -3
  203. package/esm2022/public_api.mjs +0 -2
  204. package/esm2022/search/covalent-core-search.mjs +0 -5
  205. package/esm2022/search/public_api.mjs +0 -4
  206. package/esm2022/search/search-box/search-box.component.mjs +0 -198
  207. package/esm2022/search/search-input/search-input.component.mjs +0 -219
  208. package/esm2022/search/search.module.mjs +0 -37
  209. package/esm2022/side-sheet/covalent-core-side-sheet.mjs +0 -5
  210. package/esm2022/side-sheet/public_api.mjs +0 -6
  211. package/esm2022/side-sheet/side-sheet-container.mjs +0 -285
  212. package/esm2022/side-sheet/side-sheet-ref.mjs +0 -30
  213. package/esm2022/side-sheet/side-sheet.animation.mjs +0 -12
  214. package/esm2022/side-sheet/side-sheet.config.mjs +0 -11
  215. package/esm2022/side-sheet/side-sheet.content-directives.mjs +0 -206
  216. package/esm2022/side-sheet/side-sheet.mjs +0 -236
  217. package/esm2022/side-sheet/side-sheet.module.mjs +0 -45
  218. package/esm2022/user-profile/covalent-core-user-profile.mjs +0 -5
  219. package/esm2022/user-profile/public_api.mjs +0 -4
  220. package/esm2022/user-profile/user-profile-menu/user-profile-menu.component.mjs +0 -25
  221. package/esm2022/user-profile/user-profile.component.mjs +0 -21
  222. package/esm2022/user-profile/user-profile.module.mjs +0 -42
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-file.mjs","sources":["../../../../libs/angular/file/src/directives/file-select.directive.ts","../../../../libs/angular/file/src/directives/file-drop.directive.ts","../../../../libs/angular/file/src/file-input/file-input.component.ts","../../../../libs/angular/file/src/file-input/file-input.component.html","../../../../libs/angular/file/src/file-upload/file-upload.component.ts","../../../../libs/angular/file/src/file-upload/file-upload.component.html","../../../../libs/angular/file/src/services/file.service.ts","../../../../libs/angular/file/src/file.module.ts","../../../../libs/angular/file/src/covalent-core-file.ts"],"sourcesContent":["import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding, Host, Optional } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[tdFileSelect]',\n})\nexport class TdFileSelectDirective {\n private _multiple = false;\n\n /**\n * multiple?: boolean\n * Sets whether multiple files can be selected at once in host element, or just a single file.\n * Can also be 'multiple' native attribute.\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n\n /**\n * fileSelect?: function\n * Event emitted when a file or files are selected in host [HTMLInputElement].\n * Emits a [FileList | File] object.\n * Alternative to not use [(ngModel)].\n */\n @Output() fileSelect: EventEmitter<FileList | File> = new EventEmitter<\n FileList | File\n >();\n\n /**\n * Binds native 'multiple' attribute if [multiple] property is 'true'.\n */\n @HostBinding('attr.multiple')\n get multipleBinding(): string | undefined {\n return this._multiple ? '' : undefined;\n }\n\n constructor(@Optional() @Host() private model: NgModel) {}\n\n /**\n * Listens to 'change' host event to get [HTMLInputElement] files.\n * Emits the 'fileSelect' event with a [FileList] or [File] depending if 'multiple' attr exists in host.\n * Uses [(ngModel)] if declared, instead of emitting 'fileSelect' event.\n */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const fileInputEl: HTMLInputElement = event.target;\n const files: FileList = fileInputEl.files || new FileList();\n if (files.length) {\n const value: FileList | File = this._multiple\n ? files.length > 1\n ? files\n : files[0]\n : files[0];\n this.model\n ? this.model.update.emit(value)\n : this.fileSelect.emit(value);\n }\n }\n }\n}\n","import {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostListener,\n HostBinding,\n ElementRef,\n Renderer2,\n OnInit,\n OnDestroy,\n NgZone,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport class TdFileDropBase {}\n\n@Directive({ selector: '[tdFileDrop]' })\nexport class TdFileDropDirective implements OnInit, OnDestroy {\n private _multiple = false;\n private _dragenterListener?: VoidFunction;\n private _dragleaveListener?: VoidFunction;\n private _dragoverListener?: VoidFunction;\n\n /**\n * multiple?: boolean\n * Sets whether multiple files can be dropped at once in host element, or just a single file.\n * Can also be 'multiple' native attribute.\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n\n @Input() disabled? = false;\n\n /**\n * fileDrop?: function\n * Event emitted when a file or files are dropped in host element after being validated.\n * Emits a [FileList | File] object.\n */\n @Output() fileDrop: EventEmitter<FileList | File> = new EventEmitter<\n FileList | File\n >();\n\n /**\n * Binds native 'multiple' attribute if [multiple] property is 'true'.\n */\n @HostBinding('attr.multiple')\n get multipleBinding(): string | undefined {\n return this._multiple ? '' : undefined;\n }\n\n /**\n * Binds native 'disabled' attribute if [disabled] property is 'true'.\n */\n @HostBinding('attr.disabled')\n get disabledBinding(): string | undefined {\n return this.disabled ? '' : undefined;\n }\n\n constructor(\n private _renderer: Renderer2,\n private _element: ElementRef<HTMLElement>,\n private _ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this._ngZone.runOutsideAngular(() => {\n // Listens to 'dragenter' host event to add animation class 'drop-zone' which can be overriden in host.\n // Stops event propagation and default action from browser for 'dragenter' event.\n this._dragenterListener = this._renderer.listen(\n this._element.nativeElement,\n 'dragenter',\n (event: Event) => {\n if (!this.disabled) {\n this._renderer.addClass(this._element.nativeElement, 'drop-zone');\n }\n this._stopEvent(event);\n }\n );\n\n // Listens to 'dragleave' host event to remove animation class 'drop-zone'.\n // Stops event propagation and default action from browser for 'dragleave' event.\n this._dragleaveListener = this._renderer.listen(\n this._element.nativeElement,\n 'dragleave',\n (event: Event) => {\n this._renderer.removeClass(this._element.nativeElement, 'drop-zone');\n this._stopEvent(event);\n }\n );\n\n // Listens to 'dragover' host event to validate transfer items.\n // Checks if 'multiple' attr exists in host to allow multiple file drops.\n // Stops event propagation and default action from browser for 'dragover' event.\n this._dragoverListener = this._renderer.listen(\n this._element.nativeElement,\n 'dragover',\n (event: DragEvent) => {\n const transfer: DataTransfer =\n event.dataTransfer || new DataTransfer();\n transfer.dropEffect = this._typeCheck(transfer.types);\n if (\n this.disabled ||\n (!this._multiple &&\n ((transfer.items && transfer.items.length > 1) ||\n (<any>transfer).mozItemCount > 1))\n ) {\n transfer.dropEffect = 'none';\n } else {\n transfer.dropEffect = 'copy';\n }\n this._stopEvent(event);\n }\n );\n });\n }\n\n ngOnDestroy(): void {\n this._dragenterListener?.();\n this._dragleaveListener?.();\n this._dragoverListener?.();\n }\n\n /**\n * Listens to 'drop' host event to get validated transfer items.\n * Emits the 'fileDrop' event with a [FileList] or [File] depending if 'multiple' attr exists in host.\n * Stops event propagation and default action from browser for 'drop' event.\n */\n @HostListener('drop', ['$event'])\n onDrop(event: Event): void {\n if (!this.disabled) {\n const transfer: DataTransfer =\n (<DragEvent>event).dataTransfer ?? new DataTransfer();\n const files: FileList = transfer.files;\n if (files.length) {\n const value: FileList | File = this._multiple\n ? files.length > 1\n ? files\n : files[0]\n : files[0];\n this.fileDrop.emit(value);\n }\n }\n this._renderer.removeClass(this._element.nativeElement, 'drop-zone');\n this._stopEvent(event);\n }\n\n /**\n * Validates if the transfer item types are 'Files'.\n */\n private _typeCheck(\n types: ReadonlyArray<string> | DOMStringList\n ): 'none' | 'copy' | 'link' | 'move' {\n let dropEffect: 'none' | 'copy' | 'link' | 'move' = 'none';\n if (\n types &&\n (((<any>types).contains && (<any>types).contains('Files')) ||\n ((<any>types).indexOf && (<any>types).indexOf('Files') !== -1))\n ) {\n dropEffect = 'copy';\n }\n\n return dropEffect;\n }\n\n private _stopEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n Component,\n Directive,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n ChangeDetectorRef,\n forwardRef,\n OnInit,\n OnDestroy,\n NgZone,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\nimport { ENTER } from '@angular/cdk/keycodes';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent, merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport {\n ICanDisable,\n IControlValueAccessor,\n mixinControlValueAccessor,\n mixinDisabled,\n} from '@covalent/core/common';\n\n@Directive({\n selector: '[tdFileInputLabel]ng-template',\n})\nexport class TdFileInputLabelDirective extends TemplatePortalDirective {\n constructor(\n templateRef: TemplateRef<unknown>,\n viewContainerRef: ViewContainerRef\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\nexport class TdFileInputBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\nexport const _TdFileInputMixinBase = mixinControlValueAccessor(\n mixinDisabled(TdFileInputBase)\n);\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdFileInputComponent),\n multi: true,\n },\n ],\n selector: 'td-file-input',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['disabled', 'value'],\n styleUrls: ['./file-input.component.scss'],\n templateUrl: './file-input.component.html',\n})\nexport class TdFileInputComponent\n extends _TdFileInputMixinBase\n implements OnInit, OnDestroy, IControlValueAccessor, ICanDisable\n{\n private _multiple = false;\n\n /** The native `<button class=\"td-file-input\"></button>` element */\n @ViewChild('fileInputButton', { static: true, read: ElementRef })\n _inputButton!: ElementRef<HTMLElement>;\n\n /** The native `<input type=\"file\"> element */\n @ViewChild('fileInput', { static: true })\n _inputElement!: ElementRef<HTMLInputElement>;\n get inputElement(): HTMLInputElement {\n return this._inputElement.nativeElement;\n }\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n * Sets button color. Uses same color palette accepted as [MatButton].\n */\n @Input() color?: 'accent' | 'primary' | 'warn';\n\n /**\n * multiple?: boolean\n * Sets if multiple files can be dropped/selected at once in [TdFileInputComponent].\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n get multiple(): boolean {\n return this._multiple;\n }\n\n /**\n * accept?: string\n * Sets files accepted when opening the file browser dialog.\n * Same as 'accept' attribute in <input/> element.\n */\n @Input() accept?: string;\n\n /**\n * select?: function\n * Event emitted a file is selected\n * Emits a [File | FileList] object.\n */\n @Output() selectFile: EventEmitter<File | FileList> = new EventEmitter<\n File | FileList\n >();\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _ngZone: NgZone,\n private _renderer: Renderer2,\n _changeDetectorRef: ChangeDetectorRef\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n this._ngZone.runOutsideAngular(() => {\n merge(\n fromEvent(this._inputButton.nativeElement, 'click'),\n fromEvent<KeyboardEvent>(this._inputButton.nativeElement, 'keyup').pipe(\n filter((event) => event.keyCode === ENTER)\n )\n )\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => this._inputElement.nativeElement.click());\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n /**\n * Method executed when a file is selected.\n */\n handleSelect(files: File | FileList): void {\n this.writeValue(files);\n this.selectFile.emit(files);\n }\n\n /**\n * Used to clear the selected files from the [TdFileInputComponent].\n */\n clear(): void {\n this.writeValue(undefined);\n this._renderer.setProperty(this.inputElement, 'value', '');\n }\n\n /** Method executed when the disabled value changes */\n override onDisabledChange(v: boolean): void {\n if (v) {\n this.clear();\n }\n }\n /**\n * Sets disable to the component. Implemented as part of ControlValueAccessor.\n */\n override setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<button\n #fileInputButton\n mat-stroked-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","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewChild,\n ContentChild,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n TdFileInputComponent,\n TdFileInputLabelDirective,\n} from '../file-input/file-input.component';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\nexport class TdFileUploadBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdFileUploadComponent),\n multi: true,\n },\n ],\n selector: 'td-file-upload',\n styleUrls: ['./file-upload.component.scss'],\n templateUrl: './file-upload.component.html',\n})\nexport class TdFileUploadComponent implements ControlValueAccessor {\n private _multiple = false;\n private _required = false;\n private _disabled = false;\n\n @ViewChild(TdFileInputComponent) fileInput?: TdFileInputComponent;\n\n @ContentChild(TdFileInputLabelDirective)\n inputLabel?: TdFileInputLabelDirective;\n\n /**\n * defaultColor?: 'accent' | 'primary' | 'warn'\n * Sets browse button color. Uses same color palette accepted as [MatButton] and defaults to 'primary'.\n */\n @Input() defaultColor: 'accent' | 'primary' | 'warn' = 'primary';\n\n /**\n * activeColor?: 'accent' | 'primary' | 'warn'\n * Sets upload button color. Uses same color palette accepted as [MatButton] and defaults to 'accent'.\n */\n @Input() activeColor: 'accent' | 'primary' | 'warn' = 'accent';\n\n /**\n * cancelColor?: 'accent' | 'primary' | 'warn'\n * Sets cancel button color. Uses same color palette accepted as [MatButton] and defaults to 'warn'.\n */\n @Input() cancelColor: 'accent' | 'primary' | 'warn' = 'warn';\n\n /**\n * multiple?: boolean\n * Sets if multiple files can be dropped/selected at once in [TdFileUploadComponent].\n */\n @Input()\n set multiple(multiple: boolean) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n get multiple(): boolean {\n return this._multiple;\n }\n\n /**\n * required?: boolean\n * Forces at least one file upload.\n * Defaults to 'false'\n */\n @Input()\n set required(required: boolean) {\n this._required = coerceBooleanProperty(required);\n }\n get required(): boolean {\n return this._required;\n }\n\n /**\n * accept?: string\n * Sets files accepted when opening the file browser dialog.\n * Same as 'accept' attribute in <input/> element.\n */\n @Input() accept?: string;\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.onDisabledChange(disabled);\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() value?: File | FileList | undefined;\n\n /**\n * select?: function\n * Event emitted when a file is selected.\n * Emits a [File | FileList] object.\n */\n @Output() selectFile: EventEmitter<File | FileList> = new EventEmitter<\n File | FileList\n >();\n\n /**\n * upload?: function\n * Event emitted when upload button is clicked.\n * Emits a [File | FileList] object.\n */\n @Output() upload: EventEmitter<File | FileList | unknown> = new EventEmitter<\n File | FileList | unknown\n >();\n\n /**\n * cancel?: function\n * Event emitted when cancel button is clicked.\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() cancel: EventEmitter<void> = new EventEmitter<void>(); // TODO: check if we can change the name of this emitter\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n writeValue(value: File | FileList): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n //\n }\n\n registerOnTouched(): void {\n //\n }\n\n /**\n * Method executed when upload button is clicked.\n */\n uploadPressed(): void {\n if (this.value) {\n this.upload.emit(this.value);\n }\n }\n\n /**\n * Method executed when a file is selected.\n */\n handleSelect(value: File | FileList | undefined): void {\n if (value) {\n this.value = value;\n this.selectFile.emit(value);\n }\n }\n\n /**\n * Methods executed when cancel button is clicked.\n * Clears files.\n */\n _cancel(): void {\n this.value = undefined;\n this.cancel.emit();\n // check if the file input is rendered before clearing it\n if (this.fileInput) {\n this.fileInput.clear();\n }\n }\n\n /** Method executed when the disabled value changes */\n onDisabledChange(v: boolean): void {\n if (v) {\n this._cancel();\n }\n }\n}\n","<td-file-input\n *ngIf=\"!value\"\n [(ngModel)]=\"value\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n [color]=\"defaultColor\"\n (selectFile)=\"handleSelect(value)\"\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","import { Injectable, Optional } from '@angular/core';\nimport {\n HttpClient,\n HttpRequest,\n HttpEvent,\n HttpEventType,\n HttpHeaders,\n HttpParams,\n} from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nexport interface IUploadExtras {\n headers?: { [name: string]: string | string[] };\n params?: { [param: string]: string | string[] };\n}\n\n@Injectable()\nexport class TdFileService {\n private _progressSubject: Subject<number> = new Subject<number>();\n private _progressObservable: Observable<number>;\n\n /**\n * Gets progress observable to keep track of the files being uploaded.\n * Needs to be supported by backend.\n */\n get progress(): Observable<number> {\n return this._progressObservable;\n }\n\n /**\n * Creates a new instance\n * @param _http the http client instance\n * @breaking-change 3.0.0 remove 'Optional' decorator once the legay upload method is removed\n */\n constructor(@Optional() private readonly _http: HttpClient) {\n this._progressObservable = this._progressSubject.asObservable();\n }\n\n /**\n * Uploads a file to a URL.\n */\n send(\n url: string,\n method: string,\n body: File | FormData,\n { headers, params }: IUploadExtras = {}\n ): Observable<HttpEvent<any>> {\n if (!this._http) {\n throw new Error(\n 'The HttpClient module needs to be imported at root module level'\n );\n }\n const req: HttpRequest<File | FormData> = new HttpRequest(\n method.toUpperCase(),\n url,\n body,\n {\n reportProgress: true,\n headers: new HttpHeaders(headers || {}),\n params: new HttpParams({ fromObject: params || {} }),\n }\n );\n return this._http\n .request(req)\n .pipe(tap((event: HttpEvent<any>) => this.handleEvent(event)));\n }\n\n private handleEvent<T = any>(event: HttpEvent<T>): void {\n switch (event.type) {\n case HttpEventType.Sent:\n this._progressSubject.next(0);\n break;\n case HttpEventType.UploadProgress:\n this._progressSubject.next(\n Math.round((100 * event.loaded) / (event.total ?? 0))\n );\n break;\n case HttpEventType.Response:\n this._progressSubject.next(100);\n break;\n default:\n break;\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { TdFileSelectDirective } from './directives/file-select.directive';\nimport { TdFileDropDirective } from './directives/file-drop.directive';\nimport { TdFileUploadComponent } from './file-upload/file-upload.component';\nimport {\n TdFileInputComponent,\n TdFileInputLabelDirective,\n} from './file-input/file-input.component';\nimport { TdFileService } from './services/file.service';\n\nconst TD_FILE: Type<any>[] = [\n TdFileSelectDirective,\n TdFileDropDirective,\n TdFileUploadComponent,\n TdFileInputComponent,\n TdFileInputLabelDirective,\n];\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatIconModule,\n MatButtonModule,\n PortalModule,\n ],\n declarations: [TD_FILE],\n exports: [TD_FILE],\n providers: [TdFileService],\n})\nexport class CovalentFileModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2.TdFileSelectDirective","i3.TdFileDropDirective","i6.TdFileInputComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;MAQa,qBAAqB,CAAA;AA+BQ,IAAA,KAAA;IA9BhC,SAAS,GAAG,KAAK;AAEzB;;;;AAIG;IACH,IACI,QAAQ,CAAC,QAA0B,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;AAGlD;;;;;AAKG;AACO,IAAA,UAAU,GAAkC,IAAI,YAAY,EAEnE;AAEH;;AAEG;AACH,IAAA,IACI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,SAAS;;AAGxC,IAAA,WAAA,CAAwC,KAAc,EAAA;QAAd,IAAK,CAAA,KAAA,GAAL,KAAK;;AAE7C;;;;AAIG;AAEH,IAAA,QAAQ,CAAC,KAAY,EAAA;AACnB,QAAA,IAAI,KAAK,CAAC,MAAM,YAAY,gBAAgB,EAAE;AAC5C,YAAA,MAAM,WAAW,GAAqB,KAAK,CAAC,MAAM;YAClD,MAAM,KAAK,GAAa,WAAW,CAAC,KAAK,IAAI,IAAI,QAAQ,EAAE;AAC3D,YAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,gBAAA,MAAM,KAAK,GAAoB,IAAI,CAAC;AAClC,sBAAE,KAAK,CAAC,MAAM,GAAG;AACf,0BAAE;AACF,0BAAE,KAAK,CAAC,CAAC;AACX,sBAAE,KAAK,CAAC,CAAC,CAAC;AACZ,gBAAA,IAAI,CAAC;sBACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;sBAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;;wGAnD1B,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA;;0BAgCc;;0BAAY;yCAtBrB,QAAQ,EAAA,CAAA;sBADX;gBAWS,UAAU,EAAA,CAAA;sBAAnB;gBAQG,eAAe,EAAA,CAAA;sBADlB,WAAW;uBAAC,eAAe;gBAa5B,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;;;MC/BvB,cAAc,CAAA;AAAG;MAGjB,mBAAmB,CAAA;AA4CpB,IAAA,SAAA;AACA,IAAA,QAAA;AACA,IAAA,OAAA;IA7CF,SAAS,GAAG,KAAK;AACjB,IAAA,kBAAkB;AAClB,IAAA,kBAAkB;AAClB,IAAA,iBAAiB;AAEzB;;;;AAIG;IACH,IACI,QAAQ,CAAC,QAA0B,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;IAGzC,QAAQ,GAAI,KAAK;AAE1B;;;;AAIG;AACO,IAAA,QAAQ,GAAkC,IAAI,YAAY,EAEjE;AAEH;;AAEG;AACH,IAAA,IACI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,SAAS;;AAGxC;;AAEG;AACH,IAAA,IACI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,SAAS;;AAGvC,IAAA,WAAA,CACU,SAAoB,EACpB,QAAiC,EACjC,OAAe,EAAA;QAFf,IAAS,CAAA,SAAA,GAAT,SAAS;QACT,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAO,CAAA,OAAA,GAAP,OAAO;;IAGjB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;;;YAGlC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC7C,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,WAAW,EACX,CAAC,KAAY,KAAI;AACf,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,oBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;;AAEnE,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxB,aAAC,CACF;;;YAID,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC7C,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,WAAW,EACX,CAAC,KAAY,KAAI;AACf,gBAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;AACpE,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxB,aAAC,CACF;;;;YAKD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC5C,IAAI,CAAC,QAAQ,CAAC,aAAa,EAC3B,UAAU,EACV,CAAC,KAAgB,KAAI;gBACnB,MAAM,QAAQ,GACZ,KAAK,CAAC,YAAY,IAAI,IAAI,YAAY,EAAE;gBAC1C,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACrD,IACE,IAAI,CAAC,QAAQ;qBACZ,CAAC,IAAI,CAAC,SAAS;AACd,yBAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACrC,4BAAA,QAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EACtC;AACA,oBAAA,QAAQ,CAAC,UAAU,GAAG,MAAM;;qBACvB;AACL,oBAAA,QAAQ,CAAC,UAAU,GAAG,MAAM;;AAE9B,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACxB,aAAC,CACF;AACH,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,IAAI;AAC3B,QAAA,IAAI,CAAC,kBAAkB,IAAI;AAC3B,QAAA,IAAI,CAAC,iBAAiB,IAAI;;AAG5B;;;;AAIG;AAEH,IAAA,MAAM,CAAC,KAAY,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,QAAQ,GACA,KAAM,CAAC,YAAY,IAAI,IAAI,YAAY,EAAE;AACvD,YAAA,MAAM,KAAK,GAAa,QAAQ,CAAC,KAAK;AACtC,YAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,gBAAA,MAAM,KAAK,GAAoB,IAAI,CAAC;AAClC,sBAAE,KAAK,CAAC,MAAM,GAAG;AACf,0BAAE;AACF,0BAAE,KAAK,CAAC,CAAC;AACX,sBAAE,KAAK,CAAC,CAAC,CAAC;AACZ,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAG7B,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;AACpE,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;;AAGxB;;AAEG;AACK,IAAA,UAAU,CAChB,KAA4C,EAAA;QAE5C,IAAI,UAAU,GAAsC,MAAM;AAC1D,QAAA,IACE,KAAK;aACJ,CAAO,KAAM,CAAC,QAAQ,IAAU,KAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvD,iBAAO,KAAM,CAAC,OAAO,IAAU,KAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACjE;YACA,UAAU,GAAG,MAAM;;AAGrB,QAAA,OAAO,UAAU;;AAGX,IAAA,UAAU,CAAC,KAAY,EAAA;QAC7B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;;wGAvJd,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;mBAAC,EAAE,QAAQ,EAAE,cAAc,EAAE;4HAajC,QAAQ,EAAA,CAAA;sBADX;gBAKQ,QAAQ,EAAA,CAAA;sBAAhB;gBAOS,QAAQ,EAAA,CAAA;sBAAjB;gBAQG,eAAe,EAAA,CAAA;sBADlB,WAAW;uBAAC,eAAe;gBASxB,eAAe,EAAA,CAAA;sBADlB,WAAW;uBAAC,eAAe;gBA2E5B,MAAM,EAAA,CAAA;sBADL,YAAY;uBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;;;AChG5B,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;IACpE,WACE,CAAA,WAAiC,EACjC,gBAAkC,EAAA;AAElC,QAAA,KAAK,CAAC,WAAW,EAAE,gBAAgB,CAAC;;wGAL3B,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAzB,yBAAyB,EAAA,QAAA,EAAA,+BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AAC1C,iBAAA;;MAUY,eAAe,CAAA;AACP,IAAA,kBAAA;AAAnB,IAAA,WAAA,CAAmB,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;AACtC;AAEY,MAAA,qBAAqB,GAAG,yBAAyB,CAC5D,aAAa,CAAC,eAAe,CAAC;AAkB1B,MAAO,oBACX,SAAQ,qBAAqB,CAAA;AAqDnB,IAAA,OAAA;AACA,IAAA,SAAA;IAnDF,SAAS,GAAG,KAAK;;AAIzB,IAAA,YAAY;;AAIZ,IAAA,aAAa;AACb,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa;;AAGzC;;;AAGG;AACM,IAAA,KAAK;AAEd;;;AAGG;IACH,IACI,QAAQ,CAAC,QAA0B,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;AAElD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB;;;;AAIG;AACM,IAAA,MAAM;AAEf;;;;AAIG;AACO,IAAA,UAAU,GAAkC,IAAI,YAAY,EAEnE;AAEK,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;AAEvC,IAAA,WAAA,CACU,OAAe,EACf,SAAoB,EAC5B,kBAAqC,EAAA;QAErC,KAAK,CAAC,kBAAkB,CAAC;QAJjB,IAAO,CAAA,OAAA,GAAP,OAAO;QACP,IAAS,CAAA,SAAA,GAAT,SAAS;;IAMnB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;AAClC,YAAA,KAAK,CACH,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,EACnD,SAAS,CAAgB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CACrE,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAC3C;AAEA,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9B,iBAAA,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC9D,SAAC,CAAC;;IAGJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;AAGvB;;AAEG;AACH,IAAA,YAAY,CAAC,KAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG7B;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC;;;AAInD,IAAA,gBAAgB,CAAC,CAAU,EAAA;QAClC,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,KAAK,EAAE;;;AAGhB;;AAEG;AACM,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;wGAxGjB,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAbpB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAcmD,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,6KCzEhE,seAuBA,EAAA,MAAA,EAAA,CAAA,uPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FD2Ca,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;sCACS,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EACS,eAAe,EAEjB,MAAA,EAAA,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,seAAA,EAAA,MAAA,EAAA,CAAA,uPAAA,CAAA,EAAA;mIAY7B,YAAY,EAAA,CAAA;sBADX,SAAS;uBAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;gBAKhE,aAAa,EAAA,CAAA;sBADZ,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAU/B,KAAK,EAAA,CAAA;sBAAb;gBAOG,QAAQ,EAAA,CAAA;sBADX;gBAaQ,MAAM,EAAA,CAAA;sBAAd;gBAOS,UAAU,EAAA,CAAA;sBAAnB;;;ME/FU,gBAAgB,CAAA;AACR,IAAA,kBAAA;AAAnB,IAAA,WAAA,CAAmB,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;AACtC;MAeY,qBAAqB,CAAA;AAgGZ,IAAA,kBAAA;IA/FZ,SAAS,GAAG,KAAK;IACjB,SAAS,GAAG,KAAK;IACjB,SAAS,GAAG,KAAK;AAEQ,IAAA,SAAS;AAG1C,IAAA,UAAU;AAEV;;;AAGG;IACM,YAAY,GAAkC,SAAS;AAEhE;;;AAGG;IACM,WAAW,GAAkC,QAAQ;AAE9D;;;AAGG;IACM,WAAW,GAAkC,MAAM;AAE5D;;;AAGG;IACH,IACI,QAAQ,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;AAElD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB;;;;AAIG;IACH,IACI,QAAQ,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;AAElD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB;;;;AAIG;AACM,IAAA,MAAM;IAEf,IACI,QAAQ,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;;AAEjC,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGd,IAAA,KAAK;AAEd;;;;AAIG;AACO,IAAA,UAAU,GAAkC,IAAI,YAAY,EAEnE;AAEH;;;;AAIG;AACO,IAAA,MAAM,GAA4C,IAAI,YAAY,EAEzE;AAEH;;;AAGG;;AAEO,IAAA,MAAM,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAEhE,IAAA,WAAA,CAAoB,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;AAEtC,IAAA,UAAU,CAAC,KAAsB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;;IAGxC,gBAAgB,GAAA;;;IAIhB,iBAAiB,GAAA;;;AAIjB;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAIhC;;AAEG;AACH,IAAA,YAAY,CAAC,KAAkC,EAAA;QAC7C,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAI/B;;;AAGG;IACH,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;;AAElB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;;;;AAK1B,IAAA,gBAAgB,CAAC,CAAU,EAAA;QACzB,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,OAAO,EAAE;;;wGAlJP,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAXrB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAYa,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAF5B,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxCjC,u1BAmCA,EAAA,MAAA,EAAA,CAAA,kVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FDAa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;sCACS,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EACS,gBAAgB,EAAA,QAAA,EAAA,u1BAAA,EAAA,MAAA,EAAA,CAAA,kVAAA,CAAA,EAAA;sFASO,SAAS,EAAA,CAAA;sBAAzC,SAAS;uBAAC,oBAAoB;gBAG/B,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,yBAAyB;gBAO9B,YAAY,EAAA,CAAA;sBAApB;gBAMQ,WAAW,EAAA,CAAA;sBAAnB;gBAMQ,WAAW,EAAA,CAAA;sBAAnB;gBAOG,QAAQ,EAAA,CAAA;sBADX;gBAcG,QAAQ,EAAA,CAAA;sBADX;gBAaQ,MAAM,EAAA,CAAA;sBAAd;gBAGG,QAAQ,EAAA,CAAA;sBADX;gBASQ,KAAK,EAAA,CAAA;sBAAb;gBAOS,UAAU,EAAA,CAAA;sBAAnB;gBASS,MAAM,EAAA,CAAA;sBAAf;gBASS,MAAM,EAAA,CAAA;sBAAf;;;ME/GU,aAAa,CAAA;AAiBiB,IAAA,KAAA;AAhBjC,IAAA,gBAAgB,GAAoB,IAAI,OAAO,EAAU;AACzD,IAAA,mBAAmB;AAE3B;;;AAGG;AACH,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,mBAAmB;;AAGjC;;;;AAIG;AACH,IAAA,WAAA,CAAyC,KAAiB,EAAA;QAAjB,IAAK,CAAA,KAAA,GAAL,KAAK;QAC5C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;;AAGjE;;AAEG;AACH,IAAA,IAAI,CACF,GAAW,EACX,MAAc,EACd,IAAqB,EACrB,EAAE,OAAO,EAAE,MAAM,EAAA,GAAoB,EAAE,EAAA;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE;;AAEH,QAAA,MAAM,GAAG,GAAiC,IAAI,WAAW,CACvD,MAAM,CAAC,WAAW,EAAE,EACpB,GAAG,EACH,IAAI,EACJ;AACE,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,OAAO,EAAE,IAAI,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;YACvC,MAAM,EAAE,IAAI,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;AACrD,SAAA,CACF;QACD,OAAO,IAAI,CAAC;aACT,OAAO,CAAC,GAAG;AACX,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,KAAqB,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;;AAG1D,IAAA,WAAW,CAAU,KAAmB,EAAA;AAC9C,QAAA,QAAQ,KAAK,CAAC,IAAI;YAChB,KAAK,aAAa,CAAC,IAAI;AACrB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7B;YACF,KAAK,aAAa,CAAC,cAAc;gBAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CACtD;gBACD;YACF,KAAK,aAAa,CAAC,QAAQ;AACzB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC/B;AACF,YAAA;gBACE;;;wGAhEK,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAb,aAAa,EAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;0BAkBc;;;AChBf,MAAM,OAAO,GAAgB;IAC3B,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;IACrB,oBAAoB;IACpB,yBAAyB;CAC1B;MAcY,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAnB7B,qBAAqB;YACrB,mBAAmB;YACnB,qBAAqB;YACrB,oBAAoB;AACpB,YAAA,yBAAyB,aAKvB,WAAW;YACX,YAAY;YACZ,aAAa;YACb,eAAe;AACf,YAAA,YAAY,aAbd,qBAAqB;YACrB,mBAAmB;YACnB,qBAAqB;YACrB,oBAAoB;YACpB,yBAAyB,CAAA,EAAA,CAAA;AAed,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAFlB,SAAA,EAAA,CAAC,aAAa,CAAC,YARxB,WAAW;YACX,YAAY;YACZ,aAAa;YACb,eAAe;YACf,YAAY,CAAA,EAAA,CAAA;;4FAMH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,YAAY;wBACZ,aAAa;wBACb,eAAe;wBACf,YAAY;AACb,qBAAA;oBACD,YAAY,EAAE,CAAC,OAAO,CAAC;oBACvB,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,SAAS,EAAE,CAAC,aAAa,CAAC;AAC3B,iBAAA;;;ACtCD;;AAEG;;;;"}
1
+ {"version":3,"file":"covalent-core-file.mjs","sources":["../../../../libs/angular/file/src/directives/file-select.directive.ts","../../../../libs/angular/file/src/directives/file-drop.directive.ts","../../../../libs/angular/file/src/file-input/file-input.component.ts","../../../../libs/angular/file/src/file-input/file-input.component.html","../../../../libs/angular/file/src/file-upload/file-upload.component.html","../../../../libs/angular/file/src/file-upload/file-upload.component.ts","../../../../libs/angular/file/src/services/file.service.ts","../../../../libs/angular/file/src/file.module.ts","../../../../libs/angular/file/src/covalent-core-file.ts"],"sourcesContent":["import { Directive, Input, Output, EventEmitter } from '@angular/core';\nimport { HostListener, HostBinding, Host, Optional } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[tdFileSelect]',\n})\nexport class TdFileSelectDirective {\n private _multiple = false;\n\n /**\n * multiple?: boolean\n * Sets whether multiple files can be selected at once in host element, or just a single file.\n * Can also be 'multiple' native attribute.\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n\n /**\n * fileSelect?: function\n * Event emitted when a file or files are selected in host [HTMLInputElement].\n * Emits a [FileList | File] object.\n * Alternative to not use [(ngModel)].\n */\n @Output() fileSelect: EventEmitter<FileList | File> = new EventEmitter<\n FileList | File\n >();\n\n /**\n * Binds native 'multiple' attribute if [multiple] property is 'true'.\n */\n @HostBinding('attr.multiple')\n get multipleBinding(): string | undefined {\n return this._multiple ? '' : undefined;\n }\n\n constructor(@Optional() @Host() private model: NgModel) {}\n\n /**\n * Listens to 'change' host event to get [HTMLInputElement] files.\n * Emits the 'fileSelect' event with a [FileList] or [File] depending if 'multiple' attr exists in host.\n * Uses [(ngModel)] if declared, instead of emitting 'fileSelect' event.\n */\n @HostListener('change', ['$event'])\n onChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const fileInputEl: HTMLInputElement = event.target;\n const files: FileList = fileInputEl.files || new FileList();\n if (files.length) {\n const value: FileList | File = this._multiple\n ? files.length > 1\n ? files\n : files[0]\n : files[0];\n this.model\n ? this.model.update.emit(value)\n : this.fileSelect.emit(value);\n }\n }\n }\n}\n","import {\n Directive,\n Input,\n Output,\n EventEmitter,\n HostListener,\n HostBinding,\n ElementRef,\n Renderer2,\n OnInit,\n OnDestroy,\n NgZone,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport class TdFileDropBase {}\n\n@Directive({ selector: '[tdFileDrop]' })\nexport class TdFileDropDirective implements OnInit, OnDestroy {\n private _multiple = false;\n private _dragenterListener?: VoidFunction;\n private _dragleaveListener?: VoidFunction;\n private _dragoverListener?: VoidFunction;\n\n /**\n * multiple?: boolean\n * Sets whether multiple files can be dropped at once in host element, or just a single file.\n * Can also be 'multiple' native attribute.\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n\n @Input() disabled? = false;\n\n /**\n * fileDrop?: function\n * Event emitted when a file or files are dropped in host element after being validated.\n * Emits a [FileList | File] object.\n */\n @Output() fileDrop: EventEmitter<FileList | File> = new EventEmitter<\n FileList | File\n >();\n\n /**\n * Binds native 'multiple' attribute if [multiple] property is 'true'.\n */\n @HostBinding('attr.multiple')\n get multipleBinding(): string | undefined {\n return this._multiple ? '' : undefined;\n }\n\n /**\n * Binds native 'disabled' attribute if [disabled] property is 'true'.\n */\n @HostBinding('attr.disabled')\n get disabledBinding(): string | undefined {\n return this.disabled ? '' : undefined;\n }\n\n constructor(\n private _renderer: Renderer2,\n private _element: ElementRef<HTMLElement>,\n private _ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this._ngZone.runOutsideAngular(() => {\n // Listens to 'dragenter' host event to add animation class 'drop-zone' which can be overriden in host.\n // Stops event propagation and default action from browser for 'dragenter' event.\n this._dragenterListener = this._renderer.listen(\n this._element.nativeElement,\n 'dragenter',\n (event: Event) => {\n if (!this.disabled) {\n this._renderer.addClass(this._element.nativeElement, 'drop-zone');\n }\n this._stopEvent(event);\n }\n );\n\n // Listens to 'dragleave' host event to remove animation class 'drop-zone'.\n // Stops event propagation and default action from browser for 'dragleave' event.\n this._dragleaveListener = this._renderer.listen(\n this._element.nativeElement,\n 'dragleave',\n (event: Event) => {\n this._renderer.removeClass(this._element.nativeElement, 'drop-zone');\n this._stopEvent(event);\n }\n );\n\n // Listens to 'dragover' host event to validate transfer items.\n // Checks if 'multiple' attr exists in host to allow multiple file drops.\n // Stops event propagation and default action from browser for 'dragover' event.\n this._dragoverListener = this._renderer.listen(\n this._element.nativeElement,\n 'dragover',\n (event: DragEvent) => {\n const transfer: DataTransfer =\n event.dataTransfer || new DataTransfer();\n transfer.dropEffect = this._typeCheck(transfer.types);\n if (\n this.disabled ||\n (!this._multiple &&\n ((transfer.items && transfer.items.length > 1) ||\n (<any>transfer).mozItemCount > 1))\n ) {\n transfer.dropEffect = 'none';\n } else {\n transfer.dropEffect = 'copy';\n }\n this._stopEvent(event);\n }\n );\n });\n }\n\n ngOnDestroy(): void {\n this._dragenterListener?.();\n this._dragleaveListener?.();\n this._dragoverListener?.();\n }\n\n /**\n * Listens to 'drop' host event to get validated transfer items.\n * Emits the 'fileDrop' event with a [FileList] or [File] depending if 'multiple' attr exists in host.\n * Stops event propagation and default action from browser for 'drop' event.\n */\n @HostListener('drop', ['$event'])\n onDrop(event: Event): void {\n if (!this.disabled) {\n const transfer: DataTransfer =\n (<DragEvent>event).dataTransfer ?? new DataTransfer();\n const files: FileList = transfer.files;\n if (files.length) {\n const value: FileList | File = this._multiple\n ? files.length > 1\n ? files\n : files[0]\n : files[0];\n this.fileDrop.emit(value);\n }\n }\n this._renderer.removeClass(this._element.nativeElement, 'drop-zone');\n this._stopEvent(event);\n }\n\n /**\n * Validates if the transfer item types are 'Files'.\n */\n private _typeCheck(\n types: ReadonlyArray<string> | DOMStringList\n ): 'none' | 'copy' | 'link' | 'move' {\n let dropEffect: 'none' | 'copy' | 'link' | 'move' = 'none';\n if (\n types &&\n (((<any>types).contains && (<any>types).contains('Files')) ||\n ((<any>types).indexOf && (<any>types).indexOf('Files') !== -1))\n ) {\n dropEffect = 'copy';\n }\n\n return dropEffect;\n }\n\n private _stopEvent(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import {\n Component,\n Directive,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewChild,\n ElementRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n ChangeDetectorRef,\n forwardRef,\n OnInit,\n OnDestroy,\n NgZone,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\nimport { ENTER } from '@angular/cdk/keycodes';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent, merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport {\n ICanDisable,\n IControlValueAccessor,\n mixinControlValueAccessor,\n mixinDisabled,\n} from '@covalent/core/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TdFileDropDirective } from '../directives/file-drop.directive';\nimport { TdFileSelectDirective } from '../directives/file-select.directive';\n\n@Directive({\n selector: '[tdFileInputLabel]ng-template',\n})\nexport class TdFileInputLabelDirective extends TemplatePortalDirective {\n constructor(\n templateRef: TemplateRef<unknown>,\n viewContainerRef: ViewContainerRef\n ) {\n super(templateRef, viewContainerRef);\n }\n}\n\nexport class TdFileInputBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\nexport const _TdFileInputMixinBase = mixinControlValueAccessor(\n mixinDisabled(TdFileInputBase)\n);\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdFileInputComponent),\n multi: true,\n },\n ],\n selector: 'td-file-input',\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['disabled', 'value'],\n styleUrls: ['./file-input.component.scss'],\n templateUrl: './file-input.component.html',\n imports: [MatButtonModule, TdFileDropDirective, TdFileSelectDirective],\n})\nexport class TdFileInputComponent\n extends _TdFileInputMixinBase\n implements OnInit, OnDestroy, IControlValueAccessor, ICanDisable\n{\n private _multiple = false;\n\n /** The native `<button class=\"td-file-input\"></button>` element */\n @ViewChild('fileInputButton', { static: true, read: ElementRef })\n _inputButton!: ElementRef<HTMLElement>;\n\n /** The native `<input type=\"file\"> element */\n @ViewChild('fileInput', { static: true })\n _inputElement!: ElementRef<HTMLInputElement>;\n get inputElement(): HTMLInputElement {\n return this._inputElement.nativeElement;\n }\n\n /**\n * color?: 'accent' | 'primary' | 'warn'\n * Sets button color. Uses same color palette accepted as [MatButton].\n */\n @Input() color?: 'accent' | 'primary' | 'warn';\n\n /**\n * multiple?: boolean\n * Sets if multiple files can be dropped/selected at once in [TdFileInputComponent].\n */\n @Input()\n set multiple(multiple: boolean | string) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n get multiple(): boolean {\n return this._multiple;\n }\n\n /**\n * accept?: string\n * Sets files accepted when opening the file browser dialog.\n * Same as 'accept' attribute in <input/> element.\n */\n @Input() accept?: string;\n\n /**\n * select?: function\n * Event emitted a file is selected\n * Emits a [File | FileList] object.\n */\n @Output() selectFile: EventEmitter<File | FileList> = new EventEmitter<\n File | FileList\n >();\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n private _ngZone: NgZone,\n private _renderer: Renderer2,\n _changeDetectorRef: ChangeDetectorRef\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n this._ngZone.runOutsideAngular(() => {\n merge(\n fromEvent(this._inputButton.nativeElement, 'click'),\n fromEvent<KeyboardEvent>(this._inputButton.nativeElement, 'keyup').pipe(\n filter((event) => event.keyCode === ENTER)\n )\n )\n .pipe(takeUntil(this._destroy$))\n .subscribe(() => this._inputElement.nativeElement.click());\n });\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n /**\n * Method executed when a file is selected.\n */\n handleSelect(files: File | FileList): void {\n this.writeValue(files);\n this.selectFile.emit(files);\n }\n\n /**\n * Used to clear the selected files from the [TdFileInputComponent].\n */\n clear(): void {\n this.writeValue(undefined);\n this._renderer.setProperty(this.inputElement, 'value', '');\n }\n\n /** Method executed when the disabled value changes */\n override onDisabledChange(v: boolean): void {\n if (v) {\n this.clear();\n }\n }\n /**\n * Sets disable to the component. Implemented as part of ControlValueAccessor.\n */\n override setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<button\n #fileInputButton\n mat-stroked-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","<td-file-input\n *ngIf=\"!value\"\n [(ngModel)]=\"value\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [accept]=\"accept\"\n [color]=\"defaultColor\"\n (selectFile)=\"handleSelect(value)\"\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","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ViewChild,\n ContentChild,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n TdFileInputComponent,\n TdFileInputLabelDirective,\n} from '../file-input/file-input.component';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\n\nexport class TdFileUploadBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdFileUploadComponent),\n multi: true,\n },\n ],\n selector: 'td-file-upload',\n styleUrls: ['./file-upload.component.scss'],\n templateUrl: './file-upload.component.html',\n imports: [CommonModule, FormsModule, TdFileInputComponent, MatButtonModule, MatIcon, CdkPortalOutlet],\n})\nexport class TdFileUploadComponent implements ControlValueAccessor {\n private _multiple = false;\n private _required = false;\n private _disabled = false;\n\n @ViewChild(TdFileInputComponent) fileInput?: TdFileInputComponent;\n\n @ContentChild(TdFileInputLabelDirective)\n inputLabel?: TdFileInputLabelDirective;\n\n /**\n * defaultColor?: 'accent' | 'primary' | 'warn'\n * Sets browse button color. Uses same color palette accepted as [MatButton] and defaults to 'primary'.\n */\n @Input() defaultColor: 'accent' | 'primary' | 'warn' = 'primary';\n\n /**\n * activeColor?: 'accent' | 'primary' | 'warn'\n * Sets upload button color. Uses same color palette accepted as [MatButton] and defaults to 'accent'.\n */\n @Input() activeColor: 'accent' | 'primary' | 'warn' = 'accent';\n\n /**\n * cancelColor?: 'accent' | 'primary' | 'warn'\n * Sets cancel button color. Uses same color palette accepted as [MatButton] and defaults to 'warn'.\n */\n @Input() cancelColor: 'accent' | 'primary' | 'warn' = 'warn';\n\n /**\n * multiple?: boolean\n * Sets if multiple files can be dropped/selected at once in [TdFileUploadComponent].\n */\n @Input()\n set multiple(multiple: boolean) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n get multiple(): boolean {\n return this._multiple;\n }\n\n /**\n * required?: boolean\n * Forces at least one file upload.\n * Defaults to 'false'\n */\n @Input()\n set required(required: boolean) {\n this._required = coerceBooleanProperty(required);\n }\n get required(): boolean {\n return this._required;\n }\n\n /**\n * accept?: string\n * Sets files accepted when opening the file browser dialog.\n * Same as 'accept' attribute in <input/> element.\n */\n @Input() accept?: string;\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.onDisabledChange(disabled);\n }\n get disabled(): boolean {\n return this._disabled;\n }\n\n @Input() value?: File | FileList | undefined;\n\n /**\n * select?: function\n * Event emitted when a file is selected.\n * Emits a [File | FileList] object.\n */\n @Output() selectFile: EventEmitter<File | FileList> = new EventEmitter<\n File | FileList\n >();\n\n /**\n * upload?: function\n * Event emitted when upload button is clicked.\n * Emits a [File | FileList] object.\n */\n @Output() upload: EventEmitter<File | FileList | unknown> = new EventEmitter<\n File | FileList | unknown\n >();\n\n /**\n * cancel?: function\n * Event emitted when cancel button is clicked.\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() cancel: EventEmitter<void> = new EventEmitter<void>(); // TODO: check if we can change the name of this emitter\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n writeValue(value: File | FileList): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n //\n }\n\n registerOnTouched(): void {\n //\n }\n\n /**\n * Method executed when upload button is clicked.\n */\n uploadPressed(): void {\n if (this.value) {\n this.upload.emit(this.value);\n }\n }\n\n /**\n * Method executed when a file is selected.\n */\n handleSelect(value: File | FileList | undefined): void {\n if (value) {\n this.value = value;\n this.selectFile.emit(value);\n }\n }\n\n /**\n * Methods executed when cancel button is clicked.\n * Clears files.\n */\n _cancel(): void {\n this.value = undefined;\n this.cancel.emit();\n // check if the file input is rendered before clearing it\n if (this.fileInput) {\n this.fileInput.clear();\n }\n }\n\n /** Method executed when the disabled value changes */\n onDisabledChange(v: boolean): void {\n if (v) {\n this._cancel();\n }\n }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport {\n HttpClient,\n HttpRequest,\n HttpEvent,\n HttpEventType,\n HttpHeaders,\n HttpParams,\n} from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nexport interface IUploadExtras {\n headers?: { [name: string]: string | string[] };\n params?: { [param: string]: string | string[] };\n}\n\n@Injectable()\nexport class TdFileService {\n private _progressSubject: Subject<number> = new Subject<number>();\n private _progressObservable: Observable<number>;\n\n /**\n * Gets progress observable to keep track of the files being uploaded.\n * Needs to be supported by backend.\n */\n get progress(): Observable<number> {\n return this._progressObservable;\n }\n\n /**\n * Creates a new instance\n * @param _http the http client instance\n * @breaking-change 3.0.0 remove 'Optional' decorator once the legay upload method is removed\n */\n constructor(@Optional() private readonly _http: HttpClient) {\n this._progressObservable = this._progressSubject.asObservable();\n }\n\n /**\n * Uploads a file to a URL.\n */\n send(\n url: string,\n method: string,\n body: File | FormData,\n { headers, params }: IUploadExtras = {}\n ): Observable<HttpEvent<any>> {\n if (!this._http) {\n throw new Error(\n 'The HttpClient module needs to be imported at root module level'\n );\n }\n const req: HttpRequest<File | FormData> = new HttpRequest(\n method.toUpperCase(),\n url,\n body,\n {\n reportProgress: true,\n headers: new HttpHeaders(headers || {}),\n params: new HttpParams({ fromObject: params || {} }),\n }\n );\n return this._http\n .request(req)\n .pipe(tap((event: HttpEvent<any>) => this.handleEvent(event)));\n }\n\n private handleEvent<T = any>(event: HttpEvent<T>): void {\n switch (event.type) {\n case HttpEventType.Sent:\n this._progressSubject.next(0);\n break;\n case HttpEventType.UploadProgress:\n this._progressSubject.next(\n Math.round((100 * event.loaded) / (event.total ?? 0))\n );\n break;\n case HttpEventType.Response:\n this._progressSubject.next(100);\n break;\n default:\n break;\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\nimport { TdFileSelectDirective } from './directives/file-select.directive';\nimport { TdFileDropDirective } from './directives/file-drop.directive';\nimport { TdFileUploadComponent } from './file-upload/file-upload.component';\nimport {\n TdFileInputComponent,\n TdFileInputLabelDirective,\n} from './file-input/file-input.component';\nimport { TdFileService } from './services/file.service';\n\nconst TD_FILE: Type<any>[] = [\n TdFileSelectDirective,\n TdFileDropDirective,\n TdFileUploadComponent,\n TdFileInputComponent,\n TdFileInputLabelDirective,\n];\n\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\n@NgModule({\n imports: [TD_FILE],\n exports: [TD_FILE],\n providers: [TdFileService],\n})\nexport class CovalentFileModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -1,13 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, Optional, Input, NgModule } from '@angular/core';
3
- import * as i2 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import * as i3 from '@angular/material/tooltip';
6
- import { MatTooltipModule } from '@angular/material/tooltip';
7
- import * as i4 from '@angular/material/icon';
8
- import { MatIconModule } from '@angular/material/icon';
9
3
  import * as i1 from '@angular/cdk/bidi';
10
4
  import { trigger, state, style, AUTO_STYLE, transition, group, query, animateChild, animate } from '@angular/animations';
5
+ import * as i2 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import { MatIcon } from '@angular/material/icon';
8
+ import { MatTooltip } from '@angular/material/tooltip';
11
9
 
12
10
  /**
13
11
  * const tdCollapseAnimation
@@ -59,6 +57,65 @@ const tdCollapseAnimation = trigger('tdCollapse', [
59
57
  ], { params: { duration: 150, delay: '0', ease: 'ease-out' } }),
60
58
  ]);
61
59
 
60
+ function TdJsonFormatterComponent_mat_icon_2_Template(rf, ctx) { if (rf & 1) {
61
+ i0.ɵɵelementStart(0, "mat-icon", 9);
62
+ i0.ɵɵtext(1);
63
+ i0.ɵɵelementEnd();
64
+ } if (rf & 2) {
65
+ const ctx_r0 = i0.ɵɵnextContext();
66
+ i0.ɵɵadvance();
67
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.open ? "keyboard_arrow_down" : ctx_r0.isRTL ? "keyboard_arrow_left" : "keyboard_arrow_right", " ");
68
+ } }
69
+ function TdJsonFormatterComponent_span_3_Template(rf, ctx) { if (rf & 1) {
70
+ i0.ɵɵelementStart(0, "span", 10);
71
+ i0.ɵɵtext(1);
72
+ i0.ɵɵelementEnd();
73
+ } if (rf & 2) {
74
+ const ctx_r0 = i0.ɵɵnextContext();
75
+ i0.ɵɵadvance();
76
+ i0.ɵɵtextInterpolate1("", ctx_r0.key, ":");
77
+ } }
78
+ function TdJsonFormatterComponent_span_5_span_3_Template(rf, ctx) { if (rf & 1) {
79
+ i0.ɵɵelementStart(0, "span", 14);
80
+ i0.ɵɵtext(1);
81
+ i0.ɵɵelementEnd();
82
+ } if (rf & 2) {
83
+ const ctx_r0 = i0.ɵɵnextContext(2);
84
+ i0.ɵɵadvance();
85
+ i0.ɵɵtextInterpolate1("[", ctx_r0.data["length"], "]");
86
+ } }
87
+ function TdJsonFormatterComponent_span_5_Template(rf, ctx) { if (rf & 1) {
88
+ i0.ɵɵelementStart(0, "span", 11)(1, "span", 12);
89
+ i0.ɵɵtext(2);
90
+ i0.ɵɵelementEnd();
91
+ i0.ɵɵtemplate(3, TdJsonFormatterComponent_span_5_span_3_Template, 2, 1, "span", 13);
92
+ i0.ɵɵelementEnd();
93
+ } if (rf & 2) {
94
+ const ctx_r0 = i0.ɵɵnextContext();
95
+ i0.ɵɵclassProp("td-empty", !ctx_r0.hasChildren());
96
+ i0.ɵɵproperty("matTooltip", ctx_r0.getPreview());
97
+ i0.ɵɵadvance(2);
98
+ i0.ɵɵtextInterpolate(ctx_r0.getObjectName());
99
+ i0.ɵɵadvance();
100
+ i0.ɵɵproperty("ngIf", ctx_r0.isArray());
101
+ } }
102
+ function TdJsonFormatterComponent_span_6_Template(rf, ctx) { if (rf & 1) {
103
+ i0.ɵɵelementStart(0, "span");
104
+ i0.ɵɵtext(1);
105
+ i0.ɵɵelementEnd();
106
+ } if (rf & 2) {
107
+ const ctx_r0 = i0.ɵɵnextContext();
108
+ i0.ɵɵclassMap(ctx_r0.getType(ctx_r0.data));
109
+ i0.ɵɵadvance();
110
+ i0.ɵɵtextInterpolate(ctx_r0.getValue(ctx_r0.data));
111
+ } }
112
+ function TdJsonFormatterComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
113
+ i0.ɵɵelement(0, "td-json-formatter", 15);
114
+ } if (rf & 2) {
115
+ const key_r2 = ctx.$implicit;
116
+ const ctx_r0 = i0.ɵɵnextContext();
117
+ i0.ɵɵproperty("key", key_r2)("data", ctx_r0.data[key_r2])("levelsOpen", ctx_r0.levelsOpen - 1);
118
+ } }
62
119
  class TdJsonFormatterComponent {
63
120
  _changeDetectorRef;
64
121
  _dir;
@@ -257,35 +314,66 @@ class TdJsonFormatterComponent {
257
314
  this._children = Object.keys(this._data ?? {});
258
315
  }
259
316
  }
260
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdJsonFormatterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Dir, optional: true }], target: i0.ɵɵFactoryTarget.Component });
261
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: TdJsonFormatterComponent, selector: "td-json-formatter", inputs: { levelsOpen: "levelsOpen", key: "key", data: "data" }, ngImport: i0, template: "<div class=\"td-json-formatter-wrapper\">\n <a\n class=\"td-key\"\n [class.td-key-node]=\"hasChildren()\"\n [class.td-key-leaf]=\"!hasChildren()\"\n [tabIndex]=\"isObject() ? 0 : -1\"\n (keydown.enter)=\"toggle()\"\n (click)=\"toggle()\"\n >\n <mat-icon class=\"td-node-icon\" *ngIf=\"hasChildren()\">\n {{\n open\n ? 'keyboard_arrow_down'\n : isRTL\n ? 'keyboard_arrow_left'\n : 'keyboard_arrow_right'\n }}\n </mat-icon>\n <span *ngIf=\"key\" class=\"key\">{{ key }}:</span>\n <span class=\"value\">\n <span\n [class.td-empty]=\"!hasChildren()\"\n *ngIf=\"isObject()\"\n [matTooltip]=\"getPreview()\"\n matTooltipPosition=\"after\"\n >\n <span class=\"td-object-name\">{{ getObjectName() }}</span>\n <span class=\"td-array-length\" *ngIf=\"isArray()\"\n >[{{ data['length'] }}]</span\n >\n </span>\n <span *ngIf=\"!isObject()\" [class]=\"getType(data)\">{{\n getValue(data)\n }}</span>\n </span>\n </a>\n <div class=\"td-object-children\" [@tdCollapse]=\"!(hasChildren() && open)\">\n <ng-template let-key ngFor [ngForOf]=\"children\">\n <td-json-formatter\n [key]=\"key\"\n [data]=\"data[key]\"\n [levelsOpen]=\"levelsOpen - 1\"\n ></td-json-formatter>\n </ng-template>\n </div>\n</div>\n", styles: [":host{display:block}.td-json-formatter-wrapper{padding-top:2px;padding-bottom:2px}.td-json-formatter-wrapper .td-key{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;align-content:center;max-width:100%;justify-content:flex-start}.td-json-formatter-wrapper .td-key.td-key-node:hover{cursor:pointer}.td-json-formatter-wrapper .td-object-children.ng-animating{overflow:hidden}.td-json-formatter-wrapper .td-object-children .td-key,.td-json-formatter-wrapper .td-object-children .td-object-children{padding-left:24px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children{padding-right:24px;padding-left:0}.td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,.td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-left:48px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-right:48px;padding-left:0}.td-json-formatter-wrapper .value{margin-left:5px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .value{padding-right:5px;padding-left:0}.td-json-formatter-wrapper .value .td-empty{opacity:.5;text-decoration:line-through}.td-json-formatter-wrapper .value .string,.td-json-formatter-wrapper .value .date{word-break:break-word}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: TdJsonFormatterComponent, selector: "td-json-formatter", inputs: ["levelsOpen", "key", "data"] }], animations: [tdCollapseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush });
317
+ static ɵfac = function TdJsonFormatterComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdJsonFormatterComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Dir, 8)); };
318
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdJsonFormatterComponent, selectors: [["td-json-formatter"]], inputs: { levelsOpen: "levelsOpen", key: "key", data: "data" }, decls: 9, vars: 11, consts: [[1, "td-json-formatter-wrapper"], [1, "td-key", 3, "keydown.enter", "click", "tabIndex"], ["class", "td-node-icon", 4, "ngIf"], ["class", "key", 4, "ngIf"], [1, "value"], ["matTooltipPosition", "after", 3, "td-empty", "matTooltip", 4, "ngIf"], [3, "class", 4, "ngIf"], [1, "td-object-children"], ["ngFor", "", 3, "ngForOf"], [1, "td-node-icon"], [1, "key"], ["matTooltipPosition", "after", 3, "matTooltip"], [1, "td-object-name"], ["class", "td-array-length", 4, "ngIf"], [1, "td-array-length"], [3, "key", "data", "levelsOpen"]], template: function TdJsonFormatterComponent_Template(rf, ctx) { if (rf & 1) {
319
+ i0.ɵɵelementStart(0, "div", 0)(1, "a", 1);
320
+ i0.ɵɵlistener("keydown.enter", function TdJsonFormatterComponent_Template_a_keydown_enter_1_listener() { return ctx.toggle(); })("click", function TdJsonFormatterComponent_Template_a_click_1_listener() { return ctx.toggle(); });
321
+ i0.ɵɵtemplate(2, TdJsonFormatterComponent_mat_icon_2_Template, 2, 1, "mat-icon", 2)(3, TdJsonFormatterComponent_span_3_Template, 2, 1, "span", 3);
322
+ i0.ɵɵelementStart(4, "span", 4);
323
+ i0.ɵɵtemplate(5, TdJsonFormatterComponent_span_5_Template, 4, 5, "span", 5)(6, TdJsonFormatterComponent_span_6_Template, 2, 3, "span", 6);
324
+ i0.ɵɵelementEnd()();
325
+ i0.ɵɵelementStart(7, "div", 7);
326
+ i0.ɵɵtemplate(8, TdJsonFormatterComponent_ng_template_8_Template, 1, 3, "ng-template", 8);
327
+ i0.ɵɵelementEnd()();
328
+ } if (rf & 2) {
329
+ i0.ɵɵadvance();
330
+ i0.ɵɵclassProp("td-key-node", ctx.hasChildren())("td-key-leaf", !ctx.hasChildren());
331
+ i0.ɵɵproperty("tabIndex", ctx.isObject() ? 0 : -1);
332
+ i0.ɵɵadvance();
333
+ i0.ɵɵproperty("ngIf", ctx.hasChildren());
334
+ i0.ɵɵadvance();
335
+ i0.ɵɵproperty("ngIf", ctx.key);
336
+ i0.ɵɵadvance(2);
337
+ i0.ɵɵproperty("ngIf", ctx.isObject());
338
+ i0.ɵɵadvance();
339
+ i0.ɵɵproperty("ngIf", !ctx.isObject());
340
+ i0.ɵɵadvance();
341
+ i0.ɵɵproperty("@tdCollapse", !(ctx.hasChildren() && ctx.open));
342
+ i0.ɵɵadvance();
343
+ i0.ɵɵproperty("ngForOf", ctx.children);
344
+ } }, dependencies: [TdJsonFormatterComponent, CommonModule, i2.NgForOf, i2.NgIf, MatIcon, MatTooltip], styles: ["[_nghost-%COMP%]{display:block}.td-json-formatter-wrapper[_ngcontent-%COMP%]{padding-top:2px;padding-bottom:2px}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-key[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;align-content:center;max-width:100%;justify-content:flex-start}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-key.td-key-node[_ngcontent-%COMP%]:hover{cursor:pointer}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children.ng-animating[_ngcontent-%COMP%]{overflow:hidden}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%] .td-key[_ngcontent-%COMP%], .td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%]{padding-left:24px} [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key, [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children{padding-right:24px;padding-left:0}.td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%] .td-key.td-key-leaf[_ngcontent-%COMP%], .td-json-formatter-wrapper[_ngcontent-%COMP%] .td-object-children[_ngcontent-%COMP%] .td-object-children.td-key-leaf[_ngcontent-%COMP%]{padding-left:48px} [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf, [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-right:48px;padding-left:0}.td-json-formatter-wrapper[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{margin-left:5px} [dir=rtl] .td-json-formatter-wrapper .value{padding-right:5px;padding-left:0}.td-json-formatter-wrapper[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .td-empty[_ngcontent-%COMP%]{opacity:.5;text-decoration:line-through}.td-json-formatter-wrapper[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .string[_ngcontent-%COMP%], .td-json-formatter-wrapper[_ngcontent-%COMP%] .value[_ngcontent-%COMP%] .date[_ngcontent-%COMP%]{word-break:break-word}"], data: { animation: [tdCollapseAnimation] }, changeDetection: 0 });
262
345
  }
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TdJsonFormatterComponent, decorators: [{
264
- type: Component,
265
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'td-json-formatter', animations: [tdCollapseAnimation], template: "<div class=\"td-json-formatter-wrapper\">\n <a\n class=\"td-key\"\n [class.td-key-node]=\"hasChildren()\"\n [class.td-key-leaf]=\"!hasChildren()\"\n [tabIndex]=\"isObject() ? 0 : -1\"\n (keydown.enter)=\"toggle()\"\n (click)=\"toggle()\"\n >\n <mat-icon class=\"td-node-icon\" *ngIf=\"hasChildren()\">\n {{\n open\n ? 'keyboard_arrow_down'\n : isRTL\n ? 'keyboard_arrow_left'\n : 'keyboard_arrow_right'\n }}\n </mat-icon>\n <span *ngIf=\"key\" class=\"key\">{{ key }}:</span>\n <span class=\"value\">\n <span\n [class.td-empty]=\"!hasChildren()\"\n *ngIf=\"isObject()\"\n [matTooltip]=\"getPreview()\"\n matTooltipPosition=\"after\"\n >\n <span class=\"td-object-name\">{{ getObjectName() }}</span>\n <span class=\"td-array-length\" *ngIf=\"isArray()\"\n >[{{ data['length'] }}]</span\n >\n </span>\n <span *ngIf=\"!isObject()\" [class]=\"getType(data)\">{{\n getValue(data)\n }}</span>\n </span>\n </a>\n <div class=\"td-object-children\" [@tdCollapse]=\"!(hasChildren() && open)\">\n <ng-template let-key ngFor [ngForOf]=\"children\">\n <td-json-formatter\n [key]=\"key\"\n [data]=\"data[key]\"\n [levelsOpen]=\"levelsOpen - 1\"\n ></td-json-formatter>\n </ng-template>\n </div>\n</div>\n", styles: [":host{display:block}.td-json-formatter-wrapper{padding-top:2px;padding-bottom:2px}.td-json-formatter-wrapper .td-key{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;align-content:center;max-width:100%;justify-content:flex-start}.td-json-formatter-wrapper .td-key.td-key-node:hover{cursor:pointer}.td-json-formatter-wrapper .td-object-children.ng-animating{overflow:hidden}.td-json-formatter-wrapper .td-object-children .td-key,.td-json-formatter-wrapper .td-object-children .td-object-children{padding-left:24px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children{padding-right:24px;padding-left:0}.td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,.td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-left:48px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-right:48px;padding-left:0}.td-json-formatter-wrapper .value{margin-left:5px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .value{padding-right:5px;padding-left:0}.td-json-formatter-wrapper .value .td-empty{opacity:.5;text-decoration:line-through}.td-json-formatter-wrapper .value .string,.td-json-formatter-wrapper .value .date{word-break:break-word}\n"] }]
266
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.Dir, decorators: [{
267
- type: Optional
268
- }] }], propDecorators: { levelsOpen: [{
269
- type: Input
270
- }], key: [{
271
- type: Input
272
- }], data: [{
273
- type: Input
274
- }] } });
346
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdJsonFormatterComponent, [{
347
+ type: Component,
348
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'td-json-formatter', imports: [CommonModule, MatIcon, MatTooltip], animations: [tdCollapseAnimation], template: "<div class=\"td-json-formatter-wrapper\">\n <a\n class=\"td-key\"\n [class.td-key-node]=\"hasChildren()\"\n [class.td-key-leaf]=\"!hasChildren()\"\n [tabIndex]=\"isObject() ? 0 : -1\"\n (keydown.enter)=\"toggle()\"\n (click)=\"toggle()\"\n >\n <mat-icon class=\"td-node-icon\" *ngIf=\"hasChildren()\">\n {{\n open\n ? 'keyboard_arrow_down'\n : isRTL\n ? 'keyboard_arrow_left'\n : 'keyboard_arrow_right'\n }}\n </mat-icon>\n <span *ngIf=\"key\" class=\"key\">{{ key }}:</span>\n <span class=\"value\">\n <span\n [class.td-empty]=\"!hasChildren()\"\n *ngIf=\"isObject()\"\n [matTooltip]=\"getPreview()\"\n matTooltipPosition=\"after\"\n >\n <span class=\"td-object-name\">{{ getObjectName() }}</span>\n <span class=\"td-array-length\" *ngIf=\"isArray()\"\n >[{{ data['length'] }}]</span\n >\n </span>\n <span *ngIf=\"!isObject()\" [class]=\"getType(data)\">{{\n getValue(data)\n }}</span>\n </span>\n </a>\n <div class=\"td-object-children\" [@tdCollapse]=\"!(hasChildren() && open)\">\n <ng-template let-key ngFor [ngForOf]=\"children\">\n <td-json-formatter\n [key]=\"key\"\n [data]=\"data[key]\"\n [levelsOpen]=\"levelsOpen - 1\"\n ></td-json-formatter>\n </ng-template>\n </div>\n</div>\n", styles: [":host{display:block}.td-json-formatter-wrapper{padding-top:2px;padding-bottom:2px}.td-json-formatter-wrapper .td-key{box-sizing:border-box;display:flex;flex-direction:row;align-items:flex-start;align-content:center;max-width:100%;justify-content:flex-start}.td-json-formatter-wrapper .td-key.td-key-node:hover{cursor:pointer}.td-json-formatter-wrapper .td-object-children.ng-animating{overflow:hidden}.td-json-formatter-wrapper .td-object-children .td-key,.td-json-formatter-wrapper .td-object-children .td-object-children{padding-left:24px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children{padding-right:24px;padding-left:0}.td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,.td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-left:48px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-key.td-key-leaf,::ng-deep [dir=rtl] .td-json-formatter-wrapper .td-object-children .td-object-children.td-key-leaf{padding-right:48px;padding-left:0}.td-json-formatter-wrapper .value{margin-left:5px}::ng-deep [dir=rtl] .td-json-formatter-wrapper .value{padding-right:5px;padding-left:0}.td-json-formatter-wrapper .value .td-empty{opacity:.5;text-decoration:line-through}.td-json-formatter-wrapper .value .string,.td-json-formatter-wrapper .value .date{word-break:break-word}\n"] }]
349
+ }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.Dir, decorators: [{
350
+ type: Optional
351
+ }] }], { levelsOpen: [{
352
+ type: Input
353
+ }], key: [{
354
+ type: Input
355
+ }], data: [{
356
+ type: Input
357
+ }] }); })();
358
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TdJsonFormatterComponent, { className: "TdJsonFormatterComponent", filePath: "json-formatter.component.ts", lineNumber: 22 }); })();
275
359
 
360
+ /**
361
+ * @deprecated This module is deprecated and will be removed in future versions.
362
+ * Please migrate to using standalone components as soon as possible.
363
+ */
276
364
  class CovalentJsonFormatterModule {
277
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentJsonFormatterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
278
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: CovalentJsonFormatterModule, declarations: [TdJsonFormatterComponent], imports: [CommonModule, MatTooltipModule, MatIconModule], exports: [TdJsonFormatterComponent] });
279
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentJsonFormatterModule, imports: [CommonModule, MatTooltipModule, MatIconModule] });
365
+ static ɵfac = function CovalentJsonFormatterModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentJsonFormatterModule)(); };
366
+ static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentJsonFormatterModule });
367
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [TdJsonFormatterComponent] });
280
368
  }
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: CovalentJsonFormatterModule, decorators: [{
282
- type: NgModule,
283
- args: [{
284
- imports: [CommonModule, MatTooltipModule, MatIconModule],
285
- declarations: [TdJsonFormatterComponent],
286
- exports: [TdJsonFormatterComponent],
287
- }]
288
- }] });
369
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CovalentJsonFormatterModule, [{
370
+ type: NgModule,
371
+ args: [{
372
+ imports: [TdJsonFormatterComponent],
373
+ exports: [TdJsonFormatterComponent],
374
+ }]
375
+ }], null, null); })();
376
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentJsonFormatterModule, { imports: [TdJsonFormatterComponent], exports: [TdJsonFormatterComponent] }); })();
289
377
 
290
378
  /**
291
379
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-json-formatter.mjs","sources":["../../../../libs/angular/json-formatter/src/collapse.animation.ts","../../../../libs/angular/json-formatter/src/json-formatter.component.ts","../../../../libs/angular/json-formatter/src/json-formatter.component.html","../../../../libs/angular/json-formatter/src/json-formatter.module.ts","../../../../libs/angular/json-formatter/src/covalent-core-json-formatter.ts"],"sourcesContent":["import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata,\n AUTO_STYLE,\n query,\n animateChild,\n group,\n} from '@angular/animations';\n\nexport interface IAnimationOptions {\n anchor?: string;\n duration?: number;\n delay?: number;\n}\n\nexport interface ICollapseAnimation extends IAnimationOptions {\n easeOnClose?: string;\n easeOnOpen?: string;\n}\n\n/**\n * const tdCollapseAnimation\n *\n * Parameter Options:\n * * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.\n * * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.\n * * easeOnClose: Animation accelerates and decelerates when closing. Defaults to ease-in.\n * * easeOnOpen: Animation accelerates and decelerates when opening. Defaults to ease-out.\n *\n * Returns an [AnimationTriggerMetadata] object with boolean states for a collapse/expand animation.\n *\n * usage: [@tdCollapse]=\"{ value: true | false, params: { duration: 500 }}\"\n */\nexport const tdCollapseAnimation: AnimationTriggerMetadata = trigger(\n 'tdCollapse',\n [\n state(\n '1',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n state(\n '0',\n style({\n height: AUTO_STYLE,\n overflow: AUTO_STYLE,\n })\n ),\n transition(\n '0 => 1',\n [\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-in' } }\n ),\n transition(\n '1 => 0',\n [\n style({\n height: '0',\n overflow: 'hidden',\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-out' } }\n ),\n ]\n);\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Optional,\n} from '@angular/core';\nimport { Dir } from '@angular/cdk/bidi';\nimport { tdCollapseAnimation } from './collapse.animation';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'td-json-formatter',\n styleUrls: ['./json-formatter.component.scss'],\n templateUrl: './json-formatter.component.html',\n animations: [tdCollapseAnimation],\n})\nexport class TdJsonFormatterComponent {\n /**\n * Max length for property names. Any names bigger than this get trunctated.\n */\n private static KEY_MAX_LENGTH = 30;\n\n /**\n * Max length for preview string. Any names bigger than this get trunctated.\n */\n private static PREVIEW_STRING_MAX_LENGTH = 80;\n\n /**\n * Max tooltip preview elements.\n */\n private static PREVIEW_LIMIT = 5;\n\n private _key?: string;\n private _data!: Record<string, any>;\n private _children?: string[];\n private _open = false;\n private _levelsOpen = 0;\n\n /**\n * levelsOpen?: number\n * Levels opened by default when JS object is formatted and rendered.\n */\n @Input()\n set levelsOpen(levelsOpen: number) {\n if (!Number.isInteger(levelsOpen)) {\n throw new Error('[levelsOpen] needs to be an integer.');\n }\n this._levelsOpen = levelsOpen;\n this._open = levelsOpen > 0;\n }\n get levelsOpen(): number {\n return this._levelsOpen;\n }\n\n get open(): boolean {\n return this._open;\n }\n\n /**\n * key?: string\n * Tag to be displayed next to formatted object.\n */\n @Input()\n set key(key: string) {\n this._key = key;\n }\n get key(): string {\n const elipsis: string =\n this._key && this._key.length > TdJsonFormatterComponent.KEY_MAX_LENGTH\n ? '…'\n : '';\n return this._key\n ? this._key.substring(0, TdJsonFormatterComponent.KEY_MAX_LENGTH) +\n elipsis\n : this._key ?? '';\n }\n\n /**\n * data: any\n * JS object to be formatted.\n */\n @Input()\n set data(data: Record<string, any>) {\n this._data = data;\n this.parseChildren();\n }\n get data(): Record<string, any> {\n return this._data;\n }\n\n get children(): string[] {\n return this._children ?? [];\n }\n\n get isRTL(): boolean {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _dir: Dir\n ) {}\n\n /**\n * Refreshes json-formatter and rerenders [data]\n */\n refresh(): void {\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Toggles collapse/expanded state of component.\n */\n toggle(): void {\n this._open = !this._open;\n }\n\n isObject(): boolean {\n return this.getType(this._data) === 'object';\n }\n\n isArray(): boolean {\n return Array.isArray(this._data);\n }\n\n hasChildren(): boolean {\n return (this._children && this._children.length > 0) ?? false;\n }\n\n /**\n * Gets parsed value depending on value type.\n */\n getValue(value: any): string {\n const type: string = this.getType(value);\n if (type === 'undefined' || type === 'null') {\n return type;\n } else if (type === 'date') {\n value = new Date(value).toString();\n } else if (type === 'string') {\n value = '\"' + value + '\"';\n } else if (type === 'function') {\n // Remove content of the function\n return (\n value\n .toString()\n .replace(/[\\r\\n]/g, '')\n .replace(/\\{.*\\}/, '') + '{…}'\n );\n } else if (Array.isArray(value)) {\n return this.getObjectName() + ' [' + value.length + ']';\n }\n return value;\n }\n\n /**\n * Gets type of object.\n * returns 'null' if object is null and 'date' if value is object and can be parsed to a date.\n */\n getType(object: any): string {\n if (typeof object === 'object') {\n if (!object) {\n return 'null';\n }\n if (Array.isArray(object)) {\n return 'object';\n }\n const date: Date = new Date(object);\n if (\n Object.prototype.toString.call(date) === '[object Date]' &&\n !Number.isNaN(date.getTime())\n ) {\n return 'date';\n }\n }\n return typeof object;\n }\n\n /**\n * Generates string representation depending if its an object or function.\n * see: http://stackoverflow.com/a/332429\n */\n getObjectName(): string {\n const object: any = this._data;\n if (this.isObject() && !object.constructor) {\n return 'Object';\n }\n const funcNameRegex = /function (.{1,})\\(/;\n const results = funcNameRegex.exec(object.constructor.toString());\n if (results && results.length > 1) {\n return results[1];\n } else {\n return '';\n }\n }\n\n /**\n * Creates preview of nodes children to render in tooltip depending if its an array or an object.\n */\n getPreview(): string {\n let previewData: string[];\n let startChar = '{ ';\n let endChar = ' }';\n if (this.isArray()) {\n const previewArray: any[] =\n Object.entries(this._data).slice(\n 0,\n TdJsonFormatterComponent.PREVIEW_LIMIT\n ) ?? [];\n previewData = previewArray.map((obj: any) => {\n return this.getValue(obj);\n });\n startChar = '[';\n endChar = ']';\n } else {\n const previewKeys: string[] =\n this._children?.slice(0, TdJsonFormatterComponent.PREVIEW_LIMIT) ?? [];\n previewData = previewKeys.map((key: string) => {\n return key + ': ' + this.getValue(this._data[key] ?? undefined);\n });\n }\n const previewString: string = previewData.join(', ');\n const ellipsis: string =\n previewData.length >= TdJsonFormatterComponent.PREVIEW_LIMIT ||\n previewString.length > TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH\n ? '…'\n : '';\n return (\n startChar +\n previewString.substring(\n 0,\n TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH\n ) +\n ellipsis +\n endChar\n );\n }\n\n private parseChildren(): void {\n if (this.isObject()) {\n this._children = Object.keys(this._data ?? {});\n }\n }\n}\n","<div class=\"td-json-formatter-wrapper\">\n <a\n class=\"td-key\"\n [class.td-key-node]=\"hasChildren()\"\n [class.td-key-leaf]=\"!hasChildren()\"\n [tabIndex]=\"isObject() ? 0 : -1\"\n (keydown.enter)=\"toggle()\"\n (click)=\"toggle()\"\n >\n <mat-icon class=\"td-node-icon\" *ngIf=\"hasChildren()\">\n {{\n open\n ? 'keyboard_arrow_down'\n : isRTL\n ? 'keyboard_arrow_left'\n : 'keyboard_arrow_right'\n }}\n </mat-icon>\n <span *ngIf=\"key\" class=\"key\">{{ key }}:</span>\n <span class=\"value\">\n <span\n [class.td-empty]=\"!hasChildren()\"\n *ngIf=\"isObject()\"\n [matTooltip]=\"getPreview()\"\n matTooltipPosition=\"after\"\n >\n <span class=\"td-object-name\">{{ getObjectName() }}</span>\n <span class=\"td-array-length\" *ngIf=\"isArray()\"\n >[{{ data['length'] }}]</span\n >\n </span>\n <span *ngIf=\"!isObject()\" [class]=\"getType(data)\">{{\n getValue(data)\n }}</span>\n </span>\n </a>\n <div class=\"td-object-children\" [@tdCollapse]=\"!(hasChildren() && open)\">\n <ng-template let-key ngFor [ngForOf]=\"children\">\n <td-json-formatter\n [key]=\"key\"\n [data]=\"data[key]\"\n [levelsOpen]=\"levelsOpen - 1\"\n ></td-json-formatter>\n </ng-template>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { TdJsonFormatterComponent } from './json-formatter.component';\n\n@NgModule({\n imports: [CommonModule, MatTooltipModule, MatIconModule],\n declarations: [TdJsonFormatterComponent],\n exports: [TdJsonFormatterComponent],\n})\nexport class CovalentJsonFormatterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-json-formatter.mjs","sources":["../../../../libs/angular/json-formatter/src/collapse.animation.ts","../../../../libs/angular/json-formatter/src/json-formatter.component.html","../../../../libs/angular/json-formatter/src/json-formatter.component.ts","../../../../libs/angular/json-formatter/src/json-formatter.module.ts","../../../../libs/angular/json-formatter/src/covalent-core-json-formatter.ts"],"sourcesContent":["import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata,\n AUTO_STYLE,\n query,\n animateChild,\n group,\n} from '@angular/animations';\n\nexport interface IAnimationOptions {\n anchor?: string;\n duration?: number;\n delay?: number;\n}\n\nexport interface ICollapseAnimation extends IAnimationOptions {\n easeOnClose?: string;\n easeOnOpen?: string;\n}\n\n/**\n * const tdCollapseAnimation\n *\n * Parameter Options:\n * * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.\n * * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.\n * * easeOnClose: Animation accelerates and decelerates when closing. Defaults to ease-in.\n * * easeOnOpen: Animation accelerates and decelerates when opening. Defaults to ease-out.\n *\n * Returns an [AnimationTriggerMetadata] object with boolean states for a collapse/expand animation.\n *\n * usage: [@tdCollapse]=\"{ value: true | false, params: { duration: 500 }}\"\n */\nexport const tdCollapseAnimation: AnimationTriggerMetadata = trigger(\n 'tdCollapse',\n [\n state(\n '1',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n state(\n '0',\n style({\n height: AUTO_STYLE,\n overflow: AUTO_STYLE,\n })\n ),\n transition(\n '0 => 1',\n [\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-in' } }\n ),\n transition(\n '1 => 0',\n [\n style({\n height: '0',\n overflow: 'hidden',\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-out' } }\n ),\n ]\n);\n","<div class=\"td-json-formatter-wrapper\">\n <a\n class=\"td-key\"\n [class.td-key-node]=\"hasChildren()\"\n [class.td-key-leaf]=\"!hasChildren()\"\n [tabIndex]=\"isObject() ? 0 : -1\"\n (keydown.enter)=\"toggle()\"\n (click)=\"toggle()\"\n >\n <mat-icon class=\"td-node-icon\" *ngIf=\"hasChildren()\">\n {{\n open\n ? 'keyboard_arrow_down'\n : isRTL\n ? 'keyboard_arrow_left'\n : 'keyboard_arrow_right'\n }}\n </mat-icon>\n <span *ngIf=\"key\" class=\"key\">{{ key }}:</span>\n <span class=\"value\">\n <span\n [class.td-empty]=\"!hasChildren()\"\n *ngIf=\"isObject()\"\n [matTooltip]=\"getPreview()\"\n matTooltipPosition=\"after\"\n >\n <span class=\"td-object-name\">{{ getObjectName() }}</span>\n <span class=\"td-array-length\" *ngIf=\"isArray()\"\n >[{{ data['length'] }}]</span\n >\n </span>\n <span *ngIf=\"!isObject()\" [class]=\"getType(data)\">{{\n getValue(data)\n }}</span>\n </span>\n </a>\n <div class=\"td-object-children\" [@tdCollapse]=\"!(hasChildren() && open)\">\n <ng-template let-key ngFor [ngForOf]=\"children\">\n <td-json-formatter\n [key]=\"key\"\n [data]=\"data[key]\"\n [levelsOpen]=\"levelsOpen - 1\"\n ></td-json-formatter>\n </ng-template>\n </div>\n</div>\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Optional,\n} from '@angular/core';\nimport { Dir } from '@angular/cdk/bidi';\nimport { tdCollapseAnimation } from './collapse.animation';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'td-json-formatter',\n styleUrls: ['./json-formatter.component.scss'],\n templateUrl: './json-formatter.component.html',\n imports: [CommonModule, MatIcon, MatTooltip],\n animations: [tdCollapseAnimation],\n})\nexport class TdJsonFormatterComponent {\n /**\n * Max length for property names. Any names bigger than this get trunctated.\n */\n private static KEY_MAX_LENGTH = 30;\n\n /**\n * Max length for preview string. Any names bigger than this get trunctated.\n */\n private static PREVIEW_STRING_MAX_LENGTH = 80;\n\n /**\n * Max tooltip preview elements.\n */\n private static PREVIEW_LIMIT = 5;\n\n private _key?: string;\n private _data!: Record<string, any>;\n private _children?: string[];\n private _open = false;\n private _levelsOpen = 0;\n\n /**\n * levelsOpen?: number\n * Levels opened by default when JS object is formatted and rendered.\n */\n @Input()\n set levelsOpen(levelsOpen: number) {\n if (!Number.isInteger(levelsOpen)) {\n throw new Error('[levelsOpen] needs to be an integer.');\n }\n this._levelsOpen = levelsOpen;\n this._open = levelsOpen > 0;\n }\n get levelsOpen(): number {\n return this._levelsOpen;\n }\n\n get open(): boolean {\n return this._open;\n }\n\n /**\n * key?: string\n * Tag to be displayed next to formatted object.\n */\n @Input()\n set key(key: string) {\n this._key = key;\n }\n get key(): string {\n const elipsis: string =\n this._key && this._key.length > TdJsonFormatterComponent.KEY_MAX_LENGTH\n ? '…'\n : '';\n return this._key\n ? this._key.substring(0, TdJsonFormatterComponent.KEY_MAX_LENGTH) +\n elipsis\n : this._key ?? '';\n }\n\n /**\n * data: any\n * JS object to be formatted.\n */\n @Input()\n set data(data: Record<string, any>) {\n this._data = data;\n this.parseChildren();\n }\n get data(): Record<string, any> {\n return this._data;\n }\n\n get children(): string[] {\n return this._children ?? [];\n }\n\n get isRTL(): boolean {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _dir: Dir\n ) {}\n\n /**\n * Refreshes json-formatter and rerenders [data]\n */\n refresh(): void {\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Toggles collapse/expanded state of component.\n */\n toggle(): void {\n this._open = !this._open;\n }\n\n isObject(): boolean {\n return this.getType(this._data) === 'object';\n }\n\n isArray(): boolean {\n return Array.isArray(this._data);\n }\n\n hasChildren(): boolean {\n return (this._children && this._children.length > 0) ?? false;\n }\n\n /**\n * Gets parsed value depending on value type.\n */\n getValue(value: any): string {\n const type: string = this.getType(value);\n if (type === 'undefined' || type === 'null') {\n return type;\n } else if (type === 'date') {\n value = new Date(value).toString();\n } else if (type === 'string') {\n value = '\"' + value + '\"';\n } else if (type === 'function') {\n // Remove content of the function\n return (\n value\n .toString()\n .replace(/[\\r\\n]/g, '')\n .replace(/\\{.*\\}/, '') + '{…}'\n );\n } else if (Array.isArray(value)) {\n return this.getObjectName() + ' [' + value.length + ']';\n }\n return value;\n }\n\n /**\n * Gets type of object.\n * returns 'null' if object is null and 'date' if value is object and can be parsed to a date.\n */\n getType(object: any): string {\n if (typeof object === 'object') {\n if (!object) {\n return 'null';\n }\n if (Array.isArray(object)) {\n return 'object';\n }\n const date: Date = new Date(object);\n if (\n Object.prototype.toString.call(date) === '[object Date]' &&\n !Number.isNaN(date.getTime())\n ) {\n return 'date';\n }\n }\n return typeof object;\n }\n\n /**\n * Generates string representation depending if its an object or function.\n * see: http://stackoverflow.com/a/332429\n */\n getObjectName(): string {\n const object: any = this._data;\n if (this.isObject() && !object.constructor) {\n return 'Object';\n }\n const funcNameRegex = /function (.{1,})\\(/;\n const results = funcNameRegex.exec(object.constructor.toString());\n if (results && results.length > 1) {\n return results[1];\n } else {\n return '';\n }\n }\n\n /**\n * Creates preview of nodes children to render in tooltip depending if its an array or an object.\n */\n getPreview(): string {\n let previewData: string[];\n let startChar = '{ ';\n let endChar = ' }';\n if (this.isArray()) {\n const previewArray: any[] =\n Object.entries(this._data).slice(\n 0,\n TdJsonFormatterComponent.PREVIEW_LIMIT\n ) ?? [];\n previewData = previewArray.map((obj: any) => {\n return this.getValue(obj);\n });\n startChar = '[';\n endChar = ']';\n } else {\n const previewKeys: string[] =\n this._children?.slice(0, TdJsonFormatterComponent.PREVIEW_LIMIT) ?? [];\n previewData = previewKeys.map((key: string) => {\n return key + ': ' + this.getValue(this._data[key] ?? undefined);\n });\n }\n const previewString: string = previewData.join(', ');\n const ellipsis: string =\n previewData.length >= TdJsonFormatterComponent.PREVIEW_LIMIT ||\n previewString.length > TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH\n ? '…'\n : '';\n return (\n startChar +\n previewString.substring(\n 0,\n TdJsonFormatterComponent.PREVIEW_STRING_MAX_LENGTH\n ) +\n ellipsis +\n endChar\n );\n }\n\n private parseChildren(): void {\n if (this.isObject()) {\n this._children = Object.keys(this._data ?? {});\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TdJsonFormatterComponent } from './json-formatter.component';\n\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\n@NgModule({\n imports: [TdJsonFormatterComponent],\n exports: [TdJsonFormatterComponent],\n})\nexport class CovalentJsonFormatterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}