{"version":3,"file":"skyux-inline-form.mjs","sources":["../../../../../libs/components/inline-form/src/lib/modules/shared/sky-inline-form-resources.module.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form-adapter.service.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/types/inline-form-button-layout.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.component.ts","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.component.html","../../../../../libs/components/inline-form/src/lib/modules/inline-form/inline-form.module.ts","../../../../../libs/components/inline-form/src/skyux-inline-form.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-inline-form' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n  SkyI18nModule,\n  SkyLibResources,\n  SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n  'EN-US': {\n    skyux_inline_form_button_cancel: { message: 'Cancel' },\n    skyux_inline_form_button_delete: { message: 'Delete' },\n    skyux_inline_form_button_done: { message: 'Done' },\n    skyux_inline_form_button_save: { message: 'Save' },\n  },\n  'FR-CA': {\n    skyux_inline_form_button_cancel: { message: 'Annuler' },\n    skyux_inline_form_button_delete: { message: 'Supprimer' },\n    skyux_inline_form_button_done: { message: 'Terminé' },\n    skyux_inline_form_button_save: { message: 'Sauvegarder' },\n  },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n  exports: [SkyI18nModule],\n})\nexport class SkyInlineFormResourcesModule {}\n","import { ElementRef, Injectable } from '@angular/core';\n\nconst SKY_TABBABLE_SELECTOR = [\n  'a[href]',\n  'area[href]',\n  \"input:not([disabled]):not([tabindex='-1'])\",\n  \"button:not([disabled]):not([tabindex='-1'])\",\n  \"select:not([disabled]):not([tabindex='-1'])\",\n  \"textarea:not([disabled]):not([tabindex='-1'])\",\n  'iframe',\n  'object',\n  'embed',\n  \"*[tabindex]:not([tabindex='-1'])\",\n  '*[contenteditable=true]',\n].join(', ');\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInlineFormAdapterService {\n  public applyAutofocus(inlineFormElementRef: ElementRef): void {\n    const inputWithAutofocus =\n      inlineFormElementRef.nativeElement.querySelector('[autofocus]');\n\n    if (inputWithAutofocus) {\n      inputWithAutofocus.focus();\n    } else {\n      const focusEl: HTMLElement =\n        inlineFormElementRef.nativeElement.querySelector(\n          '.sky-inline-form-content',\n        );\n      const focusableChildren = this.#loadFocusableChildren(focusEl);\n\n      this.#focusFirstElement(focusableChildren);\n    }\n  }\n\n  #loadFocusableChildren(elem: HTMLElement): HTMLElement[] {\n    const elements: HTMLElement[] = Array.prototype.slice.call(\n      elem.querySelectorAll(SKY_TABBABLE_SELECTOR),\n    );\n\n    return elements.filter((element) => {\n      return this.#isVisible(element);\n    });\n  }\n\n  #isVisible(element: HTMLElement): boolean {\n    const style = window.getComputedStyle(element);\n    const isHidden = style.display === 'none' || style.visibility === 'hidden';\n    if (isHidden) {\n      return false;\n    }\n\n    /* istanbul ignore next */\n    const hasBounds = !!(\n      element.offsetWidth ||\n      element.offsetHeight ||\n      element.getClientRects().length\n    );\n    return hasBounds;\n  }\n\n  #focusFirstElement(list: HTMLElement[]): void {\n    if (list.length > 0) {\n      list[0].focus();\n    }\n  }\n}\n","export enum SkyInlineFormButtonLayout {\n  /**\n   * Displays custom buttons.\n   */\n  Custom = 0,\n  /**\n   * Displays Done and Cancel buttons.\n   */\n  DoneCancel = 1,\n  /**\n   * Displays Done, Delete, and Cancel buttons.\n   */\n  DoneDeleteCancel = 2,\n  /**\n   * Displays Save and Cancel buttons.\n   */\n  SaveCancel = 3,\n  /**\n   * Displays Save, Delete, and Cancel buttons.\n   */\n  SaveDeleteCancel = 4,\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  TemplateRef,\n} from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Observable, ReplaySubject, Subject, zip as observableZip } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyInlineFormAdapterService } from './inline-form-adapter.service';\nimport { SkyInlineFormButtonConfig } from './types/inline-form-button-config';\nimport { SkyInlineFormButtonLayout } from './types/inline-form-button-layout';\nimport { SkyInlineFormCloseArgs } from './types/inline-form-close-args';\nimport { SkyInlineFormConfig } from './types/inline-form-config';\n\n/**\n * Renders form content in the current view instead of a separate modal.\n */\n@Component({\n  selector: 'sky-inline-form',\n  templateUrl: './inline-form.component.html',\n  styleUrls: ['./inline-form.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [SkyInlineFormAdapterService],\n  standalone: false,\n})\nexport class SkyInlineFormComponent implements OnInit, OnDestroy {\n  /**\n   * Configuration options for the buttons to display with the inline form.\n   * @required\n   */\n  @Input()\n  public set config(value: SkyInlineFormConfig | undefined) {\n    if (value !== this.#_config && !!value) {\n      this.#_config = value;\n      this.#setupButtons();\n    }\n  }\n\n  public get config(): SkyInlineFormConfig | undefined {\n    return this.#_config;\n  }\n\n  /**\n   * The template to instantiate the inline form.\n   * @required\n   */\n  @Input()\n  public template: TemplateRef<unknown> | undefined;\n\n  /**\n   * Whether to display the inline form. Users can toggle between displaying\n   * and hiding the inline form.\n   * @default false\n   */\n  @Input()\n  public set showForm(value: boolean | undefined) {\n    this.#_showForm = value;\n\n    /* istanbul ignore else */\n    if (value) {\n      // setTimeout() prevents applyAutofocus() from firing\n      // until after *ngIf has added the form element to the DOM.\n      this.#skyAppWindowRef.nativeWindow.setTimeout(() => {\n        this.#adapter.applyAutofocus(this.#elementRef);\n      });\n    }\n  }\n\n  public get showForm(): boolean | undefined {\n    return this.#_showForm;\n  }\n\n  @HostBinding('attr.data-show-form')\n  public get showFormData(): boolean | undefined {\n    return this.showForm;\n  }\n\n  /**\n   * Fires when users close the inline form.\n   */\n  @Output()\n  // eslint-disable-next-line @angular-eslint/no-output-native\n  public close = new EventEmitter<SkyInlineFormCloseArgs>();\n\n  // TODO: handle buttons being set asynchronously (\"| undefined\") when setting autofocus\n  public buttons!: SkyInlineFormButtonConfig[];\n\n  #_config: SkyInlineFormConfig | undefined;\n\n  #_showForm: boolean | undefined = false;\n\n  #ngUnsubscribe = new Subject<void>();\n\n  #adapter: SkyInlineFormAdapterService;\n  #elementRef: ElementRef;\n  #resourcesService: SkyLibResourcesService;\n  #skyAppWindowRef: SkyAppWindowRef;\n  #changeDetectorRef: ChangeDetectorRef;\n\n  constructor(\n    adapter: SkyInlineFormAdapterService,\n    elementRef: ElementRef,\n    resourcesService: SkyLibResourcesService,\n    skyAppWindowRef: SkyAppWindowRef,\n    changeDetectorRef: ChangeDetectorRef,\n  ) {\n    this.#adapter = adapter;\n    this.#elementRef = elementRef;\n    this.#resourcesService = resourcesService;\n    this.#skyAppWindowRef = skyAppWindowRef;\n    this.#changeDetectorRef = changeDetectorRef;\n  }\n\n  public ngOnInit(): void {\n    this.#setupButtons();\n  }\n\n  public ngOnDestroy(): void {\n    this.#ngUnsubscribe.next();\n    this.#ngUnsubscribe.complete();\n\n    this.close.complete();\n  }\n\n  public closeInlineForm(event: SkyInlineFormButtonConfig): void {\n    const args: SkyInlineFormCloseArgs = {\n      reason: event.action,\n    };\n    this.close.emit(args);\n  }\n\n  #setupButtons(): void {\n    if (\n      this.#isValidCustomConfig(this.config) &&\n      this.config &&\n      this.config.buttons\n    ) {\n      this.buttons = this.#getCustomButtons(this.config.buttons);\n      this.#changeDetectorRef.markForCheck();\n      return;\n    }\n\n    this.#getPresetButtons()\n      .pipe(takeUntil(this.#ngUnsubscribe))\n      .subscribe((buttons: SkyInlineFormButtonConfig[]) => {\n        this.buttons = buttons;\n        this.#changeDetectorRef.markForCheck();\n      });\n  }\n\n  #getPresetButtons(): Observable<SkyInlineFormButtonConfig[]> {\n    const emitter = new ReplaySubject<SkyInlineFormButtonConfig[]>(1);\n\n    const buttonType = this.config\n      ? this.config.buttonLayout\n      : SkyInlineFormButtonLayout.DoneCancel;\n\n    switch (buttonType) {\n      /* istanbul ignore next */\n      default:\n      case SkyInlineFormButtonLayout.DoneCancel:\n        observableZip(\n          this.#resourcesService.getString('skyux_inline_form_button_done'),\n          this.#resourcesService.getString('skyux_inline_form_button_cancel'),\n        )\n          .pipe(takeUntil(this.#ngUnsubscribe))\n          .subscribe((values: string[]) => {\n            emitter.next([\n              {\n                text: values[0],\n                styleType: 'primary',\n                action: 'done',\n              },\n              {\n                text: values[1],\n                styleType: 'link',\n                action: 'cancel',\n              },\n            ]);\n          });\n        break;\n\n      case SkyInlineFormButtonLayout.SaveCancel:\n        observableZip(\n          this.#resourcesService.getString('skyux_inline_form_button_save'),\n          this.#resourcesService.getString('skyux_inline_form_button_cancel'),\n        )\n          .pipe(takeUntil(this.#ngUnsubscribe))\n          .subscribe((values: string[]) => {\n            emitter.next([\n              {\n                text: values[0],\n                styleType: 'primary',\n                action: 'save',\n              },\n              {\n                text: values[1],\n                styleType: 'link',\n                action: 'cancel',\n              },\n            ]);\n          });\n        break;\n\n      case SkyInlineFormButtonLayout.DoneDeleteCancel:\n        observableZip(\n          this.#resourcesService.getString('skyux_inline_form_button_done'),\n          this.#resourcesService.getString('skyux_inline_form_button_delete'),\n          this.#resourcesService.getString('skyux_inline_form_button_cancel'),\n        )\n          .pipe(takeUntil(this.#ngUnsubscribe))\n          .subscribe((values: string[]) => {\n            emitter.next([\n              {\n                text: values[0],\n                styleType: 'primary',\n                action: 'done',\n              },\n              {\n                text: values[1],\n                styleType: 'default',\n                action: 'delete',\n              },\n              {\n                text: values[2],\n                styleType: 'link',\n                action: 'cancel',\n              },\n            ]);\n          });\n        break;\n\n      case SkyInlineFormButtonLayout.SaveDeleteCancel:\n        observableZip(\n          this.#resourcesService.getString('skyux_inline_form_button_save'),\n          this.#resourcesService.getString('skyux_inline_form_button_delete'),\n          this.#resourcesService.getString('skyux_inline_form_button_cancel'),\n        )\n          .pipe(takeUntil(this.#ngUnsubscribe))\n          .subscribe((values: string[]) => {\n            emitter.next([\n              {\n                text: values[0],\n                styleType: 'primary',\n                action: 'save',\n              },\n              {\n                text: values[1],\n                styleType: 'default',\n                action: 'delete',\n              },\n              {\n                text: values[2],\n                styleType: 'link',\n                action: 'cancel',\n              },\n            ]);\n          });\n        break;\n    }\n\n    return emitter.asObservable();\n  }\n\n  #getCustomButtons(\n    buttonConfigs: SkyInlineFormButtonConfig[],\n  ): SkyInlineFormButtonConfig[] {\n    const buttons: SkyInlineFormButtonConfig[] = [];\n\n    buttonConfigs.forEach((config: SkyInlineFormButtonConfig) => {\n      /* istanbul ignore next */\n      const styleType = config.styleType || 'default';\n\n      buttons.push({\n        action: config.action,\n        disabled: config.disabled,\n        styleType: styleType,\n        text: config.text,\n      } as SkyInlineFormButtonConfig);\n    });\n\n    return buttons;\n  }\n\n  #isValidCustomConfig(config: SkyInlineFormConfig | undefined): boolean {\n    return (\n      !!config &&\n      !!config.buttons &&\n      config.buttons.length > 0 &&\n      config.buttonLayout === SkyInlineFormButtonLayout.Custom\n    );\n  }\n}\n","@if (!showForm) {\n  <div class=\"sky-slide-dissolve-first\">\n    <ng-content />\n  </div>\n} @else if (template) {\n  <div\n    class=\"sky-slide-dissolve-last\"\n    animate.leave=\"sky-slide-dissolve-leaving\"\n  >\n    <div\n      class=\"sky-inline-form sky-shadow sky-box sky-elevation-1-bordered sky-padding-even-md\"\n    >\n      <div class=\"sky-inline-form-content\">\n        <ng-container [ngTemplateOutlet]=\"template\" />\n      </div>\n      <div class=\"sky-inline-form-footer\">\n        @for (button of buttons; track button.text) {\n          <button\n            class=\"sky-btn {{ 'sky-btn-' + button.styleType }}\"\n            type=\"button\"\n            [disabled]=\"button.disabled ? true : null\"\n            [ngClass]=\"{ 'sky-btn-disabled': button.disabled }\"\n            (click)=\"closeInlineForm(button)\"\n          >\n            {{ button.text }}\n          </button>\n        }\n      </div>\n    </div>\n  </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyInlineFormResourcesModule } from '../shared/sky-inline-form-resources.module';\n\nimport { SkyInlineFormComponent } from './inline-form.component';\n\n@NgModule({\n  declarations: [SkyInlineFormComponent],\n  imports: [CommonModule, SkyInlineFormResourcesModule],\n  exports: [SkyInlineFormComponent],\n})\nexport class SkyInlineFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableZip","i1.SkyInlineFormAdapterService"],"mappings":"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"}