{"version":3,"file":"ng-nest-ui-text-retract.mjs","sources":["../../../../lib/ng-nest/ui/text-retract/text-retract.property.ts","../../../../lib/ng-nest/ui/text-retract/text-retract.component.ts","../../../../lib/ng-nest/ui/text-retract/text-retract.component.html","../../../../lib/ng-nest/ui/text-retract/text-retract.module.ts","../../../../lib/ng-nest/ui/text-retract/ng-nest-ui-text-retract.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\r\nimport { XPropertyFunction, XToNumber } from '@ng-nest/ui/core';\r\nimport type { XNumber } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * TextRetract\r\n * @selector x-text-retract\r\n * @decorator component\r\n */\r\nexport const XTextRetractPrefix = 'x-text-retract';\r\nconst X_TEXT_RETRACT_CONFIG_NAME = 'textRetract';\r\n\r\n/**\r\n * TextRetract Property\r\n */\r\n@Component({ selector: `${XTextRetractPrefix}-property`, template: '' })\r\nexport class XTextRetractProperty extends XPropertyFunction(X_TEXT_RETRACT_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 文本\r\n   * @en_US text\r\n   */\r\n  readonly content = input<string>();\r\n  /**\r\n   * @zh_CN 默认最大显示字符数\r\n   * @en_US Default maximum number of characters displayed\r\n   */\r\n  readonly max = input<number, XNumber>(this.config?.max ?? 256, { transform: XToNumber });\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed, signal } from '@angular/core';\r\nimport { XTextRetractPrefix, XTextRetractProperty } from './text-retract.property';\r\nimport { XI18nPipe } from '@ng-nest/ui/i18n';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\n\r\n@Component({\r\n  selector: `${XTextRetractPrefix}`,\r\n  imports: [FormsModule, XLinkComponent, XI18nPipe],\r\n  templateUrl: './text-retract.component.html',\r\n  styleUrls: ['./text-retract.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTextRetractComponent extends XTextRetractProperty {\r\n  displayValue = computed(() => {\r\n    const content = this.content();\r\n    const max = this.max();\r\n    const unfold = this.unfold();\r\n    if (unfold) {\r\n      if (content && content.length > max) {\r\n        return content.substring(0, max);\r\n      } else {\r\n        return content;\r\n      }\r\n    } else {\r\n      return content;\r\n    }\r\n  });\r\n  retract = computed(() => {\r\n    const content = this.content();\r\n    return content && content.length > this.max();\r\n  });\r\n  unfold = signal(false);\r\n\r\n  toggle() {\r\n    this.unfold.update((x) => !x);\r\n  }\r\n}\r\n","<div class=\"x-text-retract\">\r\n  {{ displayValue() }}\r\n  @if (retract()) {\r\n    @if (unfold()) {\r\n      <x-link type=\"primary\" (click)=\"toggle()\">...{{ 'textRetract.unfold' | xI18n }}</x-link>\r\n    } @else {\r\n      <x-link type=\"primary\" (click)=\"toggle()\">{{ 'textRetract.packUp' | xI18n }}</x-link>\r\n    }\r\n  }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XTextRetractComponent } from './text-retract.component';\r\n\r\n@NgModule({\r\n  exports: [XTextRetractComponent],\r\n  imports: [XTextRetractComponent]\r\n})\r\nexport class XTextRetractModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}