{"version":3,"file":"annuadvent-ngx-cms-category-editor.mjs","sources":["../../../projects/ngx-cms/category-editor/src/constants/category-editor.constants.ts","../../../projects/ngx-cms/category-editor/src/components/category-editor/category-editor.component.ts","../../../projects/ngx-cms/category-editor/src/components/category-editor/category-editor.component.html","../../../projects/ngx-cms/category-editor/src/category-editor.module.ts","../../../projects/ngx-cms/category-editor/annuadvent-ngx-cms-category-editor.ts"],"sourcesContent":["import { Tab } from \"@annuadvent/ngx-common-ui/tabs\";\r\n\r\nexport const CATEGORY_EDITOR_TABS: Array<Tab> = [\r\n    {\r\n        name: 'metainfo',\r\n        title: 'Category Info',\r\n    } as Tab,\r\n    {\r\n        name: 'moreinfo',\r\n        title: 'More Info',\r\n    } as Tab,\r\n    {\r\n        name: 'publish',\r\n        title: 'Publish',\r\n    } as Tab,\r\n];\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { UtilsService } from '@annuadvent/ngx-core/utils';\r\nimport { Category, SAMPLE_CATEGORY, CategoryFeatures } from '@annuadvent/ngx-cms/category';\r\nimport { CATEGORY_EDITOR_TABS } from '../../constants/category-editor.constants';\r\nimport { ImageInfo } from '@annuadvent/ngx-cms/cms-image-form';\r\nimport { MetaInfo } from '@annuadvent/ngx-common-ui/meta';\r\nimport { Tab } from '@annuadvent/ngx-common-ui/tabs';\r\n\r\n@Component({\r\n  selector: 'anu-category-editor',\r\n  templateUrl: './category-editor.component.html',\r\n  styleUrls: ['./category-editor.component.scss']\r\n})\r\nexport class CategoryEditorComponent implements OnInit, OnChanges {\r\n  @Input() value: Category | null;\r\n  @Input() imageHelpText: string = '';\r\n  @Input() readonlyId: boolean = true;\r\n  @Input() readonlyTitle: boolean = false;\r\n  @Input() enableUniqueId: boolean = true;\r\n  @Input() enablePublish: boolean = true;\r\n  @Input() enableOpenai: boolean = true;\r\n  @Input() enableDelete: boolean = true;\r\n  @Input() enableReadonlyIdToggle: boolean = true;\r\n\r\n  @Output() changed = new EventEmitter<Category>();\r\n  @Output() saveClicked = new EventEmitter<Category>();\r\n  @Output() deleteClicked = new EventEmitter<Category>();\r\n  @Output() inReviewClicked = new EventEmitter<Category>();\r\n  @Output() isLiveClicked = new EventEmitter<Category>();\r\n\r\n  toggleImageForm: boolean = false;\r\n  tabs: Array<Tab> = CATEGORY_EDITOR_TABS.map(t => ({ ...t }));\r\n\r\n  activeTab = this.tabs[0];\r\n  category: Category;\r\n  sampleCategory: Category;\r\n  selectedCategoryFeatures: Array<any> = [];\r\n  categoryFeatures: Array<any> = [];\r\n  readonlyMetaProps: Array<string> = [];\r\n\r\n  constructor(private utils: UtilsService) {\r\n    this.sampleCategory = { ...SAMPLE_CATEGORY, id: this.utils.getUniqueFromString(SAMPLE_CATEGORY.metaInfo.title), created: utils.currentDate, updated: utils.currentDate };\r\n    this.category = { ...this.sampleCategory };\r\n    this.categoryFeatures = Object.keys(CategoryFeatures).map(key => ({ id: CategoryFeatures[key], title: CategoryFeatures[key] }));\r\n    this.categoryMetaChanged = this.categoryMetaChanged.bind(this);\r\n  }\r\n\r\n  private initCategory() {\r\n    if (this.value) {\r\n      this.category = { ...this.value, metaInfo: { ...this.value.metaInfo } };\r\n\r\n    } else {\r\n      this.value = { ...this.sampleCategory, metaInfo: { ...this.sampleCategory.metaInfo } };\r\n      this.category = { ...this.sampleCategory, metaInfo: { ...this.sampleCategory.metaInfo } };\r\n    }\r\n\r\n    // Init selected categories.\r\n    this.selectedCategoryFeatures = this.category?.features?.map(f => ({ id: f })) || [];\r\n\r\n    //Init meta form with readonly props\r\n    this.readonlyMetaProps = this.readonlyTitle === true ? ['title'] : [];\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.initCategory();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    this.initCategory();\r\n  }\r\n\r\n  public tabChanged(tab: Tab) {\r\n    this.activeTab = tab;\r\n  }\r\n\r\n  public categoryMetaChanged(metaInfo: MetaInfo) {\r\n    if (metaInfo.title !== this.value?.metaInfo?.title) {\r\n      this.category.id = this.enableUniqueId ? this.utils.getUniqueFromString(metaInfo.title) : this.utils.toDashedString(metaInfo.title);\r\n    } else {\r\n      this.category.id = this.value.id;\r\n    }\r\n\r\n    this.category = { ...this.category, metaInfo: { ...metaInfo, url: this.utils.getCanonicalUrl('genre', this.category.id) } };\r\n    this.changed.emit({ ...this.category });\r\n  }\r\n\r\n  public isLiveChanged(isLive: boolean): void {\r\n    const inReview = isLive === true ? false : this.value.inReview;\r\n    this.category = { ...this.category, isLive, inReview };\r\n    this.isLiveClicked.emit({ ...this.category });\r\n  }\r\n\r\n  public inReviewChanged(inReview: boolean): void {\r\n    const isLive = inReview === true ? false : this.value.isLive;\r\n    this.category = { ...this.category, inReview, isLive };\r\n    this.inReviewClicked.emit({ ...this.category });\r\n  }\r\n\r\n  public isFeaturedChanged(isFeatured: boolean): void {\r\n    this.category = { ...this.category, isFeatured };\r\n    this.changed.emit({ ...this.category });\r\n  }\r\n\r\n  public onShortTitleChanged(event: any): void {\r\n    this.changed.emit({ ...this.category });\r\n  }\r\n\r\n  public changeImage(event: any, clear: boolean = false) {\r\n    event.preventDefault();\r\n    if (clear === true) {\r\n      this.category.image = { src: '', alt: '' } as ImageInfo;\r\n      this.category.metaInfo.image = '';\r\n      this.changed.emit({ ...this.category });\r\n    } else {\r\n      this.toggleImageForm = true;\r\n    }\r\n  }\r\n\r\n  public cancelImageChange() {\r\n    this.toggleImageForm = false;\r\n  }\r\n\r\n  public saveImageChange(image: ImageInfo) {\r\n    this.category.image = image;\r\n    this.category.metaInfo.image = image.src;\r\n    this.toggleImageForm = false;\r\n    this.changed.emit({ ...this.category });\r\n  }\r\n\r\n  public saveCategory(event: any): void {\r\n    event.preventDefault();\r\n    this.saveClicked.emit({ ...this.category });\r\n  }\r\n\r\n  public deleteCategory(event: any): void {\r\n    event.preventDefault();\r\n    this.deleteClicked.emit({ ...this.category });\r\n  }\r\n\r\n  public onCategoryFeaturesChanged(selectedCategoryFeatures: Array<any> = []): void {\r\n    this.category = { ...this.category, features: selectedCategoryFeatures?.map(catFeature => catFeature?.id) };\r\n    this.selectedCategoryFeatures = [...selectedCategoryFeatures];\r\n    this.changed.emit({ ...this.category });\r\n  }\r\n\r\n  public categoryIdDblClick(event: any): void {\r\n    event.preventDefault();\r\n    if (this.enableReadonlyIdToggle) {\r\n      this.readonlyId = !this.readonlyId;\r\n    }\r\n  }\r\n}\r\n","<h2>Category Editor</h2>\r\n<div class=\"row spacing-around-v\" *ngIf=\"!readonlyId && enableReadonlyIdToggle\">\r\n  <label (dblclick)=\"categoryIdDblClick($event)\">Category Id</label>\r\n  <input type=\"text\" name=\"category-id\" [(ngModel)]=\"category.id\" />\r\n</div>\r\n<p *ngIf=\"readonlyId\" (dblclick)=\"categoryIdDblClick($event)\">\r\n  /{{ category?.id }}\r\n</p>\r\n<section *ngIf=\"enableDelete\" class=\"row spacing-v right\">\r\n  <a class=\"btn error\" href=\"#\" (click)=\"deleteCategory($event)\"\r\n    >Delete Category</a\r\n  >\r\n</section>\r\n<anu-tabs\r\n  [tabs]=\"tabs\"\r\n  [activeTab]=\"activeTab\"\r\n  (changed)=\"tabChanged($event)\"\r\n></anu-tabs>\r\n<section class=\"container tab-body\">\r\n  <section\r\n    class=\"tab-item-body\"\r\n    [ngClass]=\"{ active: activeTab.name === 'moreinfo' }\"\r\n  >\r\n    <anu-card\r\n      class=\"shadow spacing spacing-around-v moreinfo-card spacing-around-h-md spacing-around-h-lg\"\r\n    >\r\n      <anu-card-body>\r\n        <div class=\"row\">\r\n          <label>Short Title</label>\r\n          <input\r\n            type=\"text\"\r\n            name=\"category-short-title\"\r\n            [(ngModel)]=\"category.shortTitle\"\r\n            (blur)=\"onShortTitleChanged($event)\"\r\n            (ngModelChange)=\"onShortTitleChanged($event)\"\r\n          />\r\n        </div>\r\n        <div class=\"row center stretch spacing-around-v\">\r\n          <!-- Change/Remove Image -->\r\n          <div class=\"col-sm-12\">\r\n            <a class=\"spacing-around\" href=\"#\" (click)=\"changeImage($event)\"\r\n              >Change image</a\r\n            >\r\n            <a\r\n              class=\"spacing-around\"\r\n              href=\"#\"\r\n              (click)=\"changeImage($event, true)\"\r\n              >Remove image</a\r\n            >\r\n          </div>\r\n          <!-- IsFeatured -->\r\n          <div class=\"col-sm-12\">\r\n            <label class=\"spacing-h\"\r\n              >Featured?\r\n              <anu-toggle\r\n                [rounded]=\"true\"\r\n                [checked]=\"category?.isFeatured\"\r\n                (changed)=\"isFeaturedChanged($event)\"\r\n              ></anu-toggle\r\n            ></label>\r\n          </div>\r\n        </div>\r\n      </anu-card-body>\r\n    </anu-card>\r\n\r\n    <anu-card\r\n      class=\"shadow spacing spacing-around-v moreinfo-card spacing-around-h-md spacing-around-h-lg\"\r\n    >\r\n      <anu-card-title>\r\n        <h2>Link Features to your Category</h2>\r\n      </anu-card-title>\r\n      <anu-card-body>\r\n        <div class=\"row\">\r\n          <anu-multi-select-box\r\n            keyField=\"id\"\r\n            labelField=\"title\"\r\n            [items]=\"categoryFeatures\"\r\n            [selectedItems]=\"selectedCategoryFeatures\"\r\n            (changed)=\"onCategoryFeaturesChanged($event)\"\r\n          >\r\n          </anu-multi-select-box>\r\n        </div>\r\n      </anu-card-body>\r\n    </anu-card>\r\n\r\n    <anu-modal [opened]=\"toggleImageForm\" (cancelClick)=\"cancelImageChange()\">\r\n      <anu-cms-image-form\r\n        [src]=\"category?.image?.src\"\r\n        [alt]=\"category?.image?.alt\"\r\n        (cancel)=\"cancelImageChange()\"\r\n        [enableOpenai]=\"enableOpenai\"\r\n        (save)=\"saveImageChange($event)\"\r\n      ></anu-cms-image-form>\r\n    </anu-modal>\r\n\r\n    <section class=\"row spacing-v right\">\r\n      <a class=\"btn\" href=\"#\" (click)=\"saveCategory($event)\">Save Category</a>\r\n    </section>\r\n  </section>\r\n\r\n  <section\r\n    class=\"tab-item-body\"\r\n    [ngClass]=\"{ active: activeTab.name === 'metainfo' }\"\r\n  >\r\n    <anu-meta-form\r\n      [metaInfo]=\"category?.metaInfo\"\r\n      [readonlyMetaProps]=\"readonlyMetaProps\"\r\n      (changed)=\"categoryMetaChanged($event)\"\r\n    ></anu-meta-form>\r\n    <section class=\"row spacing-v right\">\r\n      <a class=\"btn\" href=\"#\" (click)=\"saveCategory($event)\">Save Category</a>\r\n    </section>\r\n  </section>\r\n\r\n  <section\r\n    class=\"tab-item-body\"\r\n    [ngClass]=\"{ active: activeTab.name === 'publish' }\"\r\n  >\r\n    <div class=\"row center stretch spacing-around-v\">\r\n      <!-- inReview  -->\r\n      <div class=\"col-sm-12\">\r\n        <label class=\"spacing-h\"\r\n          >In Review?\r\n          <anu-toggle\r\n            [rounded]=\"true\"\r\n            [checked]=\"category?.inReview\"\r\n            (changed)=\"inReviewChanged($event)\"\r\n          ></anu-toggle\r\n        ></label>\r\n      </div>\r\n      <!-- published -->\r\n      <div class=\"col-sm-12\">\r\n        <span\r\n          *ngIf=\"!enablePublish\"\r\n          [ngClass]=\"category?.isLive ? 'success' : 'warning'\"\r\n          >{{ category?.isLive ? 'Published' : 'Unpublished' }}</span\r\n        >\r\n        <label *ngIf=\"enablePublish\" class=\"spacing-h\"\r\n          >Published?\r\n          <anu-toggle\r\n            [rounded]=\"true\"\r\n            [checked]=\"category?.isLive\"\r\n            (changed)=\"isLiveChanged($event)\"\r\n          ></anu-toggle\r\n        ></label>\r\n      </div>\r\n    </div>\r\n    <h2>Preview</h2>\r\n    <anu-category\r\n      class=\"spacing-around-h-md spacing-around-h-lg\"\r\n      [value]=\"category\"\r\n      [showMetaInfo]=\"true\"\r\n    ></anu-category>\r\n  </section>\r\n</section>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CategoryEditorComponent } from './components/category-editor/category-editor.component';\r\nimport { ContentEditorModule } from '@annuadvent/ngx-cms/content-editor';\r\n\r\nimport { TabsModule } from '@annuadvent/ngx-common-ui/tabs';\r\nimport { CardModule } from '@annuadvent/ngx-common-ui/card';\r\nimport { CmsImageFormModule } from '@annuadvent/ngx-cms/cms-image-form';\r\nimport { ModalModule } from '@annuadvent/ngx-common-ui/modal';\r\nimport { MetaModule } from '@annuadvent/ngx-common-ui/meta';\r\nimport { MultiSelectBoxModule } from '@annuadvent/ngx-common-ui/multi-select-box';\r\nimport { ToggleModule } from '@annuadvent/ngx-common-ui/toggle';\r\n\r\nimport { CategoryModule } from '@annuadvent/ngx-cms/category';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    CategoryEditorComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    TabsModule,\r\n    ContentEditorModule,\r\n    CardModule,\r\n    CmsImageFormModule,\r\n    ModalModule,\r\n    MetaModule,\r\n    MultiSelectBoxModule,\r\n    ToggleModule,\r\n    CategoryModule,\r\n  ],\r\n  exports: [\r\n    CategoryEditorComponent\r\n  ],\r\n})\r\nexport class CategoryEditorModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}