{"version":3,"file":"rxap-ngx-changelog.mjs","sources":["../../../../../packages/angular/changelog/src/lib/openapi/remote-methods/changelog-controller-get-latest.remote-method.ts","../../../../../packages/angular/changelog/src/lib/openapi/remote-methods/changelog-controller-get-version.remote-method.ts","../../../../../packages/angular/changelog/src/lib/openapi/remote-methods/changelog-controller-list.remote-method.ts","../../../../../packages/angular/changelog/src/lib/changelog/changelog.component.ts","../../../../../packages/angular/changelog/src/lib/changelog/changelog.component.html","../../../../../packages/angular/changelog/src/lib/changelog-dialog/changelog-dialog.component.ts","../../../../../packages/angular/changelog/src/lib/changelog-dialog/changelog-dialog.component.html","../../../../../packages/angular/changelog/src/lib/changelog.service.ts","../../../../../packages/angular/changelog/src/lib/provide-changelog.ts","../../../../../packages/angular/changelog/src/index.ts","../../../../../packages/angular/changelog/src/rxap-ngx-changelog.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n  OpenApiRemoteMethod,\n  OpenApiRemoteMethodParameter,\n  RxapOpenApiRemoteMethod,\n} from '@rxap/open-api/remote-method';\nimport { ChangelogControllerGetLatestParameter } from '../parameters/changelog-controller-get-latest.parameter';\nimport { ChangelogControllerGetLatestResponse } from '../responses/changelog-controller-get-latest.response';\n\n@Injectable({\n  providedIn: 'root',\n})\n@RxapOpenApiRemoteMethod({\n  serverId: 'service-changelog',\n  operationId: 'ChangelogController_getLatest',\n  operation: '{\"operationId\":\"ChangelogController_getLatest\",\"parameters\":[{\"name\":\"application\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"general\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"application\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"general\",\"application\"]}}}}},\"method\":\"get\",\"path\":\"/latest/{application}\"}',\n})\nexport class ChangelogControllerGetLatestRemoteMethod\n  extends OpenApiRemoteMethod<ChangelogControllerGetLatestResponse, ChangelogControllerGetLatestParameter, void> {\n  public override call(parameters: OpenApiRemoteMethodParameter<ChangelogControllerGetLatestParameter, void>): Promise<ChangelogControllerGetLatestResponse> {\n    return super.call(parameters);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  OpenApiRemoteMethod,\n  OpenApiRemoteMethodParameter,\n  RxapOpenApiRemoteMethod,\n} from '@rxap/open-api/remote-method';\nimport { ChangelogControllerGetVersionParameter } from '../parameters/changelog-controller-get-version.parameter';\nimport { ChangelogControllerGetVersionResponse } from '../responses/changelog-controller-get-version.response';\n\n@Injectable({\n  providedIn: 'root',\n})\n@RxapOpenApiRemoteMethod({\n  serverId: 'service-changelog',\n  operationId: 'ChangelogController_getVersion',\n  operation: '{\"operationId\":\"ChangelogController_getVersion\",\"parameters\":[{\"name\":\"version\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}},{\"name\":\"application\",\"required\":true,\"in\":\"path\",\"schema\":{\"type\":\"string\"}}],\"responses\":{\"200\":{\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"general\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"application\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"general\",\"application\"]}}}}},\"method\":\"get\",\"path\":\"/{version}/{application}\"}',\n})\nexport class ChangelogControllerGetVersionRemoteMethod\n  extends OpenApiRemoteMethod<ChangelogControllerGetVersionResponse, ChangelogControllerGetVersionParameter, void> {\n  public override call(parameters: OpenApiRemoteMethodParameter<ChangelogControllerGetVersionParameter, void>): Promise<ChangelogControllerGetVersionResponse> {\n    return super.call(parameters);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  OpenApiRemoteMethod,\n  RxapOpenApiRemoteMethod,\n} from '@rxap/open-api/remote-method';\nimport { ChangelogControllerListResponse } from '../responses/changelog-controller-list.response';\n\n@Injectable({\n  providedIn: 'root',\n})\n@RxapOpenApiRemoteMethod({\n  serverId: 'service-changelog',\n  operationId: 'ChangelogController_list',\n  operation: '{\"operationId\":\"ChangelogController_list\",\"parameters\":[],\"responses\":{\"200\":{\"content\":{\"application/json\":{\"schema\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}}},\"method\":\"get\",\"path\":\"/available-versions\"}',\n})\nexport class ChangelogControllerListRemoteMethod\n  extends OpenApiRemoteMethod<ChangelogControllerListResponse, void, void> {\n  public override call(): Promise<ChangelogControllerListResponse> {\n    return super.call();\n  }\n}\n","import {\n  NgClass,\n  NgForOf,\n  NgIf,\n} from '@angular/common';\nimport {\n  Component,\n  computed,\n  inject,\n  OnInit,\n  signal,\n} from '@angular/core';\nimport { MethodTemplateDirective } from '@rxap/directives';\nimport { RXAP_ENVIRONMENT } from '@rxap/environment';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { ChangelogControllerGetVersionRemoteMethod } from '../openapi/remote-methods/changelog-controller-get-version.remote-method';\nimport { ChangelogControllerListRemoteMethod } from '../openapi/remote-methods/changelog-controller-list.remote-method';\n\n@Component({\n    selector: 'rxap-changelog',\n    imports: [\n        MethodTemplateDirective,\n        MarkdownModule,\n        NgForOf,\n        NgIf,\n        NgClass,\n    ],\n    templateUrl: './changelog.component.html',\n    styleUrls: ['./changelog.component.scss']\n})\nexport class ChangelogComponent implements OnInit {\n\n  public readonly availableVersions = signal<string[]>([]);\n  public readonly error = signal<string | null>(null);\n  public readonly activeIndex = signal(-1);\n  public readonly selectedVersion = computed(() => {\n    const activeIndex = this.activeIndex();\n    const availableVersions = this.availableVersions();\n    if (activeIndex > -1) {\n      return availableVersions[activeIndex] ?? 'latest';\n    }\n    return availableVersions[availableVersions.length - 1] ?? 'latest';\n  });\n\n  public readonly displayedButtons = computed(() => {\n    let activeIndex = this.activeIndex();\n    if (activeIndex === -1) {\n      activeIndex = this.availableVersions().length - 1;\n    }\n    let start = Math.max(0, activeIndex - 2);\n    let end = Math.min(this.availableVersions().length, activeIndex + 3);\n    if (end - start < 5) {\n      if (start === 0) {\n        end += 5 - (end - start);\n      } else {\n        start -= 5 - (end - start);\n      }\n    }\n    end = Math.min(this.availableVersions().length, end);\n    start = Math.max(0, start);\n    return Array.from(\n      { length: end - start },\n      (_, i) => ({\n        index: start + i,\n        version: this.availableVersions()[start + i],\n      }),\n    );\n  });\n\n  public readonly application = inject(RXAP_ENVIRONMENT).app;\n\n  public readonly getChangelogMethod = inject(ChangelogControllerGetVersionRemoteMethod);\n\n  public readonly getChangelogMethodParameters = computed(() => ({\n    parameters: {\n      version: this.selectedVersion(),\n      application: this.application,\n    },\n  }));\n\n  private readonly getAvailableVersionsMethod = inject(ChangelogControllerListRemoteMethod);\n\n  ngOnInit() {\n    this.loadAvailableVersions();\n  }\n\n  private async loadAvailableVersions() {\n    try {\n      const availableVersions = await this.getAvailableVersionsMethod.call();\n      this.availableVersions.set(availableVersions);\n      this.activeIndex.set(availableVersions.length - 1);\n    } catch (e: any) {\n      this.error.set(e.message);\n    }\n  }\n\n}\n","<ng-container *ngIf=\"error(); else noError\">\n  <h2 class=\"text-2xl pb-2\" i18n>Something has gone wrong!</h2>\n  <p i18n>Unable to load the application changelog</p>\n</ng-container>\n<ng-template #noError>\n<div class=\"flex flex-col gap-3\">\n  <ng-container *ngIf=\"availableVersions().length\">\n    <div class=\"controls flex justify-center space-x-2 my-4\">\n      <button\n        (click)=\"activeIndex.set(activeIndex() - 1)\"\n        [disabled]=\"activeIndex() <= 0\"\n        [ngClass]=\"{\n        'bg-gray-100 dark:bg-gray-900': activeIndex() <= 0,\n        'hover:bg-gray-300': activeIndex() > 0,\n        }\"\n        class=\"px-4 py-2 bg-gray-200 dark:bg-gray-800 dark:hover:bg-gray-900 transition-colors duration-150 rounded\">Previous\n      </button>\n      <button (click)=\"activeIndex.set(item.index)\"\n              *ngFor=\"let item of displayedButtons()\"\n              [ngClass]=\"{\n              'bg-primary-500': item.index === activeIndex(),\n              'bg-gray-200 dark:bg-gray-800 dark:hover:bg-gray-900 hover:bg-gray-300 transition-colors duration-150': item.index !== activeIndex()\n              }\"\n              class=\"px-4 py-2 rounded\">\n        {{ item.version }}\n      </button>\n      <button\n        (click)=\"activeIndex.set(activeIndex() + 1)\"\n        [disabled]=\"activeIndex() >= availableVersions().length - 1\"\n        [ngClass]=\"{\n        'bg-gray-100 dark:bg-gray-900': activeIndex() >= availableVersions().length - 1,\n        'hover:bg-gray-300': activeIndex() < availableVersions().length - 1,\n        }\"\n        class=\"px-4 py-2 bg-gray-200 dark:bg-gray-800 dark:hover:bg-gray-900 hover:bg-gray-300 transition-colors duration-150 rounded\">Next\n      </button>\n    </div>\n    <hr>\n  </ng-container>\n  <div class=\"flex flex-col gap-6 p-8 overflow-auto\" style=\"max-height: 60vh\">\n    <ng-container *rxapMethod=\"let changelog call getChangelogMethod; parameters: getChangelogMethodParameters()\">\n      <markdown *ngFor=\"let general of changelog.general\" [data]=\"general\" class=\"prose dark:prose-invert\">\n      </markdown>\n      <markdown *ngFor=\"let application of changelog.application\" [data]=\"application\" class=\"prose dark:prose-invert\">\n      </markdown>\n    </ng-container>\n  </div>\n</div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ChangelogComponent } from '../changelog/changelog.component';\n\n@Component({\n    selector: 'rxap-changelog-dialog',\n    imports: [CommonModule, ChangelogComponent, FormsModule],\n    templateUrl: './changelog-dialog.component.html',\n    styleUrls: ['./changelog-dialog.component.scss']\n})\nexport class ChangelogDialogComponent implements AfterViewInit {\n\n  @ViewChild('dialog', { static: true })\n  public dialog!: ElementRef<HTMLDialogElement>;\n\n  @Output()\n  public closeDialog = new EventEmitter<boolean>();\n\n  public remember = true;\n\n  ngAfterViewInit() {\n    this.dialog.nativeElement.showModal();\n  }\n\n  close(remember: boolean = this.remember) {\n    this.dialog.nativeElement.close();\n    this.closeDialog.emit(remember);\n  }\n\n}\n","<dialog #dialog\n        class=\"max-w-6xl rounded overflow-auto drop-shadow-2xl bg-white text-black dark:bg-black dark:text-white flex flex-col gap-3 p-6\">\n  <rxap-changelog></rxap-changelog>\n  <div class=\"flex flex-row justify-end gap-6\">\n    <div class=\"flex flex-row gap-3 items-center\">\n      <input [(ngModel)]=\"remember\" id=\"rxap-changelog-remember\" type=\"checkbox\">\n      <label for=\"rxap-changelog-remember\" i18n>Don't show again until next new version</label>\n    </div>\n    <button (click)=\"close()\" class=\"px-4 py-2 rounded bg-primary-500\" i18n>close</button>\n  </div>\n</dialog>\n","import {\n  ApplicationRef,\n  createComponent,\n  inject,\n  Injectable,\n} from '@angular/core';\nimport { RXAP_ENVIRONMENT } from '@rxap/environment';\nimport { take } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { ChangelogDialogComponent } from './changelog-dialog/changelog-dialog.component';\n\nexport const RXAP_CHANGELOG_LAST_VERSION = 'RXAP_CHANGELOG_LAST_VERSION';\nexport const RXAP_CHANGELOG_DISABLED = 'RXAP_CHANGELOG_DISABLED';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ChangelogService {\n\n  private readonly version = inject(RXAP_ENVIRONMENT).name;\n\n  private readonly applicationRef = inject(ApplicationRef);\n\n  public showChangelogDialog() {\n    const body = document.getElementsByTagName('body')[0];\n    const div = document.createElement('div');\n    body.appendChild(div);\n    const componentRef = createComponent(ChangelogDialogComponent, {\n      hostElement: div,\n      environmentInjector: this.applicationRef.injector,\n    });\n    this.applicationRef.attachView(componentRef.hostView);\n    componentRef.instance.closeDialog.pipe(\n      take(1),\n      tap(remember => {\n        componentRef.destroy();\n        body.removeChild(div);\n        div.remove();\n        if (remember && this.version) {\n          this.lastVersion = this.version;\n        }\n      }),\n    ).subscribe();\n  }\n\n  public get isDisabled(): boolean {\n    return localStorage.getItem(RXAP_CHANGELOG_DISABLED) === 'true';\n  }\n\n  public get lastVersion(): string | null {\n    return localStorage.getItem(RXAP_CHANGELOG_LAST_VERSION);\n  }\n\n  public set lastVersion(version: string | null) {\n    if (version) {\n      localStorage.setItem(RXAP_CHANGELOG_LAST_VERSION, version);\n    } else {\n      localStorage.removeItem(RXAP_CHANGELOG_LAST_VERSION);\n    }\n  }\n\n  public showChangelogDialogIfNewVersion() {\n\n    if (this.isDisabled) {\n      return;\n    }\n\n    const lastVersion = this.lastVersion;\n\n    if (this.version && lastVersion && this.version !== lastVersion) {\n      this.lastVersion = null;\n    }\n\n    if (this.lastVersion === this.version) {\n      return;\n    }\n\n    this.showChangelogDialog();\n\n  }\n\n}\n","import { Provider, inject, provideAppInitializer } from '@angular/core';\nimport { ChangelogService } from './changelog.service';\n\nexport function ProvideChangelog() {\n  return provideAppInitializer(() => {\n        const initializerFn = ((changelogService: ChangelogService) => () => changelogService.showChangelogDialogIfNewVersion())(inject(ChangelogService));\n        return initializerFn();\n      });\n}\n","// region openapi responses\nexport * from './lib/openapi/responses/changelog-controller-get-latest.response';\nexport * from './lib/openapi/responses/changelog-controller-get-version.response';\nexport * from './lib/openapi/responses/changelog-controller-list.response';\n// endregion\n\n// region openapi remote-methods\nexport * from './lib/openapi/remote-methods/changelog-controller-get-latest.remote-method';\nexport * from './lib/openapi/remote-methods/changelog-controller-get-version.remote-method';\nexport * from './lib/openapi/remote-methods/changelog-controller-list.remote-method';\n// endregion\n\n// region openapi parameters\nexport * from './lib/openapi/parameters/changelog-controller-get-latest.parameter';\nexport * from './lib/openapi/parameters/changelog-controller-get-version.parameter';\n// endregion\n\n// region openapi components\nexport * from './lib/openapi/components/changelog-dto';\n// endregion\n\n// region changelog-dialog\nexport * from './lib/changelog-dialog/changelog-dialog.component';\n// endregion\n\n// region changelog\nexport * from './lib/changelog/changelog.component';\n// endregion\n\n// region \nexport * from './lib/changelog.service';\nexport * from './lib/provide-changelog';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}