{"version":3,"file":"lessify-angular-core.mjs","sources":["../../../projects/core/src/lib/models/design.model.ts","../../../projects/core/src/lib/utils/design.util.ts","../../../projects/core/src/lib/lessify.config.ts","../../../projects/core/src/lib/services/logger.service.ts","../../../projects/core/src/lib/directives/configuration.directive.ts","../../../projects/core/src/lib/directives/translation.directive.ts","../../../projects/core/src/lib/services/base.service.ts","../../../projects/core/src/lib/services/translation.service.ts","../../../projects/core/src/lib/services/configuration.service.ts","../../../projects/core/src/lib/loader/ngx-translate.loader.ts","../../../projects/core/src/lib/loader/transloco.loader.ts","../../../projects/core/src/lib/core.module.ts","../../../projects/core/src/public-api.ts","../../../projects/core/src/lessify-angular-core.ts"],"sourcesContent":["export interface DesignEvent {\r\n  action: DesignAction;\r\n  type: DesignModelType;\r\n  space: string;\r\n  environment: string;\r\n  id: string;\r\n  locale?: string;\r\n  value?: string | number | boolean;\r\n}\r\n\r\nexport enum DesignAction {\r\n  LINK = 'link',\r\n  RELOAD = 'reload',\r\n  UPDATE = 'update'\r\n}\r\n\r\nexport enum DesignModelType {\r\n  TRANSLATION = 'translation',\r\n  CONFIGURATION = 'configuration'\r\n}\r\n","export class DesignUtil {\r\n  static isInIframe(): boolean {\r\n    return window.location !== window.parent.location;\r\n  }\r\n\r\n  static isOriginTrusted(origin: string): boolean {\r\n    switch (origin) {\r\n      case 'https://app.lessify.io':\r\n      case 'https://dev-app.lessify.io':\r\n      case 'http://localhost:4200':\r\n        return true;\r\n      default:\r\n        return false;\r\n    }\r\n  }\r\n}\r\n","import {InjectionToken} from '@angular/core';\r\n\r\nexport type LessifyModuleConfig = {\r\n  spaceId: string;\r\n  environment: string;\r\n  apiKey: string;\r\n  beta?: boolean;\r\n  logLevel?: 'trace' | 'debug' | 'info' | 'warn' | 'error';\r\n};\r\n\r\nexport const LESSIFY_CONFIG = new InjectionToken('LESSIFY_CONFIG', {\r\n  providedIn: 'root',\r\n  factory: () => {\r\n    return {};\r\n  }\r\n});\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {LESSIFY_CONFIG, LessifyModuleConfig} from '../lessify.config';\r\nimport {DesignUtil} from '../utils/design.util';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LessifyLoggerService {\r\n\r\n  level: 'trace' | 'debug' | 'info' | 'warn' | 'error' = 'info';\r\n\r\n  constructor(\r\n      @Inject(LESSIFY_CONFIG) protected readonly config: LessifyModuleConfig\r\n  ) {\r\n    if (config.logLevel) {\r\n      this.level = config.logLevel;\r\n    }\r\n  }\r\n\r\n  isTraceEnabled(): boolean {\r\n    switch (this.level) {\r\n      case 'error':\r\n      case 'warn':\r\n      case 'info':\r\n      case 'debug':\r\n        return false;\r\n      default :\r\n        return true;\r\n    }\r\n  }\r\n\r\n  isDebugEnabled(): boolean {\r\n    switch (this.level) {\r\n      case 'error':\r\n      case 'warn':\r\n      case 'info':\r\n        return false;\r\n      default :\r\n        return true;\r\n    }\r\n  }\r\n\r\n  isInfoEnabled(): boolean {\r\n    switch (this.level) {\r\n      case 'error':\r\n      case 'warn':\r\n        return false;\r\n      default :\r\n        return true;\r\n    }\r\n  }\r\n\r\n  isWarnEnabled(): boolean {\r\n    switch (this.level) {\r\n      case 'error':\r\n        return false;\r\n      default :\r\n        return true;\r\n    }\r\n  }\r\n\r\n  isErrorEnabled(): boolean {\r\n    return true;\r\n  }\r\n\r\n  trace(message: any): void {\r\n    if (this.isTraceEnabled()) {\r\n      // tslint:disable-next-line:no-console\r\n      console.trace(message);\r\n    }\r\n  }\r\n\r\n  debug(message: any): void {\r\n    if (this.isDebugEnabled()) {\r\n      if (DesignUtil.isInIframe()) {\r\n        // tslint:disable-next-line:no-console\r\n        console.info('🛸', message, window.location.href);\r\n      } else {\r\n        // tslint:disable-next-line:no-console\r\n        console.info(message, window.location.href);\r\n      }\r\n    }\r\n  }\r\n\r\n  info(message: any): void {\r\n    if (this.isInfoEnabled()) {\r\n      // tslint:disable-next-line:no-console\r\n      console.info(message);\r\n    }\r\n  }\r\n\r\n  warn(message: any): void {\r\n    if (this.isWarnEnabled()) {\r\n      console.warn(message);\r\n    }\r\n  }\r\n\r\n  error(message: any): void {\r\n    if (this.isErrorEnabled()) {\r\n      console.error(message);\r\n    }\r\n  }\r\n\r\n\r\n}\r\n","import {Directive, ElementRef, HostListener, Inject, Input, OnInit} from '@angular/core';\r\nimport {DesignAction, DesignEvent, DesignModelType} from '../models/design.model';\r\nimport {DesignUtil} from '../utils/design.util';\r\nimport {LESSIFY_CONFIG, LessifyModuleConfig} from '../lessify.config';\r\nimport {LessifyLoggerService} from '../services/logger.service';\r\n\r\n@Directive({\r\n  selector: '[lessifyConfig]'\r\n})\r\nexport class ConfigurationDirective implements OnInit {\r\n\r\n  @Input() lessifyConfig: string;\r\n\r\n  constructor(\r\n      private el: ElementRef,\r\n      @Inject(LESSIFY_CONFIG) protected readonly config: LessifyModuleConfig,\r\n      private readonly logger: LessifyLoggerService\r\n  ) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (typeof this.lessifyConfig === undefined) {\r\n      return;\r\n    }\r\n    // this.logger.debug(`lessifyConfig: ngOnInit = '${this.lessifyConfig}'`);\r\n    if (DesignUtil.isInIframe()) {\r\n      this.el.nativeElement.setAttribute('data-lessify-configuration-id', this.lessifyConfig);\r\n      this.el.nativeElement.style.outline = '#23252B dashed';\r\n      this.el.nativeElement.title = `Configuration: ${this.lessifyConfig}`;\r\n      // this.el.nativeElement.style.outlineOffset = '3px';\r\n    }\r\n  }\r\n\r\n  @HostListener('click')\r\n  onClick(): void {\r\n    this.logger.debug(`lessifyConfig(${this.lessifyConfig}): click`);\r\n    if (DesignUtil.isInIframe()) {\r\n      const message: DesignEvent = {\r\n        action: DesignAction.LINK,\r\n        type: DesignModelType.CONFIGURATION,\r\n        space: this.config.spaceId,\r\n        environment: this.config.environment,\r\n        id: this.lessifyConfig\r\n      };\r\n      window.parent.postMessage(message, '*'); // window.parent.location.origin\r\n      this.logger.debug(`lessifyConfig(${this.lessifyConfig}): Send message -> ${JSON.stringify(message)}`);\r\n    }\r\n  }\r\n}\r\n","import {Directive, ElementRef, HostListener, Inject, Input, OnInit, Optional} from '@angular/core';\r\nimport {DesignAction, DesignEvent, DesignModelType} from '../models/design.model';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {TranslocoService} from '@ngneat/transloco';\r\nimport {DesignUtil} from '../utils/design.util';\r\nimport {LESSIFY_CONFIG, LessifyModuleConfig} from '../lessify.config';\r\nimport {LessifyLoggerService} from '../services/logger.service';\r\n\r\n@Directive({\r\n  selector: '[lessifyTransl]'\r\n})\r\nexport class TranslationDirective implements OnInit {\r\n\r\n  @Input() lessifyTransl: string;\r\n\r\n  constructor(\r\n      private el: ElementRef,\r\n      @Optional() private readonly translateService: TranslateService,\r\n      @Optional() private readonly translocoService: TranslocoService,\r\n      @Inject(LESSIFY_CONFIG) protected readonly config: LessifyModuleConfig,\r\n      private readonly logger: LessifyLoggerService\r\n  ) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (typeof this.lessifyTransl === undefined) {\r\n      return;\r\n    }\r\n    // this.logger.debug(`lessifyTransl: ngOnInit = '${this.lessifyTransl}'`);\r\n    if (DesignUtil.isInIframe()) {\r\n      this.el.nativeElement.setAttribute('data-lessify-translation-id', this.lessifyTransl);\r\n      this.el.nativeElement.style.outline = '#003DFF dashed';\r\n      this.el.nativeElement.title = `Translation: ${this.lessifyTransl}`;\r\n      // this.el.nativeElement.style.outlineOffset = '3px';\r\n    }\r\n  }\r\n\r\n  @HostListener('click')\r\n  onClick(): void {\r\n    this.logger.debug(`lessifyTransl(${this.lessifyTransl}): click`);\r\n    if (DesignUtil.isInIframe()) {\r\n      const message: DesignEvent = {\r\n        action: DesignAction.LINK,\r\n        type: DesignModelType.TRANSLATION,\r\n        space: this.config.spaceId,\r\n        environment: this.config.environment,\r\n        id: this.lessifyTransl,\r\n        locale: this.getCurrentLanguage()\r\n      };\r\n      window.parent.postMessage(message, '*'); // window.parent.location.origin\r\n      this.logger.debug(`lessifyTransl(${this.lessifyTransl}): Send message -> ${JSON.stringify(message)}`);\r\n    }\r\n  }\r\n\r\n  getCurrentLanguage(): string | null {\r\n    if (this.translateService) {\r\n      return this.translateService.currentLang;\r\n    } else if (this.translocoService) {\r\n      return this.translocoService.getActiveLang();\r\n    }\r\n    return null;\r\n  }\r\n}\r\n","import {HttpHeaders} from '@angular/common/http';\r\nimport {LessifyModuleConfig} from '../lessify.config';\r\n\r\nexport abstract class BaseService {\r\n\r\n  protected constructor(\r\n      protected readonly config: LessifyModuleConfig\r\n  ) {\r\n    if (this.config.spaceId == null || this.config.spaceId === '') {\r\n      throw new Error('Lessify Configuration Space can\\'t be empty');\r\n    }\r\n    if (this.config.environment == null || this.config.environment === '') {\r\n      throw new Error('Lessify Configuration Environment can\\'t be empty');\r\n    }\r\n    if (this.config.apiKey == null || this.config.apiKey === '') {\r\n      throw new Error('Lessify Configuration API Key can\\'t be empty');\r\n    }\r\n  }\r\n\r\n  getRootUrl(): string {\r\n    return (this.config.beta == null || this.config.beta === false) ? 'https://api.lessify.io' : 'https://dev-api.lessify.io';\r\n  }\r\n\r\n  getHeaders(): HttpHeaders {\r\n    return new HttpHeaders({\r\n      Authorization: `Bearer ${this.config.apiKey}`\r\n    });\r\n  }\r\n\r\n  getSpace(): string {\r\n    return this.config.spaceId;\r\n  }\r\n\r\n  getEnvironment(): string {\r\n    return this.config.environment;\r\n  }\r\n}\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {Observable} from 'rxjs';\r\nimport {BaseService} from './base.service';\r\nimport {LESSIFY_CONFIG, LessifyModuleConfig} from '../lessify.config';\r\n\r\nexport interface Messages {\r\n  [key: string]: string;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LessifyTranslationService extends BaseService {\r\n\r\n  constructor(\r\n      readonly httpClient: HttpClient,\r\n      @Inject(LESSIFY_CONFIG) readonly config: LessifyModuleConfig\r\n  ) {\r\n    super(config);\r\n  }\r\n\r\n  /**\r\n   * get Translation, possible values:\r\n   * - locale: specific locale id from space\r\n   * - 'all': in one call you will receive all locales in next format\r\n   * {\r\n   *   'en': {\r\n   *     'key1': 'value1'\r\n   *   },\r\n   *   'de': {\r\n   *     'key1': 'value1'\r\n   *   }\r\n   * }\r\n   */\r\n  fetch(locale: string): Observable<Messages> {\r\n    return this.httpClient.get<Messages>(\r\n        `${this.getRootUrl()}/v1/spaces/${this.getSpace()}/environments/${this.getEnvironment()}/translations.${locale}.json`,\r\n        {\r\n          headers: this.getHeaders()\r\n        }\r\n    );\r\n  }\r\n}\r\n","import {Inject, Injectable, OnDestroy, OnInit} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\r\nimport {BaseService} from './base.service';\r\nimport {LESSIFY_CONFIG, LessifyModuleConfig} from '../lessify.config';\r\nimport {tap} from 'rxjs/operators';\r\nimport {LessifyLoggerService} from './logger.service';\r\n\r\nexport interface Configurations {\r\n  [key: string]: Configuration;\r\n}\r\n\r\nexport type Configuration = string | number | boolean;\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LessifyConfigurationService extends BaseService implements OnDestroy {\r\n\r\n  private configurations: Configurations = {};\r\n  private configurationsEvents: BehaviorSubject<Configurations>;\r\n  private configurationEvents: Subject<string>;\r\n  configsChanges$: Observable<Configurations>;\r\n  configChanges$: Observable<string>;\r\n\r\n  constructor(\r\n      private readonly httpClient: HttpClient,\r\n      private readonly logger: LessifyLoggerService,\r\n      @Inject(LESSIFY_CONFIG) protected readonly config: LessifyModuleConfig\r\n  ) {\r\n    super(config);\r\n    this.configurationsEvents = new BehaviorSubject<Configurations>(this.configurations);\r\n    this.configurationEvents = new Subject<string>();\r\n    this.configsChanges$ = this.configurationsEvents.asObservable();\r\n    this.configChanges$ = this.configurationEvents.asObservable();\r\n    this.sync();\r\n    this.logger.debug('LessifyConfigurationService : constructor');\r\n  }\r\n\r\n  get(id: string): Configuration | undefined {\r\n    return this.configurations[id];\r\n  }\r\n\r\n  getAll(): Configurations {\r\n    return this.configurations;\r\n  }\r\n\r\n  set(id: string, value: Configuration): void {\r\n    if (id == null || id === '' || value == null) {\r\n      return;\r\n    }\r\n    this.configurations[id] = value;\r\n    this.configurationsEvents.next(this.configurations);\r\n    this.configurationEvents.next(id);\r\n    this.logger.debug(`Updated Configuration '${id}' with value '${value}'.`);\r\n  }\r\n\r\n  sync(): void {\r\n    this.fetch()\r\n    .pipe(\r\n        tap(it => {\r\n          this.configurationsEvents.next(it);\r\n          this.configurationEvents.next('*');\r\n        })\r\n    )\r\n    .subscribe(\r\n        it => this.configurations = it,\r\n        () => {\r\n        },\r\n        () => {\r\n          this.logger.debug(`Configuration Sync completed.`);\r\n        }\r\n    );\r\n  }\r\n\r\n  /**\r\n   * get Configurations\r\n   * examples:\r\n   * {\r\n   *   \"boolean\": true,\r\n   *   \"date\": \"2020-02-20\",\r\n   *   \"text\": \"any value\",\r\n   *   \"number\": 1\r\n   * }\r\n   */\r\n  fetch<T = Configurations>(): Observable<T> {\r\n    return this.httpClient.get<T>(\r\n        `${this.getRootUrl()}/v1/spaces/${this.getSpace()}/environments/${this.getEnvironment()}/configurations.json`,\r\n        {\r\n          headers: this.getHeaders()\r\n        }\r\n    );\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.configurationsEvents.unsubscribe();\r\n    this.configurationEvents.unsubscribe();\r\n    this.logger.debug('LessifyConfigurationService : ngOnDestroy');\r\n  }\r\n}\r\n","import {TranslateLoader} from '@ngx-translate/core';\r\nimport {Observable} from 'rxjs';\r\nimport {LessifyTranslationService} from '../services/translation.service';\r\n\r\nexport class LessifyNgxTranslateHttpLoader implements TranslateLoader {\r\n  constructor(\r\n      private translationService: LessifyTranslationService\r\n  ) {\r\n  }\r\n\r\n  /**\r\n   * Gets the translations from the server\r\n   */\r\n  public getTranslation(lang: string): Observable<any> {\r\n    return this.translationService.fetch(lang);\r\n  }\r\n}\r\n","import {Observable} from 'rxjs';\r\nimport {Translation, TranslocoLoader} from '@ngneat/transloco';\r\nimport {LessifyTranslationService} from '../services/translation.service';\r\n\r\nexport class LessifyTranslocoHttpLoader implements TranslocoLoader {\r\n  constructor(\r\n      private translationService: LessifyTranslationService\r\n  ) {\r\n  }\r\n\r\n  /**\r\n   * Gets the translations from the server\r\n   */\r\n  public getTranslation(lang: string): Observable<Translation> {\r\n    return this.translationService.fetch(lang);\r\n  }\r\n}\r\n","import {Inject, NgModule, Optional} from '@angular/core';\r\nimport {HttpClientModule} from '@angular/common/http';\r\nimport {CommonModule} from '@angular/common';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport {TranslocoService} from '@ngneat/transloco';\r\nimport {DesignAction, DesignEvent, DesignModelType} from './models/design.model';\r\nimport {DesignUtil} from './utils/design.util';\r\nimport {TranslationDirective} from './directives/translation.directive';\r\nimport {ConfigurationDirective} from './directives/configuration.directive';\r\nimport {LessifyConfigurationService} from './services/configuration.service';\r\nimport {LessifyLoggerService} from './services/logger.service';\r\nimport {LESSIFY_CONFIG, LessifyModuleConfig} from './lessify.config';\r\n\r\nconst LESSIFY_WINDOW = 'lessify';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    TranslationDirective,\r\n    ConfigurationDirective,\r\n  ],\r\n  imports: [CommonModule, HttpClientModule],\r\n  exports: [\r\n    TranslationDirective,\r\n    ConfigurationDirective,\r\n  ],\r\n})\r\nexport class LessifyCoreModule {\r\n  constructor(\r\n      private readonly configurationService: LessifyConfigurationService,\r\n      @Optional() private readonly translateService: TranslateService,\r\n      @Optional() private readonly translocoService: TranslocoService,\r\n      private readonly logger: LessifyLoggerService,\r\n      @Inject(LESSIFY_CONFIG) protected readonly config: LessifyModuleConfig\r\n  ) {\r\n    this.logger.debug(`LessifyCoreModule : constructor ${JSON.stringify(config)}`);\r\n    if (DesignUtil.isInIframe() && !window[LESSIFY_WINDOW]) {\r\n      window[LESSIFY_WINDOW] = {editor: true};\r\n      this.logger.debug('Start message listener');\r\n      window.addEventListener('message', (event: MessageEvent<DesignEvent>) => {\r\n        // Exclude unknown origins\r\n        if (!DesignUtil.isOriginTrusted(event.origin)) {\r\n          return;\r\n        }\r\n        // Exclude messages from different space or environment\r\n        if (event.data.space !== config.spaceId || event.data.environment !== config.environment) {\r\n          return;\r\n        }\r\n        this.logger.debug(event);\r\n        if (event.data.action === DesignAction.UPDATE) {\r\n          switch (event.data.type) {\r\n            case DesignModelType.TRANSLATION: {\r\n              if (this.translateService) {\r\n                this.translateService.set(event.data.id, event.data.value.toString(), event.data.locale);\r\n              } else if (this.translocoService) {\r\n                this.translocoService.setTranslationKey(event.data.id, event.data.value.toString(), event.data.locale);\r\n              }\r\n              break;\r\n            }\r\n            case DesignModelType.CONFIGURATION: {\r\n              this.configurationService.set(event.data.id, event.data.value);\r\n              break;\r\n            }\r\n            default: {\r\n              this.logger.warn('Unknown data type.');\r\n            }\r\n          }\r\n        } else if (event.data.action === DesignAction.RELOAD) {\r\n          window.location.reload();\r\n        } else {\r\n          this.logger.warn('Unknown data action.');\r\n        }\r\n      });\r\n    }\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of core\r\n */\r\n\r\nexport * from './lib/directives/configuration.directive';\r\nexport * from './lib/directives/translation.directive';\r\nexport * from './lib/services/translation.service';\r\nexport * from './lib/services/configuration.service';\r\nexport * from './lib/loader/ngx-translate.loader';\r\nexport * from './lib/loader/transloco.loader';\r\nexport * from './lib/models/design.model';\r\nexport * from './lib/core.module';\r\nexport * from './lib/lessify.config';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LessifyLoggerService","i3.LessifyLoggerService"],"mappings":"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"}