@anglr/common 23.0.0-beta.20250825072057 → 23.0.0-beta.20250825105211

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 (147) hide show
  1. package/changelog.md +23 -0
  2. package/es2022/floating-ui/src/services/floatingUiDomPosition.service.js +3 -3
  3. package/es2022/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.js +6 -21
  4. package/es2022/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.js.map +1 -1
  5. package/es2022/forms/src/components/defaultValidationErrorsContainer/defaultValidationErrorsContainer.component.js +3 -3
  6. package/es2022/forms/src/components/reservedSpaceValidationErrorsContainer/reservedSpaceValidationErrorsContainer.component.js +3 -3
  7. package/es2022/forms/src/directives/groupHasError/groupHasError.directive.js +3 -3
  8. package/es2022/forms/src/directives/groupHasErrorContainer/groupHasErrorContainer.directive.js +3 -3
  9. package/es2022/forms/src/directives/hasError/hasError.directive.js +3 -3
  10. package/es2022/forms/src/directives/numberInput/maxValueNumberValidator.directive.js +3 -3
  11. package/es2022/forms/src/directives/numberInput/minValueNumberValidator.directive.js +3 -3
  12. package/es2022/forms/src/directives/numberInput/numberInputControlValueAccessor.directive.js +3 -3
  13. package/es2022/forms/src/directives/numberInput/numberInputValidator.directive.js +3 -3
  14. package/es2022/forms/src/directives/requiredClass/requiredClass.directive.js +3 -3
  15. package/es2022/forms/src/directives/validationErrorsContainer/validationErrorsContainer.directive.js +3 -3
  16. package/es2022/forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.js +4 -5
  17. package/es2022/forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.js.map +1 -1
  18. package/es2022/forms/src/modules/errorMessage/directives/errorMessage/errorMessage.directive.js +3 -3
  19. package/es2022/forms/src/modules/errorMessage/directives/groupErrorsTemplate/groupErrorsTemplate.directive.js +3 -3
  20. package/es2022/forms/src/modules/errorMessage/modules/errorMessage.module.js +4 -4
  21. package/es2022/forms/src/modules/errorMessage/pipes/withErrorMessage/withErrorMessage.pipe.js +3 -3
  22. package/es2022/forms/src/modules/formPipes/modules/formPipes.module.js +4 -4
  23. package/es2022/forms/src/modules/formPipes/pipes/asFormArray/asFormArray.pipe.js +3 -3
  24. package/es2022/forms/src/modules/formPipes/pipes/asFormControl/asFormControl.pipe.js +3 -3
  25. package/es2022/forms/src/modules/formPipes/pipes/asFormGroup/asFormGroup.pipe.js +3 -3
  26. package/es2022/forms/src/modules/formPipes/pipes/getControl/getControl.pipe.js +3 -3
  27. package/es2022/forms/src/modules/hasError.module.js +4 -4
  28. package/es2022/forms/src/modules/numberInput.module.js +4 -4
  29. package/es2022/forms/src/services/errorMessagesExtractor/errorMessagesExtractor.service.js +3 -3
  30. package/es2022/forms/src/services/formModelBuilder/formModelBuilder.service.js +3 -3
  31. package/es2022/forms/src/services/submitted/submitted.service.js +3 -3
  32. package/es2022/forms/src/services/validationErrorRenderer/validationErrorRenderer.service.js +3 -3
  33. package/es2022/hotkeys/src/components/cheatSheet/cheatSheet.component.js +3 -3
  34. package/es2022/hotkeys/src/services/appHotkeys.service.js +3 -3
  35. package/es2022/material/src/components/confirmationDialog/confirmationDialog.component.js +3 -3
  36. package/es2022/material/src/components/movableTitledDialog/movableTitledDialog.component.js +3 -3
  37. package/es2022/material/src/components/movableTitledDialog/movableTitledDialog.component.js.map +1 -1
  38. package/es2022/material/src/components/titledDialog/titledDialog.component.js +3 -3
  39. package/es2022/material/src/components/titledDialog/titledDialog.component.js.map +1 -1
  40. package/es2022/material/src/directives/confirmationDialog/confirmationDialog.directive.js +3 -3
  41. package/es2022/material/src/directives/debugDataCopyClick/debugDataCopyClick.directive.js +3 -3
  42. package/es2022/material/src/modules/confirmationDialog.module.js +4 -4
  43. package/es2022/material/src/modules/debugDataCopyClick.module.js +4 -4
  44. package/es2022/material/src/modules/movableTitledDialog.module.js +4 -4
  45. package/es2022/material/src/modules/titledDialog.module.js +4 -4
  46. package/es2022/material/src/services/titledDialog/titledDialog.service.js +3 -3
  47. package/es2022/router/src/services/routing/dataRouter.js +3 -3
  48. package/es2022/router/src/services/routing/dataRouterData.js +3 -3
  49. package/es2022/src/components/collapsibleIcon/collapsibleIcon.component.js +3 -3
  50. package/es2022/src/components/collapsibleTitle/collapsibleTitle.component.js +3 -3
  51. package/es2022/src/directives/bodyRender/bodyRender.directive.js +3 -3
  52. package/es2022/src/directives/clickOutside/clickOutside.directive.js +3 -3
  53. package/es2022/src/directives/ellipsisTooltip/ellipsisTooltip.directive.js +3 -3
  54. package/es2022/src/directives/goBack/goBack.directive.js +3 -3
  55. package/es2022/src/directives/ngComponentOutletEx/ngComponentOutletEx.directive.js +3 -3
  56. package/es2022/src/directives/positionTo/positionTo.directive.js +3 -3
  57. package/es2022/src/modules/castPipes/modules/castPipes.module.js +4 -4
  58. package/es2022/src/modules/castPipes/pipes/asHtmlElement/asHtmlElement.pipe.js +3 -3
  59. package/es2022/src/modules/castPipes/pipes/asNgClassRequired/asNgClassRequired.pipe.js +3 -3
  60. package/es2022/src/modules/castPipes/pipes/asRequired/asRequired.pipe.js +3 -3
  61. package/es2022/src/modules/castPipes/pipes/castType/castType.pipe.js +3 -3
  62. package/es2022/src/modules/commonDynamic.module.js +4 -4
  63. package/es2022/src/modules/commonLocalize.module.js +4 -4
  64. package/es2022/src/modules/commonUtils.module.js +4 -4
  65. package/es2022/src/modules/debugData/components/debugData/debugData.component.js +3 -3
  66. package/es2022/src/modules/debugData/modules/debugData.module.js +4 -4
  67. package/es2022/src/modules/debugData/services/debugDataEnabled/debugDataEnabled.service.js +4 -4
  68. package/es2022/src/modules/debugData/services/debugDataEnabled/debugDataEnabled.service.js.map +1 -1
  69. package/es2022/src/modules/file/components/file/file.component.js +15 -15
  70. package/es2022/src/modules/file/components/file/file.component.js.map +1 -1
  71. package/es2022/src/modules/file/components/fileInput/fileInput.component.js +9 -9
  72. package/es2022/src/modules/file/components/fileInput/fileInput.component.js.map +1 -1
  73. package/es2022/src/modules/file/components/uploadButton/uploadButton.component.js +9 -9
  74. package/es2022/src/modules/file/components/uploadButton/uploadButton.component.js.map +1 -1
  75. package/es2022/src/modules/file/directive/fileInput/fileInput.directive.js +7 -7
  76. package/es2022/src/modules/file/directive/fileInput/fileInput.directive.js.map +1 -1
  77. package/es2022/src/modules/file/directive/fileTemplate/fileTemplate.directive.js +3 -3
  78. package/es2022/src/modules/file/modules/file.module.js +4 -4
  79. package/es2022/src/modules/logger/components/console/console.component.js +7 -4
  80. package/es2022/src/modules/logger/components/console/console.component.js.map +1 -1
  81. package/es2022/src/modules/logger/components/index.js +0 -1
  82. package/es2022/src/modules/logger/components/index.js.map +1 -1
  83. package/es2022/src/modules/logger/services/console/consoleComponent.service.js +3 -3
  84. package/es2022/src/modules/logger/services/console/consoleComponentService.options.js +3 -3
  85. package/es2022/src/modules/logger/services/logger/logger.service.js +3 -3
  86. package/es2022/src/modules/logger/services/rest/restSink.options.js +3 -3
  87. package/es2022/src/modules/logger/types/loggerOptions.js +3 -3
  88. package/es2022/src/modules/multiButton/components/multiButton/multiButton.component.js +3 -3
  89. package/es2022/src/modules/multiButton/modules/multiButton.module.js +4 -4
  90. package/es2022/src/modules/progressIndicator/components/index.js.map +1 -1
  91. package/es2022/src/modules/progressIndicator/components/progressIndicator/progressIndicator.component.js +3 -3
  92. package/es2022/src/modules/progressIndicator/directives/progressOverlay/progressOverlay.directive.js +3 -3
  93. package/es2022/src/modules/progressIndicator/interceptors/progressInterceptor.js +3 -3
  94. package/es2022/src/modules/progressIndicator/modules/progressIndicator.module.js +4 -4
  95. package/es2022/src/modules/progressIndicator/services/progressIndicator.service.js +3 -3
  96. package/es2022/src/modules/tooltip/components/tooltip/tooltip.component.js +7 -4
  97. package/es2022/src/modules/tooltip/components/tooltip/tooltip.component.js.map +1 -1
  98. package/es2022/src/modules/tooltip/directives/tooltip/tooltip.directive.js +14 -28
  99. package/es2022/src/modules/tooltip/directives/tooltip/tooltip.directive.js.map +1 -1
  100. package/es2022/src/modules/tooltip/directives/tooltipTemplate/tooltipTemplate.directive.js +3 -3
  101. package/es2022/src/modules/tooltip/misc/tooltip.interface.js.map +1 -1
  102. package/es2022/src/modules/tooltip/modules/tooltip.module.js +4 -4
  103. package/es2022/src/pipes/displayProperties/displayProperties.pipe.js +3 -3
  104. package/es2022/src/pipes/firstUppercase/firstUppercase.pipe.js +3 -3
  105. package/es2022/src/pipes/firstUppercaseLocalize/firstUppercaseLocalize.pipe.js +3 -3
  106. package/es2022/src/pipes/isNaN/isNaN.pipe.js +3 -3
  107. package/es2022/src/pipes/isPresent/isPresent.pipe.js +3 -3
  108. package/es2022/src/pipes/keys/keys.pipe.js +3 -3
  109. package/es2022/src/pipes/localize/localize.pipe.js +3 -3
  110. package/es2022/src/pipes/mergeCssClasses/mergeCssClasses.pipe.js +3 -3
  111. package/es2022/src/pipes/numeral/numeral.pipe.js +3 -3
  112. package/es2022/src/pipes/trimText/trimText.pipe.js +3 -3
  113. package/es2022/src/pipes/urlEncode/urlEncode.pipe.js +3 -3
  114. package/es2022/src/services/cookies/cookies.service.js +3 -3
  115. package/es2022/src/services/notifications/defaultNotifications.service.js +3 -3
  116. package/es2022/src/services/notifications/defaultNotifications.service.js.map +1 -1
  117. package/es2022/src/services/permanentStorage/cookiePermanentStorage.service.js +3 -3
  118. package/es2022/src/services/statusCode/statusCode.service.js +3 -3
  119. package/es2022/src/services/stringLocalization/noStringLocalization.service.js +3 -3
  120. package/es2022/src/services/temporaryStorage/memoryTemporaryStorage.service.js +3 -3
  121. package/es2022/src/utils/index.js.map +1 -1
  122. package/es2022/store/src/services/permanentStorage/localPermanentStorage.service.js +3 -3
  123. package/es2022/store/src/services/temporaryStorage/sessionTemporaryStorage.service.js +3 -3
  124. package/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.d.ts +0 -4
  125. package/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.d.ts.map +1 -1
  126. package/forms/src/components/defaultValidationErrors/defaultValidationErrors.component.html +1 -1
  127. package/forms/src/directives/numberInput/numberInputControlValueAccessor.directive.d.ts.map +1 -1
  128. package/forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.d.ts.map +1 -1
  129. package/forms/src/modules/errorMessage/components/groupErrors/groupErrors.component.html +1 -1
  130. package/package.json +28 -32
  131. package/router/src/decorators/moduleRoutes.decorator.d.ts.map +1 -1
  132. package/src/directives/clickOutside/clickOutside.directive.d.ts.map +1 -1
  133. package/src/directives/ellipsisTooltip/ellipsisTooltip.directive.d.ts.map +1 -1
  134. package/src/modules/logger/components/console/console.component.d.ts.map +1 -1
  135. package/src/modules/logger/components/index.d.ts +0 -1
  136. package/src/modules/logger/components/index.d.ts.map +1 -1
  137. package/src/modules/tooltip/components/tooltip/tooltip.component.d.ts +8 -0
  138. package/src/modules/tooltip/components/tooltip/tooltip.component.d.ts.map +1 -1
  139. package/src/modules/tooltip/directives/tooltip/tooltip.directive.d.ts +2 -12
  140. package/src/modules/tooltip/directives/tooltip/tooltip.directive.d.ts.map +1 -1
  141. package/src/modules/tooltip/misc/tooltip.interface.d.ts +12 -5
  142. package/src/modules/tooltip/misc/tooltip.interface.d.ts.map +1 -1
  143. package/version.bak +1 -1
  144. package/es2022/src/modules/logger/components/console/console.component.animations.js +0 -31
  145. package/es2022/src/modules/logger/components/console/console.component.animations.js.map +0 -1
  146. package/src/modules/logger/components/console/console.component.animations.d.ts +0 -5
  147. package/src/modules/logger/components/console/console.component.animations.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fileInput.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/file/directive/fileInput/fileInput.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {booleanAttribute, Directive, effect, ElementRef, input, InputSignal, InputSignalWithTransform, OnDestroy, output, OutputEmitterRef, Renderer2} from '@angular/core';\nimport {BindThis, isString, NoopAction} from '@jscrpt/common';\n\n/**\n * Directive that allows better communication with input file\n */\n@Directive(\n{\n selector: 'input[type=file]',\n exportAs: 'file',\n})\nexport class FileInputDirective implements OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Unlistener for input file change event\n */\n protected changeListenerUnlisten: NoopAction;\n\n //######################### public properties - inputs #########################\n\n /**\n * Indication whether is multiple files selection enabled\n */\n public multiple: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n /**\n * Indication whether read file content, working only when `multiple` is not set (for single file)\n */\n public readContent: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n /**\n * Indication whether content of file is binary and it will be read as ArrayBuffer instead of string\n */\n public binaryContent: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n /**\n * Text encoding of read string file content\n */\n public textEncoding: InputSignal<string|undefined> = input();\n\n //######################### public properties - outputs #########################\n\n /**\n * Occurs when file changes and `binaryContent` is not set and `readContent` is set\n */\n public stringContentChange: OutputEmitterRef<string|undefined|null> = output<string|undefined|null>();\n\n /**\n * Occurs when file changes and `binaryContent` is set and `readContent` is set\n */\n public arrayBufferContentChange: OutputEmitterRef<ArrayBuffer|undefined|null> = output<ArrayBuffer|undefined|null>();\n\n /**\n * Occurs when selected file changes, occurs only when `multiple` is not set\n */\n public fileChange: OutputEmitterRef<File|null|undefined> = output<File|undefined|null>();\n\n /**\n * Occurs when selected files changes, occurs only when `multiple` is set\n */\n public filesChange: OutputEmitterRef<File[]|null|undefined> = output<File[]|undefined|null>();\n\n /**\n * Occurs when selected file changes, occurs only when `multiple` is not set, contains name of selected file\n */\n public fileName: OutputEmitterRef<string|null|undefined> = output<string|undefined|null>();\n\n /**\n * Occurs when selected files changes, occurs only when `multiple` is set, contains names of selected files\n */\n public filesNames: OutputEmitterRef<string[]|null|undefined> = output<string[]|undefined|null>();\n\n //######################### constructors #########################\n constructor(protected element: ElementRef<HTMLInputElement>,\n renderer: Renderer2,)\n {\n this.changeListenerUnlisten = renderer.listen(element.nativeElement, 'change', this.handleFileChange);\n\n effect(() => renderer.setProperty(element.nativeElement, 'multiple', this.multiple()));\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy(): void\n {\n this.changeListenerUnlisten();\n }\n\n //######################### public methods #########################\n\n /**\n * Opens file browser dialog\n */\n @BindThis\n public openFileBrowser(): void\n {\n this.element.nativeElement.click();\n }\n\n /**\n * Clears selection of file/files\n */\n @BindThis\n public clearFile(): void\n {\n this.element.nativeElement.value = '';\n this.fileChange.emit(null);\n this.fileName.emit(null);\n this.filesChange.emit(null);\n this.filesNames.emit(null);\n this.arrayBufferContentChange.emit(null);\n this.stringContentChange.emit(null);\n }\n\n //######################### protected methods #########################\n\n /**\n * Handles changes in file input\n */\n @BindThis\n protected handleFileChange(event: MouseEvent): void\n {\n if(!event.target)\n {\n throw new Error('FileOutputDirective: missing input file target!');\n }\n\n if(this.multiple())\n {\n const files = (event.target as HTMLInputElement).files;\n const filesArray: File[] = [];\n\n if(files)\n {\n for(let x = 0; x < files.length; x++)\n {\n filesArray.push(files[x]);\n }\n }\n\n this.filesChange.emit(filesArray);\n this.filesNames.emit(filesArray.map(itm => itm.name));\n }\n else\n {\n const file = (event.target as HTMLInputElement).files?.[0];\n\n this.fileChange.emit(file);\n this.fileName.emit(file?.name);\n }\n\n //read file contents\n if(!this.multiple() && this.readContent())\n {\n const file = (event.target as HTMLInputElement).files?.[0];\n\n //no file selected\n if(!file)\n {\n return;\n }\n\n const fileReader = new FileReader();\n\n fileReader.onloadend = () =>\n {\n const result = fileReader.result;\n\n if(!result)\n {\n this.stringContentChange.emit(null);\n this.arrayBufferContentChange.emit(null);\n\n return;\n }\n\n if(isString(result))\n {\n this.stringContentChange.emit(result);\n }\n else\n {\n this.arrayBufferContentChange.emit(result);\n }\n };\n\n if(this.binaryContent())\n {\n fileReader.readAsArrayBuffer(file);\n }\n else\n {\n fileReader.readAsText(file, this.textEncoding());\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"fileInput.directive.js","sourceRoot":"","sources":["../../../../../../src/modules/file/directive/fileInput/fileInput.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {booleanAttribute, Directive, effect, ElementRef, input, InputSignal, InputSignalWithTransform, OnDestroy, output, OutputEmitterRef, Renderer2} from '@angular/core';\nimport {BindThis, isString, NoopAction} from '@jscrpt/common';\n\n/**\n * Directive that allows better communication with input file\n */\n@Directive(\n{\n selector: 'input[type=file]',\n exportAs: 'file',\n})\nexport class FileInputDirective implements OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Unlistener for input file change event\n */\n protected changeListenerUnlisten: NoopAction;\n\n //######################### public properties - inputs #########################\n\n /**\n * Indication whether is multiple files selection enabled\n */\n public multiple: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n /**\n * Indication whether read file content, working only when `multiple` is not set (for single file)\n */\n public readContent: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n /**\n * Indication whether content of file is binary and it will be read as ArrayBuffer instead of string\n */\n public binaryContent: InputSignalWithTransform<boolean, string|boolean> = input<boolean, boolean|string>(false, {transform: booleanAttribute});\n\n /**\n * Text encoding of read string file content\n */\n public textEncoding: InputSignal<string|undefined> = input();\n\n //######################### public properties - outputs #########################\n\n /**\n * Occurs when file changes and `binaryContent` is not set and `readContent` is set\n */\n public stringContentChange: OutputEmitterRef<string|undefined|null> = output<string|undefined|null>();\n\n /**\n * Occurs when file changes and `binaryContent` is set and `readContent` is set\n */\n public arrayBufferContentChange: OutputEmitterRef<ArrayBuffer|undefined|null> = output<ArrayBuffer|undefined|null>();\n\n /**\n * Occurs when selected file changes, occurs only when `multiple` is not set\n */\n public fileChange: OutputEmitterRef<File|null|undefined> = output<File|undefined|null>();\n\n /**\n * Occurs when selected files changes, occurs only when `multiple` is set\n */\n public filesChange: OutputEmitterRef<File[]|null|undefined> = output<File[]|undefined|null>();\n\n /**\n * Occurs when selected file changes, occurs only when `multiple` is not set, contains name of selected file\n */\n public fileName: OutputEmitterRef<string|null|undefined> = output<string|undefined|null>();\n\n /**\n * Occurs when selected files changes, occurs only when `multiple` is set, contains names of selected files\n */\n public filesNames: OutputEmitterRef<string[]|null|undefined> = output<string[]|undefined|null>();\n\n //######################### constructors #########################\n constructor(protected element: ElementRef<HTMLInputElement>,\n renderer: Renderer2,)\n {\n this.changeListenerUnlisten = renderer.listen(element.nativeElement, 'change', this.handleFileChange);\n\n effect(() => renderer.setProperty(element.nativeElement, 'multiple', this.multiple()));\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * @inheritdoc\n */\n public ngOnDestroy(): void\n {\n this.changeListenerUnlisten();\n }\n\n //######################### public methods #########################\n\n /**\n * Opens file browser dialog\n */\n @BindThis\n public openFileBrowser(): void\n {\n this.element.nativeElement.click();\n }\n\n /**\n * Clears selection of file/files\n */\n @BindThis\n public clearFile(): void\n {\n this.element.nativeElement.value = '';\n this.fileChange.emit(null);\n this.fileName.emit(null);\n this.filesChange.emit(null);\n this.filesNames.emit(null);\n this.arrayBufferContentChange.emit(null);\n this.stringContentChange.emit(null);\n }\n\n //######################### protected methods #########################\n\n /**\n * Handles changes in file input\n */\n @BindThis\n protected handleFileChange(event: MouseEvent): void\n {\n if(!event.target)\n {\n throw new Error('FileOutputDirective: missing input file target!');\n }\n\n if(this.multiple())\n {\n const files = (event.target as HTMLInputElement).files;\n const filesArray: File[] = [];\n\n if(files)\n {\n for(let x = 0; x < files.length; x++)\n {\n filesArray.push(files[x]);\n }\n }\n\n this.filesChange.emit(filesArray);\n this.filesNames.emit(filesArray.map(itm => itm.name));\n }\n else\n {\n const file = (event.target as HTMLInputElement).files?.[0];\n\n this.fileChange.emit(file);\n this.fileName.emit(file?.name);\n }\n\n //read file contents\n if(!this.multiple() && this.readContent())\n {\n const file = (event.target as HTMLInputElement).files?.[0];\n\n //no file selected\n if(!file)\n {\n return;\n }\n\n const fileReader = new FileReader();\n\n fileReader.onloadend = () =>\n {\n const result = fileReader.result;\n\n if(!result)\n {\n this.stringContentChange.emit(null);\n this.arrayBufferContentChange.emit(null);\n\n return;\n }\n\n if(isString(result))\n {\n this.stringContentChange.emit(result);\n }\n else\n {\n this.arrayBufferContentChange.emit(result);\n }\n };\n\n if(this.binaryContent())\n {\n fileReader.readAsArrayBuffer(file);\n }\n else\n {\n fileReader.readAsText(file, this.textEncoding());\n }\n }\n }\n}\n"]}
@@ -11,10 +11,10 @@ export class FileTemplateDirective {
11
11
  static ngTemplateContextGuard(_dir, _ctx) {
12
12
  return true;
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: FileTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: FileTemplateDirective, isStandalone: true, selector: "[fileTemplate]", ngImport: i0 }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: FileTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: FileTemplateDirective, isStandalone: true, selector: "[fileTemplate]", ngImport: i0 }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: FileTemplateDirective, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: FileTemplateDirective, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
20
  selector: '[fileTemplate]',
@@ -6,8 +6,8 @@ import * as i0 from "@angular/core";
6
6
  * Module for grouping File components and directives
7
7
  */
8
8
  export class FileModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: FileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: FileModule, imports: [FileComponent,
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: FileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.0", ngImport: i0, type: FileModule, imports: [FileComponent,
11
11
  FileInputDirective,
12
12
  FileTemplateDirective,
13
13
  UploadButtonComponent,
@@ -16,9 +16,9 @@ export class FileModule {
16
16
  UploadButtonComponent,
17
17
  FileInputDirective,
18
18
  FileTemplateDirective] }); }
19
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: FileModule }); }
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: FileModule }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: FileModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: FileModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  imports: [
@@ -84,12 +84,15 @@ export class ConsoleComponent {
84
84
  this.currentLogs = this.consoleSvc.logs.filter(log => log.text.toLowerCase().indexOf(this.filterValue.toLowerCase()) >= 0);
85
85
  }
86
86
  }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ConsoleComponent, deps: [{ token: i1.ConsoleComponentService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.0", type: ConsoleComponent, isStandalone: true, selector: "console", ngImport: i0, template: "<div class=\"console-data thin-scrollbar\">\n <div class=\"console-log\" [ngClass]=\"log?.logLevel | lowercase\" *ngFor=\"let log of currentLogs\">\n <div class=\"console-log-icon fa\" [class.fa-angle-right]=\"!log?.expanded\" [class.fa-angle-down]=\"log?.expanded\" (click)=\"log.expanded = !log.expanded\"></div>\n <div class=\"console-log-text\" [class.expanded]=\"log?.expanded\" (click)=\"copyMessage(log.text)\">{{log?.text}}</div>\n </div>\n\n <div class=\"clear-icon\" (click)=\"clear()\" title=\"clear log\">\n <div class=\"fa fa-times\"></div>\n </div>\n\n <div class=\"copy-icon\" (click)=\"copy()\" title=\"copy to clipboard\" *ngIf=\"canCopy\">\n <div class=\"fa fa-copy\"></div>\n </div>\n</div>\n\n<div class=\"console-filter\">\n <input type=\"text\" placeholder=\"Filter messages\" (input)=\"filterValue = $any($event.target).value; setMessages()\">\n</div>", styles: [":host\n{\n display: flex;\n flex-direction: column;\n position: absolute;\n width: 100%;\n height: 50%;\n}\n\n.console-data\n{\n background-color: #000000c7;\n border: none;\n border-bottom: 1px solid #AAA;\n border-radius: 0;\n color: #EEE;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow-y: auto;\n overflow-x: hidden;\n cursor: pointer;\n}\n\n.console-filter\n{\n align-self: stretch;\n}\n\n.console-filter input\n{\n width: 100%;\n background-color: #000000c7;\n color: #FFF;\n border: none;\n border-bottom: 1px solid #AAA;\n padding: 0 4px;\n}\n\n.copy-icon,\n.clear-icon\n{\n position: absolute;\n top: 0;\n right: 0;\n padding: 4px 14px;\n}\n\n.copy-icon\n{\n margin-right: 20px;\n}\n\n.clear-icon div:hover,\n.copy-icon div:hover\n{\n color: #31A1FF;\n cursor: pointer;\n}\n\n.console-log\n{\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n font-size: 12px;\n display: flex;\n flex-direction: row;\n}\n\n.console-log.error,\n.console-log.fatal\n{\n color: #FF3131;\n}\n\n.console-log.warning\n{\n color: #FFC531;\n}\n\n.console-log.debug,\n.console-log.verbose\n{\n color: #31A1FF;\n}\n\n.console-log-icon\n{\n color: #FFF;\n font-weight: bold;\n margin: 2px 4px 0;\n}\n\n.console-log-icon.fa-angle-down\n{\n margin: 3px 3px 0 2px;\n}\n\n.console-log-text\n{\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.console-log-text.expanded\n{\n white-space: pre;\n text-overflow: initial;\n}"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
87
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ConsoleComponent, deps: [{ token: i1.ConsoleComponentService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0", type: ConsoleComponent, isStandalone: true, selector: "console", host: { attributes: { "animate.enter": "slide-in", "animate.leave": "slide-out" } }, ngImport: i0, template: "<div class=\"console-data thin-scrollbar\">\n <div class=\"console-log\" [ngClass]=\"log?.logLevel | lowercase\" *ngFor=\"let log of currentLogs\">\n <div class=\"console-log-icon fa\" [class.fa-angle-right]=\"!log?.expanded\" [class.fa-angle-down]=\"log?.expanded\" (click)=\"log.expanded = !log.expanded\"></div>\n <div class=\"console-log-text\" [class.expanded]=\"log?.expanded\" (click)=\"copyMessage(log.text)\">{{log?.text}}</div>\n </div>\n\n <div class=\"clear-icon\" (click)=\"clear()\" title=\"clear log\">\n <div class=\"fa fa-times\"></div>\n </div>\n\n <div class=\"copy-icon\" (click)=\"copy()\" title=\"copy to clipboard\" *ngIf=\"canCopy\">\n <div class=\"fa fa-copy\"></div>\n </div>\n</div>\n\n<div class=\"console-filter\">\n <input type=\"text\" placeholder=\"Filter messages\" (input)=\"filterValue = $any($event.target).value; setMessages()\">\n</div>", styles: [":host\n{\n display: flex;\n flex-direction: column;\n position: absolute;\n width: 100%;\n height: 50%;\n}\n\n.console-data\n{\n background-color: #000000c7;\n border: none;\n border-bottom: 1px solid #AAA;\n border-radius: 0;\n color: #EEE;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow-y: auto;\n overflow-x: hidden;\n cursor: pointer;\n}\n\n.console-filter\n{\n align-self: stretch;\n}\n\n.console-filter input\n{\n width: 100%;\n background-color: #000000c7;\n color: #FFF;\n border: none;\n border-bottom: 1px solid #AAA;\n padding: 0 4px;\n}\n\n.copy-icon,\n.clear-icon\n{\n position: absolute;\n top: 0;\n right: 0;\n padding: 4px 14px;\n}\n\n.copy-icon\n{\n margin-right: 20px;\n}\n\n.clear-icon div:hover,\n.copy-icon div:hover\n{\n color: #31A1FF;\n cursor: pointer;\n}\n\n.console-log\n{\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n font-size: 12px;\n display: flex;\n flex-direction: row;\n}\n\n.console-log.error,\n.console-log.fatal\n{\n color: #FF3131;\n}\n\n.console-log.warning\n{\n color: #FFC531;\n}\n\n.console-log.debug,\n.console-log.verbose\n{\n color: #31A1FF;\n}\n\n.console-log-icon\n{\n color: #FFF;\n font-weight: bold;\n margin: 2px 4px 0;\n}\n\n.console-log-icon.fa-angle-down\n{\n margin: 3px 3px 0 2px;\n}\n\n.console-log-text\n{\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.console-log-text.expanded\n{\n white-space: pre;\n text-overflow: initial;\n}"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
89
  }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ConsoleComponent, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ConsoleComponent, decorators: [{
91
91
  type: Component,
92
- args: [{ selector: 'console', imports: [
92
+ args: [{ selector: 'console', host: {
93
+ 'animate.enter': 'slide-in',
94
+ 'animate.leave': 'slide-out',
95
+ }, imports: [
93
96
  CommonModule,
94
97
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"console-data thin-scrollbar\">\n <div class=\"console-log\" [ngClass]=\"log?.logLevel | lowercase\" *ngFor=\"let log of currentLogs\">\n <div class=\"console-log-icon fa\" [class.fa-angle-right]=\"!log?.expanded\" [class.fa-angle-down]=\"log?.expanded\" (click)=\"log.expanded = !log.expanded\"></div>\n <div class=\"console-log-text\" [class.expanded]=\"log?.expanded\" (click)=\"copyMessage(log.text)\">{{log?.text}}</div>\n </div>\n\n <div class=\"clear-icon\" (click)=\"clear()\" title=\"clear log\">\n <div class=\"fa fa-times\"></div>\n </div>\n\n <div class=\"copy-icon\" (click)=\"copy()\" title=\"copy to clipboard\" *ngIf=\"canCopy\">\n <div class=\"fa fa-copy\"></div>\n </div>\n</div>\n\n<div class=\"console-filter\">\n <input type=\"text\" placeholder=\"Filter messages\" (input)=\"filterValue = $any($event.target).value; setMessages()\">\n</div>", styles: [":host\n{\n display: flex;\n flex-direction: column;\n position: absolute;\n width: 100%;\n height: 50%;\n}\n\n.console-data\n{\n background-color: #000000c7;\n border: none;\n border-bottom: 1px solid #AAA;\n border-radius: 0;\n color: #EEE;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow-y: auto;\n overflow-x: hidden;\n cursor: pointer;\n}\n\n.console-filter\n{\n align-self: stretch;\n}\n\n.console-filter input\n{\n width: 100%;\n background-color: #000000c7;\n color: #FFF;\n border: none;\n border-bottom: 1px solid #AAA;\n padding: 0 4px;\n}\n\n.copy-icon,\n.clear-icon\n{\n position: absolute;\n top: 0;\n right: 0;\n padding: 4px 14px;\n}\n\n.copy-icon\n{\n margin-right: 20px;\n}\n\n.clear-icon div:hover,\n.copy-icon div:hover\n{\n color: #31A1FF;\n cursor: pointer;\n}\n\n.console-log\n{\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n font-size: 12px;\n display: flex;\n flex-direction: row;\n}\n\n.console-log.error,\n.console-log.fatal\n{\n color: #FF3131;\n}\n\n.console-log.warning\n{\n color: #FFC531;\n}\n\n.console-log.debug,\n.console-log.verbose\n{\n color: #31A1FF;\n}\n\n.console-log-icon\n{\n color: #FFF;\n font-weight: bold;\n margin: 2px 4px 0;\n}\n\n.console-log-icon.fa-angle-down\n{\n margin: 3px 3px 0 2px;\n}\n\n.console-log-text\n{\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.console-log-text.expanded\n{\n white-space: pre;\n text-overflow: initial;\n}"] }]
95
98
  }], ctorParameters: () => [{ type: i1.ConsoleComponentService }, { type: i0.ChangeDetectorRef }] });
@@ -1 +1 @@
1
- {"version":3,"file":"console.component.js","sourceRoot":"","sources":["../../../../../../src/modules/logger/components/console/console.component.ts","../../../../../../src/modules/logger/components/console/console.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAqB,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACvG,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAAC,uBAAuB,EAAC,MAAM,gBAAgB,CAAC;;;;AAEvD;;GAEG;AAYH,MAAM,OAAO,gBAAgB;IA0BzB,iEAAiE;IACjE,YAAsB,UAAmC,EACnC,cAAiC;QADjC,eAAU,GAAV,UAAU,CAAyB;QACnC,mBAAc,GAAd,cAAc,CAAmB;QAnBvD,8FAA8F;QAE9F;;WAEG;QACO,gBAAW,GAA0B,EAAE,CAAC;QAElD;;WAEG;QACO,YAAO,GAAG,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC;QAErD;;WAEG;QACO,gBAAW,GAAW,EAAE,CAAC;IAMnC,CAAC;IAED,+FAA+F;IAE/F;;OAEG;IACI,QAAQ;QAEX,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;YAEpE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAG,IAAI,CAAC,sBAAsB,EAC9B,CAAC;YACG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACvC,CAAC;IACL,CAAC;IAED,2FAA2F;IAE3F;;OAEG;IACO,IAAI;QAEV,IAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,EACrC,CAAC;YACG,OAAO;QACX,CAAC;QAED,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpF,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,OAAe;QAEjC,IAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,EACrC,CAAC;YACG,OAAO;QACX,CAAC;QAED,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACO,KAAK;QAEX,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACO,WAAW;QAEjB,IAAG,CAAC,IAAI,CAAC,WAAW,EACpB,CAAC;YACG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5C,CAAC;aAED,CAAC;YACG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/H,CAAC;IACL,CAAC;8GAhHQ,gBAAgB;kGAAhB,gBAAgB,mECrB7B,65BAiBM,8oDDAE,YAAY;;2FAIP,gBAAgB;kBAX5B,SAAS;+BAEI,SAAS,WAInB;wBACI,YAAY;qBACf,mBACgB,uBAAuB,CAAC,MAAM","sourcesContent":["import {Component, ChangeDetectionStrategy, OnInit, OnDestroy, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Subscription} from 'rxjs';\n\nimport {ConsoleComponentLog} from '../../interfaces';\nimport {ConsoleComponentService} from '../../services';\n\n/**\n * Component used for displaying console logs\n */\n@Component(\n{\n selector: 'console',\n templateUrl: 'console.component.html',\n styleUrl: 'console.component.css',\n imports:\n [\n CommonModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ConsoleComponent implements OnInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Subscription for log changes\n */\n protected logsChangeSubscription: Subscription|undefined|null;\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Current state of logger\n */\n protected currentLogs: ConsoleComponentLog[] = [];\n\n /**\n * Indication whether can use copy to clipboard\n */\n protected canCopy = navigator && navigator.clipboard;\n\n /**\n * Current value of filter\n */\n protected filterValue: string = '';\n\n //######################### constructor #########################\n constructor(protected consoleSvc: ConsoleComponentService,\n protected changeDetector: ChangeDetectorRef)\n {\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n this.setMessages();\n \n this.logsChangeSubscription = this.consoleSvc.logsChange.subscribe(() =>\n {\n this.setMessages();\n this.changeDetector.detectChanges();\n });\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n \n /**\n * Called when component is destroyed\n */\n public ngOnDestroy(): void\n {\n if(this.logsChangeSubscription)\n {\n this.logsChangeSubscription.unsubscribe();\n this.logsChangeSubscription = null;\n }\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Copies content of whole console log into clipboard\n */\n protected copy(): void\n {\n if(!navigator || !navigator.clipboard)\n {\n return;\n }\n\n navigator.clipboard.writeText(this.currentLogs.map(log => log.text).join('\\n'));\n }\n\n /**\n * Copies message to clipboard\n * @param message - Message to be copied\n */\n protected copyMessage(message: string): void\n {\n if(!navigator || !navigator.clipboard)\n {\n return;\n }\n\n navigator.clipboard.writeText(message);\n }\n\n /**\n * Clears existing logs\n */\n protected clear(): void\n {\n this.consoleSvc.clear();\n }\n\n /**\n * Sets messages using filter\n */\n protected setMessages(): void\n {\n if(!this.filterValue)\n {\n this.currentLogs = this.consoleSvc.logs;\n }\n else\n {\n this.currentLogs = this.consoleSvc.logs.filter(log => log.text.toLowerCase().indexOf(this.filterValue.toLowerCase()) >= 0);\n }\n }\n}","<div class=\"console-data thin-scrollbar\">\n <div class=\"console-log\" [ngClass]=\"log?.logLevel | lowercase\" *ngFor=\"let log of currentLogs\">\n <div class=\"console-log-icon fa\" [class.fa-angle-right]=\"!log?.expanded\" [class.fa-angle-down]=\"log?.expanded\" (click)=\"log.expanded = !log.expanded\"></div>\n <div class=\"console-log-text\" [class.expanded]=\"log?.expanded\" (click)=\"copyMessage(log.text)\">{{log?.text}}</div>\n </div>\n\n <div class=\"clear-icon\" (click)=\"clear()\" title=\"clear log\">\n <div class=\"fa fa-times\"></div>\n </div>\n\n <div class=\"copy-icon\" (click)=\"copy()\" title=\"copy to clipboard\" *ngIf=\"canCopy\">\n <div class=\"fa fa-copy\"></div>\n </div>\n</div>\n\n<div class=\"console-filter\">\n <input type=\"text\" placeholder=\"Filter messages\" (input)=\"filterValue = $any($event.target).value; setMessages()\">\n</div>"]}
1
+ {"version":3,"file":"console.component.js","sourceRoot":"","sources":["../../../../../../src/modules/logger/components/console/console.component.ts","../../../../../../src/modules/logger/components/console/console.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAqB,iBAAiB,EAAC,MAAM,eAAe,CAAC;AACvG,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAAC,uBAAuB,EAAC,MAAM,gBAAgB,CAAC;;;;AAEvD;;GAEG;AAiBH,MAAM,OAAO,gBAAgB;IA0BzB,iEAAiE;IACjE,YAAsB,UAAmC,EACnC,cAAiC;QADjC,eAAU,GAAV,UAAU,CAAyB;QACnC,mBAAc,GAAd,cAAc,CAAmB;QAnBvD,8FAA8F;QAE9F;;WAEG;QACO,gBAAW,GAA0B,EAAE,CAAC;QAElD;;WAEG;QACO,YAAO,GAAG,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC;QAErD;;WAEG;QACO,gBAAW,GAAW,EAAE,CAAC;IAMnC,CAAC;IAED,+FAA+F;IAE/F;;OAEG;IACI,QAAQ;QAEX,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;YAEpE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kGAAkG;IAElG;;OAEG;IACI,WAAW;QAEd,IAAG,IAAI,CAAC,sBAAsB,EAC9B,CAAC;YACG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACvC,CAAC;IACL,CAAC;IAED,2FAA2F;IAE3F;;OAEG;IACO,IAAI;QAEV,IAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,EACrC,CAAC;YACG,OAAO;QACX,CAAC;QAED,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpF,CAAC;IAED;;;OAGG;IACO,WAAW,CAAC,OAAe;QAEjC,IAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,EACrC,CAAC;YACG,OAAO;QACX,CAAC;QAED,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACO,KAAK;QAEX,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACO,WAAW;QAEjB,IAAG,CAAC,IAAI,CAAC,WAAW,EACpB,CAAC;YACG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5C,CAAC;aAED,CAAC;YACG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/H,CAAC;IACL,CAAC;8GAhHQ,gBAAgB;kGAAhB,gBAAgB,wJC1B7B,65BAiBM,8oDDKE,YAAY;;2FAIP,gBAAgB;kBAhB5B,SAAS;+BAEI,SAAS,QAInB;wBACI,eAAe,EAAE,UAAU;wBAC3B,eAAe,EAAE,WAAW;qBAC/B,WAED;wBACI,YAAY;qBACf,mBACgB,uBAAuB,CAAC,MAAM","sourcesContent":["import {Component, ChangeDetectionStrategy, OnInit, OnDestroy, ChangeDetectorRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {Subscription} from 'rxjs';\n\nimport {ConsoleComponentLog} from '../../interfaces';\nimport {ConsoleComponentService} from '../../services';\n\n/**\n * Component used for displaying console logs\n */\n@Component(\n{\n selector: 'console',\n templateUrl: 'console.component.html',\n styleUrl: 'console.component.css',\n host:\n {\n 'animate.enter': 'slide-in',\n 'animate.leave': 'slide-out',\n },\n imports:\n [\n CommonModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ConsoleComponent implements OnInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Subscription for log changes\n */\n protected logsChangeSubscription: Subscription|undefined|null;\n\n //######################### protected properties - template bindings #########################\n\n /**\n * Current state of logger\n */\n protected currentLogs: ConsoleComponentLog[] = [];\n\n /**\n * Indication whether can use copy to clipboard\n */\n protected canCopy = navigator && navigator.clipboard;\n\n /**\n * Current value of filter\n */\n protected filterValue: string = '';\n\n //######################### constructor #########################\n constructor(protected consoleSvc: ConsoleComponentService,\n protected changeDetector: ChangeDetectorRef)\n {\n }\n\n //######################### public methods - implementation of OnInit #########################\n\n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n this.setMessages();\n\n this.logsChangeSubscription = this.consoleSvc.logsChange.subscribe(() =>\n {\n this.setMessages();\n this.changeDetector.detectChanges();\n });\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy(): void\n {\n if(this.logsChangeSubscription)\n {\n this.logsChangeSubscription.unsubscribe();\n this.logsChangeSubscription = null;\n }\n }\n\n //######################### protected methods - template bindings #########################\n\n /**\n * Copies content of whole console log into clipboard\n */\n protected copy(): void\n {\n if(!navigator || !navigator.clipboard)\n {\n return;\n }\n\n navigator.clipboard.writeText(this.currentLogs.map(log => log.text).join('\\n'));\n }\n\n /**\n * Copies message to clipboard\n * @param message - Message to be copied\n */\n protected copyMessage(message: string): void\n {\n if(!navigator || !navigator.clipboard)\n {\n return;\n }\n\n navigator.clipboard.writeText(message);\n }\n\n /**\n * Clears existing logs\n */\n protected clear(): void\n {\n this.consoleSvc.clear();\n }\n\n /**\n * Sets messages using filter\n */\n protected setMessages(): void\n {\n if(!this.filterValue)\n {\n this.currentLogs = this.consoleSvc.logs;\n }\n else\n {\n this.currentLogs = this.consoleSvc.logs.filter(log => log.text.toLowerCase().indexOf(this.filterValue.toLowerCase()) >= 0);\n }\n }\n}\n","<div class=\"console-data thin-scrollbar\">\n <div class=\"console-log\" [ngClass]=\"log?.logLevel | lowercase\" *ngFor=\"let log of currentLogs\">\n <div class=\"console-log-icon fa\" [class.fa-angle-right]=\"!log?.expanded\" [class.fa-angle-down]=\"log?.expanded\" (click)=\"log.expanded = !log.expanded\"></div>\n <div class=\"console-log-text\" [class.expanded]=\"log?.expanded\" (click)=\"copyMessage(log.text)\">{{log?.text}}</div>\n </div>\n\n <div class=\"clear-icon\" (click)=\"clear()\" title=\"clear log\">\n <div class=\"fa fa-times\"></div>\n </div>\n\n <div class=\"copy-icon\" (click)=\"copy()\" title=\"copy to clipboard\" *ngIf=\"canCopy\">\n <div class=\"fa fa-copy\"></div>\n </div>\n</div>\n\n<div class=\"console-filter\">\n <input type=\"text\" placeholder=\"Filter messages\" (input)=\"filterValue = $any($event.target).value; setMessages()\">\n</div>"]}
@@ -1,3 +1,2 @@
1
1
  export * from './console/console.component';
2
- export * from './console/console.component.animations';
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/logger/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wCAAwC,CAAC","sourcesContent":["export * from './console/console.component';\nexport * from './console/console.component.animations';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/logger/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC","sourcesContent":["export * from './console/console.component';\n"]}
@@ -55,10 +55,10 @@ export class ConsoleComponentService {
55
55
  }
56
56
  this.logsChangeSubject.next();
57
57
  }
58
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ConsoleComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
59
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ConsoleComponentService, providedIn: 'root' }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ConsoleComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
59
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ConsoleComponentService, providedIn: 'root' }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ConsoleComponentService, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ConsoleComponentService, decorators: [{
62
62
  type: Injectable,
63
63
  args: [{ providedIn: 'root' }]
64
64
  }] });
@@ -20,10 +20,10 @@ export class ConsoleComponentServiceOptions {
20
20
  this.maxLogsCount = maxLogsCount;
21
21
  }
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ConsoleComponentServiceOptions, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ConsoleComponentServiceOptions, providedIn: 'root', useFactory: () => new ConsoleComponentServiceOptions() }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ConsoleComponentServiceOptions, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
24
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ConsoleComponentServiceOptions, providedIn: 'root', useFactory: () => new ConsoleComponentServiceOptions() }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ConsoleComponentServiceOptions, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ConsoleComponentServiceOptions, decorators: [{
27
27
  type: Injectable,
28
28
  args: [{ providedIn: 'root', useFactory: () => new ConsoleComponentServiceOptions() }]
29
29
  }], ctorParameters: () => [{ type: undefined }] });
@@ -88,10 +88,10 @@ export class DefaultLogger {
88
88
  }
89
89
  }
90
90
  }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DefaultLogger, deps: [{ token: i1.LoggerOptions }], target: i0.ɵɵFactoryTarget.Injectable }); }
92
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DefaultLogger }); }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: DefaultLogger, deps: [{ token: i1.LoggerOptions }], target: i0.ɵɵFactoryTarget.Injectable }); }
92
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: DefaultLogger }); }
93
93
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DefaultLogger, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: DefaultLogger, decorators: [{
95
95
  type: Injectable
96
96
  }], ctorParameters: () => [{ type: i1.LoggerOptions }] });
97
97
  //# sourceMappingURL=logger.service.js.map
@@ -32,10 +32,10 @@ export class RestSinkOptions {
32
32
  this.immediateFlushMinLevel = immediateFlushMinLevel;
33
33
  }
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: RestSinkOptions, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: RestSinkOptions, providedIn: 'root', useFactory: () => new RestSinkOptions() }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: RestSinkOptions, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: RestSinkOptions, providedIn: 'root', useFactory: () => new RestSinkOptions() }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: RestSinkOptions, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: RestSinkOptions, decorators: [{
39
39
  type: Injectable,
40
40
  args: [{ providedIn: 'root', useFactory: () => new RestSinkOptions() }]
41
41
  }], ctorParameters: () => [{ type: undefined }, { type: undefined }, { type: i1.LogLevel }] });
@@ -32,10 +32,10 @@ export class LoggerOptions {
32
32
  */
33
33
  this.loggerSinks = [];
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LoggerOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LoggerOptions, providedIn: 'root' }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: LoggerOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: LoggerOptions, providedIn: 'root' }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LoggerOptions, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: LoggerOptions, decorators: [{
39
39
  type: Injectable,
40
40
  args: [{ providedIn: 'root' }]
41
41
  }] });
@@ -91,10 +91,10 @@ export class MultiButtonComponent {
91
91
  _removeRegistration() {
92
92
  this._document.removeEventListener('click', this._handleClickOutside);
93
93
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: MultiButtonComponent, deps: [{ token: DOCUMENT }, { token: MULTI_BUTTON_CSS_CLASSES, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.0", type: MultiButtonComponent, isStandalone: true, selector: "multi-button", inputs: { cssClass: "cssClass", cssClasses: "cssClasses" }, outputs: { click: "click" }, queries: [{ propertyName: "subButtonsContent", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div [ngClass]=\"[cssClass, cssClasses?.mainButtonDiv]\">\r\n <div (click)=\"click.emit($event)\" [ngClass]=\"cssClasses?.mainButtonContentDiv\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <span [ngClass]=\"cssClasses?.mainButtonSeparatorDiv\"></span>\r\n\r\n <div [ngClass]=\"cssClasses?.mainButtonClickAreaDiv\" (click)=\"showSubButtons($event)\">\r\n <div [ngClass]=\"cssClasses?.mainButtonMultiOptionDiv\"></div>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass]=\"cssClasses?.subButtonsDiv\" *ngIf=\"subButtonsVisible\" [style.top.px]=\"subButtonsOffset\">\r\n <ng-container *ngTemplateOutlet=\"subButtonsContent\"/>\r\n</div>", styles: [":host\r\n{\r\n display: flex;\r\n position: relative;\r\n}\r\n\r\n.multi-option\r\n{\r\n align-self: center;\r\n text-align: center;\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n.multi-button-content\r\n{\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n padding: 3px 8px;\r\n}\r\n\r\n.multi-option-separator\r\n{\r\n border-left-style: solid;\r\n border-left-width: 1px;\r\n margin-top: -1px;\r\n margin-bottom: -1px;\r\n}\r\n\r\n.multi-option-click\r\n{\r\n width: 1.6em;\r\n display: flex;\r\n flex-direction: row;\r\n}\r\n\r\n.sub-buttons\r\n{\r\n display: flex;\r\n flex-direction: column;\r\n position: absolute;\r\n min-width: 100%;\r\n padding: 4px 0;\r\n border-radius: 4px;\r\n}"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: MultiButtonComponent, deps: [{ token: DOCUMENT }, { token: MULTI_BUTTON_CSS_CLASSES, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0", type: MultiButtonComponent, isStandalone: true, selector: "multi-button", inputs: { cssClass: "cssClass", cssClasses: "cssClasses" }, outputs: { click: "click" }, queries: [{ propertyName: "subButtonsContent", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div [ngClass]=\"[cssClass, cssClasses?.mainButtonDiv]\">\r\n <div (click)=\"click.emit($event)\" [ngClass]=\"cssClasses?.mainButtonContentDiv\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <span [ngClass]=\"cssClasses?.mainButtonSeparatorDiv\"></span>\r\n\r\n <div [ngClass]=\"cssClasses?.mainButtonClickAreaDiv\" (click)=\"showSubButtons($event)\">\r\n <div [ngClass]=\"cssClasses?.mainButtonMultiOptionDiv\"></div>\r\n </div>\r\n</div>\r\n\r\n<div [ngClass]=\"cssClasses?.subButtonsDiv\" *ngIf=\"subButtonsVisible\" [style.top.px]=\"subButtonsOffset\">\r\n <ng-container *ngTemplateOutlet=\"subButtonsContent\"/>\r\n</div>", styles: [":host\r\n{\r\n display: flex;\r\n position: relative;\r\n}\r\n\r\n.multi-option\r\n{\r\n align-self: center;\r\n text-align: center;\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n.multi-button-content\r\n{\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n padding: 3px 8px;\r\n}\r\n\r\n.multi-option-separator\r\n{\r\n border-left-style: solid;\r\n border-left-width: 1px;\r\n margin-top: -1px;\r\n margin-bottom: -1px;\r\n}\r\n\r\n.multi-option-click\r\n{\r\n width: 1.6em;\r\n display: flex;\r\n flex-direction: row;\r\n}\r\n\r\n.sub-buttons\r\n{\r\n display: flex;\r\n flex-direction: column;\r\n position: absolute;\r\n min-width: 100%;\r\n padding: 4px 0;\r\n border-radius: 4px;\r\n}"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: MultiButtonComponent, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: MultiButtonComponent, decorators: [{
98
98
  type: Component,
99
99
  args: [{ selector: 'multi-button', imports: [
100
100
  NgClass,
@@ -5,11 +5,11 @@ import * as i0 from "@angular/core";
5
5
  * Module containing components for displaying multi button
6
6
  */
7
7
  export class MultiButtonModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: MultiButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: MultiButtonModule, imports: [MultiButtonComponent], exports: [MultiButtonComponent] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: MultiButtonModule }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: MultiButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.0", ngImport: i0, type: MultiButtonModule, imports: [MultiButtonComponent], exports: [MultiButtonComponent] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: MultiButtonModule }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: MultiButtonModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: MultiButtonModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/progressIndicator/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iDAAiD,CAAC","sourcesContent":["export * from './progressIndicator/progressIndicator.component';"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/progressIndicator/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iDAAiD,CAAC","sourcesContent":["export * from './progressIndicator/progressIndicator.component';\n"]}
@@ -54,10 +54,10 @@ export class ProgressIndicatorComponent {
54
54
  this._subscription = null;
55
55
  }
56
56
  }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorComponent, deps: [{ token: i1.ProgressIndicatorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.0", type: ProgressIndicatorComponent, isStandalone: true, selector: "progress-indicator", inputs: { cssClass: "cssClass" }, ngImport: i0, template: "<div [ngClass]=\"appliedClass\">\n <div class=\"spinner\"></div>\n\n <div class=\"messages\">\n @for(msg of messages; track msg)\n {\n <div [ngClass]=\"'message-' + ((messages.length - $index) > 3 ? 'out' : (messages.length - $index - 1))\">{{msg | localize}}</div>\n }\n </div>\n</div>", styles: ["\n.progress-indicator\n{\n transition: all 250ms linear;\n background-color: rgba(0, 0, 0, 0.45);\n height: 100%;\n width: 100%;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 23456;\n opacity: 0;\n visibility: hidden;\n}\n.progress-indicator.running\n{\n visibility: visible;\n opacity: 1;\n}\n.progress-indicator.running > .spinner\n{\n border: 4px solid #eee;\n border-bottom: none;\n border-top-left-radius: 48px;\n border-top-right-radius: 48px;\n height: 24px;\n margin-left: auto;\n margin-right: auto;\n position: relative;\n top: 50%;\n width: 48px;\n animation-name: rotate-progress;\n animation-duration: 450ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n transform-origin: calc(50%) calc(50% + 12px);\n}\n\n.progress-indicator.running > .messages\n{\n color: #eee;\n top: calc(50% + 25px);\n position: relative;\n text-align: center;\n font-weight: bold;\n font-size: 1.25em;\n display: flex;\n flex-direction: column-reverse;\n}\n\n.progress-indicator.running > .messages .message-0,\n.progress-indicator.running > .messages .message-1,\n.progress-indicator.running > .messages .message-2,\n.progress-indicator.running > .messages .message-out\n{\n transition: all 500ms;\n position: absolute;\n width: 100%;\n top: 0;\n}\n\n.progress-indicator.running > .messages .message-1\n{\n transform: scale3d(0.7, 0.7, 0.7) translateZ(-20px) translateY(30px);\n opacity: 0.8;\n}\n\n.progress-indicator.running > .messages .message-2\n{\n transform: scale3d(0.35, 0.35, 0.35) translateZ(-40px) translateY(100px);\n opacity: 0.5;\n}\n\n.progress-indicator.running > .messages .message-out\n{\n transform: scale3d(0, 0, 0) translateZ(-100px) translateY(200px);\n}\n\n@keyframes rotate-progress\n{\n from\n {\n transform: rotate(0deg);\n }\n to\n {\n transform: rotate(360deg);\n }\n}"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorComponent, deps: [{ token: i1.ProgressIndicatorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0", type: ProgressIndicatorComponent, isStandalone: true, selector: "progress-indicator", inputs: { cssClass: "cssClass" }, ngImport: i0, template: "<div [ngClass]=\"appliedClass\">\n <div class=\"spinner\"></div>\n\n <div class=\"messages\">\n @for(msg of messages; track msg)\n {\n <div [ngClass]=\"'message-' + ((messages.length - $index) > 3 ? 'out' : (messages.length - $index - 1))\">{{msg | localize}}</div>\n }\n </div>\n</div>", styles: ["\n.progress-indicator\n{\n transition: all 250ms linear;\n background-color: rgba(0, 0, 0, 0.45);\n height: 100%;\n width: 100%;\n position: fixed;\n top: 0;\n left: 0;\n z-index: 23456;\n opacity: 0;\n visibility: hidden;\n}\n.progress-indicator.running\n{\n visibility: visible;\n opacity: 1;\n}\n.progress-indicator.running > .spinner\n{\n border: 4px solid #eee;\n border-bottom: none;\n border-top-left-radius: 48px;\n border-top-right-radius: 48px;\n height: 24px;\n margin-left: auto;\n margin-right: auto;\n position: relative;\n top: 50%;\n width: 48px;\n animation-name: rotate-progress;\n animation-duration: 450ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n transform-origin: calc(50%) calc(50% + 12px);\n}\n\n.progress-indicator.running > .messages\n{\n color: #eee;\n top: calc(50% + 25px);\n position: relative;\n text-align: center;\n font-weight: bold;\n font-size: 1.25em;\n display: flex;\n flex-direction: column-reverse;\n}\n\n.progress-indicator.running > .messages .message-0,\n.progress-indicator.running > .messages .message-1,\n.progress-indicator.running > .messages .message-2,\n.progress-indicator.running > .messages .message-out\n{\n transition: all 500ms;\n position: absolute;\n width: 100%;\n top: 0;\n}\n\n.progress-indicator.running > .messages .message-1\n{\n transform: scale3d(0.7, 0.7, 0.7) translateZ(-20px) translateY(30px);\n opacity: 0.8;\n}\n\n.progress-indicator.running > .messages .message-2\n{\n transform: scale3d(0.35, 0.35, 0.35) translateZ(-40px) translateY(100px);\n opacity: 0.5;\n}\n\n.progress-indicator.running > .messages .message-out\n{\n transform: scale3d(0, 0, 0) translateZ(-100px) translateY(200px);\n}\n\n@keyframes rotate-progress\n{\n from\n {\n transform: rotate(0deg);\n }\n to\n {\n transform: rotate(360deg);\n }\n}"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: LocalizePipe, name: "localize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorComponent, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorComponent, decorators: [{
61
61
  type: Component,
62
62
  args: [{ selector: 'progress-indicator', imports: [
63
63
  NgClass,
@@ -103,10 +103,10 @@ export class ProgressOverlayDirective {
103
103
  });
104
104
  }
105
105
  }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressOverlayDirective, deps: [{ token: i1.ProgressIndicatorService }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: STRING_LOCALIZATION }], target: i0.ɵɵFactoryTarget.Directive }); }
107
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: ProgressOverlayDirective, isStandalone: true, selector: "[progressOverlay]", inputs: { name: ["progressOverlay", "name"] }, ngImport: i0 }); }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressOverlayDirective, deps: [{ token: i1.ProgressIndicatorService }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: STRING_LOCALIZATION }], target: i0.ɵɵFactoryTarget.Directive }); }
107
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: ProgressOverlayDirective, isStandalone: true, selector: "[progressOverlay]", inputs: { name: ["progressOverlay", "name"] }, ngImport: i0 }); }
108
108
  }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressOverlayDirective, decorators: [{
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressOverlayDirective, decorators: [{
110
110
  type: Directive,
111
111
  args: [{
112
112
  selector: '[progressOverlay]',
@@ -37,10 +37,10 @@ export class ProgressInterceptor {
37
37
  }
38
38
  }, () => this._indicatorSvc.hideProgress(req.context.get(PROGRESS_INDICATOR_GROUP_NAME))));
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressInterceptor, deps: [{ token: i1.ProgressIndicatorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
41
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressInterceptor }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressInterceptor, deps: [{ token: i1.ProgressIndicatorService }], target: i0.ɵɵFactoryTarget.Injectable }); }
41
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressInterceptor }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressInterceptor, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressInterceptor, decorators: [{
44
44
  type: Injectable
45
45
  }], ctorParameters: () => [{ type: i1.ProgressIndicatorService }] });
46
46
  /**
@@ -6,13 +6,13 @@ import * as i0 from "@angular/core";
6
6
  * Module for progress indicator
7
7
  */
8
8
  export class ProgressIndicatorModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorModule, imports: [ProgressIndicatorComponent,
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorModule, imports: [ProgressIndicatorComponent,
11
11
  ProgressOverlayDirective], exports: [ProgressIndicatorComponent,
12
12
  ProgressOverlayDirective] }); }
13
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorModule }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorModule }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{
18
18
  imports: [
@@ -239,10 +239,10 @@ export class ProgressIndicatorService {
239
239
  this._runningRequests[name] = group;
240
240
  return group;
241
241
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorService, deps: [{ token: i1.ProgressIndicatorOptions, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
243
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorService, providedIn: 'root' }); }
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorService, deps: [{ token: i1.ProgressIndicatorOptions, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
243
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorService, providedIn: 'root' }); }
244
244
  }
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: ProgressIndicatorService, decorators: [{
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ProgressIndicatorService, decorators: [{
246
246
  type: Injectable,
247
247
  args: [{ providedIn: 'root' }]
248
248
  }], ctorParameters: () => [{ type: i1.ProgressIndicatorOptions, decorators: [{
@@ -57,12 +57,15 @@ export class TooltipComponent {
57
57
  mouseLeave() {
58
58
  this.leaveFn();
59
59
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: TooltipComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.0", type: TooltipComponent, isStandalone: true, selector: "tooltip-popup", host: { listeners: { "mouseenter": "mouseEnter()", "mouseleave": "mouseLeave()" } }, ngImport: i0, template: "@if(!template && !allowHtml)\r\n{\r\n <div>{{data}}</div>\r\n}\r\n\r\n@if(!template && allowHtml)\r\n{\r\n <div [innerHTML]=\"data\"></div>\r\n}\r\n\r\n@if(template)\r\n{\r\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: data}\"/>\r\n}\r\n", styles: [":host\r\n{\r\n display: block;\r\n position: absolute;\r\n padding: 2px 4px;\r\n border-radius: 3px;\r\n font-size: 0.9em;\r\n max-width: 300px;\r\n user-select: text;\r\n}"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: TooltipComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0", type: TooltipComponent, isStandalone: true, selector: "tooltip-popup", host: { listeners: { "mouseenter": "mouseEnter()", "mouseleave": "mouseLeave()" }, properties: { "animate.enter": "enterAnimation", "animate.leave": "exitAnimation" } }, ngImport: i0, template: "@if(!template && !allowHtml)\r\n{\r\n <div>{{data}}</div>\r\n}\r\n\r\n@if(!template && allowHtml)\r\n{\r\n <div [innerHTML]=\"data\"></div>\r\n}\r\n\r\n@if(template)\r\n{\r\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: data}\"/>\r\n}\r\n", styles: [":host\r\n{\r\n display: block;\r\n position: absolute;\r\n padding: 2px 4px;\r\n border-radius: 3px;\r\n font-size: 0.9em;\r\n max-width: 300px;\r\n user-select: text;\r\n}"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: TooltipComponent, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: TooltipComponent, decorators: [{
64
64
  type: Component,
65
- args: [{ selector: 'tooltip-popup', imports: [
65
+ args: [{ selector: 'tooltip-popup', host: {
66
+ '[animate.enter]': 'enterAnimation',
67
+ '[animate.leave]': 'exitAnimation',
68
+ }, imports: [
66
69
  NgTemplateOutlet,
67
70
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(!template && !allowHtml)\r\n{\r\n <div>{{data}}</div>\r\n}\r\n\r\n@if(!template && allowHtml)\r\n{\r\n <div [innerHTML]=\"data\"></div>\r\n}\r\n\r\n@if(template)\r\n{\r\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: data}\"/>\r\n}\r\n", styles: [":host\r\n{\r\n display: block;\r\n position: absolute;\r\n padding: 2px 4px;\r\n border-radius: 3px;\r\n font-size: 0.9em;\r\n max-width: 300px;\r\n user-select: text;\r\n}"] }]
68
71
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { mouseEnter: [{
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.component.js","sourceRoot":"","sources":["../../../../../../src/modules/tooltip/components/tooltip/tooltip.component.ts","../../../../../../src/modules/tooltip/components/tooltip/tooltip.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAe,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3H,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;;AAMjD;;GAEG;AAYH,MAAM,OAAO,gBAAgB;IAoCzB,iEAAiE;IACjE,YAAsB,cAAiC,EACjC,OAAgC;QADhC,mBAAc,GAAd,cAAc,CAAmB;QACjC,YAAO,GAAP,OAAO,CAAyB;QApCtD,sEAAsE;QAEtE;;WAEG;QACO,YAAO,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;QAE3C;;WAEG;QACO,YAAO,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;QAc3C;;WAEG;QACI,cAAS,GAAY,KAAK,CAAC;IAWlC,CAAC;IAED,wGAAwG;IAExG;;;;OAIG;IACI,mBAAmB,CAAC,KAAiB,EAAE,KAAiB;QAE3D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,iBAAiB;QAEpB,IAAG,IAAI,CAAC,QAAQ,EAChB,CAAC;YACG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,8EAA8E;IAE9E;;;OAGG;IAEO,UAAU;QAEhB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEO,UAAU;QAEhB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;8GAxFQ,gBAAgB;kGAAhB,gBAAgB,8JCrB7B,6QAcA,2PDGQ,gBAAgB;;2FAIX,gBAAgB;kBAX5B,SAAS;+BAEI,eAAe,WAIzB;wBACI,gBAAgB;qBACnB,mBACgB,uBAAuB,CAAC,MAAM;+GA6ErC,UAAU;sBADnB,YAAY;uBAAC,YAAY;gBAWhB,UAAU;sBADnB,YAAY;uBAAC,YAAY","sourcesContent":["import {Component, ChangeDetectionStrategy, TemplateRef, ChangeDetectorRef, ElementRef, HostListener} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {Invalidatable} from '@jscrpt/common';\n\nimport {TooltipTemplateContext} from '../../directives';\nimport {TooltipRenderer} from '../../misc/tooltip.interface';\n\n/**\n * Component used for displaying tooltip content\n */\n@Component(\n{\n selector: 'tooltip-popup',\n templateUrl: 'tooltip.component.html',\n styleUrl: 'tooltip.component.css',\n imports:\n [\n NgTemplateOutlet,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipComponent<TData = any> implements TooltipRenderer<TData>, Invalidatable\n{\n //######################### protected fields #########################\n\n /**\n * Called when mouse enter tooltip component, hover\n */\n protected enterFn: () => void = () => null;\n\n /**\n * Called when mouse leaves tooltip component\n */\n protected leaveFn: () => void = () => null;\n\n //######################### public properties - implementation of TooltipRenderer #########################\n\n /**\n * Data that are rendered in tooltip\n */\n public data: TData|null|undefined;\n\n /**\n * Template used for rendering tooltip\n */\n public template: TemplateRef<TooltipTemplateContext<TData>>|null|undefined;\n\n /**\n * Indication whether are html tags allowed in tooltip text\n */\n public allowHtml: boolean = false;\n\n /**\n * Css class that is applied to tooltip renderer component\n */\n public cssClass: string|null|undefined;\n\n //######################### constructor #########################\n constructor(protected changeDetector: ChangeDetectorRef,\n protected element: ElementRef<HTMLElement>)\n {\n }\n\n //######################### public methods - implementation of TooltipRenderer #########################\n\n /**\n * Registers handlers that allows reaction to entering or leaving tooltip\n * @param enter - Called when mouse enter tooltip component, hover\n * @param leave - Called when mouse leaves tooltip component\n */\n public registerHoverEvents(enter: () => void, leave: () => void): void\n {\n this.enterFn = enter;\n this.leaveFn = leave;\n }\n\n /**\n * @inheritdoc\n */\n public invalidateVisuals(): void\n {\n if(this.cssClass)\n {\n this.element.nativeElement.classList.add(this.cssClass);\n }\n\n this.changeDetector.detectChanges();\n }\n\n //######################### protected methods - host #########################\n\n /**\n * Handles mouse enter event over tooltip\n * @internal\n */\n @HostListener('mouseenter')\n protected mouseEnter(): void\n {\n this.enterFn();\n }\n\n /**\n * Handles mouse leave event over tooltip\n * @internal\n */\n @HostListener('mouseleave')\n protected mouseLeave(): void\n {\n this.leaveFn();\n }\n}","@if(!template && !allowHtml)\r\n{\r\n <div>{{data}}</div>\r\n}\r\n\r\n@if(!template && allowHtml)\r\n{\r\n <div [innerHTML]=\"data\"></div>\r\n}\r\n\r\n@if(template)\r\n{\r\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: data}\"/>\r\n}\r\n"]}
1
+ {"version":3,"file":"tooltip.component.js","sourceRoot":"","sources":["../../../../../../src/modules/tooltip/components/tooltip/tooltip.component.ts","../../../../../../src/modules/tooltip/components/tooltip/tooltip.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,uBAAuB,EAAe,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3H,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;;AAMjD;;GAEG;AAiBH,MAAM,OAAO,gBAAgB;IA8CzB,iEAAiE;IACjE,YAAsB,cAAiC,EACjC,OAAgC;QADhC,mBAAc,GAAd,cAAc,CAAmB;QACjC,YAAO,GAAP,OAAO,CAAyB;QA9CtD,sEAAsE;QAEtE;;WAEG;QACO,YAAO,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;QAE3C;;WAEG;QACO,YAAO,GAAe,GAAG,EAAE,CAAC,IAAI,CAAC;QAc3C;;WAEG;QACI,cAAS,GAAY,KAAK,CAAC;IAqBlC,CAAC;IAED,wGAAwG;IAExG;;;;OAIG;IACI,mBAAmB,CAAC,KAAiB,EAAE,KAAiB;QAE3D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,iBAAiB;QAEpB,IAAG,IAAI,CAAC,QAAQ,EAChB,CAAC;YACG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC;IAED,8EAA8E;IAE9E;;;OAGG;IAEO,UAAU;QAEhB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEO,UAAU;QAEhB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;8GAlGQ,gBAAgB;kGAAhB,gBAAgB,mPC1B7B,6QAcA,2PDQQ,gBAAgB;;2FAIX,gBAAgB;kBAhB5B,SAAS;+BAEI,eAAe,QAIzB;wBACI,iBAAiB,EAAE,gBAAgB;wBACnC,iBAAiB,EAAE,eAAe;qBACrC,WAED;wBACI,gBAAgB;qBACnB,mBACgB,uBAAuB,CAAC,MAAM;+GAuFrC,UAAU;sBADnB,YAAY;uBAAC,YAAY;gBAWhB,UAAU;sBADnB,YAAY;uBAAC,YAAY","sourcesContent":["import {Component, ChangeDetectionStrategy, TemplateRef, ChangeDetectorRef, ElementRef, HostListener} from '@angular/core';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {Invalidatable} from '@jscrpt/common';\n\nimport {TooltipTemplateContext} from '../../directives';\nimport {TooltipRenderer} from '../../misc/tooltip.interface';\n\n/**\n * Component used for displaying tooltip content\n */\n@Component(\n{\n selector: 'tooltip-popup',\n templateUrl: 'tooltip.component.html',\n styleUrl: 'tooltip.component.css',\n host:\n {\n '[animate.enter]': 'enterAnimation',\n '[animate.leave]': 'exitAnimation',\n },\n imports:\n [\n NgTemplateOutlet,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipComponent<TData = any> implements TooltipRenderer<TData>, Invalidatable\n{\n //######################### protected fields #########################\n\n /**\n * Called when mouse enter tooltip component, hover\n */\n protected enterFn: () => void = () => null;\n\n /**\n * Called when mouse leaves tooltip component\n */\n protected leaveFn: () => void = () => null;\n\n //######################### public properties - implementation of TooltipRenderer #########################\n\n /**\n * Data that are rendered in tooltip\n */\n public data: TData|null|undefined;\n\n /**\n * Template used for rendering tooltip\n */\n public template: TemplateRef<TooltipTemplateContext<TData>>|null|undefined;\n\n /**\n * Indication whether are html tags allowed in tooltip text\n */\n public allowHtml: boolean = false;\n\n /**\n * Css class that is applied to tooltip renderer component\n */\n public cssClass: string|null|undefined;\n\n /**\n * Animation used to tooltip component when it is displayed\n */\n public enterAnimation: string;\n\n /**\n * Animation used to tooltip component when it is hidden\n */\n public exitAnimation: string;\n\n //######################### constructor #########################\n constructor(protected changeDetector: ChangeDetectorRef,\n protected element: ElementRef<HTMLElement>)\n {\n }\n\n //######################### public methods - implementation of TooltipRenderer #########################\n\n /**\n * Registers handlers that allows reaction to entering or leaving tooltip\n * @param enter - Called when mouse enter tooltip component, hover\n * @param leave - Called when mouse leaves tooltip component\n */\n public registerHoverEvents(enter: () => void, leave: () => void): void\n {\n this.enterFn = enter;\n this.leaveFn = leave;\n }\n\n /**\n * @inheritdoc\n */\n public invalidateVisuals(): void\n {\n if(this.cssClass)\n {\n this.element.nativeElement.classList.add(this.cssClass);\n }\n\n this.changeDetector.detectChanges();\n }\n\n //######################### protected methods - host #########################\n\n /**\n * Handles mouse enter event over tooltip\n * @internal\n */\n @HostListener('mouseenter')\n protected mouseEnter(): void\n {\n this.enterFn();\n }\n\n /**\n * Handles mouse leave event over tooltip\n * @internal\n */\n @HostListener('mouseleave')\n protected mouseLeave(): void\n {\n this.leaveFn();\n }\n}","@if(!template && !allowHtml)\r\n{\r\n <div>{{data}}</div>\r\n}\r\n\r\n@if(!template && allowHtml)\r\n{\r\n <div [innerHTML]=\"data\"></div>\r\n}\r\n\r\n@if(template)\r\n{\r\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: data}\"/>\r\n}\r\n"]}