{"version":3,"file":"annuadvent-ngx-cms-category.mjs","sources":["../../../projects/ngx-cms/category/src/components/category/category.component.ts","../../../projects/ngx-cms/category/src/components/category/category.component.html","../../../projects/ngx-cms/category/src/constants/category.constants.ts","../../../projects/ngx-cms/category/src/interfaces/category.interface.ts","../../../projects/ngx-cms/category/src/category.module.ts","../../../projects/ngx-cms/category/annuadvent-ngx-cms-category.ts"],"sourcesContent":["import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { UtilsService } from '@annuadvent/ngx-core/utils';\r\nimport { Category } from '../../interfaces/category.interface';\r\n\r\n@Component({\r\n  selector: 'anu-category',\r\n  templateUrl: './category.component.html',\r\n  styleUrls: ['./category.component.scss'],\r\n})\r\nexport class CategoryComponent implements OnInit, OnChanges {\r\n  /**\r\n   * Trims the description to the given character count and adds ... to the end of the text.\r\n   */\r\n  @Input() value: Category | null;\r\n  /**\r\n   * shows hyperlink to update page\r\n   */\r\n  @Input() updateHref: Array<string> = [];\r\n  /**\r\n   * shows hyperlink to readmore page\r\n   */\r\n  @Input() readMoreHref: Array<string> = [];\r\n  /**\r\n   * shows hyperlink to article full view page\r\n   */\r\n  @Input() titleHref: Array<string> = [];\r\n  /**\r\n   * if false, info like updated, created, published etc. will be hidden.\r\n   */\r\n  @Input() showMetaInfo: boolean = true;\r\n  /**\r\n   * toggle show short title on the card.\r\n   */\r\n  @Input() showShortTitle: boolean = true;\r\n  /**\r\n   * Trims the description to the given character count and adds ... to the end of the text.\r\n   */\r\n  @Input() descriptionCharCount: number = 0;\r\n\r\n  /**\r\n   * Shows/hides description from the card.\r\n   */\r\n  @Input() showDescription: boolean = true;\r\n\r\n  trimmedDescription: string = '';\r\n\r\n  constructor(public utilsSvc: UtilsService) { }\r\n\r\n  ngOnInit(): void {\r\n    this.trimDescription();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    this.trimDescription();\r\n  }\r\n\r\n  private trimDescription() {\r\n    const desc = this.value?.metaInfo?.description;\r\n\r\n    if (this.descriptionCharCount && this.descriptionCharCount > 0) {\r\n      this.trimmedDescription = this.utilsSvc.getTrimmedStringByChars(desc, this.descriptionCharCount);\r\n    } else {\r\n      this.trimmedDescription = desc;\r\n    }\r\n  }\r\n}\r\n","<anu-card\r\n  [imageCssClasses]=\"['col-sm-12', 'col-md-4', 'col-lg-4']\"\r\n  [contentCssClasses]=\"['col-sm-12', 'col-md-8', 'col-lg-8']\"\r\n  class=\"nowrap-md nowrap-lg\"\r\n>\r\n  <anu-card-image *ngIf=\"value?.image?.src\">\r\n    <a *ngIf=\"titleHref\" [routerLink]=\"titleHref\" class=\"shadow\"\r\n      ><img [src]=\"value?.image?.src\" [alt]=\"value?.image?.alt\"\r\n    /></a>\r\n    <img\r\n      *ngIf=\"!titleHref\"\r\n      [src]=\"value?.image?.src\"\r\n      [alt]=\"value?.image?.alt\"\r\n    />\r\n  </anu-card-image>\r\n  <anu-card-image *ngIf=\"!value?.image?.src\">\r\n    <div class=\"article-thumb shadow\"></div>\r\n  </anu-card-image>\r\n  <anu-card-title>\r\n    <h2>\r\n      <a *ngIf=\"titleHref\" [routerLink]=\"titleHref\">{{\r\n        value?.metaInfo?.title\r\n      }}</a>\r\n    </h2>\r\n    <h2 *ngIf=\"!titleHref\" [innerHtml]=\"value?.metaInfo?.title\"></h2>\r\n    <h3\r\n      *ngIf=\"showShortTitle && value?.shortTitle\"\r\n      [innerHtml]=\"value?.shortTitle\"\r\n    ></h3>\r\n    <small *ngIf=\"showMetaInfo\" class=\"row nowrap stretch\">\r\n      <div>\r\n        <strong>Updated: </strong\r\n        ><span\r\n          ><small>{{ utilsSvc.dateToLocalString(value?.updated) }}</small></span\r\n        >\r\n      </div>\r\n      <div>\r\n        <strong>Created: </strong\r\n        ><span\r\n          ><small>{{ utilsSvc.dateToLocalString(value?.created) }}</small></span\r\n        >\r\n      </div>\r\n    </small>\r\n  </anu-card-title>\r\n  <anu-card-body>\r\n    <p *ngIf=\"showDescription\" [innerHtml]=\"trimmedDescription\"></p>\r\n  </anu-card-body>\r\n  <anu-card-footer *ngIf=\"showMetaInfo || updateHref || readMoreHref\">\r\n    <small *ngIf=\"showMetaInfo && value?.features\" class=\"row\">\r\n      <span\r\n        class=\"spacing-around-half spacing-half border border-round\"\r\n        *ngFor=\"let feature of value.features\"\r\n        ><small>{{ feature }}</small></span\r\n      >\r\n    </small>\r\n    <div class=\"row right\">\r\n      <div *ngIf=\"showMetaInfo\" class=\"spacing-around-h\">\r\n        <span [ngClass]=\"value?.isLive ? 'success' : 'warning'\">{{\r\n          value?.isLive ? \"Published\" : \"Unpublished\"\r\n        }}</span>\r\n      </div>\r\n      <div *ngIf=\"showMetaInfo && value?.isFeatured\" class=\"spacing-around-h\">\r\n        <span class=\"success\">Featured</span>\r\n      </div>\r\n      <div class=\"spacing-around-h\" *ngIf=\"updateHref && updateHref.length\">\r\n        <a [routerLink]=\"updateHref\">Update</a>\r\n      </div>\r\n      <div class=\"spacing-around-h\" *ngIf=\"readMoreHref && readMoreHref.length\">\r\n        <a [routerLink]=\"readMoreHref\">Read more...</a>\r\n      </div>\r\n    </div>\r\n  </anu-card-footer>\r\n</anu-card>\r\n","import { Category } from \"../interfaces/category.interface\";\r\n\r\nexport const SAMPLE_CATEGORY: Category = {\r\n    id: 'sample-category-title',\r\n    isLive: false,\r\n    isFeatured: false,\r\n    inReview: false,\r\n    shortTitle: 'Sample Category Short Title',\r\n    features: [],\r\n    metaInfo: {\r\n        title: 'Sample Category Title',\r\n        description: 'Sample category description text'\r\n    }\r\n};\r\n","import { ImageInfo } from '@annuadvent/ngx-cms/cms-image-form';\r\nimport { MetaInfo } from '@annuadvent/ngx-common-ui/meta';\r\n\r\nexport interface Category {\r\n  id?: string;\r\n  shortTitle?: string;\r\n  isFeatured?: boolean; // true, if featured category, this can be shown at primary locations on page.\r\n  metaInfo?: MetaInfo; // This info will be used for SEO for the page., title, description, keywords etc.\r\n  image?: ImageInfo; // Thumbnail Image src\r\n  created?: string;\r\n  updated?: string;\r\n  userId?: string; // User Id from Users\r\n  isLive?: boolean;\r\n  inReview?: boolean; // if category is up for review, if this is true, then isLive must be false;\r\n  features?: Array<CategoryFeatures | string>; // any of the values from CategoryFeature, and any custom values.\r\n}\r\n\r\nexport enum CategoryFeatures {\r\n  primaryNavigation = 'primary-navigation',\r\n  footerNavigation = 'footer-navigation',\r\n  primeShow = 'prime-show',\r\n  footerShow = 'footer-show',\r\n  primeShowAside = 'prime-show-aside',\r\n  inReview = 'in-review',\r\n  tnc = 'tnc',\r\n  privacy = 'privacy',\r\n  helpDocs = 'help-docs',\r\n  helpDocsAuthor = 'help-docs-author',\r\n  helpDocsAdmin = 'help-docs-admin',\r\n  aboutUs = 'about-us',\r\n  contactUs = 'contact-us',\r\n  vision = 'vision',\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CategoryComponent } from './components/category/category.component';\r\nimport { CardModule } from '@annuadvent/ngx-common-ui/card';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    CategoryComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    CardModule,\r\n    RouterModule,\r\n  ],\r\n  exports: [\r\n    CategoryComponent\r\n  ],\r\n})\r\nexport class CategoryModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}