{"version":3,"file":"ng-nest-ui-keyword.mjs","sources":["../../../../lib/ng-nest/ui/keyword/keyword.property.ts","../../../../lib/ng-nest/ui/keyword/keyword.directive.ts","../../../../lib/ng-nest/ui/keyword/keyword.module.ts","../../../../lib/ng-nest/ui/keyword/ng-nest-ui-keyword.ts"],"sourcesContent":["import { XPropertyFunction, XToBoolean } from '@ng-nest/ui/core';\r\nimport { Directive, input } from '@angular/core';\r\nimport type { XBoolean, XType } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Keyword\r\n * @selector x-keyword\r\n * @decorator directive\r\n */\r\nexport const XKeywordPrefix = 'x-keyword';\r\nconst X_KEYWORD_CONFIG_NAME = 'keyword';\r\n\r\n/**\r\n * Keyword Property\r\n */\r\n@Directive({ selector: '[x-keyword]' })\r\nexport class XKeywordProperty extends XPropertyFunction(X_KEYWORD_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 类型\r\n   * @en_US Types of\r\n   */\r\n  readonly type = input<XKeywordType>(this.config?.type ?? 'primary');\r\n  /**\r\n   * @zh_CN 匹配关键字区分大小写\r\n   * @en_US Case-sensitive\r\n   */\r\n  readonly caseSensitive = input<boolean, XBoolean>(this.config?.caseSensitive ?? true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 颜色\r\n   * @en_US color\r\n   */\r\n  readonly color = input<string>(this.config?.color ?? '');\r\n  /**\r\n   * @zh_CN 文字\r\n   * @en_US text\r\n   */\r\n  readonly text = input<string | string[]>();\r\n}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Keyword type\r\n */\r\nexport type XKeywordType = XType;\r\n","import { ElementRef, Directive, inject, effect, HostBinding, computed } from '@angular/core';\r\nimport { XIsArray, XIsString, XIsUndefined } from '@ng-nest/ui/core';\r\nimport { XKeywordPrefix, XKeywordProperty } from './keyword.property';\r\n\r\n@Directive({\r\n  selector: `[${XKeywordPrefix}]`\r\n})\r\nexport class XKeywordDirective extends XKeywordProperty {\r\n  private elementRef = inject(ElementRef);\r\n  @HostBinding('class') get cls() {\r\n    if (!this.color()) {\r\n      return `${XKeywordPrefix}-${this.type()}`;\r\n    }\r\n    return '';\r\n  }\r\n  textContent = computed(() => {\r\n    const text = this.text();\r\n    if (XIsUndefined(this.text())) return;\r\n    const hele = this.elementRef.nativeElement as HTMLElement;\r\n    let textContent = hele.textContent;\r\n    if (!textContent) return;\r\n    let texts: string[] = [];\r\n    if (XIsArray(text)) {\r\n      texts = text;\r\n    } else if (XIsString(text)) {\r\n      texts = [text];\r\n    }\r\n    const flags = this.caseSensitive() ? 'g' : 'gi';\r\n    for (let tx of texts) {\r\n      const reg = new RegExp(tx, flags);\r\n      textContent = textContent.replace(reg, (p1) => {\r\n        if (this.color()) {\r\n          return `<span class=\"x-keyword-text\" style=\"color:${this.color()}\">${p1}</span>`;\r\n        }\r\n        return `<span class=\"x-keyword-text\">${p1}</span>`;\r\n      });\r\n    }\r\n    return textContent;\r\n  });\r\n\r\n  constructor() {\r\n    super();\r\n    effect(() => {\r\n      if (!XIsUndefined(this.text())) {\r\n        this.elementRef.nativeElement.innerHTML = this.textContent();\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XKeywordDirective } from './keyword.directive';\r\n\r\n@NgModule({\r\n  exports: [XKeywordDirective],\r\n  imports: [XKeywordDirective]\r\n})\r\nexport class XKeywordModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAIA;;;;AAIG;AACI,MAAM,cAAc,GAAG;AAC9B,MAAM,qBAAqB,GAAG,SAAS;AAEvC;;AAEG;MAEU,gBAAiB,SAAQ,iBAAiB,CAAC,qBAAqB,CAAC,CAAA;AAD9E,IAAA,WAAA,GAAA;;AAEE;;;AAGG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAe,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,SAAS,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACnE;;;AAGG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAoB,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,IAAI,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,eAAA,EAAA,GAAA,EAAA,CAAA,EAAI,SAAS,EAAE,UAAU,GAAG;AAChH;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACxD;;;AAGG;QACM,IAAA,CAAA,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAqB;AAC3C,IAAA;iIArBY,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qHAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,QAAQ,EAAE,aAAa,EAAE;;;ACRhC,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AAErD,IAAA,IAA0B,GAAG,GAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;YACjB,OAAO,CAAA,EAAG,cAAc,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE,EAAE;QAC3C;AACA,QAAA,OAAO,EAAE;IACX;AA0BA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAjCD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAOvC,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC1B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAE;AAC/B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B;AACzD,YAAA,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW;AAClC,YAAA,IAAI,CAAC,WAAW;gBAAE;YAClB,IAAI,KAAK,GAAa,EAAE;AACxB,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAClB,KAAK,GAAG,IAAI;YACd;AAAO,iBAAA,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;AAC1B,gBAAA,KAAK,GAAG,CAAC,IAAI,CAAC;YAChB;AACA,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG,IAAI;AAC/C,YAAA,KAAK,IAAI,EAAE,IAAI,KAAK,EAAE;gBACpB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;gBACjC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,KAAI;AAC5C,oBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;wBAChB,OAAO,CAAA,0CAAA,EAA6C,IAAI,CAAC,KAAK,EAAE,CAAA,EAAA,EAAK,EAAE,SAAS;oBAClF;oBACA,OAAO,CAAA,6BAAA,EAAgC,EAAE,CAAA,OAAA,CAAS;AACpD,gBAAA,CAAC,CAAC;YACJ;AACA,YAAA,OAAO,WAAW;AACpB,QAAA,CAAC,uDAAC;QAIA,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;gBAC9B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE;YAC9D;AACF,QAAA,CAAC,CAAC;IACJ;iIAxCW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qHAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,QAAQ,EAAE,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA;AAC7B,iBAAA;;sBAGE,WAAW;uBAAC,OAAO;;;MCFT,cAAc,CAAA;iIAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kIAAd,cAAc,EAAA,OAAA,EAAA,CAFf,iBAAiB,CAAA,EAAA,OAAA,EAAA,CADjB,iBAAiB,CAAA,EAAA,CAAA,CAAA;kIAGhB,cAAc,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,iBAAiB,CAAC;oBAC5B,OAAO,EAAE,CAAC,iBAAiB;AAC5B,iBAAA;;;ACND;;AAEG;;;;"}