{"version":3,"file":"ngx-sharebuttons-buttons.mjs","sources":["../../../projects/ngx-sharebuttons/buttons/src/expand-button.ts","../../../projects/ngx-sharebuttons/buttons/src/share-buttons.ts","../../../projects/ngx-sharebuttons/buttons/src/share-buttons.html","../../../projects/ngx-sharebuttons/buttons/src/ngx-sharebuttons-buttons.ts"],"sourcesContent":["import {\r\n  Component,\r\n  output,\r\n  input,\r\n  InputSignal,\r\n  OutputEmitterRef,\r\n  ChangeDetectionStrategy\r\n} from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { ShareButtonsConfig } from 'ngx-sharebuttons';\r\n\r\n@Component({\r\n  selector: 'expand-button',\r\n  template: `\r\n    <button class=\"sb-wrapper sb-expand sb-show-icon\"\r\n            [attr.aria-label]=\"expand() ? options().lessButtonAriaLabel : options().moreButtonAriaLabel\"\r\n            (click)=\"expandChange.emit(!expand())\">\r\n\r\n      <div class=\"sb-content\">\r\n        <div class=\"sb-icon\">\r\n          <fa-icon [icon]=\"expand() ? options().lessButtonIcon : options().moreButtonIcon\"/>\r\n        </div>\r\n      </div>\r\n    </button>\r\n  `,\r\n  styleUrl: '../../button/src/share-button.scss',\r\n  styles: `\r\n    :host {\r\n      --button-color: var(--sb-expand-button-color, #FF6651);\r\n    }\r\n  `,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  imports: [FaIconComponent]\r\n})\r\nexport class ExpandButton {\r\n\r\n  options: InputSignal<ShareButtonsConfig> = input<ShareButtonsConfig>();\r\n\r\n  expand: InputSignal<boolean> = input<boolean>();\r\n\r\n  expandChange: OutputEmitterRef<boolean> = output<boolean>();\r\n\r\n}\r\n","import {\r\n  Component,\r\n  inject,\r\n  output,\r\n  computed,\r\n  numberAttribute,\r\n  booleanAttribute,\r\n  input,\r\n  model,\r\n  Signal,\r\n  InputSignal,\r\n  ModelSignal,\r\n  OutputEmitterRef,\r\n  InputSignalWithTransform,\r\n  ChangeDetectionStrategy\r\n} from '@angular/core';\r\nimport {\r\n  ShareButtonsConfig,\r\n  ShareButtonProp,\r\n  SHARE_BUTTONS,\r\n  SHARE_BUTTONS_CONFIG\r\n} from 'ngx-sharebuttons';\r\nimport { ShareButton } from 'ngx-sharebuttons/button';\r\nimport { ExpandButton } from './expand-button';\r\n\r\n@Component({\r\n  selector: 'share-buttons',\r\n  templateUrl: './share-buttons.html',\r\n  styleUrl: './share-buttons.scss',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  imports: [ShareButton, ExpandButton]\r\n})\r\nexport class ShareButtons {\r\n\r\n  /** Global default options */\r\n  readonly options: ShareButtonsConfig = inject(SHARE_BUTTONS_CONFIG);\r\n\r\n  /** Numbers of buttons to show */\r\n  show: InputSignalWithTransform<number, number | string> = input<number, number | string>(Object.values(SHARE_BUTTONS).length, { transform: numberAttribute });\r\n\r\n  /** Array of included buttons */\r\n  include: InputSignal<ShareButtonProp[]> = input<ShareButtonProp[]>(this.options.include || []);\r\n\r\n  /** Array of excluded buttons */\r\n  exclude: InputSignal<ShareButtonProp[]> = input<ShareButtonProp[]>(this.options.exclude || []);\r\n\r\n  expanded: ModelSignal<boolean> = model<boolean>(false);\r\n\r\n  selectedButtons: Signal<ShareButtonProp[]> = computed(() => {\r\n    const includedButtons: ShareButtonProp[] = this.include().length ? this.include() : Object.keys(SHARE_BUTTONS);\r\n    return includedButtons.filter((btn: ShareButtonProp) => this.exclude().indexOf(btn) < 0);\r\n  });\r\n\r\n  displayButtons: Signal<ShareButtonProp[]> = computed(() => {\r\n    const selectedButtons: ShareButtonProp[] = this.selectedButtons()\r\n    return selectedButtons.slice(0, this.expanded() ? selectedButtons.length : this.show());\r\n  });\r\n\r\n  theme: InputSignal<string> = input<string>(this.options.theme);\r\n\r\n  /** The sharing link */\r\n  url: InputSignal<string> = input<string>();\r\n\r\n  /** The title parameter */\r\n  title: InputSignal<string> = input<string>();\r\n\r\n  /** The description parameter */\r\n  description: InputSignal<string> = input<string>();\r\n\r\n  /** The image parameter for sharing on Pinterest */\r\n  image: InputSignal<string> = input<string>();\r\n\r\n  /** The tags parameter for sharing on X and Tumblr */\r\n  tags: InputSignal<string> = input<string>();\r\n\r\n  /** Sets the fb messenger redirect url to enable sharing on Messenger desktop */\r\n  redirectUrl: InputSignal<string> = input<string>();\r\n\r\n  /** Show buttons icons */\r\n  showIcon: InputSignalWithTransform<boolean, boolean | string> = input<boolean, boolean | string>(true, {\r\n    transform: booleanAttribute\r\n  });\r\n\r\n  /** Show buttons text */\r\n  showText: InputSignalWithTransform<boolean, boolean | string> = input<boolean, boolean | string>(false, {\r\n    transform: booleanAttribute\r\n  });\r\n\r\n  /** A flag that indicates if the button's click is disabled */\r\n  disabled: InputSignalWithTransform<boolean, boolean | string> = input<boolean, boolean | string>(false, {\r\n    transform: booleanAttribute\r\n  });\r\n\r\n  /** Share dialog opened event */\r\n  opened: OutputEmitterRef<string> = output<string>();\r\n\r\n}\r\n\r\n/**\r\n * Explanation of the above code:\r\n * ------------------------------\r\n Include buttons: includes only wanted buttons and excludes the rest\r\n Exclude buttons: excludes only the unwanted buttons\r\n User buttons = Include buttons - exclude buttons\r\n Selected Buttons = User buttons [shown number]\r\n */\r\n","<div class=\"sb-group sb-{{ theme() }}\">\r\n  @for (button of displayButtons(); track button) {\r\n    <share-button [button]=\"button\"\r\n                  [theme]=\"theme()\"\r\n                  [url]=\"url()\"\r\n                  [title]=\"title()\"\r\n                  [description]=\"description()\"\r\n                  [image]=\"image()\"\r\n                  [tags]=\"tags()\"\r\n                  [redirectUrl]=\"redirectUrl()\"\r\n                  [showIcon]=\"showIcon()\"\r\n                  [showText]=\"showText()\"\r\n                  (opened)=\"opened.emit($event)\"\r\n                  [disabled]=\"disabled()\"/>\r\n  }\r\n  @if (show() < selectedButtons().length) {\r\n    <expand-button class=\"sb-button sb-{{ theme() }}\"\r\n                   [options]=\"options\"\r\n                   [(expand)]=\"expanded\"/>\r\n  }\r\n</div>\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}