{"version":3,"file":"actionbar.mjs","sources":["../../../../src/actionbar/v1/actionbar.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS, CSSResult, nothing, type TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { appendStylesheet, warnOnDeprecatedSlot } from '../../core/utils';\nimport styles from './actionbar.scss?inline';\nimport slotStyles from './actionbar.slot.scss?inline';\nimport { gridStyles } from '../../styles';\nimport '../../call-to-action';\n\n/** @deprecated Use pips-v2-actionbar instead */\n@customElement('pips-v1-actionbar')\nexport class Actionbar extends LitElement {\n  static override styles: CSSResult[] = [unsafeCSS(styles), unsafeCSS(gridStyles)];\n\n  @property({ type: Boolean, reflect: true }) module = false;\n\n  @property({ type: String, reflect: true }) background: 'black' | 'dark-turquoise' | 'dark-red' = 'black';\n\n  /** @internal - Do not set externally, managed by slot detection */\n  @property({ type: Boolean, reflect: true, attribute: 'has-cta' }) hasCtaContent = false;\n\n  /** @internal - Do not set externally, managed by slot detection */\n  @property({ type: Boolean, reflect: true, attribute: 'single-cta' }) hasSingleCta = false;\n\n  /** @internal - Do not set externally, managed by slot detection */\n  @property({ type: Boolean, reflect: true, attribute: 'has-phone' }) hasPhoneContent = false;\n\n  private onCtaSlotChange(e: Event) {\n    const count = (e.target as HTMLSlotElement).assignedElements({ flatten: true }).length;\n    this.hasCtaContent = count > 0;\n    this.hasSingleCta = count === 1;\n  }\n\n  private onDeprecatedSubtextSlot(e: Event) {\n    warnOnDeprecatedSlot(e, '[pips-v1-actionbar] slot=\"subtext\" is deprecated. Use slot=\"body\" instead.');\n  }\n\n  private onPhoneSectionSlotChange(e: Event) {\n    const slot = e.target as HTMLSlotElement;\n    const otherSlotName = slot.name === 'phone' ? 'phone-hours' : 'phone';\n    const otherSlot = this.shadowRoot?.querySelector(`slot[name=\"${otherSlotName}\"]`) as HTMLSlotElement;\n\n    this.hasPhoneContent =\n      slot.assignedElements({ flatten: true }).length > 0 ||\n      (otherSlot?.assignedElements({ flatten: true }).length ?? 0) > 0;\n  }\n\n  override connectedCallback(): void {\n    super.connectedCallback();\n\n    // Only required if you need to apply styles to slotted elements\n    appendStylesheet({\n      target: this,\n      styles: slotStyles,\n      name: `${this.tagName.toLowerCase()}-slot`\n    });\n  }\n\n    private renderPhoneSection() {\n    return html`\n      <div class=\"phone-container\" role=\"group\" aria-label=\"Contact information\">\n        <slot name=\"phone\" @slotchange=${this.onPhoneSectionSlotChange}></slot>\n        <slot name=\"phone-hours\" @slotchange=${this.onPhoneSectionSlotChange}></slot>\n      </div>\n    `;\n  }\n\n  private renderSeparator() {\n    return this.hasPhoneContent && this.hasCtaContent\n      ? html`<div class=\"separator\" role=\"presentation\" aria-hidden=\"true\"></div>`\n      : nothing;\n  }\n\n  override render(): TemplateResult {\n    return this.module ? html`\n    <div class=\"cmp-layout-container${this.background ? '--' + this.background : ''}\" role=\"region\" aria-label=\"Action bar\">\n      <div class=\"layout-container\">\n        <div class=\"content-container\">\n          <slot name=\"heading\"></slot>\n          <slot name=\"body\"></slot>\n          <slot name=\"subtext\" @slotchange=\"${this.onDeprecatedSubtextSlot}\"></slot>\n        </div>\n        <div class=\"phone-action-container\">\n          ${this.renderPhoneSection()}\n          ${this.renderSeparator()}\n          <div class=\"action-container\">\n            <slot name=\"call-to-action\" @slotchange=${this.onCtaSlotChange}></slot>\n          </div>\n        </div>\n      </div>\n    </div>\n    ` : html`\n      <div class=\"layout\" role=\"region\" aria-label=\"Action bar\">\n        <div class=\"teaser-container\">\n          <div class=\"content-left\">\n            <slot name=\"heading\"></slot>\n            <slot name=\"body\"></slot>\n            <slot name=\"subtext\" @slotchange=\"${this.onDeprecatedSubtextSlot}\"></slot>\n            <slot></slot>\n          </div>\n          <div class=\"content-right\">\n            <slot name=\"call-to-action\" @slotchange=${this.onCtaSlotChange}></slot>\n            <slot name=\"link\"></slot>\n          </div>\n        </div>\n      </div>\n    `;\n  }\n}\n"],"names":["Actionbar","LitElement","super","arguments","this","module","background","hasCtaContent","hasSingleCta","hasPhoneContent","e","count","target","assignedElements","flatten","length","warnOnDeprecatedSlot","slot","otherSlotName","name","otherSlot","shadowRoot","querySelector","connectedCallback","appendStylesheet","styles","tagName","toLowerCase","renderPhoneSection","html","onPhoneSectionSlotChange","renderSeparator","nothing","render","onDeprecatedSubtextSlot","onCtaSlotChange","unsafeCSS","gridStyles","__decorateClass","property","type","Boolean","reflect","prototype","String","attribute","customElement"],"mappings":"8tCAUO,IAAMA,EAAN,cAAwBC,CAAAA,CAAxB,cAAAC,MAAAA,GAAAC,SAAAA,EAGuCC,KAAAC,OAAAA,GAEDD,KAAAE,WAAsD,QAG/BF,KAAAG,cAAAA,GAGGH,KAAAI,aAAAA,GAGDJ,KAAAK,gBAAAA,EAAkB,CAE9E,gBAAgBC,GACtB,MAAMC,EAASD,EAAEE,OAA2BC,iBAAiB,CAAEC,QAAAA,EAAS,CAAA,EAAQC,OAChFX,KAAKG,cAAgBI,EAAQ,EAC7BP,KAAKI,aAAeG,IAAU,CAChC,CAEQ,wBAAwBD,GAC9BM,EAAqBN,EAAG,6EAC1B,CAEQ,yBAAyBA,EAAAA,CAC/B,MAAMO,EAAOP,EAAEE,OACTM,EAAgBD,EAAKE,OAAS,QAAU,cAAgB,QACxDC,EAAYhB,KAAKiB,YAAYC,cAAc,cAAcJ,CAAAA,IAAAA,EAE/Dd,KAAKK,gBACHQ,EAAKJ,iBAAiB,CAAEC,QAAAA,KAAiBC,OAAS,IACjDK,GAAWP,iBAAiB,CAAEC,UAAS,CAAA,EAAQC,QAAU,GAAK,CACnE,CAES,mBAAAQ,CACPrB,MAAMqB,oBAGNC,EAAiB,CACfZ,OAAQR,KACRqB,+rEACAN,KAAM,GAAGf,KAAKsB,QAAQC,YAAAA,CAAAA,OAAAA,CAAAA,CAE1B,CAEU,oBAAAC,CACR,OAAOC;AAAAA;AAAAA,yCAE8BzB,KAAK0B,wBAAAA;AAAAA,+CACC1B,KAAK0B,wBAAAA;AAAAA;AAAAA,KAGlD,CAEQ,iBAAAC,CACN,OAAO3B,KAAKK,iBAAmBL,KAAKG,cAChCsB,wEACAG,CACN,CAES,QAAAC,CACP,OAAO7B,KAAKC,OAASwB;AAAAA,sCACazB,KAAKE,WAAa,KAAOF,KAAKE,WAAa,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CAKnCF,KAAK8B,uBAAAA;AAAAA;AAAAA;AAAAA,YAGvC9B,KAAKwB,mBAAAA,CAAAA;AAAAA,YACLxB,KAAK2B,gBAAAA,CAAAA;AAAAA;AAAAA,sDAEqC3B,KAAK+B,eAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,MAKnDN;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gDAMwCzB,KAAK8B,uBAAAA;AAAAA;AAAAA;AAAAA;AAAAA,sDAIC9B,KAAK+B,eAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,KAMzD,CAAA,EAhGWnC,EACKyB,OAAsB,CAACW,46GAAmBA,EAAUC,CAAAA,CAAAA,EAExBC,EAAA,CAA3CC,EAAS,CAAEC,KAAMC,QAASC,QAAAA,EAAS,CAAA,CAAA,EAHzB1C,EAGiC2C,UAAA,SAAA,CAAA,EAEDL,EAAA,CAA1CC,EAAS,CAAEC,KAAMI,OAAQF,UAAS,CAAA,CAAA,EALxB1C,EAKgC2C,UAAA,aAAA,GAGuBL,EAAA,CAAjEC,EAAS,CAAEC,KAAMC,QAASC,QAAAA,GAAeG,UAAW,SAAA,CAAA,CAAA,EAR1C7C,EAQuD2C,UAAA,gBAAA,CAAA,EAGGL,EAAA,CAApEC,EAAS,CAAEC,KAAMC,QAASC,WAAeG,UAAW,YAAA,CAAA,CAAA,EAX1C7C,EAW0D2C,UAAA,eAAA,CAAA,EAGDL,EAAA,CAAnEC,EAAS,CAAEC,KAAMC,QAASC,QAAAA,GAAeG,UAAW,WAAA,CAAA,CAAA,EAd1C7C,EAcyD2C,UAAA,kBAAA,CAAA,EAdzD3C,EAANsC,EAAA,CADNQ,EAAc,sBACF9C,CAAAA"}