{"version":3,"file":"ngneat-edit-in-place.mjs","sources":["../../../../projects/ngneat/edit-in-place/src/lib/editable.config.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/view-mode.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/edit-mode.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/editable.component.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-group.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-group-action.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-group-edit.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-group-save.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-group-cancel.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-on-escape.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-on-enter.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-focus.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-cancel.directive.ts","../../../../projects/ngneat/edit-in-place/src/lib/directives/editable-save.directive.ts","../../../../projects/ngneat/edit-in-place/src/public-api.ts","../../../../projects/ngneat/edit-in-place/src/ngneat-edit-in-place.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TriggerEvents } from './editable.types';\n\nexport interface EditableConfig {\n  openBindingEvent?: TriggerEvents;\n  closeBindingEvent?: TriggerEvents;\n}\n\nexport const DEFAULT_CONFIG: EditableConfig = {\n  openBindingEvent: 'click',\n  closeBindingEvent: 'click',\n};\n\nexport const EDITABLE_CONFIG = new InjectionToken<EditableConfig>('editable.config', {\n  factory() {\n    return DEFAULT_CONFIG;\n  },\n});\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[viewMode]',\n  standalone: true,\n})\nexport class ViewModeDirective {\n  tpl = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[editMode]',\n  standalone: true,\n})\nexport class EditModeDirective {\n  tpl = inject(TemplateRef);\n}\n","import {\n  afterNextRender,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  DestroyRef,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  OnDestroy,\n  Output,\n  signal,\n} from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter, skip, switchMap, take } from 'rxjs/operators';\nimport { ViewModeDirective } from './directives/view-mode.directive';\nimport { EditModeDirective } from './directives/edit-mode.directive';\nimport { EDITABLE_CONFIG } from './editable.config';\nimport { Mode } from './mode';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'editable',\n  template: ` <ng-container *ngTemplateOutlet=\"editMode() ? editModeTpl.tpl : viewModeTpl.tpl\"></ng-container> `,\n  styles: [':host {cursor: pointer;}'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [AsyncPipe, NgTemplateOutlet],\n})\nexport class EditableComponent implements OnDestroy {\n  #el = inject(ElementRef);\n  #config = inject(EDITABLE_CONFIG);\n  #destroyRef = inject(DestroyRef);\n\n  @Input() enabled = true;\n  @Input() openBindingEvent = this.#config.openBindingEvent;\n  @Input() closeBindingEvent = this.#config.closeBindingEvent;\n\n  @Output() save: EventEmitter<void> = new EventEmitter<void>();\n  @Output() cancel: EventEmitter<void> = new EventEmitter<void>();\n  @Output() modeChange: EventEmitter<Mode> = new EventEmitter<Mode>();\n\n  @ContentChild(ViewModeDirective) viewModeTpl: ViewModeDirective;\n  @ContentChild(EditModeDirective) editModeTpl: EditModeDirective;\n\n  editMode = signal(false);\n  editMode$ = toObservable(this.editMode);\n\n  public viewHandler: Subscription;\n  public editHandler: Subscription;\n  public isGrouped = signal(false);\n\n  private get element(): any {\n    return this.#el.nativeElement;\n  }\n\n  constructor() {\n    afterNextRender(() => {\n      this.handleViewMode();\n      this.handleEditMode();\n    });\n  }\n\n  ngOnDestroy(): void {\n    // Caretaker note: we're explicitly setting these subscriptions to `null` since this actually will be closed subscriptions,\n    // but they still keep referencing `destination`'s, which are `SafeSubscribers`. Destinations keep referencing `next` functions,\n    // which are `() => this.displayEditMode()` and `() => this.saveEdit()`.\n    // Since `next` functions capture `this`, this leads to a circular reference preventing the `EditableComponent` from being GC'd.\n    this.editHandler = null;\n    this.viewHandler = null;\n  }\n\n  private handleViewMode(): void {\n    this.viewHandler = fromEvent(this.element, this.openBindingEvent)\n      .pipe(\n        filter(() => this.enabled && !this.editMode()),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe(() => this.displayEditMode());\n  }\n\n  private handleEditMode(): void {\n    const clickOutside$ = (editMode: boolean) =>\n      fromEvent(document, this.closeBindingEvent).pipe(\n        filter(() => editMode),\n        /*\n        skip the first propagated event if there is a nested node in the viewMode templateRef\n        so it doesn't trigger this eventListener when switching to editMode\n         */\n        skip(this.openBindingEvent === this.closeBindingEvent ? 1 : 0),\n        filter(({ target }) => this.element.contains(target) === false),\n        take(1)\n      );\n\n    this.editHandler = this.editMode$\n      .pipe(\n        switchMap((editMode: boolean) => clickOutside$(editMode)),\n        takeUntilDestroyed(this.#destroyRef)\n      )\n      .subscribe(() => this.saveEdit());\n  }\n\n  public displayEditMode(): void {\n    this.editMode.set(true);\n    this.modeChange.emit('edit');\n  }\n\n  public saveEdit(): void {\n    this.save.next();\n    this.leaveEditMode();\n  }\n\n  public cancelEdit(): void {\n    this.cancel.next();\n    this.leaveEditMode();\n  }\n\n  private leaveEditMode(): void {\n    this.editMode.set(false);\n    this.modeChange.emit('view');\n    if (!this.isGrouped()) {\n      this.viewHandler.unsubscribe();\n      setTimeout(() => this.handleViewMode(), 0);\n    }\n  }\n}\n","import { afterNextRender, ContentChildren, Directive, EventEmitter, Output, QueryList } from '@angular/core';\nimport { EditableComponent } from '../editable.component';\nimport { Mode } from '../mode';\n\n@Directive({\n  selector: '[editableGroup]',\n  standalone: true,\n})\nexport class EditableGroupDirective {\n  @ContentChildren(EditableComponent, { descendants: true }) children: QueryList<EditableComponent>;\n\n  @Output() save: EventEmitter<void> = new EventEmitter<void>();\n  @Output() cancel: EventEmitter<void> = new EventEmitter<void>();\n  @Output() editableModeChange: EventEmitter<Mode> = new EventEmitter<Mode>();\n\n  constructor() {\n    afterNextRender(() => {\n      this.children.forEach((child) => child.isGrouped.set(true));\n      this.children.forEach((child) => child.viewHandler.unsubscribe());\n      this.children.forEach((child) => child.editHandler.unsubscribe());\n    });\n  }\n\n  displayEditMode(): void {\n    this.editableModeChange.emit('edit');\n    this.children.forEach((child) => child.displayEditMode());\n  }\n\n  saveEdit(): void {\n    this.editableModeChange.emit('view');\n    this.children.forEach((child) => child.saveEdit());\n    this.save.emit();\n  }\n\n  cancelEdit(): void {\n    this.editableModeChange.emit('view');\n    this.children.forEach((child) => child.cancelEdit());\n    this.cancel.emit();\n  }\n}\n","import { Directive, inject } from '@angular/core';\nimport { EditableGroupDirective } from './editable-group.directive';\n\n@Directive({\n  selector: '[]',\n  standalone: true,\n})\nexport class EditableGroupActionDirective {\n  protected group = inject(EditableGroupDirective);\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { EditableGroupActionDirective } from './editable-group-action.directive';\n\n@Directive({\n  selector: '[editableGroupEdit]',\n  standalone: true,\n})\nexport class EditableGroupEditDirective extends EditableGroupActionDirective {\n  @HostListener('click')\n  onClick(): void {\n    this.group.displayEditMode();\n  }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { EditableGroupActionDirective } from './editable-group-action.directive';\n\n@Directive({\n  selector: '[editableGroupSave]',\n  standalone: true,\n})\nexport class EditableGroupSaveDirective extends EditableGroupActionDirective {\n  @HostListener('click')\n  onClick(): void {\n    this.group.saveEdit();\n  }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { EditableGroupActionDirective } from './editable-group-action.directive';\n\n@Directive({\n  selector: '[editableGroupCancel]',\n  standalone: true,\n})\nexport class EditableGroupCancelDirective extends EditableGroupActionDirective {\n  @HostListener('click')\n  onClick(): void {\n    this.group.cancelEdit();\n  }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { EditableComponent } from '../editable.component';\n\n@Directive({\n  selector: '[editableOnEscape]',\n  standalone: true,\n})\nexport class EditableOnEscapeDirective {\n  #editable = inject(EditableComponent);\n\n  @HostListener('keyup.escape')\n  onEnter(): void {\n    this.#editable.cancelEdit();\n  }\n}\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { EditableComponent } from '../editable.component';\n\n@Directive({\n  selector: '[editableOnEnter]',\n  standalone: true,\n})\nexport class EditableOnEnterDirective {\n  #editable = inject(EditableComponent);\n\n  @HostListener('keyup.enter')\n  onEnter(): void {\n    this.#editable.saveEdit();\n  }\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n  selector: '[editableFocusable]',\n  standalone: true,\n})\nexport class EditableFocusDirective implements OnInit {\n  #el = inject(ElementRef);\n\n  ngOnInit(): void {\n    this.#el.nativeElement.focus();\n  }\n}\n","import { DestroyRef, Directive, ElementRef, inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { EditableComponent } from '../editable.component';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n  selector: '[editableOnCancel]',\n  standalone: true,\n})\nexport class EditableCancelDirective implements OnInit {\n  #editable = inject(EditableComponent);\n  #el = inject(ElementRef);\n  #destroyRef = inject(DestroyRef);\n\n  @Input() cancelEvent = 'click';\n\n  ngOnInit(): void {\n    fromEvent(this.#el.nativeElement, this.cancelEvent)\n      .pipe(takeUntilDestroyed(this.#destroyRef))\n      .subscribe(() => this.#editable.cancelEdit());\n  }\n}\n","import { DestroyRef, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { EditableComponent } from '../editable.component';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n  selector: '[editableOnSave]',\n  standalone: true,\n})\nexport class EditableSaveDirective implements OnInit {\n  #editable = inject(EditableComponent);\n  #el = inject(ElementRef);\n  #destroyRef = inject(DestroyRef);\n\n  @Input() saveEvent = 'click';\n\n  ngOnInit(): void {\n    fromEvent(this.#el.nativeElement, this.saveEvent)\n      .pipe(takeUntilDestroyed(this.#destroyRef))\n      .subscribe(() => this.#editable.saveEdit());\n  }\n}\n","/*\n * Public API Surface of edit-in-place\n */\n\nexport * from './lib/editable.config';\nexport * from './lib/editable.types';\n\nexport * from './lib/directives/editable-group-edit.directive';\nexport * from './lib/directives/editable-group-save.directive';\nexport * from './lib/directives/editable-group-cancel.directive';\nexport * from './lib/directives/editable-group.directive';\nexport * from './lib/directives/editable-on-escape.directive';\nexport * from './lib/directives/editable-on-enter.directive';\nexport * from './lib/directives/editable-focus.directive';\nexport * from './lib/directives/editable-cancel.directive';\nexport * from './lib/directives/editable-save.directive';\nexport * from './lib/editable.component';\nexport * from './lib/directives/edit-mode.directive';\nexport * from './lib/directives/view-mode.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}