{ "version": 3, "sources": ["src/app/shared/read-more/read-more.component.ts", "src/app/shared/read-more/read-more.component.html"], "sourcesContent": ["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges } from '@angular/core';\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {SafeHtmlPipe} from \"../../_pipes/safe-html.pipe\";\r\nimport {TranslocoDirective} from \"@ngneat/transloco\";\r\n\r\n@Component({\r\n selector: 'app-read-more',\r\n standalone: true,\r\n imports: [CommonModule, SafeHtmlPipe, TranslocoDirective],\r\n templateUrl: './read-more.component.html',\r\n styleUrls: ['./read-more.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ReadMoreComponent implements OnChanges {\r\n /**\r\n * String to apply readmore on\r\n */\r\n @Input({required: true}) text!: string;\r\n /**\r\n * Max length before apply read more. Defaults to 250 characters.\r\n */\r\n @Input() maxLength: number = 250;\r\n /**\r\n * If the field is collapsed and blur true, text will not be readable\r\n */\r\n @Input() blur: boolean = false;\r\n /**\r\n * If the read more toggle is visible\r\n */\r\n @Input() showToggle: boolean = true;\r\n\r\n currentText!: string;\r\n hideToggle: boolean = true;\r\n isCollapsed: boolean = true;\r\n\r\n constructor(private readonly cdRef: ChangeDetectorRef) {}\r\n\r\n toggleView() {\r\n this.isCollapsed = !this.isCollapsed;\r\n this.determineView();\r\n }\r\n\r\n determineView() {\r\n if (!this.text || this.text.length <= this.maxLength) {\r\n this.currentText = this.text;\r\n this.isCollapsed = true;\r\n this.hideToggle = true;\r\n return;\r\n }\r\n this.hideToggle = false;\r\n if (this.isCollapsed) {\r\n this.currentText = this.text.substring(0, this.maxLength);\r\n this.currentText = this.currentText.substring(0, Math.min(this.currentText.length, this.currentText.lastIndexOf(' ')));\r\n this.currentText = this.currentText + '…';\r\n } else if (!this.isCollapsed) {\r\n this.currentText = this.text;\r\n }\r\n\r\n this.cdRef.markForCheck();\r\n }\r\n ngOnChanges() {\r\n this.determineView();\r\n }\r\n}\r\n", "\r\n
\r\n \r\n maxLength && showToggle\" class=\"read-more-link\" (click)=\"toggleView()\">\r\n   {{isCollapsed ? t('read-more') : t('read-less')}}\r\n \r\n
\r\n
\r\n"], "mappings": "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", "names": ["\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "toggleView", "\u0275\u0275text", "\u0275\u0275element", "\u0275\u0275elementEnd", "\u0275\u0275classProp", "hideToggle", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pureFunction2", "_c1", "isCollapsed", "\u0275\u0275textInterpolate1", "t_r3", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "ReadMoreComponent_ng_container_0_a_4_Template", "\u0275\u0275pipeBind1", "currentText", "\u0275\u0275sanitizeHtml", "\u0275\u0275pureFunction1", "_c0", "blur", "text", "length", "maxLength", "showToggle", "ReadMoreComponent", "constructor", "cdRef", "determineView", "substring", "Math", "min", "lastIndexOf", "markForCheck", "ngOnChanges", "\u0275\u0275directiveInject", "ChangeDetectorRef", "selectors", "inputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "ReadMoreComponent_ng_container_0_Template", "CommonModule", "NgClass", "NgIf", "SafeHtmlPipe", "TranslocoDirective", "styles", "changeDetection", "_ReadMoreComponent"] }