{"version":3,"file":"laserfiche-lf-ui-components-lf-checklist.mjs","sources":["../../../projects/ui-components/lf-checklist/lf-checklist.service.ts","../../../projects/ui-components/lf-checklist/items/items-validation-text.pipe.ts","../../../projects/ui-components/lf-checklist/items/items.component.ts","../../../projects/ui-components/lf-checklist/items/items.component.html","../../../projects/ui-components/lf-checklist/options/options.component.ts","../../../projects/ui-components/lf-checklist/options/options.component.html","../../../projects/ui-components/lf-checklist/lf-checklist/lf-checklist.component.ts","../../../projects/ui-components/lf-checklist/lf-checklist/lf-checklist.component.html","../../../projects/ui-components/lf-checklist/checklist.ts","../../../projects/ui-components/lf-checklist/items/checklist-item.ts","../../../projects/ui-components/lf-checklist/options/checklist-option.ts","../../../projects/ui-components/lf-checklist/lf-checklist.module.ts","../../../projects/ui-components/lf-checklist/lf-checklist-public-api.ts","../../../projects/ui-components/lf-checklist/laserfiche-lf-ui-components-lf-checklist.ts"],"sourcesContent":["// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nimport { Checklist } from './checklist';\r\n\r\nexport interface LfChecklistService {\r\n  loadChecklistsAsync(): Promise<Checklist[]>;\r\n}\r\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { ValidationRule } from '@laserfiche/lf-ui-components/internal-shared';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, mergeMap } from 'rxjs/operators';\r\nimport { ChecklistItem } from './checklist-item';\r\n\r\n/**\r\n * Pipe that gets the error message for a checklist item depending on the type of error\r\n */\r\n@Pipe({\r\n  name: 'itemsValidationText'\r\n})\r\nexport class ItemsValidationTextPipe implements PipeTransform {\r\n\r\n  constructor() { }\r\n\r\n  private localizedStrings?: Map<string, Observable<string>>;\r\n\r\n  /**\r\n   * Gets the error message for the checklist item as an observable\r\n   * @param currentChecklistItem The metadata for the current checklist item\r\n   * @param currentFormControl The form control for the checklist item (i.e. value, validity)\r\n   * @param localizedStrings Map of possible localized strings \r\n   * @returns The error message for the checklist item\r\n   */\r\n  transform(currentChecklistItem: ChecklistItem, currentFormControl: AbstractControl, localizedStrings: Map<string, Observable<string>>): Observable<string | undefined> {\r\n    this.localizedStrings = localizedStrings;\r\n    const validationObservable = this.getValidationObservable(currentChecklistItem, currentFormControl);\r\n    return validationObservable;\r\n  }\r\n\r\n  private getValidationObservable(item: ChecklistItem, formControl: AbstractControl): Observable<string | undefined> {\r\n    const validationObservable = formControl?.statusChanges.pipe(mergeMap((validity) => {\r\n\r\n      const validationRuleName = this.getBrokenValidationRule(formControl);\r\n      if (validationRuleName === ValidationRule.PATTERN) {\r\n        return of(item?.constraintError);\r\n      }\r\n      if (validationRuleName === ValidationRule.REQUIRED && item.requiredError) {\r\n        return of(item.requiredError);\r\n      }\r\n      const requiredString = this.localizedStrings?.get('REQUIRED');\r\n      if (requiredString) {\r\n        return requiredString?.pipe(map((stringVal) => {\r\n          if (validationRuleName === ValidationRule.REQUIRED) {\r\n            return item?.requiredError ? item.requiredError : stringVal;\r\n          }\r\n          else {\r\n            return undefined;\r\n          }\r\n        }));\r\n      }\r\n      else {\r\n        return of(undefined);\r\n      }\r\n\r\n    }));\r\n    return validationObservable;\r\n\r\n  }\r\n\r\n  private getBrokenValidationRule(formControl: AbstractControl): string | undefined {\r\n    if (formControl?.hasError(ValidationRule.PATTERN)) {\r\n      return ValidationRule.PATTERN;\r\n    }\r\n    else if (formControl?.hasError(ValidationRule.REQUIRED)) {\r\n      return ValidationRule.REQUIRED;\r\n    }\r\n    return undefined;\r\n  }\r\n}\r\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nimport { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, ValidatorFn } from '@angular/forms';\r\nimport { AppLocalizationService, ValidationUtils } from '@laserfiche/lf-ui-components/internal-shared';\r\nimport { Observable } from 'rxjs';\r\nimport { ChecklistItem } from './checklist-item';\r\n\r\n/**\r\n * @internal\r\n */\r\n@Component({\r\n  selector: 'lf-items-component',\r\n  templateUrl: './items.component.html',\r\n  styleUrls: ['./items.component.css', './../lf-checklist/lf-checklist.component.css']\r\n})\r\nexport class ItemsComponent implements OnInit {\r\n\r\n  @Input() items: ChecklistItem[] = [];\r\n  @Output() itemsChanged: EventEmitter<void> = new EventEmitter<void>();\r\n  labelPosition: string = 'before';\r\n  checklistParentForm: FormGroup;\r\n\r\n  /** @internal */\r\n  readonly LOCALIZED_STRINGS: Map<string, Observable<string>> = new Map<string, Observable<string>>([\r\n    ['REQUIRED', this.localizationService.getStringLaserficheObservable('REQUIRED')]\r\n  ]);\r\n\r\n  constructor(private fb: FormBuilder, private ref: ChangeDetectorRef, private localizationService: AppLocalizationService) {\r\n    this.checklistParentForm = this.fb.group({\r\n      fieldArray: new FormArray([])\r\n    });\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.refreshChecklistItems();\r\n  }\r\n\r\n  @Input()\r\n  refreshChecklistItems = () => {\r\n    this.syncFormControlDataToFieldValues();\r\n    this.ref.detectChanges();\r\n  };\r\n\r\n  forceValidation: () => boolean = () => {\r\n    let isValid = true;\r\n    this.items.forEach((val, index) => {\r\n      if (val.editable && val.checked) {\r\n        // don't return invalid if not editable, since user can't fix it\r\n        const control = this.getSingleField(index);\r\n        this.triggerValidation(control);\r\n        const controlValid = control.valid;\r\n        if (!controlValid) {\r\n          isValid = false;\r\n        }\r\n      }\r\n    });\r\n    return isValid;\r\n  };\r\n\r\n  onItemCheckboxChanged(index: number) {\r\n    const field = this.getSingleField(index);\r\n    const item = this.items[index];\r\n    item.name = field.value;\r\n    if (!item.checked) {\r\n      field.clearValidators();\r\n    }\r\n    else {\r\n      this.addValidators(item, field);\r\n    }\r\n    this.triggerValidation(field);\r\n    this.itemsChanged.emit();\r\n  }\r\n\r\n  private addValidators(item: ChecklistItem, field: FormControl) {\r\n    const constraint = item.constraint;\r\n    const required = item.isRequired;\r\n    const validators: ValidatorFn[] = [];\r\n    if (constraint) {\r\n      validators.push(ValidationUtils.generalRegexValidator(new RegExp(constraint)));\r\n    }\r\n    if (required) {\r\n      const requiredRegexValidator = ValidationUtils.requiredValidator();\r\n      validators.push(requiredRegexValidator);\r\n    }\r\n    field.setValidators(validators);\r\n  }\r\n\r\n  private triggerValidation(field: FormControl) {\r\n    field.markAsDirty();\r\n    field.updateValueAndValidity();\r\n  }\r\n\r\n  onItemValueChanged(index: number) {\r\n    const field = this.getSingleField(index);\r\n    this.items[index].name = field.value;\r\n    this.itemsChanged.emit();\r\n  }\r\n\r\n  getIcons(item: ChecklistItem): string[] {\r\n    // TODO add error icon if there is an error on node\r\n    if (typeof (item.icon) === 'string') {\r\n      return [item.icon];\r\n    }\r\n    else {\r\n      return item.icon;\r\n    }\r\n  }\r\n\r\n  private getArray(): FormArray {\r\n    return this.checklistParentForm.get('fieldArray') as FormArray;\r\n  }\r\n\r\n  getSingleField(index: number): FormControl {\r\n    return this.getArray().controls[index] as FormControl;\r\n  }\r\n\r\n  syncFormControlDataToFieldValues() {\r\n    this.getArray().clear();\r\n    if (this.items) {\r\n      this.items.forEach(item => {\r\n        const formControl = new FormControl(item.name);\r\n        if (item.editable && item.checked) {\r\n          this.addValidators(item, formControl);\r\n        }\r\n        if (!item.editable || item.disabled) {\r\n          formControl.disable();\r\n        }\r\n        this.getArray().push(formControl);\r\n      });\r\n    }\r\n  }\r\n\r\n  doNothing(event: KeyboardEvent) {\r\n    event.preventDefault();\r\n  }\r\n}\r\n","<!--Copyright (c) Laserfiche.\nLicensed under the MIT License. See LICENSE in the project root for license information.-->\n\n<div id=\"lf-checklist-item-container\" class=\"lf-checklist-item-container\">\n    <div id=\"lf-checklist-item\" class=\"lf-checklist-item\" *ngFor=\"let item of items; index as currentIndex\">\n        <div id=\"lf-checklist-item-label\" class=\"fixed-width-label\" (click)=\"doNothing($event)\">\n            <div *ngIf=\"getIcons(item).length>0\" class=\"fixed-size-icon-container\">\n                <img *ngFor=\"let icon of getIcons(item)\" src=\"{{icon}}\" alt=\"\" class='lf-checklist-item-icon' />\n            </div>\n            <div id=\"lf-checklist-item-name\" class=\"lf-checklist-item-name\">\n                <mat-form-field class=\"lf-checklist-field stretch-width lf-text-field\">\n                    <input matInput type=\"text\" title=\"{{item.name}}\" [formControl]=\"getSingleField(currentIndex)\"\n                    (change)=\"onItemValueChanged(currentIndex)\" (focusout)=\"onItemValueChanged(currentIndex)\">\n                    <mat-error *ngIf=\"!getSingleField(currentIndex).valid\"\n                        title=\"{{item | itemsValidationText: getSingleField(currentIndex) : LOCALIZED_STRINGS | async}}\">\n                        {{item | itemsValidationText: getSingleField(currentIndex): LOCALIZED_STRINGS | async}}\n                    </mat-error>\n                </mat-form-field>\n            </div>\n        </div>\n        <mat-checkbox color=\"primary\" ngDefaultControl [labelPosition]=\"labelPosition\" [(ngModel)]=\"item.checked\"\n            [disabled]=\"item.disabled\" (change)=\"onItemCheckboxChanged(currentIndex)\" class=\"lf-checkbox\">\n        </mat-checkbox>\n    </div>\n</div>\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nimport { Component, Input, EventEmitter, Output } from '@angular/core';\r\nimport { ChecklistOption } from './checklist-option';\r\n\r\n@Component({\r\n  selector: 'lf-options-component',\r\n  templateUrl: './options.component.html',\r\n  styleUrls: ['./options.component.css', './../lf-checklist/lf-checklist.component.css'],  \r\n})\r\nexport class OptionsComponent {\r\n\r\n  @Input() options: ChecklistOption[] = [];\r\n  @Output() optionsChanged: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  constructor() { }\r\n\r\n  onOptionCheckboxChanged() {\r\n    this.optionsChanged.emit();\r\n  }\r\n}\r\n","<!--Copyright (c) Laserfiche.\r\nLicensed under the MIT License. See LICENSE in the project root for license information.-->\r\n\r\n<div id=\"lf-checklist-option-container\" class=\"lf-checklist-option-container\">\r\n    <div id=\"lf-checklist-option\" class=\"lf-checklist-option\" *ngFor=\"let option of options\">\r\n        <mat-checkbox color=\"primary\" ngDefaultControl [(ngModel)]=\"option.checked\" [disabled]=\"option.disabled\"\r\n            (change)=\"onOptionCheckboxChanged()\" title=\"{{option.name}}\" class=\"lf-checkbox full-width-checkbox\">{{option.name}}</mat-checkbox>\r\n    </div>\r\n</div>\r\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nimport {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  NgZone,\r\n  ViewChildren,\r\n  QueryList,\r\n} from '@angular/core';\r\nimport { ItemsComponent } from '../items/items.component';\r\nimport { Checklist } from '../checklist';\r\nimport { LfChecklistService } from '../lf-checklist.service';\r\n\r\nexport interface LfChecklistProviders {\r\n  checklistService: LfChecklistService;\r\n}\r\n\r\n@Component({\r\n  selector: 'lf-checklist-component',\r\n  templateUrl: './lf-checklist.component.html',\r\n  styleUrls: ['./lf-checklist.component.css'],\r\n})\r\nexport class LfChecklistComponent {\r\n\r\n  @Input() action_button_text: string | undefined;\r\n\r\n  @Input() cancel_button_text: string | undefined;\r\n\r\n  @Output() checklistChanged: EventEmitter<Checklist[]> = new EventEmitter();\r\n\r\n  @Output() actionClick: EventEmitter<Checklist[]> = new EventEmitter();\r\n\r\n  @Output() cancelClick: EventEmitter<Checklist[]> = new EventEmitter();\r\n\r\n  /** @internal */\r\n  @ViewChildren(ItemsComponent) private itemsComponents!: QueryList<ItemsComponent>;\r\n\r\n\r\n  /** @internal */\r\n  checklists: Checklist[] = [];\r\n\r\n  /** @internal */\r\n  constructor(\r\n    /** @internal */\r\n    private zone: NgZone\r\n  ) { }\r\n\r\n  @Input() initAsync = async (\r\n    providers: LfChecklistProviders\r\n  ): Promise<void> => {\r\n    return new Promise((resolve) => {\r\n      this.zone.run(() => {\r\n        requestAnimationFrame(async () => {\r\n          this.checklists =\r\n            await providers.checklistService.loadChecklistsAsync();\r\n          this.itemsComponents?.forEach((component) =>\r\n            component.refreshChecklistItems()\r\n          );\r\n          this.checklistChanged.emit(this.checklists);\r\n          resolve();\r\n        });\r\n      });\r\n    });\r\n  };\r\n\r\n  @Input() forceValidation = (): boolean => {\r\n    let isValid = true;\r\n    this.itemsComponents.forEach((component) => {\r\n      if (!component.forceValidation()) {\r\n        isValid = false;\r\n      }\r\n    });\r\n    return isValid;\r\n  };\r\n\r\n  /** @internal */\r\n  onActionButtonClicked(): void {\r\n    this.actionClick.emit(this.checklists);\r\n  }\r\n\r\n  /** @internal */\r\n  onCancelButtonClicked(): void {\r\n    this.cancelClick.emit(this.checklists);\r\n  }\r\n\r\n  /** @internal */\r\n  emitChecklistChanges(): void {\r\n    this.checklistChanged.emit(this.checklists);\r\n  }\r\n}\r\n","<!--Copyright (c) Laserfiche.\r\nLicensed under the MIT License. See LICENSE in the project root for license information.-->\r\n\r\n<div id=\"lf-checklist-container\" class=\"lf-checklist-container\">\r\n    <div id=\"lf-checklist-list-container\" class=\"lf-checklist-list-container\">\r\n        <div id=\"lf-checklist-list\" class=\"lf-checklist-list\" *ngFor=\"let checklist of checklists\">\r\n            <div *ngIf=\"!checklist.collapsible\">\r\n                <div id=\"lf-checklist-name-container\" class=\"lf-checklist-name-container\">\r\n                    <span id=\"lf-checklist-name\" class=\"lf-text-label\"\r\n                        title=\"{{checklist.name}}\">{{checklist.name}}</span>\r\n                </div>\r\n                <lf-items-component *ngIf=\"checklist.checklistItems.length > 0\" [items]=\"checklist.checklistItems\"\r\n                    (itemsChanged)=\"emitChecklistChanges()\"></lf-items-component>\r\n                <lf-options-component *ngIf=\"checklist.checklistOptions.length > 0\" [options]=\"checklist.checklistOptions\"\r\n                    (optionsChanged)=\"emitChecklistChanges()\"></lf-options-component>\r\n            </div>\r\n            <div *ngIf=\"checklist.collapsible\">\r\n                <mat-expansion-panel [expanded]=\"false\" class=\"checklist-expansion-panel\">\r\n                    <mat-expansion-panel-header class=\"checklist-expansion-panel\">\r\n                        <mat-panel-title>\r\n                            <span id=\"lf-checklist-name\" class=\"lf-text-label\"\r\n                                title=\"{{checklist.name}}\">{{checklist.name}}</span>\r\n                        </mat-panel-title>\r\n                    </mat-expansion-panel-header>\r\n                    <lf-items-component *ngIf=\"checklist.checklistItems.length > 0\" [items]=\"checklist.checklistItems\"\r\n                        (itemsChanged)=\"emitChecklistChanges()\"></lf-items-component>\r\n                    <lf-options-component *ngIf=\"checklist.checklistOptions.length > 0\" [options]=\"checklist.checklistOptions\"\r\n                        (optionsChanged)=\"emitChecklistChanges()\"></lf-options-component>\r\n                </mat-expansion-panel>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=\"lf-checklist-button-container\" class=\"lf-checklist-button-container\">\r\n        <button *ngIf=\"action_button_text\" id=\"lf-checklist-action-button\"\r\n            class=\"lf-checklist-action-button primary-button lf-button\"\r\n            (click)=\"onActionButtonClicked()\">{{action_button_text}}</button>\r\n        <button *ngIf=\"cancel_button_text\" id=\"lf-checklist-cancel-button\"\r\n            class=\"lf-checklist-cancel-button lf-button sec-button\"\r\n            (click)=\"onCancelButtonClicked()\">{{cancel_button_text}}</button>\r\n    </div>\r\n</div>\r\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nimport { ChecklistOption } from './options/checklist-option';\r\nimport { ChecklistItem } from './items/checklist-item';\r\n\r\nexport interface Checklist {\r\n    name: string;\r\n    checklistItems: ChecklistItem[];\r\n    checklistOptions: ChecklistOption[];\r\n    collapsible?: boolean;\r\n}\r\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nexport interface ChecklistItem {\r\n    icon: string | string[];\r\n    name: string;\r\n    id: string;\r\n    checked: boolean;\r\n    disabled: boolean;\r\n    editable: boolean;\r\n    constraint?: string;\r\n    constraintError?: string;\r\n    isRequired?: boolean;\r\n    requiredError?: string;\r\n}\r\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nexport interface ChecklistOption {\r\n    name: string;\r\n    checked: boolean;\r\n    disabled: boolean;\r\n}\r\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nimport { CUSTOM_ELEMENTS_SCHEMA, Injector, NgModule } from '@angular/core';\r\nimport { LfChecklistComponent } from './lf-checklist/lf-checklist.component';\r\nimport { ItemsComponent } from './items/items.component';\r\nimport { OptionsComponent } from './options/options.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { createCustomElement } from '@angular/elements';\r\nimport { ItemsValidationTextPipe } from './items/items-validation-text.pipe';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    LfChecklistComponent,\r\n    ItemsComponent,\r\n    OptionsComponent,\r\n    ItemsValidationTextPipe\r\n  ],\r\n  imports: [\r\n    BrowserModule,\r\n    CommonModule,\r\n    MatButtonModule,\r\n    MatCheckboxModule,\r\n    FormsModule,\r\n    MatFormFieldModule,\r\n    MatInputModule,\r\n    ReactiveFormsModule,\r\n    MatExpansionModule\r\n  ],\r\n  exports: [\r\n    LfChecklistComponent\r\n  ],\r\n  providers: [],\r\n  bootstrap: [LfChecklistComponent],\r\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class LfChecklistModule {\r\n  /** @internal */\r\n  constructor(\r\n    /** @internal */ injector: Injector\r\n  ) {\r\n    const elementName: string = 'lf-checklist';\r\n    if (window.customElements && !customElements.get(elementName)) {\r\n      const newElement = createCustomElement(LfChecklistComponent, { injector });\r\n      customElements.define(elementName, newElement);\r\n    }\r\n  }\r\n}\r\n","// Copyright (c) Laserfiche.\r\n// Licensed under the MIT License. See LICENSE in the project root for license information.\r\n\r\nexport * from './lf-checklist.service';\r\nexport * from './lf-checklist/lf-checklist.component';\r\nexport * from './checklist';\r\nexport * from './items/checklist-item';\r\nexport * from './options/checklist-option';\r\n\r\nexport * from './lf-checklist.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './lf-checklist-public-api';\n"],"names":["i7.ItemsValidationTextPipe","i1","i2","i3","i3.ItemsComponent","i4.OptionsComponent"],"mappings":"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"}