{"version":3,"file":"novo-elements-elements-tip-well.mjs","sources":["../../../projects/novo-elements/src/elements/tip-well/TipWell.ts","../../../projects/novo-elements/src/elements/tip-well/TipWell.module.ts","../../../projects/novo-elements/src/elements/tip-well/novo-elements-elements-tip-well.ts"],"sourcesContent":["// NG2\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\n\n@Component({\n    selector: 'novo-tip-well',\n    template: `\n    <div *ngIf=\"isActive\">\n      <div>\n        <i class=\"bhi-{{ icon }}\" *ngIf=\"icon\" [attr.data-automation-id]=\"'novo-tip-well-icon-' + name\"></i>\n        <ng-content select=\"novo-icon\"></ng-content>\n        <p *ngIf=\"sanitize && tip.length\" [attr.data-automation-id]=\"'novo-tip-well-tip-' + name\">{{ tip }}</p>\n        <p *ngIf=\"!sanitize && tipWithStyles\" [attr.data-automation-id]=\"'novo-tip-well-tip-' + name\" [innerHTML]=\"tipWithStyles\"></p>\n        <p *ngIf=\"(sanitize && !tip.length) || (!sanitize && !tipWithStyles)\" [attr.data-automation-id]=\"'novo-tip-well-tip-' + name\"><ng-content></ng-content></p>\n      </div>\n      <button theme=\"dialogue\" size=\"small\" (click)=\"hideTip()\" *ngIf=\"button\" [attr.data-automation-id]=\"'novo-tip-well-button-' + name\">\n        {{ buttonText }}\n      </button>\n    </div>\n  `,\n    styleUrls: ['./TipWell.scss'],\n    host: {\n        '[class.active]': 'isActive',\n    },\n    standalone: false,\n})\nexport class NovoTipWellElement implements OnInit {\n  @Input()\n  name: string | number;\n  @Input()\n  tip: string;\n  @Input()\n  buttonText: string;\n  @Input()\n  button: boolean = true;\n  @Input()\n  icon: string;\n  @Input()\n  sanitize: boolean = true;\n  @Output()\n  confirmed = new EventEmitter();\n\n  isActive: boolean = true;\n  isLocalStorageEnabled: any;\n  localStorageKey: string;\n\n  private _tipWithStyles: SafeHtml;\n  private _lastTipStyled: string;\n\n  constructor(private labels: NovoLabelService, private sanitizer: DomSanitizer) {\n    this.isActive = true;\n    // Check if localStorage is enabled\n    this.isLocalStorageEnabled = (() => {\n      let isEnabled = false;\n      if (typeof localStorage === 'object') {\n        try {\n          localStorage.setItem('lsTest', '1');\n          localStorage.removeItem('lsTest');\n          isEnabled = true;\n        } catch (e) {\n          console.warn(\n            'This web browser does not support storing settings locally. In Safari, the most common cause of this is using \"Private Browsing Mode\". Some settings may not save or some features may not work properly for you.',\n          );\n        }\n      }\n      return isEnabled;\n    })();\n  }\n\n  // Trusts the HTML in order to show CSS styles\n  get tipWithStyles(): SafeHtml {\n    if (!this._tipWithStyles || this._lastTipStyled !== this.tip) {\n      this._tipWithStyles = this.sanitizer.bypassSecurityTrustHtml(this.tip);\n      this._lastTipStyled = this.tip;\n    }\n    return this._tipWithStyles;\n  }\n\n  ngOnInit() {\n    this.tip = this.tip || '';\n    this.buttonText = this.buttonText || this.labels.okGotIt;\n    this.button = typeof this.button === 'string' ? this.button === 'true' : this.button;\n    this.icon = this.icon || null;\n    // Set a (semi) unique name for the tip-well\n    this.name = this.name || Math.round(Math.random() * 100);\n    this.localStorageKey = `novo-tw_${this.name}`;\n    // Check localStorage for state\n    if (this.isLocalStorageEnabled) {\n      const storedValue = JSON.parse(localStorage.getItem(this.localStorageKey));\n      this.isActive = storedValue !== false;\n    }\n  }\n\n  hideTip() {\n    if (this.isLocalStorageEnabled) {\n      localStorage.setItem(this.localStorageKey, JSON.stringify(false));\n    }\n    this.isActive = false;\n    this.confirmed.emit();\n  }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoTipWellElement } from './TipWell';\n\n@NgModule({\n  imports: [CommonModule, NovoButtonModule],\n  declarations: [NovoTipWellElement],\n  exports: [NovoTipWellElement],\n})\nexport class NovoTipWellModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}