{"version":3,"file":"np-ui-lib.mjs","sources":["../../../projects/np-ui-lib/src/lib/np-utility/np-constants.ts","../../../projects/np-ui-lib/src/lib/np-utility/np-autofocus.module.ts","../../../projects/np-ui-lib/src/lib/np-translations/np-translations.service.ts","../../../projects/np-ui-lib/src/lib/np-translations/np-translate.pipe.ts","../../../projects/np-ui-lib/src/lib/np-color-picker/np-color-picker.component.ts","../../../projects/np-ui-lib/src/lib/np-color-picker/np-color-picker.component.html","../../../projects/np-ui-lib/src/lib/np-translations/np-translations.module.ts","../../../projects/np-ui-lib/src/lib/np-color-picker/np-color-picker.module.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/models/constants.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/models/column.model.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/models/data-source.model.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/models/load-options.model.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/models/state.model.ts","../../../projects/np-ui-lib/src/lib/np-dialog/np-dialog.config.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/services/np-grid-utility.service.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/services/np-filter.service.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/services/np-odata.service.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/services/np-file.service.ts","../../../projects/np-ui-lib/src/lib/np-dialog/np-dialog-ref.ts","../../../projects/np-ui-lib/src/lib/np-dialog/np-dialog-container.component.ts","../../../projects/np-ui-lib/src/lib/np-dialog/np-dialog-container.component.html","../../../projects/np-ui-lib/src/lib/np-dialog/np-dialog.service.ts","../../../projects/np-ui-lib/src/lib/np-utility/np-utility.service.ts","../../../projects/np-ui-lib/src/lib/np-tooltip/np-tooltip.component.ts","../../../projects/np-ui-lib/src/lib/np-tooltip/np-tooltip.component.html","../../../projects/np-ui-lib/src/lib/np-tooltip/np-tooltip.directive.ts","../../../projects/np-ui-lib/src/lib/np-date-picker/np-date-picker.component.ts","../../../projects/np-ui-lib/src/lib/np-date-picker/np-date-picker.component.html","../../../projects/np-ui-lib/src/lib/np-paginator/np-paginator.component.ts","../../../projects/np-ui-lib/src/lib/np-paginator/np-paginator.component.html","../../../projects/np-ui-lib/src/lib/np-checkbox/np-checkbox.component.ts","../../../projects/np-ui-lib/src/lib/np-checkbox/np-checkbox.component.html","../../../projects/np-ui-lib/src/lib/np-data-grid/pipes/np-filter-types.pipe.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/pipes/np-search-columns.pipe.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/np-data-grid.component.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/np-data-grid.component.html","../../../projects/np-ui-lib/src/lib/np-tooltip/np-tooltip.module.ts","../../../projects/np-ui-lib/src/lib/np-date-picker/np-date-picker.module.ts","../../../projects/np-ui-lib/src/lib/np-dialog/np-dialog.module.ts","../../../projects/np-ui-lib/src/lib/np-paginator/np-paginator.module.ts","../../../projects/np-ui-lib/src/lib/np-checkbox/np-checkbox-group.component.ts","../../../projects/np-ui-lib/src/lib/np-checkbox/np-checkbox-group.component.html","../../../projects/np-ui-lib/src/lib/np-checkbox/np-checkbox.module.ts","../../../projects/np-ui-lib/src/lib/np-data-grid/np-data-grid.module.ts","../../../projects/np-ui-lib/src/lib/np-time-picker/np-time-picker.component.ts","../../../projects/np-ui-lib/src/lib/np-time-picker/np-time-picker.component.html","../../../projects/np-ui-lib/src/lib/np-time-picker/np-time-picker.module.ts","../../../projects/np-ui-lib/src/lib/np-switch/np-switch.component.ts","../../../projects/np-ui-lib/src/lib/np-switch/np-switch.component.html","../../../projects/np-ui-lib/src/lib/np-switch/np-switch.module.ts","../../../projects/np-ui-lib/src/lib/np-notifications/np-notifications.service.ts","../../../projects/np-ui-lib/src/lib/np-notifications/np-notifications.component.ts","../../../projects/np-ui-lib/src/lib/np-notifications/np-notifications.component.html","../../../projects/np-ui-lib/src/lib/np-notifications/np-notifications.module.ts","../../../projects/np-ui-lib/src/lib/np-notifications/np-notification.model.ts","../../../projects/np-ui-lib/src/lib/np-utility/np-orderby.module.ts","../../../projects/np-ui-lib/src/lib/np-utility/np-highlight.module.ts","../../../projects/np-ui-lib/src/lib/np-auto-complete/np-auto-complete.component.ts","../../../projects/np-ui-lib/src/lib/np-auto-complete/np-auto-complete.component.html","../../../projects/np-ui-lib/src/lib/np-auto-complete/np-auto-complete.module.ts","../../../projects/np-ui-lib/src/lib/np-panel/np-panel-content.directive.ts","../../../projects/np-ui-lib/src/lib/np-panel/np-panel.component.ts","../../../projects/np-ui-lib/src/lib/np-panel/np-panel.component.html","../../../projects/np-ui-lib/src/lib/np-panel/np-panel.module.ts","../../../projects/np-ui-lib/src/lib/np-utility/np-mask.service.ts","../../../projects/np-ui-lib/src/lib/np-utility/np-mask.module.ts","../../../projects/np-ui-lib/src/lib/np-utility/np-defer.module.ts","../../../projects/np-ui-lib/src/lib/np-progress/np-progress.component.ts","../../../projects/np-ui-lib/src/lib/np-progress/np-progress.component.html","../../../projects/np-ui-lib/src/lib/np-progress/np-progress.module.ts","../../../projects/np-ui-lib/src/lib/np-carousel/np-carousel.component.ts","../../../projects/np-ui-lib/src/lib/np-carousel/np-carousel.component.html","../../../projects/np-ui-lib/src/lib/np-carousel/np-carousel.module.ts","../../../projects/np-ui-lib/src/lib/np-tabs/np-tab-content.directive.ts","../../../projects/np-ui-lib/src/lib/np-tabs/np-tab.component.ts","../../../projects/np-ui-lib/src/lib/np-tabs/np-tabs.component.ts","../../../projects/np-ui-lib/src/lib/np-tabs/np-tabs.component.html","../../../projects/np-ui-lib/src/lib/np-tabs/np-tabs.module.ts","../../../projects/np-ui-lib/src/lib/np-accordion/np-accordion-item/np-accordion-content.directive.ts","../../../projects/np-ui-lib/src/lib/np-accordion/np-accordion-item/np-accordion-item.component.ts","../../../projects/np-ui-lib/src/lib/np-accordion/np-accordion-item/np-accordion-item.component.html","../../../projects/np-ui-lib/src/lib/np-accordion/np-accordion.component.ts","../../../projects/np-ui-lib/src/lib/np-accordion/np-accordion.component.html","../../../projects/np-ui-lib/src/lib/np-accordion/np-accordion.module.ts","../../../projects/np-ui-lib/src/lib/np-alert/np-alert.component.ts","../../../projects/np-ui-lib/src/lib/np-alert/np-alert.component.html","../../../projects/np-ui-lib/src/lib/np-alert/np-alert.module.ts","../../../projects/np-ui-lib/src/lib/np-modal/np-modal-ref.ts","../../../projects/np-ui-lib/src/lib/np-modal/np-modal-container.component.ts","../../../projects/np-ui-lib/src/lib/np-modal/np-modal-container.component.html","../../../projects/np-ui-lib/src/lib/np-modal/np-modal.config.ts","../../../projects/np-ui-lib/src/lib/np-modal/np-modal.service.ts","../../../projects/np-ui-lib/src/lib/np-modal/np-modal.module.ts","../../../projects/np-ui-lib/src/lib/np-tags/np-tags.component.ts","../../../projects/np-ui-lib/src/lib/np-tags/np-tags.component.html","../../../projects/np-ui-lib/src/lib/np-tags/np-tags.module.ts","../../../projects/np-ui-lib/src/lib/np-popover/np-popover.component.ts","../../../projects/np-ui-lib/src/lib/np-popover/np-popover.component.html","../../../projects/np-ui-lib/src/lib/np-popover/np-popover.directive.ts","../../../projects/np-ui-lib/src/lib/np-popover/np-popover.module.ts","../../../projects/np-ui-lib/src/lib/np-dropdown/np-dropdown.component.ts","../../../projects/np-ui-lib/src/lib/np-dropdown/np-dropdown.component.html","../../../projects/np-ui-lib/src/lib/np-dropdown/np-dropdown.module.ts","../../../projects/np-ui-lib/src/lib/np-menubar/np-menu-item/np-menu-item.component.ts","../../../projects/np-ui-lib/src/lib/np-menubar/np-menu-item/np-menu-item.component.html","../../../projects/np-ui-lib/src/lib/np-menubar/np-panel-menu-item/np-panel-menu-item.component.ts","../../../projects/np-ui-lib/src/lib/np-menubar/np-panel-menu-item/np-panel-menu-item.component.html","../../../projects/np-ui-lib/src/lib/np-menubar/np-menubar.component.ts","../../../projects/np-ui-lib/src/lib/np-menubar/np-menubar.component.html","../../../projects/np-ui-lib/src/lib/np-menubar/np-popup-menubar.directive.ts","../../../projects/np-ui-lib/src/lib/np-menubar/np-menubar.module.ts","../../../projects/np-ui-lib/src/lib/np-menubar/np-menu.model.ts","../../../projects/np-ui-lib/src/lib/np-card/np-card.component.ts","../../../projects/np-ui-lib/src/lib/np-card/np-card.component.html","../../../projects/np-ui-lib/src/lib/np-card/np-card-header.component.ts","../../../projects/np-ui-lib/src/lib/np-card/np-card-image.component.ts","../../../projects/np-ui-lib/src/lib/np-card/np-card-footer.component.ts","../../../projects/np-ui-lib/src/lib/np-card/np-card-body.component.ts","../../../projects/np-ui-lib/src/lib/np-card/np-card.module.ts","../../../projects/np-ui-lib/src/lib/np-loader/np-loader.directive.ts","../../../projects/np-ui-lib/src/lib/np-loader/np-loader.module.ts","../../../projects/np-ui-lib/src/lib/np-blockui/np-blockui.directive.ts","../../../projects/np-ui-lib/src/lib/np-blockui/np-blockui.module.ts","../../../projects/np-ui-lib/src/lib/np-sidepanel/np-sidepanel-content.directive.ts","../../../projects/np-ui-lib/src/lib/np-sidepanel/np-sidepanel.service.ts","../../../projects/np-ui-lib/src/lib/np-sidepanel/np-sidepanel.component.ts","../../../projects/np-ui-lib/src/lib/np-sidepanel/np-sidepanel.component.html","../../../projects/np-ui-lib/src/lib/np-sidepanel/np-sidepanel.module.ts","../../../projects/np-ui-lib/src/lib/np-breadcrumb/np-breadcrumb.component.ts","../../../projects/np-ui-lib/src/lib/np-breadcrumb/np-breadcrumb.component.html","../../../projects/np-ui-lib/src/lib/np-breadcrumb/np-breadcrumb.module.ts","../../../projects/np-ui-lib/src/lib/np-breadcrumb/np-breadcrumb.model.ts","../../../projects/np-ui-lib/src/lib/np-number-box/np-number-box.component.ts","../../../projects/np-ui-lib/src/lib/np-number-box/np-number-box.component.html","../../../projects/np-ui-lib/src/lib/np-number-box/np-number-box.module.ts","../../../projects/np-ui-lib/src/lib/np-tree-view/np-tree-view.component.ts","../../../projects/np-ui-lib/src/lib/np-tree-view/np-tree-view.component.html","../../../projects/np-ui-lib/src/lib/np-tree-view/np-tree-view.module.ts","../../../projects/np-ui-lib/src/lib/np-tree-view/np-tree-view.model.ts","../../../projects/np-ui-lib/src/lib/np-file-upload/np-file-upload.component.ts","../../../projects/np-ui-lib/src/lib/np-file-upload/np-file-upload.component.html","../../../projects/np-ui-lib/src/lib/np-file-upload/np-file-upload.module.ts","../../../projects/np-ui-lib/src/lib/np-slider/np-slider.component.ts","../../../projects/np-ui-lib/src/lib/np-slider/np-slider.component.html","../../../projects/np-ui-lib/src/lib/np-slider/np-slider.module.ts","../../../projects/np-ui-lib/src/lib/np-list/np-list.component.ts","../../../projects/np-ui-lib/src/lib/np-list/np-list.component.html","../../../projects/np-ui-lib/src/lib/np-list/np-list.module.ts","../../../projects/np-ui-lib/src/lib/np-virtual-scroll/np-virtual-scroll.component.ts","../../../projects/np-ui-lib/src/lib/np-virtual-scroll/np-virtual-scroll.component.html","../../../projects/np-ui-lib/src/lib/np-virtual-scroll/np-virtual-scroll.module.ts","../../../projects/np-ui-lib/src/lib/np-steps/np-steps.component.ts","../../../projects/np-ui-lib/src/lib/np-steps/np-steps.component.html","../../../projects/np-ui-lib/src/lib/np-steps/np-step.component.ts","../../../projects/np-ui-lib/src/lib/np-steps/np-step-buttons.directive.ts","../../../projects/np-ui-lib/src/lib/np-steps/np-steps.module.ts","../../../projects/np-ui-lib/src/lib/np-calendar/np-calendar.component.ts","../../../projects/np-ui-lib/src/lib/np-calendar/np-calendar.component.html","../../../projects/np-ui-lib/src/lib/np-calendar/np-calendar.module.ts","../../../projects/np-ui-lib/src/lib/np-calendar/np-calendar-event.model.ts","../../../projects/np-ui-lib/src/lib/np-radio-button/np-radio-button.component.ts","../../../projects/np-ui-lib/src/lib/np-radio-button/np-radio-group.component.ts","../../../projects/np-ui-lib/src/lib/np-radio-button/np-radio-group.component.html","../../../projects/np-ui-lib/src/lib/np-radio-button/np-radio-button.module.ts","../../../projects/np-ui-lib/src/lib/np-input-text/np-input-text.component.ts","../../../projects/np-ui-lib/src/lib/np-input-text/np-input-text.component.html","../../../projects/np-ui-lib/src/lib/np-input-text/np-input-text.module.ts","../../../projects/np-ui-lib/src/lib/np-textarea/np-textarea.component.ts","../../../projects/np-ui-lib/src/lib/np-textarea/np-textarea.component.html","../../../projects/np-ui-lib/src/lib/np-textarea/np-textarea.module.ts","../../../projects/np-ui-lib/src/lib/np-rich-text/np-rich-text.component.ts","../../../projects/np-ui-lib/src/lib/np-rich-text/np-rich-text.component.html","../../../projects/np-ui-lib/src/lib/np-rich-text/np-rich-text.module.ts","../../../projects/np-ui-lib/src/lib/np-timeline/np-timeline.component.ts","../../../projects/np-ui-lib/src/lib/np-timeline/np-timeline.component.html","../../../projects/np-ui-lib/src/lib/np-timeline/np-timeline.module.ts","../../../projects/np-ui-lib/src/public-api.ts","../../../projects/np-ui-lib/src/np-ui-lib.ts"],"sourcesContent":["import { ConnectedPosition } from \"@angular/cdk/overlay\";\r\n\r\nexport const TopBottomOverlayPositions: ConnectedPosition[] = [\r\n  {\r\n    originX: \"start\",\r\n    originY: \"bottom\",\r\n    overlayX: \"start\",\r\n    overlayY: \"top\",\r\n  },\r\n  {\r\n    originX: \"start\",\r\n    originY: \"top\",\r\n    overlayX: \"start\",\r\n    overlayY: \"bottom\",\r\n  },\r\n];\r\n","import { Directive, ElementRef, Input, NgModule } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[npAutofocus]\",\r\n})\r\nexport class NpAutofocusDirective {\r\n  @Input(\"npAutofocus\")\r\n  set autofocus(value: boolean) {\r\n    if (value) {\r\n      setTimeout(() => {\r\n        this.el.nativeElement.focus();\r\n      }, 100);\r\n    }\r\n  }\r\n  constructor(private el: ElementRef) { }\r\n}\r\n\r\n@NgModule({\r\n  declarations: [NpAutofocusDirective],\r\n  exports: [NpAutofocusDirective],\r\n})\r\nexport class NpAutofocusModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class NpTranslationsService {\r\n  private _translations: any;\r\n  public onTranslationsChange: BehaviorSubject<any>;\r\n\r\n  constructor() {\r\n    this._setDefaultTranslations();\r\n    this.onTranslationsChange = new BehaviorSubject(null);\r\n  }\r\n\r\n  setTranslations(translations: any): void {\r\n    if (!translations) {\r\n      this._setDefaultTranslations();\r\n    } else {\r\n      this._translations = translations;\r\n    }\r\n    this.onTranslationsChange.next(null);\r\n  };\r\n\r\n  translate(key: string): any {\r\n    return this._translations[key] || key;\r\n  }\r\n\r\n  private _setDefaultTranslations(): void {\r\n    this._translations = {\r\n      'Su': 'Su',\r\n      'Mo': 'Mo',\r\n      'Tu': 'Tu',\r\n      'We': 'We',\r\n      'Th': 'Th',\r\n      'Fr': 'Fr',\r\n      'Sa': 'Sa',\r\n      'Sunday': 'Sunday',\r\n      'Monday': 'Monday',\r\n      'Tuesday': 'Tuesday',\r\n      'Wednesday': 'Wednesday',\r\n      'Thursday': 'Thursday',\r\n      'Friday': 'Friday',\r\n      'Saturday': 'Saturday',\r\n      'January': 'January',\r\n      'February': 'February',\r\n      'March': 'March',\r\n      'April': 'April',\r\n      'May': 'May',\r\n      'June': 'June',\r\n      'July': 'July',\r\n      'August': 'August',\r\n      'September': 'September',\r\n      'October': 'October',\r\n      'November': 'November',\r\n      'December': 'December',\r\n      'Today': 'Today',\r\n      'Ok': 'Ok',\r\n      'Clear': 'Clear',\r\n      'Cancel': 'Cancel',\r\n      'No_Result_Found': 'No result found',\r\n      'Select': 'Select...',\r\n      'Search': 'Search...',\r\n      'Reset': 'Reset',\r\n      'True': 'True',\r\n      'False': 'False',\r\n      'No_Data_Found': 'No data found',\r\n      'Search_Columns': 'Search columns...',\r\n      'Saved_Successfully': 'Saved successfully',\r\n      'Add_New_State': 'Add new state',\r\n      'Deleted_Successfully': 'Deleted successfully',\r\n      'State_Name_Already_Exists': 'State name already exists',\r\n      'Alert': 'Alert',\r\n      'Confirm': 'Confirm',\r\n      'Prompt': 'Prompt',\r\n      'Choose_Files': 'Choose files',\r\n      'Choose_File': 'Choose file',\r\n      'Items_Per_Page': 'Items per page',\r\n      'Now': 'Now',\r\n      '>': '>',\r\n      '<': '<',\r\n      '>=': '>=',\r\n      '<=': '<=',\r\n      '=': '=',\r\n      '!=': '!=',\r\n      'abc': 'abc',\r\n      'abc*': 'abc*',\r\n      '*abc': '*abc',\r\n      '*abc*': '*abc*',\r\n      'Enter_The_URL_For_Link': 'Enter the URL for link',\r\n      'Formatting': 'Formatting',\r\n      'Font': 'Font',\r\n      'Font_Size': 'Font size'\r\n    };\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectorRef,\r\n  Injectable,\r\n  OnDestroy,\r\n  Pipe,\r\n  PipeTransform,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { NpTranslationsService } from \"./np-translations.service\";\r\n\r\n@Injectable()\r\n@Pipe({\r\n  name: \"npTranslate\",\r\n  pure: false,\r\n})\r\nexport class NpTranslatePipe implements PipeTransform, OnDestroy {\r\n  subscription: Subscription;\r\n  value: string = \"\";\r\n\r\n  constructor(\r\n    private translationService: NpTranslationsService,\r\n    private _ref: ChangeDetectorRef\r\n  ) { }\r\n\r\n  transform(key: string): any {\r\n    this.subscription = this.translationService.onTranslationsChange.subscribe(\r\n      () => {\r\n        this.value = this.translationService.translate(key);\r\n        this._ref.markForCheck();\r\n      }\r\n    );\r\n    return this.value;\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subscription) {\r\n      this.subscription.unsubscribe();\r\n    }\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  forwardRef,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport {\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  AfterContentInit,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport {\r\n  Overlay,\r\n  OverlayRef,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport { TopBottomOverlayPositions } from \"../np-utility/np-constants\";\r\n\r\n@Component({\r\n  selector: \"np-color-picker\",\r\n  templateUrl: \"np-color-picker.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpColorPickerComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpColorPickerComponent\r\n  implements ControlValueAccessor, AfterViewInit, AfterContentInit {\r\n  private static controlCount = 1;\r\n\r\n  /* forma can be 'hex' or 'rgb' */\r\n  @Input() format: string = \"hex\";\r\n  @Input() colors: string[];\r\n  @Input() defaultOpen: boolean;\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-color-picker_${NpColorPickerComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"templatePortalContent\") templatePortalContent: TemplateRef<any>;\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  constructor(\r\n    public overlay: Overlay,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef\r\n  ) { }\r\n\r\n  isOpen: boolean = false;\r\n  stripColor: string;\r\n  currentCursorColor: string;\r\n  xColorCursor: string;\r\n  yColorCursor: string;\r\n  innerValue: string;\r\n  isDisabled: boolean = false;\r\n  currentHex: string = \"\";\r\n  currentR: number;\r\n  currentG: number;\r\n  currentB: number;\r\n  focused: boolean = false;\r\n\r\n  private templatePortal: TemplatePortal<any>;\r\n  private overlayRef: OverlayRef;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  ngAfterContentInit(): void {\r\n    if (!this.colors) {\r\n      if (this.format === \"hex\") {\r\n        this.colors = [\r\n          \"#FF0000\",\r\n          \"#FF7F00\",\r\n          \"#FFFF00\",\r\n          \"#7FFF00\",\r\n          \"#00FF00\",\r\n          \"#00FF7F\",\r\n          \"#00FFFF\",\r\n          \"#007FFF\",\r\n          \"#0000FF\",\r\n          \"#7F00FF\",\r\n          \"#FF00FF\",\r\n          \"#FF007F\",\r\n          \"#f44336\",\r\n          \"#e91e63\",\r\n          \"#9c27b0\",\r\n          \"#673ab7\",\r\n          \"#3f51b5\",\r\n          \"#2196f3\",\r\n          \"#03a9f4\",\r\n          \"#00bcd4\",\r\n          \"#009688\",\r\n          \"#4caf50\",\r\n          \"#8bc34a\",\r\n          \"#cddc39\",\r\n          \"#ffeb3b\",\r\n          \"#ffc107\",\r\n          \"#ff9800\",\r\n          \"#ff5722\",\r\n          \"#795548\",\r\n          \"#9e9e9e\",\r\n          \"#607d8b\",\r\n          \"#000000\",\r\n        ];\r\n      } else {\r\n        this.colors = [\r\n          \"rgb(255,0,0)\",\r\n          \"rgb(255,127,0)\",\r\n          \"rgb(255,255,0)\",\r\n          \"rgb(127,255,0)\",\r\n          \"rgb(0,255,0)\",\r\n          \"rgb(0,255,127)\",\r\n          \"rgb(0,255,255)\",\r\n          \"rgb(0,127,255)\",\r\n          \"rgb(0,0,255)\",\r\n          \"rgb(127,0,255)\",\r\n          \"rgb(255,0,255)\",\r\n          \"rgb(255,0,127)\",\r\n          \"rgb(244,67,54)\",\r\n          \"rgb(244,67,54)\",\r\n          \"rgb(156,39,176)\",\r\n          \"rgb(103,58,183)\",\r\n          \"rgb(63,81,181)\",\r\n          \"rgb(33,150,243)\",\r\n          \"rgb(3,169,244)\",\r\n          \"rgb(0,188,212)\",\r\n          \"rgb(0,150,136)\",\r\n          \"rgb(76,175,80)\",\r\n          \"rgb(139,195,74)\",\r\n          \"rgb(205,220,57)\",\r\n          \"rgb(255,235,59)\",\r\n          \"rgb(255,193,7)\",\r\n          \"rgb(255,152,0)\",\r\n          \"rgb(255,87,34)\",\r\n          \"rgb(121,85,72)\",\r\n          \"rgb(158,158,158)\",\r\n          \"rgb(96,125,139)\",\r\n          \"rgb(0,0,0)\",\r\n        ];\r\n      }\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(TopBottomOverlayPositions);\r\n    this.overlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      hasBackdrop: true,\r\n      backdropClass: \"np-color-picker-backdrop\",\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n      panelClass: this.styleClass,\r\n    });\r\n    this.templatePortal = new TemplatePortal(\r\n      this.templatePortalContent,\r\n      this.viewContainerRef\r\n    );\r\n    this.overlayRef.backdropClick().subscribe(() => this._close());\r\n\r\n    if (this.defaultOpen) {\r\n      setTimeout(() => {\r\n        this._updateStripCanvas();\r\n        this._updateBlockCanvas();\r\n      }, 10);\r\n    }\r\n  }\r\n\r\n  get value(): string {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: string) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.stripColor = v;\r\n      this._setCurrentValues(v);\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: string): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.stripColor = v;\r\n      this._setCurrentValues(v);\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _toggleColorPicker(): void {\r\n    if (this.isOpen) {\r\n      this._close();\r\n    } else {\r\n      this._open();\r\n    }\r\n  }\r\n\r\n  _open(): void {\r\n    if (this.defaultOpen === true || this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.isOpen = true;\r\n    this.stripColor = this.value;\r\n    if (!this.overlayRef.hasAttached()) {\r\n      this.overlayRef.attach(this.templatePortal);\r\n    }\r\n    setTimeout(() => {\r\n      this._updateStripCanvas();\r\n      this._updateBlockCanvas();\r\n    }, 10);\r\n  }\r\n\r\n  _close(): void {\r\n    if (this.defaultOpen) {\r\n      return;\r\n    }\r\n    this.isOpen = false;\r\n    this.overlayRef.detach();\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _updateStripCanvas(): void {\r\n    let strip: HTMLCanvasElement;\r\n    if (this.defaultOpen) {\r\n      strip = this.elementRef.nativeElement.querySelector(\r\n        \".np-color-picker-strip\"\r\n      ) as HTMLCanvasElement;\r\n    } else {\r\n      strip = this.overlayRef.overlayElement.querySelector(\r\n        \".np-color-picker-strip\"\r\n      ) as HTMLCanvasElement;\r\n    }\r\n    const ctx2 = strip.getContext(\"2d\");\r\n    ctx2.rect(0, 0, 25, 170);\r\n    const grd1 = ctx2.createLinearGradient(0, 0, 0, 170);\r\n    grd1.addColorStop(0, \"rgba(255, 0, 0, 1)\");\r\n    grd1.addColorStop(0.17, \"rgba(255, 255, 0, 1)\");\r\n    grd1.addColorStop(0.34, \"rgba(0, 255, 0, 1)\");\r\n    grd1.addColorStop(0.51, \"rgba(0, 255, 255, 1)\");\r\n    grd1.addColorStop(0.68, \"rgba(0, 0, 255, 1)\");\r\n    grd1.addColorStop(0.85, \"rgba(255, 0, 255, 1)\");\r\n    grd1.addColorStop(1, \"rgba(255, 0, 0, 1)\");\r\n    ctx2.fillStyle = grd1;\r\n    ctx2.fill();\r\n  }\r\n\r\n  _updateBlockCanvas(): void {\r\n    let block: HTMLCanvasElement;\r\n    if (this.defaultOpen) {\r\n      block = this.elementRef.nativeElement.querySelector(\r\n        \".np-color-picker-block\"\r\n      ) as HTMLCanvasElement;\r\n    } else {\r\n      block = this.overlayRef.overlayElement.querySelector(\r\n        \".np-color-picker-block\"\r\n      ) as HTMLCanvasElement;\r\n    }\r\n    const ctx1 = block.getContext(\"2d\");\r\n\r\n    ctx1.fillStyle = this.stripColor\r\n      ? this.stripColor\r\n      : this.value\r\n        ? this.value\r\n        : \"rgb(255,0,0)\";\r\n    ctx1.fillRect(0, 0, 170, 170);\r\n\r\n    const grdWhite = ctx1.createLinearGradient(0, 0, 170, 0);\r\n    grdWhite.addColorStop(0, \"rgba(255,255,255,1)\");\r\n    grdWhite.addColorStop(1, \"rgba(255,255,255,0)\");\r\n    ctx1.fillStyle = grdWhite;\r\n    ctx1.fillRect(0, 0, 170, 170);\r\n\r\n    const grdBlack = ctx1.createLinearGradient(0, 0, 0, 170);\r\n    grdBlack.addColorStop(0, \"rgba(0,0,0,0)\");\r\n    grdBlack.addColorStop(1, \"rgba(0,0,0,1)\");\r\n    ctx1.fillStyle = grdBlack;\r\n    ctx1.fillRect(0, 0, 170, 170);\r\n  }\r\n\r\n  _clickStripeColor(e: any): void {\r\n    const imageData = this._getColorFromClickevent(e, \".np-color-picker-strip\");\r\n    this.stripColor =\r\n      this.format === \"rgb\"\r\n        ? `rgb(${imageData[0]},${imageData[1]},${imageData[2]})`\r\n        : this._rgbToHex(imageData[0], imageData[1], imageData[2]);\r\n    this._updateBlockCanvas();\r\n  }\r\n\r\n  _clickBlockColor(e: any): void {\r\n    const imageData = this._getColorFromClickevent(e, \".np-color-picker-block\");\r\n    this.value =\r\n      this.format === \"rgb\"\r\n        ? `rgb(${imageData[0]},${imageData[1]},${imageData[2]})`\r\n        : this._rgbToHex(imageData[0], imageData[1], imageData[2]);\r\n  }\r\n\r\n  _rgbToHex(r: any, g: any, b: any): string {\r\n    const red = this._convertNumberToHex(r);\r\n    const green = this._convertNumberToHex(g);\r\n    const blue = this._convertNumberToHex(b);\r\n    return `#${red}${green}${blue}`;\r\n  }\r\n\r\n  _convertNumberToHex(num: any): string {\r\n    let hex = Number(num).toString(16);\r\n    if (hex.length < 2) {\r\n      hex = `0${hex}`;\r\n    }\r\n    return hex;\r\n  }\r\n\r\n  _hexToRgb(hex: string): any {\r\n    if (!hex) {\r\n      return null;\r\n    }\r\n    const r = parseInt(hex.substring(1, 3), 16);\r\n    const g = parseInt(hex.substring(3, 5), 16);\r\n    const b = parseInt(hex.substring(5, 7), 16);\r\n    return { r, g, b };\r\n  }\r\n\r\n  _onClickColorBlock(color: string): void {\r\n    this.value = color;\r\n    this.stripColor = this.value;\r\n    this._updateBlockCanvas();\r\n  }\r\n\r\n  _clear(): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.value = null;\r\n    this._close();\r\n  }\r\n\r\n  _getColorFromClickevent(e: any, clickedElement: string): any {\r\n    let strip: HTMLCanvasElement;\r\n    if (this.defaultOpen) {\r\n      strip = this.elementRef.nativeElement.querySelector(\r\n        clickedElement\r\n      ) as HTMLCanvasElement;\r\n    } else {\r\n      strip = this.overlayRef.overlayElement.querySelector(\r\n        clickedElement\r\n      ) as HTMLCanvasElement;\r\n    }\r\n    const ctx2 = strip.getContext(\"2d\");\r\n    const x = e.offsetX;\r\n    const y = e.offsetY;\r\n    return ctx2.getImageData(x, y, 1, 1).data;\r\n  }\r\n\r\n  _onKeydown(event: KeyboardEvent): void {\r\n    if (event.key === \"Tab\" || event.key === \"Escape\") {\r\n      this._close();\r\n    }\r\n    if (event.key === \"ArrowDown\") {\r\n      this._open();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  _onChangeHex(event: any): void {\r\n    let val = event.target.value;\r\n    if (val && val.charAt(0) !== \"#\") {\r\n      val = `#${event.target.value}`;\r\n    }\r\n    if (this.format === \"hex\") {\r\n      this.value = val;\r\n    } else {\r\n      const rgb = this._hexToRgb(val);\r\n      this.value = `rgb(${rgb.r},${rgb.g},${rgb.b})`;\r\n    }\r\n    this._updateBlockCanvas();\r\n  }\r\n\r\n  _onChangeR(event: any): void {\r\n    if (this.format === \"hex\") {\r\n      this.value = this._rgbToHex(\r\n        event.target.value,\r\n        this.currentG,\r\n        this.currentB\r\n      );\r\n    } else {\r\n      this.value = `rgb(${event.target.value},${this.currentG},${this.currentB})`;\r\n    }\r\n    this._updateBlockCanvas();\r\n  }\r\n\r\n  _onChangeG(event: any): void {\r\n    if (this.format === \"hex\") {\r\n      this.value = this._rgbToHex(\r\n        this.currentR,\r\n        event.target.value,\r\n        this.currentB\r\n      );\r\n    } else {\r\n      this.value = `rgb(${this.currentR},${event.target.value},${this.currentB})`;\r\n    }\r\n    this._updateBlockCanvas();\r\n  }\r\n\r\n  _onChangeB(event: any): void {\r\n    if (this.format === \"hex\") {\r\n      this.value = this._rgbToHex(\r\n        this.currentR,\r\n        this.currentG,\r\n        event.target.value\r\n      );\r\n    } else {\r\n      this.value = `rgb(${this.currentR},${this.currentG},${event.target.value})`;\r\n    }\r\n    this._updateBlockCanvas();\r\n  }\r\n\r\n  _setCurrentValues(val: string): void {\r\n    if (!val) {\r\n      this.currentHex = \"\";\r\n      this.currentR = null;\r\n      this.currentG = null;\r\n      this.currentB = null;\r\n      return;\r\n    }\r\n    if (this.format === \"hex\") {\r\n      this.currentHex = val;\r\n      const rgb = this._hexToRgb(val);\r\n      if (rgb) {\r\n        this.currentR = rgb.r;\r\n        this.currentG = rgb.g;\r\n        this.currentB = rgb.b;\r\n      }\r\n    } else {\r\n      const rgb = val\r\n        .replace(\"rgb\", \"\")\r\n        .replace(\"(\", \"\")\r\n        .replace(\")\", \"\")\r\n        .replace(\" \", \"\");\r\n      const rgbAray = rgb.split(\",\");\r\n      this.currentR = Number(rgbAray[0]);\r\n      this.currentG = Number(rgbAray[1]);\r\n      this.currentB = Number(rgbAray[2]);\r\n      this.currentHex = this._rgbToHex(\r\n        this.currentR,\r\n        this.currentG,\r\n        this.currentB\r\n      );\r\n    }\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _onMouseLeaveStrip(): void {\r\n    this.currentCursorColor = undefined;\r\n  }\r\n\r\n  _onMouseLeaveBlock(): void {\r\n    this.currentCursorColor = undefined;\r\n  }\r\n\r\n  _onMouseOverStrip(e: any): void {\r\n    this.xColorCursor = `${e.pageX}px`;\r\n    this.yColorCursor = `${e.pageY}px`;\r\n    const imageData = this._getColorFromClickevent(e, \".np-color-picker-strip\");\r\n    this.currentCursorColor =\r\n      this.format === \"rgb\"\r\n        ? `rgb(${imageData[0]},${imageData[1]},${imageData[2]})`\r\n        : this._rgbToHex(imageData[0], imageData[1], imageData[2]);\r\n  }\r\n\r\n  _onMouseOverBlock(e: any): void {\r\n    this.xColorCursor = `${e.pageX}px`;\r\n    this.yColorCursor = `${e.pageY}px`;\r\n    const imageData = this._getColorFromClickevent(e, \".np-color-picker-block\");\r\n    this.currentCursorColor =\r\n      this.format === \"rgb\"\r\n        ? `rgb(${imageData[0]},${imageData[1]},${imageData[2]})`\r\n        : this._rgbToHex(imageData[0], imageData[1], imageData[2]);\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-color-picker': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-color-picker-input-group\" *ngIf=\"!defaultOpen; else templatePortalContent\"\r\n    [ngClass]=\"{ 'np-focused': focused }\">\r\n    <input class=\"np-color-picker-input\" #control [disabled]=\"isDisabled\" [npAutofocus]=\"autoFocus\"\r\n      [attr.tabindex]=\"tabIndex\" [readonly]=\"readOnly\" [value]=\"value\" (keydown)=\"_onKeydown($event)\"\r\n      (blur)=\"_onBlur($event)\" (focus)=\"_onFocus($event)\" />\r\n    <div class=\"np-input-color-block\" (click)=\"_toggleColorPicker()\" [ngStyle]=\"{ 'background-color': innerValue }\">\r\n    </div>\r\n    <button class=\"np-btn-icon np-toggle-overlay\" type=\"button\" tabindex=\"-1\" (click)=\"_toggleColorPicker()\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path\r\n          d=\"M20.71 5.63l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z\">\r\n        </path>\r\n      </svg>\r\n    </button>\r\n  </div>\r\n</div>\r\n<ng-template #templatePortalContent>\r\n  <div class=\"np-color-picker-overlay\" [ngClass]=\"{ 'np-overlay-open': defaultOpen }\">\r\n    <div class=\"np-color-picker-header\">\r\n      <div class=\"np-hex-inputs\">\r\n        <label>HEX</label><input class=\"np-color-hex-input\" type=\"text\" [value]=\"currentHex\"\r\n          (change)=\"_onChangeHex($event)\" />\r\n        <div class=\"np-selected-color-block\" [ngStyle]=\"{ 'background-color': innerValue }\"></div>\r\n        <div class=\"np-current-color-block\" [ngStyle]=\"{ 'background-color': currentCursorColor }\"></div>\r\n      </div>\r\n      <div class=\"np-rgb-inputs\">\r\n        <label>R</label><input class=\"np-color-r-input\" type=\"number\" min=\"0\" max=\"255\" [value]=\"currentR\"\r\n          (change)=\"_onChangeR($event)\" />\r\n        <label>G</label><input class=\"np-color-g-input\" type=\"number\" min=\"0\" max=\"255\" [value]=\"currentG\"\r\n          (change)=\"_onChangeG($event)\" />\r\n        <label>B</label><input class=\"np-color-b-input\" type=\"number\" min=\"0\" max=\"255\" [value]=\"currentB\"\r\n          (change)=\"_onChangeB($event)\" />\r\n      </div>\r\n    </div>\r\n    <div class=\"np-color-canvases\">\r\n      <canvas class=\"np-color-picker-block\" width=\"170\" height=\"170\" (click)=\"_clickBlockColor($event)\"\r\n        (mousemove)=\"_onMouseOverBlock($event)\" (mouseleave)=\"_onMouseLeaveBlock()\"></canvas>\r\n      <canvas class=\"np-color-picker-strip\" width=\"25\" height=\"170\" (click)=\"_clickStripeColor($event)\"\r\n        (mousemove)=\"_onMouseOverStrip($event)\" (mouseleave)=\"_onMouseLeaveStrip()\"></canvas>\r\n    </div>\r\n    <div class=\"np-color-blocks\" *ngIf=\"colors && colors.length > 0\">\r\n      <div class=\"np-color-block\" *ngFor=\"let color of colors\" [style.background-color]=\"color\"\r\n        (click)=\"_onClickColorBlock(color)\"></div>\r\n    </div>\r\n    <div class=\"np-color-picker-footer\">\r\n      <button class=\"np-btn np-btn-primary np-ok\" type=\"button\" *ngIf=\"!defaultOpen\" tabindex=\"-1\" (click)=\"_close()\">\r\n        {{ \"Ok\" | npTranslate }}\r\n      </button>\r\n      <button class=\"np-btn np-btn-danger np-clear\" type=\"button\" tabindex=\"-1\" (click)=\"_clear()\">\r\n        {{ \"Clear\" | npTranslate }}\r\n      </button>\r\n    </div>\r\n  </div>\r\n</ng-template>","import { NgModule } from \"@angular/core\";\r\nimport { NpTranslatePipe } from \"./np-translate.pipe\";\r\n\r\n@NgModule({\r\n  declarations: [NpTranslatePipe],\r\n  exports: [NpTranslatePipe],\r\n})\r\nexport class NpTranslationsModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { NpColorPickerComponent } from \"./np-color-picker.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpColorPickerComponent],\r\n  imports: [\r\n    CommonModule,\r\n    OverlayModule,\r\n    PortalModule,\r\n    NpAutofocusModule,\r\n    NpTranslationsModule,\r\n  ],\r\n  exports: [NpColorPickerComponent],\r\n})\r\nexport class NpColorPickerModule { }\r\n","export enum FilterTypes {\r\n  StartsWith = \"startswith\",\r\n  EndsWith = \"endswith\",\r\n  Contains = \"contains\",\r\n  GreaterThan = \"gt\",\r\n  GreaterThanOrEquals = \"ge\",\r\n  LessThan = \"lt\",\r\n  LessThanOrEquals = \"le\",\r\n  Equals = \"eq\",\r\n  NotEquals = \"ne\",\r\n  Reset = \"Reset\",\r\n}\r\n\r\nexport enum DataTypes {\r\n  Number = \"number\",\r\n  String = \"string\",\r\n  Date = \"date\",\r\n  Boolean = \"boolean\",\r\n}\r\n\r\nexport enum SortDirections {\r\n  Ascending = \"asc\",\r\n  Descending = \"desc\",\r\n}\r\n\r\nexport const Filters: any[] = [\r\n  {\r\n    name: FilterTypes.Equals,\r\n    text: \"abc\",\r\n    forDataType: DataTypes.String,\r\n  },\r\n  {\r\n    name: FilterTypes.StartsWith,\r\n    text: \"abc*\",\r\n    forDataType: DataTypes.String,\r\n  },\r\n  {\r\n    name: FilterTypes.EndsWith,\r\n    text: \"*abc\",\r\n    forDataType: DataTypes.String,\r\n  },\r\n  {\r\n    name: FilterTypes.Contains,\r\n    text: \"*abc*\",\r\n    forDataType: DataTypes.String,\r\n  },\r\n  {\r\n    name: FilterTypes.GreaterThan,\r\n    text: \">\",\r\n    forDataType: DataTypes.Number,\r\n  },\r\n  {\r\n    name: FilterTypes.LessThan,\r\n    text: \"<\",\r\n    forDataType: DataTypes.Number,\r\n  },\r\n  {\r\n    name: FilterTypes.GreaterThanOrEquals,\r\n    text: \">=\",\r\n    forDataType: DataTypes.Number,\r\n  },\r\n  {\r\n    name: FilterTypes.LessThanOrEquals,\r\n    text: \"<=\",\r\n    forDataType: DataTypes.Number,\r\n  },\r\n  {\r\n    name: FilterTypes.Equals,\r\n    text: \"=\",\r\n    forDataType: DataTypes.Number,\r\n  },\r\n  {\r\n    name: FilterTypes.Equals,\r\n    text: \"=\",\r\n    forDataType: DataTypes.Boolean,\r\n  },\r\n  {\r\n    name: FilterTypes.GreaterThan,\r\n    text: \">\",\r\n    forDataType: DataTypes.Date,\r\n  },\r\n  {\r\n    name: FilterTypes.LessThan,\r\n    text: \"<\",\r\n    forDataType: DataTypes.Date,\r\n  },\r\n  {\r\n    name: FilterTypes.GreaterThanOrEquals,\r\n    text: \">=\",\r\n    forDataType: DataTypes.Date,\r\n  },\r\n  {\r\n    name: FilterTypes.LessThanOrEquals,\r\n    text: \"<=\",\r\n    forDataType: DataTypes.Date,\r\n  },\r\n  {\r\n    name: FilterTypes.Equals,\r\n    text: \"=\",\r\n    forDataType: DataTypes.Date,\r\n  },\r\n  {\r\n    name: FilterTypes.NotEquals,\r\n    text: \"!=\",\r\n    forDataType: DataTypes.Number,\r\n  },\r\n  {\r\n    name: FilterTypes.NotEquals,\r\n    text: \"!=\",\r\n    forDataType: DataTypes.Date,\r\n  },\r\n  {\r\n    name: FilterTypes.NotEquals,\r\n    text: \"!=\",\r\n    forDataType: DataTypes.Boolean,\r\n  },\r\n];\r\n","import { TemplateRef } from \"@angular/core\";\r\nimport { DataTypes, FilterTypes, SortDirections } from \"./constants\";\r\n\r\nexport class Column {\r\n  constructor(item: any) {\r\n    this.dataField = item.dataField;\r\n    this.dataType = item.dataType ? item.dataType : DataTypes.String;\r\n    this.visible = item.visible;\r\n    this.width = item.width;\r\n    this.caption = item.caption ? item.caption : item.dataField;\r\n    this.sortDirection = item.sortDirection;\r\n    this.filterValue = item.filterValue;\r\n    this.filterOperator = item.filterOperator;\r\n    this.sortEnable = item.sortEnable;\r\n    this.filterEnable = item.filterEnable;\r\n    this.cellTemplate = item.cellTemplate;\r\n    this.onCellClick = item.onCellClick;\r\n    this.styleClass = item.styleClass;\r\n    this.rightAlignText = item.rightAlignText;\r\n    this.trueFilterText = item.trueFilterText;\r\n    this.falseFilterText = item.falseFilterText;\r\n  }\r\n\r\n  public dataField: string;\r\n  public dataType: DataTypes;\r\n  public visible: boolean;\r\n  public width: number;\r\n  public caption: string;\r\n  public sortEnable: boolean;\r\n  public sortDirection: SortDirections;\r\n  public filterEnable: boolean;\r\n  public filterOperator: FilterTypes;\r\n  public filterValue: any;\r\n  public cellTemplate: TemplateRef<any>;\r\n  public rightAlignText: boolean;\r\n  public trueFilterText: string;\r\n  public falseFilterText: string;\r\n  public styleClass: string;\r\n  public onCellClick: any;\r\n}\r\n","export class DataSource {\r\n  constructor(\r\n    data: any[],\r\n    total?: number,\r\n    summary?: any,\r\n    isAllPages?: boolean\r\n  ) {\r\n    this.data = data;\r\n    this.total = total;\r\n    this.summary = summary;\r\n    this.isAllPages = isAllPages ? isAllPages : false;\r\n  }\r\n  public data: any[];\r\n  public total: number;\r\n  public summary: any;\r\n  public isAllPages: boolean;\r\n}\r\n","export class LoadOptions {\r\n  public pageNumber: number;\r\n  public pageSize: number;\r\n  public sortColumns: any[];\r\n  public filterColumns: any[];\r\n  public odataQuery: string;\r\n  public isAllPages: boolean;\r\n}\r\n","import { Column } from \"./column.model\";\r\n\r\nexport class State {\r\n  constructor(name: string, columns: any[]) {\r\n    this.name = name;\r\n    this.columns = columns;\r\n  }\r\n\r\n  public name: string;\r\n  public columns: Column[];\r\n}\r\n","export class NpDialogConfig {\r\n  constructor(item: any) {\r\n    this.type = item.type || \"alert\";\r\n    this.hasBackDrop = item.hasBackDrop === false ? false : true;\r\n    this.backDropClass = item.backDropClass;\r\n    this.inputId = item.inputId;\r\n    this.styleClass = item.styleClass;\r\n  }\r\n  public type: \"alert\" | \"confirm\" | \"prompt\";\r\n  public hasBackDrop: boolean;\r\n  public backDropClass: string;\r\n  public inputId: string;\r\n  public styleClass: string;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { SortDirections } from \"../models/constants\";\r\n\r\n@Injectable()\r\nexport class NpGridUtilityService {\r\n  custFilter(arr: any[], fun: any): any {\r\n    return arr.filter(fun);\r\n  }\r\n\r\n  custFind(arr: any[], fun: any): any {\r\n    return arr.find(fun);\r\n  }\r\n\r\n  custSort(arr: any[], ele: string, order: string): any {\r\n    if (order === SortDirections.Ascending) {\r\n      return arr\r\n        .concat()\r\n        .sort((a, b) => (a[ele] > b[ele] ? 1 : b[ele] > a[ele] ? -1 : 0));\r\n    } else {\r\n      return arr\r\n        .concat()\r\n        .sort((a, b) => (a[ele] < b[ele] ? 1 : b[ele] < a[ele] ? -1 : 0));\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { DataTypes, FilterTypes } from \"../models/constants\";\r\nimport { NpGridUtilityService } from \"./np-grid-utility.service\";\r\n\r\n@Injectable()\r\nexport class NpFilterService {\r\n  constructor(private utility: NpGridUtilityService) {}\r\n\r\n  filterData(filterColumns: any[], data: any[]): any[] {\r\n    for (const element of filterColumns) {\r\n      if (element.filterOperator === FilterTypes.StartsWith) {\r\n        const filterVal = element.filterValue.toLowerCase();\r\n        data = this.utility.custFilter(data, (a: any) => {\r\n          if (!a[element.dataField]) {\r\n            return false;\r\n          }\r\n          return a[element.dataField].toLowerCase().startsWith(filterVal, 0);\r\n        });\r\n      } else if (element.filterOperator === FilterTypes.EndsWith) {\r\n        const filterVal = element.filterValue.toLowerCase();\r\n        data = this.utility.custFilter(data, (a: any) => {\r\n          if (!a[element.dataField]) {\r\n            return false;\r\n          }\r\n          return a[element.dataField].toLowerCase().endsWith(filterVal);\r\n        });\r\n      } else if (element.filterOperator === FilterTypes.Contains) {\r\n        const filterVal = element.filterValue.toLowerCase();\r\n        data = this.utility.custFilter(data, (a: any) => {\r\n          if (!a[element.dataField]) {\r\n            return false;\r\n          }\r\n          return a[element.dataField].toLowerCase().indexOf(filterVal) !== -1;\r\n        });\r\n      } else if (element.filterOperator === FilterTypes.GreaterThan) {\r\n        if (element.dataType === DataTypes.Number) {\r\n          const filterVal = Number(element.filterValue);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return Number(a[element.dataField]) > filterVal;\r\n          });\r\n        } else if (element.dataType === DataTypes.Date) {\r\n          const filterVal = new Date(element.filterValue).setHours(0, 0, 0, 0);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return (\r\n              new Date(a[element.dataField]).setHours(0, 0, 0, 0) > filterVal\r\n            );\r\n          });\r\n        }\r\n      } else if (element.filterOperator === FilterTypes.GreaterThanOrEquals) {\r\n        if (element.dataType === DataTypes.Number) {\r\n          const filterVal = Number(element.filterValue);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return Number(a[element.dataField]) >= filterVal;\r\n          });\r\n        } else if (element.dataType === DataTypes.Date) {\r\n          const filterVal = new Date(element.filterValue).setHours(0, 0, 0, 0);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return (\r\n              new Date(a[element.dataField]).setHours(0, 0, 0, 0) >= filterVal\r\n            );\r\n          });\r\n        }\r\n      } else if (element.filterOperator === FilterTypes.LessThan) {\r\n        if (element.dataType === DataTypes.Number) {\r\n          const filterVal = Number(element.filterValue);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return Number(a[element.dataField]) < filterVal;\r\n          });\r\n        } else if (element.dataType === DataTypes.Date) {\r\n          const filterVal = new Date(element.filterValue).setHours(0, 0, 0, 0);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return (\r\n              new Date(a[element.dataField]).setHours(0, 0, 0, 0) < filterVal\r\n            );\r\n          });\r\n        }\r\n      } else if (element.filterOperator === FilterTypes.LessThanOrEquals) {\r\n        if (element.dataType === DataTypes.Number) {\r\n          const filterVal = Number(element.filterValue);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return Number(a[element.dataField]) <= filterVal;\r\n          });\r\n        } else if (element.dataType === DataTypes.Date) {\r\n          const filterVal = new Date(element.filterValue).setHours(0, 0, 0, 0);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return (\r\n              new Date(a[element.dataField]).setHours(0, 0, 0, 0) <= filterVal\r\n            );\r\n          });\r\n        }\r\n      } else if (element.filterOperator === FilterTypes.Equals) {\r\n        if (element.dataType === DataTypes.Boolean) {\r\n          if (element.filterValue === \"true\") {\r\n            data = this.utility.custFilter(data, (a: any) => {\r\n              return a[element.dataField] === true;\r\n            });\r\n          } else {\r\n            data = this.utility.custFilter(data, (a: any) => {\r\n              return a[element.dataField] === false;\r\n            });\r\n          }\r\n        } else if (element.dataType === DataTypes.Number) {\r\n          const filterVal = Number(element.filterValue);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return Number(a[element.dataField]) === filterVal;\r\n          });\r\n        } else if (element.dataType === DataTypes.Date) {\r\n          const filterVal = new Date(element.filterValue).setHours(0, 0, 0, 0);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return (\r\n              new Date(a[element.dataField]).setHours(0, 0, 0, 0) === filterVal\r\n            );\r\n          });\r\n        } else if (element.dataType === DataTypes.String) {\r\n          const filterVal = element.filterValue.toLowerCase();\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return a[element.dataField].toLowerCase() === filterVal;\r\n          });\r\n        }\r\n      } else if (element.filterOperator === FilterTypes.NotEquals) {\r\n        if (element.dataType === DataTypes.Boolean) {\r\n          if (element.filterValue === \"true\") {\r\n            data = this.utility.custFilter(data, (a: any) => {\r\n              return a[element.dataField] !== true;\r\n            });\r\n          } else {\r\n            data = this.utility.custFilter(data, (a: any) => {\r\n              return a[element.dataField] !== false;\r\n            });\r\n          }\r\n        } else if (element.dataType === DataTypes.Number) {\r\n          const filterVal = Number(element.filterValue);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return Number(a[element.dataField]) !== filterVal;\r\n          });\r\n        } else if (element.dataType === DataTypes.Date) {\r\n          const filterVal = new Date(element.filterValue).setHours(0, 0, 0, 0);\r\n          data = this.utility.custFilter(data, (a: any) => {\r\n            if (!a[element.dataField]) {\r\n              return false;\r\n            }\r\n            return (\r\n              new Date(a[element.dataField]).setHours(0, 0, 0, 0) !== filterVal\r\n            );\r\n          });\r\n        }\r\n      }\r\n    }\r\n    return data;\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { DataTypes, FilterTypes } from \"../models/constants\";\r\n\r\n@Injectable()\r\nexport class NpODataService {\r\n  buildQuery(\r\n    filterColumns: any[],\r\n    sortColumns: any[],\r\n    top: number,\r\n    skip: number,\r\n    getTotalRecords: boolean = true,\r\n    odataVersion: 1 | 2 | 3 | 4 = 4\r\n  ): string {\r\n    const queryTmpArray = [];\r\n\r\n    // filter\r\n    if (filterColumns) {\r\n      if (filterColumns && filterColumns.length === 1) {\r\n        if (filterColumns[0].dataType === DataTypes.String) {\r\n          if (filterColumns[0].filterOperator === FilterTypes.Equals) {\r\n            queryTmpArray.push(\r\n              `$filter=(${filterColumns[0].dataField} eq '${filterColumns[0].filterValue}')`\r\n            );\r\n          } else {\r\n            queryTmpArray.push(\r\n              `$filter=(${filterColumns[0].filterOperator}(${filterColumns[0].dataField},'${filterColumns[0].filterValue}'))`\r\n            );\r\n          }\r\n        } else {\r\n          queryTmpArray.push(\r\n            `$filter=(${filterColumns[0].dataField} ${filterColumns[0].filterOperator} ${filterColumns[0].filterValue})`\r\n          );\r\n        }\r\n      }\r\n      if (filterColumns && filterColumns.length > 1) {\r\n        const filterQueue = [];\r\n        for (const element of filterColumns) {\r\n          if (element.dataType === DataTypes.String) {\r\n            if (element.filterOperator === FilterTypes.Equals) {\r\n              filterQueue.push(\r\n                `${element.dataField} eq '${element.filterValue}'`\r\n              );\r\n            } else {\r\n              filterQueue.push(\r\n                `${element.filterOperator}(${element.dataField} ,'${element.filterValue}')`\r\n              );\r\n            }\r\n          } else {\r\n            filterQueue.push(\r\n              `${element.dataField} ${element.filterOperator} ${element.filterValue}`\r\n            );\r\n          }\r\n        }\r\n        if (filterQueue.length > 1) {\r\n          queryTmpArray.push(`$filter=(${filterQueue.join(\" and \")})`);\r\n        }\r\n      }\r\n    }\r\n\r\n    // sorting\r\n    if (sortColumns) {\r\n      const sortQueue = [];\r\n      for (const element of sortColumns) {\r\n        sortQueue.push(`${element.dataField} ${element.sortDirection}`);\r\n      }\r\n      if (sortQueue.length > 0) {\r\n        queryTmpArray.push(`$orderby=${sortQueue.join(\", \")}`);\r\n      }\r\n    }\r\n\r\n    // top\r\n    if (top > 0) {\r\n      queryTmpArray.push(`$top=${top}`);\r\n    }\r\n\r\n    // skip\r\n    if (skip > 0) {\r\n      queryTmpArray.push(`$skip=${skip}`);\r\n    }\r\n\r\n    // inlinecount\r\n    if (getTotalRecords) {\r\n      if (odataVersion == 4) {\r\n        queryTmpArray.push(`$count=true`);\r\n      } else {\r\n        queryTmpArray.push(`$inlinecount=allpages`);\r\n      }\r\n    } else {\r\n      if (odataVersion == 4) {\r\n        queryTmpArray.push(`$count=false`);\r\n      } else {\r\n        queryTmpArray.push(`$inlinecount=none`);\r\n      }\r\n    }\r\n\r\n    return queryTmpArray.join(\"&\");\r\n  }\r\n}\r\n","import { DatePipe } from \"@angular/common\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Column } from \"../models/column.model\";\r\nimport { DataTypes } from \"../models/constants\";\r\n\r\n@Injectable()\r\nexport class NpFileService {\r\n  constructor(private datePipe: DatePipe) { }\r\n\r\n  downloadCSVFile(\r\n    data: any[],\r\n    columns: any[],\r\n    dateFormat: string,\r\n    fileName?: string\r\n  ): void {\r\n    const CSVData = this.createCSVData(data, columns, dateFormat);\r\n    return this.downloadFile(CSVData, this.normalizeFileName(fileName, \"csv\"));\r\n  }\r\n\r\n  private downloadFile(content: string, fileName: string): void {\r\n    const dataURI = this.generateDataURI(content);\r\n    const anchor = document.createElement(\"a\");\r\n    anchor.href = dataURI;\r\n    anchor.download = fileName;\r\n    anchor.setAttribute(\"style\", \"visibility:hidden\");\r\n    document.body.appendChild(anchor);\r\n    anchor.click();\r\n    document.body.removeChild(anchor);\r\n  }\r\n\r\n  private generateDataURI(content: string): string {\r\n    return \"data:text/csv;charset=utf-8,\\uFEFF\" + encodeURIComponent(content);\r\n  }\r\n\r\n  private createCSVData(data: any[], columnList: Column[], dateFormat: string): any {\r\n    const headersLabels = [];\r\n    for (const element of columnList) {\r\n      if (element.dataField === undefined) {\r\n        continue;\r\n      }\r\n      headersLabels.push(element.caption);\r\n    }\r\n    const head = headersLabels.join(\",\") + \"\\r\\n\";\r\n    const rows = [];\r\n    for (const element of data) {\r\n      const cols = [];\r\n      for (const column of columnList) {\r\n        if (\r\n          element[column.dataField] !== undefined &&\r\n          element[column.dataField] !== null\r\n        ) {\r\n          if (column.dataType === DataTypes.Date) {\r\n            cols.push(\r\n              this.datePipe.transform(element[column.dataField], dateFormat)\r\n            );\r\n          } else {\r\n            cols.push(\r\n              `\"${element[column.dataField].toString().replace(/\\\"/g, '\"\"')}\"`\r\n            );\r\n          }\r\n        } else {\r\n          cols.push(\"\");\r\n        }\r\n      }\r\n      rows.push(cols.join(\",\"));\r\n    }\r\n    return head + rows.join(\"\\r\\n\");\r\n  }\r\n\r\n  private normalizeFileName(fileName: string, extension: string): string {\r\n    if (fileName === undefined || fileName === null || fileName.length === 0) {\r\n      fileName = \"download\";\r\n    }\r\n    const suffix = \".\" + extension;\r\n    const extensionPattern = new RegExp(`(\\\\${extension})?$`);\r\n\r\n    return fileName.replace(/\\s+/, \"_\").replace(extensionPattern, suffix);\r\n  }\r\n}\r\n","import { Subject } from \"rxjs\";\r\nimport { OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { TemplateRef } from \"@angular/core\";\r\nimport { NpDialogConfig } from \"./np-dialog.config\";\r\n\r\nexport class NpDialogRef {\r\n  onClose = new Subject<any>();\r\n\r\n  constructor(\r\n    public overlay: OverlayRef,\r\n    public content: string | TemplateRef<any>,\r\n    public config: NpDialogConfig,\r\n    public data: any\r\n  ) { }\r\n\r\n  close(data?: any) {\r\n    this._close(data);\r\n  }\r\n\r\n  private _close(data: any) {\r\n    this.overlay.dispose();\r\n    this.onClose.next(data);\r\n    this.onClose.complete();\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  TemplateRef,\r\n} from \"@angular/core\";\r\nimport { NpTranslationsService } from \"../np-translations/np-translations.service\";\r\nimport { NpDialogRef } from \"./np-dialog-ref\";\r\n\r\n@Component({\r\n  selector: \"np-dialog\",\r\n  templateUrl: \"./np-dialog-container.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpDialogContainerComponent implements OnInit {\r\n  private static controlCount = 1;\r\n\r\n  title: string;\r\n  value: string;\r\n  type: string;\r\n  message: string | TemplateRef<any>;\r\n  contentType: \"template\" | \"string\";\r\n  context: any;\r\n  styleClass: string;\r\n  inputId: string = `np-dialog_${NpDialogContainerComponent.controlCount++}`;\r\n\r\n  constructor(\r\n    public dialogRef: NpDialogRef,\r\n    private translationService: NpTranslationsService\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    this.type = this.dialogRef.config.type\r\n      ? this.dialogRef.config.type\r\n      : \"alert\";\r\n    this.title = this.translationService.translate(\r\n      this.type === \"alert\"\r\n        ? \"Alert\"\r\n        : this.type === \"confirm\"\r\n          ? \"Confirm\"\r\n          : \"Prompt\"\r\n    );\r\n    this.message = this.dialogRef.content;\r\n    if (typeof this.message === \"string\") {\r\n      this.contentType = \"string\";\r\n    } else {\r\n      this.contentType = \"template\";\r\n      this.context = {\r\n        data: this.dialogRef.data,\r\n      };\r\n    }\r\n    if (this.dialogRef.config.inputId) {\r\n      this.inputId = this.dialogRef.config.inputId;\r\n    }\r\n    if (this.dialogRef.config.styleClass) {\r\n      this.styleClass = this.dialogRef.config.styleClass;\r\n    }\r\n  }\r\n\r\n  onOk(): void {\r\n    if (this.type === \"prompt\") {\r\n      this.dialogRef.close(this.value ? this.value : \"\");\r\n    } else if (this.type === \"confirm\") {\r\n      this.dialogRef.close(true);\r\n    } else {\r\n      this.dialogRef.close(undefined);\r\n    }\r\n  }\r\n\r\n  onCancel(): void {\r\n    if (this.type === \"prompt\") {\r\n      this.dialogRef.close(null);\r\n    } else if (this.type === \"confirm\") {\r\n      this.dialogRef.close(false);\r\n    } else {\r\n      this.dialogRef.close(undefined);\r\n    }\r\n  }\r\n}\r\n","<div role=\"alertdialog\" [ngClass]=\"'np-dialog'\" [class]=\"styleClass\" [attr.id]=\"inputId\"\r\n  [attr.aria-modal]=\"dialogRef.config.hasBackDrop ? 'true' : null\" [attr.aria-labelledby]=\"inputId + '_title'\">\r\n  <div class=\"np-dialog-header\" [innerHTML]=\"title\" [id]=\"inputId + '_title'\"></div>\r\n  <div class=\"np-dialog-body\">\r\n    <ng-container [ngSwitch]=\"contentType\">\r\n      <ng-container *ngSwitchCase=\"'string'\">\r\n        <div [innerHTML]=\"message\"></div>\r\n      </ng-container>\r\n      <ng-container *ngSwitchCase=\"'template'\">\r\n        <ng-container *ngTemplateOutlet=\"message; context: context\"></ng-container>\r\n      </ng-container>\r\n    </ng-container>\r\n    <input class=\"np-form-control np-dialog-input\" type=\"text\" *ngIf=\"type === 'prompt'\" [(ngModel)]=\"value\"\r\n      [npAutofocus]=\"true\" />\r\n  </div>\r\n  <div class=\"np-dialog-footer\">\r\n    <div class=\"np-btn-group\">\r\n      <button class=\"np-btn np-btn-primary np-dialog-ok\" (click)=\"onOk()\">\r\n        {{ \"Ok\" | npTranslate }}\r\n      </button>\r\n      <button class=\"np-btn np-btn-danger np-dialog-cancel\" *ngIf=\"type !== 'alert'\" (click)=\"onCancel()\">\r\n        {{ \"Cancel\" | npTranslate }}\r\n      </button>\r\n    </div>\r\n  </div>\r\n</div>","import {\r\n  Overlay,\r\n  OverlayConfig,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { Injectable, Injector, TemplateRef } from \"@angular/core\";\r\nimport { NpDialogRef } from \"./np-dialog-ref\";\r\nimport { NpDialogContainerComponent } from \"./np-dialog-container.component\";\r\nimport { NpDialogConfig } from \"./np-dialog.config\";\r\n\r\n@Injectable()\r\nexport class NpDialogService {\r\n  constructor(\r\n    private overlay: Overlay,\r\n    private injector: Injector,\r\n    private overlayPositionBuilder: OverlayPositionBuilder\r\n  ) { }\r\n\r\n  open(\r\n    content: string | TemplateRef<any>,\r\n    config: NpDialogConfig,\r\n    data: any\r\n  ): NpDialogRef {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .global()\r\n      .centerHorizontally()\r\n      .centerVertically();\r\n    if (!config) {\r\n      config = new NpDialogConfig({});\r\n    }\r\n    const overlayConfig = new OverlayConfig({\r\n      positionStrategy,\r\n      hasBackdrop: config.hasBackDrop,\r\n      backdropClass: config.backDropClass || \"np-dialog-backdrop\",\r\n      scrollStrategy: this.overlay.scrollStrategies.block(),\r\n      panelClass: \"np-dialog-overlay\",\r\n    });\r\n    const overlayRef = this.overlay.create(overlayConfig);\r\n    const myOverlayRef = new NpDialogRef(overlayRef, content, config, data);\r\n    const injector = Injector.create({\r\n      parent: this.injector,\r\n      providers: [{ provide: NpDialogRef, useValue: myOverlayRef }],\r\n    });\r\n\r\n    overlayRef.attach(new ComponentPortal(NpDialogContainerComponent, null, injector));\r\n\r\n    return myOverlayRef;\r\n  }\r\n}\r\n","import { ConnectedPosition } from \"@angular/cdk/overlay\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class NpUtilityService {\r\n  isEqual(x: any, y: any): boolean {\r\n    if (x === y) {\r\n      return true;\r\n    }\r\n    if (!(x instanceof Object) || !(y instanceof Object)) {\r\n      return false;\r\n    }\r\n    if (x.constructor !== y.constructor) {\r\n      return false;\r\n    }\r\n\r\n    for (const p in x) {\r\n      if (!x.hasOwnProperty(p)) {\r\n        continue;\r\n      }\r\n      if (!y.hasOwnProperty(p)) {\r\n        return false;\r\n      }\r\n      if (x[p] === y[p]) {\r\n        continue;\r\n      }\r\n      if (typeof x[p] !== \"object\") {\r\n        return false;\r\n      }\r\n      if (!this.isEqual(x[p], y[p])) {\r\n        return false;\r\n      }\r\n    }\r\n\r\n    for (const p in y) {\r\n      if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\r\n        return false;\r\n      }\r\n    }\r\n    return true;\r\n  }\r\n  ReverseFormatDate(value: string, formatDate: string): any {\r\n    if (value.length === 0) {\r\n      return null;\r\n    }\r\n    const formatTmp = formatDate.replace(/[a-z]/gi, \"\");\r\n    const formatArray = formatTmp.split(\"\");\r\n    let day;\r\n    let month;\r\n    let year;\r\n    const pattern = formatDate.split(formatArray[0]);\r\n    if (value) {\r\n      for (let i = 0; i < pattern.length; i++) {\r\n        switch (pattern[i]) {\r\n          case \"d\":\r\n          case \"dd\": {\r\n            day = value.substr(\r\n              formatDate.indexOf(\"d\"),\r\n              value.length - formatDate.length + pattern[i].length\r\n            );\r\n            break;\r\n          }\r\n          case \"M\":\r\n          case \"MM\": {\r\n            month =\r\n              Number(\r\n                value.substr(\r\n                  formatDate.indexOf(\"M\"),\r\n                  value.length - formatDate.length + pattern[i].length\r\n                )\r\n              ) - 1;\r\n            break;\r\n          }\r\n          case \"MMM\":\r\n          case \"MMMM\": {\r\n            const m = value.substr(\r\n              formatDate.indexOf(\"M\"),\r\n              value.length - formatDate.length + pattern[i].length\r\n            );\r\n            month = this.getMonth(m.toLowerCase());\r\n            break;\r\n          }\r\n          case \"y\":\r\n          case \"yy\":\r\n          case \"yyyy\": {\r\n            year = value.substr(\r\n              formatDate.indexOf(\"y\"),\r\n              value.length - formatDate.length + pattern[i].length\r\n            );\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    const result = new Date(year, month, day);\r\n    if (result.toString() === \"Invalid Date\") {\r\n      return \"Invalid Date\";\r\n    }\r\n    return result;\r\n  }\r\n  private getMonth(month: string): number {\r\n    let result = 0;\r\n    switch (month) {\r\n      case \"january\":\r\n      case \"jan\":\r\n        result = 0;\r\n        break;\r\n      case \"february\":\r\n      case \"feb\":\r\n        result = 1;\r\n        break;\r\n      case \"march\":\r\n      case \"mar\":\r\n        result = 2;\r\n        break;\r\n      case \"april\":\r\n      case \"apr\":\r\n        result = 3;\r\n        break;\r\n      case \"may\":\r\n        result = 4;\r\n        break;\r\n      case \"june\":\r\n      case \"jun\":\r\n        result = 5;\r\n        break;\r\n      case \"july\":\r\n      case \"jul\":\r\n        result = 6;\r\n        break;\r\n      case \"august\":\r\n      case \"aug\":\r\n        result = 7;\r\n        break;\r\n      case \"september\":\r\n      case \"sep\":\r\n        result = 8;\r\n        break;\r\n      case \"october\":\r\n      case \"oct\":\r\n        result = 9;\r\n        break;\r\n      case \"november\":\r\n      case \"nov\":\r\n        result = 10;\r\n        break;\r\n      case \"december\":\r\n      case \"dec\":\r\n        result = 11;\r\n        break;\r\n    }\r\n    return result;\r\n  }\r\n  getPosition(placement: string): ConnectedPosition[] {\r\n    let result: ConnectedPosition[];\r\n    switch (placement) {\r\n      case \"left\": {\r\n        result = [\r\n          {\r\n            originX: \"start\",\r\n            originY: \"center\",\r\n            overlayX: \"end\",\r\n            overlayY: \"center\",\r\n            offsetX: -5,\r\n          },\r\n        ];\r\n        break;\r\n      }\r\n      case \"right\": {\r\n        result = [\r\n          {\r\n            originX: \"end\",\r\n            originY: \"center\",\r\n            overlayX: \"start\",\r\n            overlayY: \"center\",\r\n            offsetX: 5,\r\n          },\r\n        ];\r\n        break;\r\n      }\r\n      case \"top\": {\r\n        result = [\r\n          {\r\n            originX: \"center\",\r\n            originY: \"top\",\r\n            overlayX: \"center\",\r\n            overlayY: \"bottom\",\r\n            offsetY: -5,\r\n          },\r\n        ];\r\n        break;\r\n      }\r\n      case \"bottom\": {\r\n        result = [\r\n          {\r\n            originX: \"center\",\r\n            originY: \"bottom\",\r\n            overlayX: \"center\",\r\n            overlayY: \"top\",\r\n            offsetY: 5,\r\n          },\r\n        ];\r\n        break;\r\n      }\r\n      default: {\r\n        result = [\r\n          {\r\n            originX: \"center\",\r\n            originY: \"bottom\",\r\n            overlayX: \"center\",\r\n            overlayY: \"top\",\r\n            offsetY: 5,\r\n          },\r\n          {\r\n            originX: \"center\",\r\n            originY: \"top\",\r\n            overlayX: \"center\",\r\n            overlayY: \"bottom\",\r\n            offsetY: -5,\r\n          },\r\n          {\r\n            originX: \"start\",\r\n            originY: \"center\",\r\n            overlayX: \"end\",\r\n            overlayY: \"center\",\r\n            offsetX: -5,\r\n          },\r\n          {\r\n            originX: \"end\",\r\n            originY: \"center\",\r\n            overlayX: \"start\",\r\n            overlayY: \"center\",\r\n            offsetX: 5,\r\n          },\r\n        ];\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  Input,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  TemplateRef,\r\n  OnInit,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  templateUrl: \"./np-tooltip.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpTooltipComponent implements OnInit {\r\n  private static controlCount = 1;\r\n\r\n  @Input() tooltip: string | TemplateRef<any>;\r\n  @Input() context: any;\r\n  @Input() width: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-tooltip_${NpTooltipComponent.controlCount++}`;\r\n\r\n  isTemplate: boolean;\r\n\r\n  ngOnInit(): void {\r\n    if (this.tooltip instanceof TemplateRef) {\r\n      this.isTemplate = true;\r\n    }\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-tooltip'\" [class]=\"styleClass\" [attr.id]=\"inputId\" [style.width.px]=\"width\">\r\n  <ng-container *ngIf=\"!isTemplate\">\r\n    <div [innerHTML]=\"tooltip\"></div>\r\n  </ng-container>\r\n  <ng-template *ngIf=\"isTemplate\" [ngTemplateOutlet]=\"tooltip\" [ngTemplateOutletContext]=\"context\">\r\n  </ng-template>\r\n</div>","import {\r\n  Directive,\r\n  Input,\r\n  AfterViewInit,\r\n  ComponentRef,\r\n  ElementRef,\r\n  TemplateRef,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport {\r\n  OverlayRef,\r\n  Overlay,\r\n  OverlayPositionBuilder,\r\n  ConnectedPosition,\r\n} from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { NpTooltipComponent } from \"./np-tooltip.component\";\r\nimport { NpUtilityService } from \"../np-utility/np-utility.service\";\r\n\r\n@Directive({\r\n  selector: \"[npTooltip]\",\r\n})\r\nexport class NpTooltipDirective implements AfterViewInit, OnDestroy {\r\n  @Input(\"npTooltip\") text: string | TemplateRef<any>;\r\n  @Input() placement: string;\r\n  @Input() context: any;\r\n  @Input() width: number;\r\n  @Input() styleClass: string;\r\n  @Input() tooltipOnFocus = false;\r\n\r\n  private overlayRef: OverlayRef;\r\n\r\n  mouseEnterListener: () => void = () => { };\r\n  mouseLeaveListener: () => void = () => { };\r\n  focusListener: () => void = () => { };\r\n  blurListener: () => void = () => { };\r\n\r\n  constructor(\r\n    private overlay: Overlay,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef,\r\n    private utility: NpUtilityService\r\n  ) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.elementRef.nativeElement.className = `${this.elementRef.nativeElement.className} np-tooltip-target`.trim();\r\n    const position: ConnectedPosition[] = this.utility.getPosition(\r\n      this.placement\r\n    );\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(position);\r\n    this.overlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n    });\r\n\r\n    if (this.tooltipOnFocus) {\r\n      this.focusListener = this._show.bind(this);\r\n      this.blurListener = this._hide.bind(this);\r\n      this.elementRef.nativeElement.addEventListener(\r\n        \"focus\",\r\n        this.focusListener\r\n      );\r\n      this.elementRef.nativeElement.addEventListener(\"blur\", this.blurListener);\r\n    } else {\r\n      this.mouseEnterListener = this._show.bind(this);\r\n      this.mouseLeaveListener = this._hide.bind(this);\r\n      this.elementRef.nativeElement.addEventListener(\r\n        \"mouseover\",\r\n        this.mouseEnterListener\r\n      );\r\n      this.elementRef.nativeElement.addEventListener(\r\n        \"mouseout\",\r\n        this.mouseLeaveListener\r\n      );\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.overlayRef.hasAttached()) {\r\n      this.overlayRef.detach();\r\n    }\r\n  }\r\n\r\n  _show(): void {\r\n    const tooltipPortal = new ComponentPortal(NpTooltipComponent);\r\n    const tooltipRef: ComponentRef<NpTooltipComponent> = this.overlayRef.attach(\r\n      tooltipPortal\r\n    );\r\n    tooltipRef.instance.tooltip = this.text;\r\n    tooltipRef.instance.context = this.context;\r\n    tooltipRef.instance.width = this.width;\r\n    tooltipRef.instance.styleClass = this.styleClass;\r\n  }\r\n\r\n  _hide(): void {\r\n    if (this.overlayRef.hasAttached()) {\r\n      this.overlayRef.detach();\r\n    }\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  forwardRef,\r\n} from \"@angular/core\";\r\nimport {\r\n  ViewChild,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  AfterContentInit,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport {\r\n  Overlay,\r\n  OverlayRef,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport { NpUtilityService } from \"../np-utility/np-utility.service\";\r\nimport { TopBottomOverlayPositions } from \"../np-utility/np-constants\";\r\n\r\n@Component({\r\n  selector: \"np-date-picker\",\r\n  templateUrl: \"./np-date-picker.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpDatePickerComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpDatePickerComponent\r\n  implements ControlValueAccessor, AfterViewInit, AfterContentInit {\r\n  private static controlCount = 1;\r\n\r\n  @Input() minDate: Date;\r\n  @Input() maxDate: Date;\r\n  @Input() format: string = \"dd/MM/yyyy\";\r\n  @Input() defaultOpen: boolean = false;\r\n  @Input() showTodayButton: boolean = false;\r\n  @Input() disableWeekDays: string[] = [];\r\n  @Input() disableDates: Date[] = [];\r\n  @Input() dateLabels: any[] = [];\r\n  @Input() dateClass: any;\r\n  @Input() isStartMonthWithMonday = false;\r\n  @Input() placeholder: string = \"\";\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-date-picker_${NpDatePickerComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"templatePortalContent\") templatePortalContent: TemplateRef<any>;\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  weekDays: string[];\r\n  monthsList: any[];\r\n  months: any[];\r\n  years: number[] = [];\r\n  currentMonthWeeks: any;\r\n  currentMonth: number;\r\n  currentYear: number;\r\n  today: Date;\r\n  isOpen: boolean = false;\r\n  innerValue: Date;\r\n  isDisabled: boolean = false;\r\n  originalWeekDays: string[] = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"];\r\n  focused: boolean = false;\r\n\r\n  private templatePortal: TemplatePortal<any>;\r\n  private overlayRef: OverlayRef;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  constructor(\r\n    public overlay: Overlay,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef,\r\n    private utility: NpUtilityService\r\n  ) {\r\n    this.monthsList = [\r\n      { key: 0, value: \"January\" },\r\n      { key: 1, value: \"February\" },\r\n      { key: 2, value: \"March\" },\r\n      { key: 3, value: \"April\" },\r\n      { key: 4, value: \"May\" },\r\n      { key: 5, value: \"June\" },\r\n      { key: 6, value: \"July\" },\r\n      { key: 7, value: \"August\" },\r\n      { key: 8, value: \"September\" },\r\n      { key: 9, value: \"October\" },\r\n      { key: 10, value: \"November\" },\r\n      { key: 11, value: \"December\" },\r\n    ];\r\n    this.today = new Date();\r\n    this.today.setHours(0, 0, 0, 0);\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    if (this.isStartMonthWithMonday) {\r\n      this.weekDays = [\"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"];\r\n    } else {\r\n      this.weekDays = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"];\r\n    }\r\n    if (this.defaultOpen) {\r\n      this._resetVariables();\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(TopBottomOverlayPositions);\r\n    this.overlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      hasBackdrop: true,\r\n      backdropClass: \"np-date-picker-backdrop\",\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n      panelClass: this.styleClass,\r\n    });\r\n    this.templatePortal = new TemplatePortal(\r\n      this.templatePortalContent,\r\n      this.viewContainerRef\r\n    );\r\n    this.overlayRef.backdropClick().subscribe(() => this._close());\r\n  }\r\n\r\n  get value(): Date {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: Date) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: Date): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      if (this._checkIsFullDateDisabled(v)) {\r\n        this.value = null;\r\n      }\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _resetVariables(): void {\r\n    if (this.value) {\r\n      if (this.minDate && this.minDate > this.value) {\r\n        this.value = null;\r\n      }\r\n      if (this.maxDate && this.maxDate < this.value) {\r\n        this.value = null;\r\n      }\r\n    }\r\n\r\n    let currentDate =\r\n      this.value && this.value.toString() !== \"Invalid Date\"\r\n        ? this.value\r\n        : this.today;\r\n    if (this.minDate && currentDate < this.minDate) {\r\n      currentDate = this.minDate;\r\n    }\r\n    if (this.maxDate && currentDate > this.maxDate) {\r\n      currentDate = this.maxDate;\r\n    }\r\n    this.currentMonth = currentDate.getMonth();\r\n    this.currentYear = currentDate.getFullYear();\r\n\r\n    this._calculateDays();\r\n  }\r\n\r\n  _calculateDays(): void {\r\n    const weeks = [];\r\n    weeks[0] = [];\r\n    const daysInMonth = this._getCurrentMonthData();\r\n    const firstWeekDayOfMonth = new Date(\r\n      this.currentYear,\r\n      this.currentMonth,\r\n      1\r\n    ).getDay();\r\n    // push extra values up to week days match to start date if month\r\n    for (let index = 0; index < firstWeekDayOfMonth; index++) {\r\n      weeks[0].push({ disabled: true });\r\n    }\r\n    if (this.isStartMonthWithMonday) {\r\n      // if start with monday then\r\n      if (firstWeekDayOfMonth === 0) {\r\n        weeks[0].push(\r\n          { disabled: true },\r\n          { disabled: true },\r\n          { disabled: true },\r\n          { disabled: true },\r\n          { disabled: true },\r\n          { disabled: true }\r\n        );\r\n      } else {\r\n        weeks[0].pop();\r\n      }\r\n    }\r\n    let j = 0;\r\n    // push all dates in month\r\n    daysInMonth.forEach((element: any) => {\r\n      if (weeks[j].length === 7) {\r\n        j++;\r\n        weeks[j] = [];\r\n      }\r\n      weeks[j].push(element);\r\n    });\r\n    this.currentMonthWeeks = weeks;\r\n  }\r\n\r\n  _getCurrentMonthData(): any[] {\r\n    const data = [];\r\n    const totalDaysInMonth = this._daysInCurrentMonth();\r\n    for (let i = 1; i <= totalDaysInMonth; i++) {\r\n      const date = new Date(this.currentYear, this.currentMonth, i);\r\n      data.push({\r\n        date,\r\n        day: i,\r\n        disabled: this._checkIsFullDateDisabled(date),\r\n        today: this._compareDate(this.today, date),\r\n        selected: this._compareDate(this.value, date),\r\n        toolTip: this._getTooltip(date),\r\n      });\r\n    }\r\n    return data;\r\n  }\r\n\r\n  _daysInCurrentMonth(): number {\r\n    let days = 0;\r\n    switch (this.currentMonth) {\r\n      case 0: // Jan\r\n      case 2: // Mar\r\n      case 4: // May\r\n      case 6: // Jul\r\n      case 7: // Aug\r\n      case 9: // Oct\r\n      case 11: // Dec\r\n        days = 31;\r\n        break;\r\n      case 3: // Apr\r\n      case 5: // Jun\r\n      case 8: // Sept\r\n      case 10: // Nov\r\n        days = 30;\r\n        break;\r\n      case 1: // Feb\r\n        days = this.currentYear % 4 === 0 ? 29 : 28;\r\n        break;\r\n    }\r\n    return days;\r\n  }\r\n\r\n  _prevMonth(): void {\r\n    if (this.currentMonth === 0) {\r\n      this.currentMonth = 11;\r\n      this.currentYear = this.currentYear - 1;\r\n    } else {\r\n      this.currentMonth = this.currentMonth - 1;\r\n    }\r\n    this._calculateDays();\r\n  }\r\n\r\n  _nextMonth(): void {\r\n    if (this.currentMonth === 11) {\r\n      this.currentMonth = 0;\r\n      this.currentYear = this.currentYear + 1;\r\n    } else {\r\n      this.currentMonth = this.currentMonth + 1;\r\n    }\r\n    this._calculateDays();\r\n  }\r\n\r\n  _selectDate(date: Date): void {\r\n    if (\r\n      date === null ||\r\n      this._checkIsFullDateDisabled(date) ||\r\n      this.isDisabled ||\r\n      this.readOnly\r\n    ) {\r\n      return;\r\n    }\r\n    this._setSelectedDate(date);\r\n    this._close();\r\n  }\r\n\r\n  _selectMonth($event: any): void {\r\n    this.currentMonth = Number($event.target.value);\r\n    this._calculateDays();\r\n  }\r\n\r\n  _changeYear($event: any): void {\r\n    this.currentYear = Number($event.target.value.trim());\r\n    this._calculateDays();\r\n  }\r\n\r\n  _toggleDatePicker(): void {\r\n    if (this.isOpen) {\r\n      this._close();\r\n    } else {\r\n      this._open();\r\n    }\r\n  }\r\n\r\n  _open(): void {\r\n    if (this.defaultOpen === true || this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.isOpen = true;\r\n    this._resetVariables();\r\n\r\n    if (!this.overlayRef.hasAttached()) {\r\n      this.overlayRef.attach(this.templatePortal);\r\n    }\r\n  }\r\n\r\n  _close(): void {\r\n    if (this.defaultOpen) {\r\n      return;\r\n    }\r\n    this.isOpen = false;\r\n    this.overlayRef.detach();\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _setToday(): void {\r\n    if (this._checkIsFullDateDisabled(this.today)) {\r\n      return;\r\n    }\r\n    this._setSelectedDate(this.today);\r\n    this._calculateDays();\r\n    this._close();\r\n  }\r\n\r\n  _clear(): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this._setSelectedDate(null);\r\n    this._calculateDays();\r\n    this._close();\r\n  }\r\n\r\n  _getTooltip(currentDate: Date): void {\r\n    if (currentDate && this.dateLabels && this.dateLabels.length > 0) {\r\n      const dateLabel: any = this.dateLabels.find((item) => this._compareDate(item.date, currentDate));\r\n      return dateLabel ? dateLabel.label : null;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  _checkIsWeekDayDisabled(index: number): boolean {\r\n    const day = this.originalWeekDays[index];\r\n    return this.disableWeekDays.indexOf(day) > -1;\r\n  }\r\n\r\n  _checkIsFullDateDisabled(date: Date): boolean {\r\n    if (date === undefined || date === null) {\r\n      return false;\r\n    }\r\n    if (this.minDate && date < this.minDate) {\r\n      return true;\r\n    }\r\n    if (this.maxDate && date > this.maxDate) {\r\n      return true;\r\n    }\r\n    if (this._checkIsWeekDayDisabled(date.getDay())) {\r\n      return true;\r\n    }\r\n    return (this.disableDates.findIndex((item) => this._compareDate(item, date))) > -1;\r\n  }\r\n\r\n  _setSelectedDate(date: Date): void {\r\n    if (date) {\r\n      date.setHours(0, 0, 0, 0);\r\n    }\r\n    if (this._checkIsFullDateDisabled(date)) {\r\n      return;\r\n    }\r\n    this.value = date;\r\n    this._resetVariables();\r\n  }\r\n\r\n  _onKeydown(event: KeyboardEvent): void {\r\n    if (event.key === \"Tab\" || event.key === \"Escape\") {\r\n      this._close();\r\n    }\r\n    if (event.key === \"ArrowDown\") {\r\n      this._open();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  _onInputChange($event: any): void {\r\n    const date = this.utility.ReverseFormatDate(\r\n      $event.target.value.trim(),\r\n      this.format\r\n    );\r\n    if (date === \"Invalid Date\") {\r\n      $event.target.value = \"\";\r\n      this.value = null;\r\n      return;\r\n    }\r\n    if (this._checkIsFullDateDisabled(date)) {\r\n      this.value = null;\r\n      return;\r\n    }\r\n    this.value = date;\r\n    this._resetVariables();\r\n  }\r\n\r\n  _compareDate(dateA: Date, dateB: Date): boolean {\r\n    if (!dateA || !dateB) {\r\n      return false;\r\n    }\r\n    if (\r\n      dateA.getFullYear() === dateB.getFullYear() &&\r\n      dateA.getMonth() === dateB.getMonth() &&\r\n      dateA.getDate() === dateB.getDate()\r\n    ) {\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _getDateClass(item: any): string {\r\n    if (this.dateClass) {\r\n      return (\r\n        `np-date-picker-day np-day-${item.day} ` + this.dateClass(item.date)\r\n      ).trim();\r\n    }\r\n    return `np-date-picker-day np-day-${item.day}`;\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-date-picker': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-input-group\" *ngIf=\"!defaultOpen; else templatePortalContent\" [ngClass]=\"{ 'np-focused': focused }\">\r\n    <input class=\"np-form-control\" type=\"text\" #control [value]=\"value | date: format\" [placeholder]=\"placeholder\"\r\n      [disabled]=\"isDisabled\" [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\" [readonly]=\"readOnly\"\r\n      (click)=\"_open()\" (keydown)=\"_onKeydown($event)\" (change)=\"_onInputChange($event)\" (blur)=\"_onBlur($event)\"\r\n      (focus)=\"_onFocus($event)\" />\r\n    <div class=\"np-input-group-append\">\r\n      <button class=\"np-btn-icon np-toggle-overlay\" type=\"button\" tabindex=\"-1\" (click)=\"_toggleDatePicker()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\">\r\n          </path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0z\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n</div>\r\n<ng-template #templatePortalContent>\r\n  <div class=\"np-date-picker-overlay\" [ngClass]=\"{ 'np-overlay-open': defaultOpen }\">\r\n    <div class=\"np-date-picker-header\">\r\n      <button class=\"np-btn-icon\" type=\"button\" tabindex=\"-1\" (click)=\"_prevMonth()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"></path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n        </svg>\r\n      </button>\r\n      <input class=\"np-form-control np-date-picker-years\" type=\"number\" tabindex=\"-1\" [value]=\"currentYear\"\r\n        (change)=\"_changeYear($event)\" required />\r\n      <select class=\"np-form-control np-date-picker-months\" tabindex=\"-1\" (change)=\"_selectMonth($event)\">\r\n        <option *ngFor=\"let month of monthsList\" [value]=\"month.key\" [text]=\"month.value | npTranslate\"\r\n          [selected]=\"month.key === currentMonth\"></option>\r\n      </select>\r\n      <button class=\"np-btn-icon\" type=\"button\" tabindex=\"-1\" (click)=\"_nextMonth()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"></path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-date-picker-weekdays\">\r\n      <ng-container *ngFor=\"let weekDay of weekDays\">\r\n        <div class=\"np-date-picker-weekday\">{{ weekDay | npTranslate }}</div>\r\n      </ng-container>\r\n    </div>\r\n    <div class=\"np-date-picker-days\">\r\n      <div *ngFor=\"let week of currentMonthWeeks\">\r\n        <ng-container *ngFor=\"let item of week\">\r\n          <div *ngIf=\"!item.day\" class=\"np-date-picker-day\"></div>\r\n          <div *ngIf=\"item.day\" [class]=\"_getDateClass(item)\" (click)=\"_selectDate(item.date)\" [ngClass]=\"{\r\n              'np-date-picker-today': item.today,\r\n              'np-disabled': item.disabled,\r\n              'np-date-picker-selected': item.selected\r\n            }\">\r\n            <div *ngIf=\"item.toolTip; else dayTemplate\" [npTooltip]=\"item.toolTip\" [innerHTML]=\"item.day\"></div>\r\n            <ng-template #dayTemplate>\r\n              <div [innerHTML]=\"item.day\"></div>\r\n            </ng-template>\r\n          </div>\r\n        </ng-container>\r\n      </div>\r\n    </div>\r\n    <div class=\"np-date-picker-footer\">\r\n      <button class=\"np-btn np-btn-primary np-ok\" type=\"button\" *ngIf=\"!defaultOpen\" tabindex=\"-1\" (click)=\"_close()\">\r\n        {{ \"Ok\" | npTranslate }}\r\n      </button>\r\n      <button class=\"np-btn np-btn-primary np-today\" type=\"button\" *ngIf=\"showTodayButton\" tabindex=\"-1\"\r\n        (click)=\"_setToday()\">\r\n        {{ \"Today\" | npTranslate }}\r\n      </button>\r\n      <button class=\"np-btn np-btn-danger np-clear\" type=\"button\" tabindex=\"-1\" (click)=\"_clear()\">\r\n        {{ \"Clear\" | npTranslate }}\r\n      </button>\r\n    </div>\r\n  </div>\r\n</ng-template>","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  OnInit,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  OnChanges,\r\n  SimpleChanges,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-paginator\",\r\n  templateUrl: \"./np-paginator.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpPaginatorComponent implements OnInit, OnChanges {\r\n  private static controlCount = 1;\r\n\r\n  @Input() pageSize: number;\r\n  @Input() totalItems: number;\r\n  @Input() currentPage: number;\r\n  @Input() showPageSize: boolean = true;\r\n  @Input() showTotal: boolean = true;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-paginator-box_${NpPaginatorComponent.controlCount++}`;\r\n\r\n  @Output() onPageChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onPageSizeChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onRefresh: EventEmitter<any> = new EventEmitter();\r\n\r\n  totalPages: number;\r\n  startIndex: number;\r\n  endIndex: number;\r\n  initialized: boolean = false;\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes && changes[\"totalItems\"]) {\r\n      this.totalPages = this._calculateTotalPages();\r\n      this._setStartEndIndex();\r\n      if (this.currentPage > this.totalPages) {\r\n        this._applyChanges();\r\n      }\r\n      return;\r\n    }\r\n    if (changes && (changes[\"currentPage\"] || changes[\"pageSize\"])) {\r\n      this._applyChanges();\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (!this.pageSize) {\r\n      this.pageSize = 10;\r\n    }\r\n    if (!this.totalItems) {\r\n      this.totalItems = 0;\r\n    }\r\n    if (!this.currentPage) {\r\n      this.currentPage = 1;\r\n    }\r\n    this.initialized = true;\r\n    this._applyChanges();\r\n  }\r\n\r\n  loadPage(page: number): void {\r\n    this._loadPage(page);\r\n  }\r\n\r\n  refresh(): void {\r\n    this.onRefresh.emit();\r\n    this.onPageChange.emit({\r\n      currentPage: this.currentPage,\r\n      pageSize: this.pageSize,\r\n    });\r\n  }\r\n\r\n  _onCurrentPageChange(event: any): void {\r\n    this._loadPage(Number(event.target.value));\r\n  }\r\n\r\n  _onItemPerPageChange(event: any): void {\r\n    this.onPageSizeChange.emit(event.target.value);\r\n    this.pageSize = Number(event.target.value);\r\n    this._loadPage(1);\r\n  }\r\n\r\n  _loadPage(page: number): void {\r\n    this.currentPage = page;\r\n    this._applyChanges();\r\n  }\r\n\r\n  _applyChanges(): void {\r\n    if (this.initialized) {\r\n      this.totalPages = this._calculateTotalPages();\r\n    }\r\n    if (this.currentPage > 0 && this.pageSize > 0 && this.totalPages > 0) {\r\n      if (this.currentPage < 1) {\r\n        this.currentPage = 1;\r\n      }\r\n      if (this.currentPage > this.totalPages) {\r\n        this.currentPage = this.totalPages;\r\n      }\r\n      this.onPageChange.emit({\r\n        currentPage: this.currentPage,\r\n        pageSize: this.pageSize,\r\n      });\r\n      this._setStartEndIndex();\r\n    }\r\n  }\r\n\r\n  private _calculateTotalPages(): number {\r\n    const result =\r\n      this.pageSize < 1 ? 1 : Math.ceil(this.totalItems / this.pageSize);\r\n    return Math.max(result || 0, 1);\r\n  }\r\n\r\n  private _setStartEndIndex(): void {\r\n    if (this.totalItems === 0) {\r\n      this.startIndex = -1;\r\n      this.endIndex = -1;\r\n      return;\r\n    }\r\n    this.startIndex = (this.currentPage - 1) * this.pageSize;\r\n    this.endIndex = Math.min(\r\n      this.startIndex + this.pageSize - 1,\r\n      this.totalItems - 1\r\n    );\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-toolbar np-paginator'\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-toolbar-item\">\r\n    <button class=\"np-btn-icon np-paginator-first\" type=\"button\" [ngClass]=\"{ 'np-disabled': currentPage === 1 }\"\r\n      (click)=\"_loadPage(1)\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"></path>\r\n      </svg>\r\n    </button>\r\n  </div>\r\n  <div class=\"np-toolbar-item\">\r\n    <button class=\"np-btn-icon np-paginator-prev\" type=\"button\" [ngClass]=\"{ 'np-disabled': currentPage === 1 }\"\r\n      (click)=\"_loadPage(currentPage - 1)\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"></path>\r\n      </svg>\r\n    </button>\r\n  </div>\r\n  <div class=\"np-toolbar-item\">\r\n    <input class=\"np-form-control np-paginator-current-page\" type=\"number\" [value]=\"currentPage\" [min]=\"1\"\r\n      [max]=\"totalPages\" (change)=\"_onCurrentPageChange($event)\" />\r\n  </div>\r\n  <div class=\"np-toolbar-item\">/ {{ totalPages }}</div>\r\n  <div class=\"np-toolbar-item\">\r\n    <button class=\"np-btn-icon np-paginator-next\" type=\"button\"\r\n      [ngClass]=\"{ 'np-disabled': currentPage === totalPages }\" (click)=\"_loadPage(currentPage + 1)\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"></path>\r\n      </svg>\r\n    </button>\r\n  </div>\r\n  <div class=\"np-toolbar-item\">\r\n    <button class=\"np-btn-icon np-paginator-last\" type=\"button\"\r\n      [ngClass]=\"{ 'np-disabled': currentPage === totalPages }\" (click)=\"_loadPage(totalPages)\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"></path>\r\n      </svg>\r\n    </button>\r\n  </div>\r\n  <div class=\"np-toolbar-spacer\"></div>\r\n  <div class=\"np-toolbar-item\" *ngIf=\"showPageSize\">\r\n    {{ \"Items_Per_Page\" | npTranslate }}\r\n  </div>\r\n  <div class=\"np-toolbar-item\" *ngIf=\"showPageSize\">\r\n    <input class=\"np-form-control np-paginator-page-size\" type=\"number\" [value]=\"pageSize\" [min]=\"1\" [max]=\"100\"\r\n      (change)=\"_onItemPerPageChange($event)\" />\r\n  </div>\r\n  <div class=\"np-toolbar-item\" *ngIf=\"showTotal\">\r\n    {{ startIndex + 1 }}-{{ endIndex + 1 }} / {{ totalItems }}\r\n  </div>\r\n  <div class=\"np-toolbar-item\">\r\n    <button class=\"np-btn-icon np-paginator-refresh\" type=\"button\" (click)=\"refresh()\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path\r\n          d=\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\">\r\n        </path>\r\n        <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n      </svg>\r\n    </button>\r\n  </div>\r\n</div>","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  Input,\r\n  Output,\r\n  ViewChild,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"np-checkbox\",\r\n  templateUrl: \"./np-checkbox.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpCheckboxComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpCheckboxComponent implements ControlValueAccessor {\r\n  private static controlCount = 1;\r\n\r\n  @Input() label: string;\r\n  @Input() indeterminate: boolean;\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-checkbox_${NpCheckboxComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  innerValue: boolean;\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  get value(): boolean {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: boolean) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.indeterminate = false;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: boolean): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _onBlur($event): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _onChange(event: any): void {\r\n    this.value = event.target.checked;\r\n  }\r\n\r\n  _onKeyDown(event: KeyboardEvent): void {\r\n    if (event.key === \"Space\" && (this.readOnly || this.isDisabled)) {\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  _getInputId(): string {\r\n    return this.inputId + \"_input\";\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-checkbox': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" role=\"checkbox\" [attr.aria-checked]=\"indeterminate ? 'mixed' : innerValue\" [class]=\"styleClass\"\r\n  [attr.id]=\"inputId\">\r\n  <label class=\"np-checkbox-label\" [attr.for]=\"_getInputId()\">\r\n    <input class=\"np-checkbox-input\" type=\"checkbox\" #control [attr.id]=\"_getInputId()\" [checked]=\"innerValue\"\r\n      [disabled]=\"isDisabled\" [readonly]=\"readOnly\" [attr.tabindex]=\"tabIndex\" [npAutofocus]=\"autoFocus\"\r\n      (change)=\"_onChange($event)\" [indeterminate]=\"indeterminate\" (blur)=\"_onBlur($event)\" (focus)=\"_onFocus($event)\"\r\n      (keydown)=\"_onKeyDown($event)\" />\r\n    <span class=\"np-checkbox-checkmark\" [ngClass]=\"{ 'np-focused': focused }\">\r\n      <svg class=\"np-checkbox-icon\" *ngIf=\"innerValue\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"></path>\r\n      </svg>\r\n      <svg class=\"np-checkbox-icon\" *ngIf=\"indeterminate\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        <path d=\"M19 13H5v-2h14v2z\"></path>\r\n      </svg>\r\n    </span>\r\n    <span class=\"np-checkbox-text\" *ngIf=\"label\" [innerHTML]=\"label\"></span>\r\n  </label>\r\n</div>","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n  name: \"filterTypesPipe\",\r\n})\r\n@Injectable()\r\nexport class NpFilterTypesPipe implements PipeTransform {\r\n  transform(filterList: any[], args: string): any {\r\n    return filterList.filter((filterType) => filterType.forDataType === args);\r\n  }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { Column } from \"../models/column.model\";\r\n\r\n@Pipe({\r\n  name: \"searchColumnsPipe\",\r\n})\r\n@Injectable()\r\nexport class NpSearchColumnsPipe implements PipeTransform {\r\n  transform(filterList: Column[], args: string): any {\r\n    if (args) {\r\n      const result = filterList.filter((column: Column) => {\r\n        return (\r\n          column.caption && column.caption.toLowerCase().startsWith(args, 0)\r\n        );\r\n      });\r\n      return result;\r\n    }\r\n    return filterList;\r\n  }\r\n}\r\n","import { CdkDragDrop, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  TemplateRef,\r\n} from \"@angular/core\";\r\nimport {\r\n  ViewEncapsulation,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n  ElementRef,\r\n  AfterContentInit,\r\n  AfterViewInit,\r\n} from \"@angular/core\";\r\nimport { BehaviorSubject, Subscription } from \"rxjs\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport {\r\n  OverlayRef,\r\n  Overlay,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { Column } from \"./models/column.model\";\r\nimport {\r\n  Filters,\r\n  DataTypes,\r\n  FilterTypes,\r\n  SortDirections,\r\n} from \"./models/constants\";\r\nimport { DataSource } from \"./models/data-source.model\";\r\nimport { LoadOptions } from \"./models/load-options.model\";\r\nimport { State } from \"./models/state.model\";\r\nimport { NpFileService } from \"./services/np-file.service\";\r\nimport { NpFilterService } from \"./services/np-filter.service\";\r\nimport { NpODataService } from \"./services/np-odata.service\";\r\nimport { NpGridUtilityService } from \"./services/np-grid-utility.service\";\r\nimport { TopBottomOverlayPositions } from \"../np-utility/np-constants\";\r\nimport { NpPaginatorComponent } from \"../np-paginator/np-paginator.component\";\r\nimport { NpTranslationsService } from \"../np-translations/np-translations.service\";\r\nimport { NpDialogService } from \"../np-dialog/np-dialog.service\";\r\nimport { NpDialogConfig } from \"../np-dialog/np-dialog.config\";\r\n\r\n@Component({\r\n  selector: \"np-data-grid\",\r\n  templateUrl: \"np-data-grid.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpDataGridComponent\r\n  implements OnInit, AfterContentInit, AfterViewInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() inputId: string = `np-data-grid_${NpDataGridComponent.controlCount++}`;\r\n  @Input() columns: Column[];\r\n  @Input() dataSource: BehaviorSubject<DataSource>;\r\n  @Input() height: number;\r\n  @Input() width: number;\r\n  @Input() multiColumnSortEnable: boolean;\r\n  @Input() masterDetailTemplate: TemplateRef<any>;\r\n  @Input() singleRowExpand: boolean = false;\r\n  @Input() expandRowOnClick: boolean = false;\r\n  @Input() singleRowSelectEnable: boolean = false;\r\n  @Input() multiRowSelectEnable: boolean = false;\r\n  @Input() selectRowOnClick: boolean = false;\r\n  @Input() key: string;\r\n  @Input() showColumnChooser: boolean;\r\n  @Input() title: string = \"\";\r\n  @Input() enableStateStoring: boolean;\r\n  @Input() isReadOnlyStates: boolean = false;\r\n  @Input() noDataMessage: string;\r\n  @Input() showFilters = true;\r\n  @Input() dateFormat = \"dd/MM/yyyy\";\r\n  @Input() showSummary: boolean = false;\r\n  @Input() summaryTemplate: TemplateRef<any>;\r\n  @Input() allowColumnResize: boolean = false;\r\n  @Input() allowColumnReorder: boolean = false;\r\n  @Input() isServerOperations: boolean = false;\r\n  @Input() isODataOperations: boolean = false;\r\n  @Input() odataVersion: 1 | 2 | 3 | 4 = 4;\r\n  @Input() allowExport: boolean = false;\r\n  @Input() isServerExport: boolean = false;\r\n  @Input() showToolBar: boolean = false;\r\n  @Input() pageSize: number = 10;\r\n  @Input() styleClass: string;\r\n\r\n  @Output() onInit: EventEmitter<any> = new EventEmitter();\r\n  @Output() onAfterInit: EventEmitter<any> = new EventEmitter();\r\n  @Output() onLoadData: EventEmitter<LoadOptions> = new EventEmitter();\r\n  @Output() onSelect: EventEmitter<any> = new EventEmitter();\r\n  @Output() onDeselect: EventEmitter<any> = new EventEmitter();\r\n  @Output() onRowClick: EventEmitter<any> = new EventEmitter();\r\n  @Output() onStatesUpdate: EventEmitter<any> = new EventEmitter();\r\n  @Output() onServerExport: EventEmitter<LoadOptions> = new EventEmitter();\r\n\r\n  @ViewChild(\"columnChooserTemplate\") columnChooserTemplate: TemplateRef<any>;\r\n  @ViewChild(\"gridPaginator\") gridPaginator: NpPaginatorComponent;\r\n\r\n  gridColumns: Column[];\r\n  dataSourceClone: DataSource;\r\n  subscription: Subscription;\r\n  currentViewData: any[];\r\n  totalRow: number = 0;\r\n  filtersList: any[];\r\n  sortColumnList: any[];\r\n  filterColumnList: any[];\r\n  isFilterAvailable: boolean;\r\n  enableMasterDetail: boolean = false;\r\n  openRowKeys: any[] = [];\r\n  selectedRowKeys: any[] = [];\r\n  isAllSelected: boolean;\r\n  keyColumnName: string;\r\n  dataTypes = DataTypes;\r\n  sortDirections = SortDirections;\r\n  isOpenColumnChooser: boolean = false;\r\n  visibleColumns: any[] = [];\r\n  stateList: State[];\r\n  currentStateName: string;\r\n  summaryData: any;\r\n  searchColumnsKeyword: string;\r\n  isDataSourceInit: boolean = false;\r\n  _colSpanForDetailRow: number = 0;\r\n\r\n  private columnChooserTemplatePortal: TemplatePortal<any>;\r\n  private columnChooserOverlayRef: OverlayRef;\r\n\r\n  constructor(\r\n    private filterService: NpFilterService,\r\n    private utilityService: NpGridUtilityService,\r\n    private oDataService: NpODataService,\r\n    private fileService: NpFileService,\r\n    public overlay: Overlay,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private dialogService: NpDialogService,\r\n    private translationsService: NpTranslationsService,\r\n    private elementRef: ElementRef\r\n  ) {\r\n    this.sortColumnList = [];\r\n    this.filtersList = Filters;\r\n    this.filterColumnList = [];\r\n    this.stateList = [];\r\n    this.currentStateName = \"\";\r\n    this.isFilterAvailable = false;\r\n    this.showFilters = true;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.onInit.emit();\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    if (this.masterDetailTemplate) {\r\n      this.enableMasterDetail = true;\r\n    }\r\n    this._setColumns();\r\n    if (this.key) {\r\n      this.keyColumnName = this.key;\r\n    } else {\r\n      this.keyColumnName = this.gridColumns[0].dataField;\r\n    }\r\n    this._subscribeDataSource();\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(\r\n        this.elementRef.nativeElement.querySelector(\"#btn-column-chooser\")\r\n      )\r\n      .withPositions(TopBottomOverlayPositions);\r\n    this.columnChooserOverlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      hasBackdrop: true,\r\n      backdropClass: \"np-grid-backdrop\",\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n    });\r\n    this.columnChooserTemplatePortal = new TemplatePortal(\r\n      this.columnChooserTemplate,\r\n      this.viewContainerRef\r\n    );\r\n    this.columnChooserOverlayRef\r\n      .backdropClick()\r\n      .subscribe(() => this._closeColumnChooser());\r\n    this.onAfterInit.emit();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subscription) {\r\n      this.subscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  getSelectedRowKeys(): any[] {\r\n    return this.selectedRowKeys;\r\n  }\r\n\r\n  selectRowByKey(key: any): void {\r\n    if (this.selectedRowKeys.indexOf(key) === -1) {\r\n      this.selectedRowKeys.push(key);\r\n    }\r\n  }\r\n\r\n  deselectRowByKey(key: any): void {\r\n    const idx = this.selectedRowKeys.indexOf(key);\r\n    if (idx >= 0) {\r\n      this.selectedRowKeys.splice(idx, 1);\r\n    }\r\n  }\r\n\r\n  reset(): void {\r\n    this._setColumns();\r\n    this.filterColumnList = [];\r\n    this.sortColumnList = [];\r\n    this.selectedRowKeys = [];\r\n    this.openRowKeys = [];\r\n    this.isAllSelected = false;\r\n    this.isOpenColumnChooser = false;\r\n    this.currentStateName = \"\";\r\n    this._closeColumnChooser();\r\n    if (this.isServerOperations) {\r\n      this.gridPaginator.loadPage(1);\r\n    } else {\r\n      this._resetDataSource();\r\n      this.gridPaginator.loadPage(1);\r\n    }\r\n  }\r\n\r\n  selectAll(): void {\r\n    this._selectAll();\r\n  }\r\n\r\n  deselectAll(): void {\r\n    this._deselectAll();\r\n  }\r\n\r\n  hideColumnByIndex(idx: number): void {\r\n    this.gridColumns[idx].visible = false;\r\n    this._setVisibleColumns();\r\n  }\r\n\r\n  showColumnByIndex(idx: number): void {\r\n    this.gridColumns[idx].visible = true;\r\n    this._setVisibleColumns();\r\n  }\r\n\r\n  hideColumnByDataField(dataField: string): void {\r\n    for (const element of this.gridColumns) {\r\n      if (element.dataField === dataField) {\r\n        element.visible = false;\r\n      }\r\n    }\r\n    this._setVisibleColumns();\r\n  }\r\n\r\n  showColumnByDataField(dataField: string): void {\r\n    for (const element of this.gridColumns) {\r\n      if (element.dataField === dataField) {\r\n        element.visible = true;\r\n      }\r\n    }\r\n    this._setVisibleColumns();\r\n  }\r\n\r\n  goToPage(pageNumber: number): void {\r\n    this.gridPaginator.loadPage(pageNumber);\r\n  }\r\n\r\n  sortByColumn(dataField: string, direction: SortDirections): void {\r\n    const sortColumn = this.utilityService.custFind(\r\n      this.gridColumns,\r\n      (element: Column) => {\r\n        return element.dataField === dataField;\r\n      }\r\n    );\r\n    sortColumn.sortDirection = direction;\r\n    this._onSort(sortColumn);\r\n  }\r\n\r\n  filterByColumn(dataField: string, keyword: string, type: FilterTypes): void {\r\n    const filterColumn = this.utilityService.custFind(\r\n      this.gridColumns,\r\n      (element: Column) => {\r\n        return element.dataField === dataField;\r\n      }\r\n    );\r\n    filterColumn.filterString = keyword;\r\n    filterColumn.filterType = type;\r\n    this._onFilter(filterColumn, true);\r\n  }\r\n\r\n  getTotalRows(): number {\r\n    return this.totalRow;\r\n  }\r\n\r\n  getCurrentPageNumber(): number {\r\n    return this.gridPaginator.currentPage;\r\n  }\r\n\r\n  getPageSize(): number {\r\n    return this.pageSize;\r\n  }\r\n\r\n  getTotalPages(): number {\r\n    return this.gridPaginator.totalPages;\r\n  }\r\n\r\n  closeAllChild(): void {\r\n    this.openRowKeys = [];\r\n  }\r\n\r\n  getFilterColumns(): any[] {\r\n    return this.filterColumnList;\r\n  }\r\n\r\n  getSortColumns(): any[] {\r\n    return this.sortColumnList;\r\n  }\r\n\r\n  getColumns(): Column[] {\r\n    return this._cloneColumns(this.gridColumns);\r\n  }\r\n\r\n  setColumns(columns: Column[]): void {\r\n    this.gridColumns = this._cloneColumns(columns);\r\n    const currentFilterColumnList = [];\r\n    for (const element of this.gridColumns) {\r\n      if (\r\n        element.filterOperator &&\r\n        element.filterValue &&\r\n        element.filterValue.toString().length > 0\r\n      ) {\r\n        currentFilterColumnList.push({\r\n          dataField: element.dataField,\r\n          filterOperator: element.filterOperator,\r\n          filterValue: element.filterValue,\r\n          dataType: element.dataType,\r\n        });\r\n      }\r\n    }\r\n    this.filterColumnList = currentFilterColumnList;\r\n    const currentSortColumnList = [];\r\n    for (const element of this.gridColumns) {\r\n      if (element.sortEnable && element.sortDirection) {\r\n        currentSortColumnList.push({\r\n          dataField: element.dataField,\r\n          sortDirection: element.sortDirection,\r\n        });\r\n      }\r\n    }\r\n    this.sortColumnList = currentSortColumnList;\r\n    if (!this.isServerOperations) {\r\n      this._filterDataSource();\r\n      this._sortDataSource();\r\n    }\r\n    this.gridPaginator.loadPage(1);\r\n    this._setVisibleColumns();\r\n    this.selectedRowKeys = [];\r\n    this.openRowKeys = [];\r\n  }\r\n\r\n  loadStateByName(stateName: string): void {\r\n    const state = this.stateList.filter((element: State) => element.name === stateName);\r\n    if (state && state.length > 0) {\r\n      this.currentStateName = stateName;\r\n      this.setColumns(state[0].columns);\r\n    } else {\r\n      throw new Error(\"Data grid State not found\");\r\n    }\r\n  }\r\n\r\n  getCurrentStateName(): string {\r\n    return this.currentStateName;\r\n  }\r\n\r\n  removeAllSorting(): void {\r\n    this._removeAllSorting();\r\n    this.gridPaginator.loadPage(1);\r\n  }\r\n\r\n  removeAllFilters(): void {\r\n    this._removeAllFilters();\r\n    this.gridPaginator.loadPage(1);\r\n  }\r\n\r\n  getAllState(): State[] {\r\n    return this.stateList;\r\n  }\r\n\r\n  setAllState(states: State[]): void {\r\n    this.stateList = states;\r\n  }\r\n\r\n  refresh(): void {\r\n    this._onRefresh();\r\n  }\r\n\r\n  _subscribeDataSource(): void {\r\n    this.subscription = this.dataSource.subscribe((ds: DataSource) => {\r\n      if (ds === undefined || ds === null) {\r\n        return;\r\n      }\r\n      if (this.isServerOperations) {\r\n        // to export to csv, this change has all data\r\n        if (ds.isAllPages) {\r\n          this.fileService.downloadCSVFile(\r\n            ds.data,\r\n            this.visibleColumns,\r\n            this.dateFormat\r\n          );\r\n          return;\r\n        }\r\n        this.currentViewData = ds.data;\r\n        this.summaryData = ds.summary;\r\n        this.totalRow = ds.total;\r\n        if (this.isAllSelected) {\r\n          for (const element of this.currentViewData) {\r\n            if (\r\n              this.selectedRowKeys.indexOf(element[this.keyColumnName]) === -1\r\n            ) {\r\n              this.selectedRowKeys.push(element[this.keyColumnName]);\r\n            }\r\n          }\r\n        }\r\n      } else {\r\n        this.dataSourceClone = new DataSource(\r\n          ds.data,\r\n          ds.data.length,\r\n          ds.summary\r\n        );\r\n        this.totalRow = ds.data.length;\r\n        this.summaryData = ds.summary;\r\n        this.isDataSourceInit = true;\r\n        this.gridPaginator.refresh();\r\n      }\r\n    });\r\n  }\r\n\r\n  _onPageChange(options: any): void {\r\n    if (this.isServerOperations) {\r\n      const loadOpt = new LoadOptions();\r\n      if (this.isODataOperations) {\r\n        const top = options.pageSize;\r\n        const skip = (options.currentPage - 1) * options.pageSize;\r\n        loadOpt.odataQuery = this.oDataService.buildQuery(\r\n          this.filterColumnList,\r\n          this.sortColumnList,\r\n          top,\r\n          skip,\r\n          true,\r\n          this.odataVersion\r\n        );\r\n        loadOpt.pageNumber = 0;\r\n        loadOpt.pageSize = 0;\r\n        loadOpt.sortColumns = [];\r\n        loadOpt.filterColumns = [];\r\n        loadOpt.isAllPages = false;\r\n      } else {\r\n        loadOpt.pageNumber = options.currentPage;\r\n        loadOpt.pageSize = options.pageSize;\r\n        loadOpt.sortColumns = this.sortColumnList;\r\n        loadOpt.filterColumns = this.filterColumnList;\r\n        loadOpt.isAllPages = false;\r\n        loadOpt.odataQuery = \"\";\r\n      }\r\n      this.onLoadData.emit(loadOpt);\r\n    } else {\r\n      if (!this.isDataSourceInit) {\r\n        return;\r\n      }\r\n      const start = (options.currentPage - 1) * options.pageSize;\r\n      const end = Math.min(start + options.pageSize - 1, this.totalRow - 1);\r\n      this.currentViewData = this.dataSourceClone.data.slice(start, end + 1);\r\n    }\r\n  }\r\n\r\n  _setColumns(): void {\r\n    const result = [];\r\n    for (const element of this.columns) {\r\n      result.push(new Column(element));\r\n    }\r\n    this.gridColumns = result;\r\n    this._setVisibleColumns();\r\n  }\r\n\r\n  _setVisibleColumns(): void {\r\n    this.visibleColumns = this.utilityService.custFilter(\r\n      this.gridColumns,\r\n      (element: Column) => element.visible === true\r\n    );\r\n    this.isFilterAvailable =\r\n      this.utilityService.custFilter(this.visibleColumns, (element: Column) => element.filterEnable === true).length > 0;\r\n    this._colSpanForDetailRow =\r\n      this.visibleColumns.length + (this._allowRowSelection() ? 1 : 0) + 1;\r\n  }\r\n\r\n  _onCellClick($event: any, column: Column, data: any): void {\r\n    if (column.onCellClick !== undefined) {\r\n      column.onCellClick($event, column, data);\r\n    }\r\n  }\r\n\r\n  // on first click ascending, on second click descending and on third click remove sorting\r\n  _onSort(column: Column): void {\r\n    if (!column.sortEnable) {\r\n      return;\r\n    }\r\n    // if sort direction is descending then remove sorting from column\r\n    if (column.sortDirection === SortDirections.Descending) {\r\n      this._removeSortingFromColumn(column);\r\n      return;\r\n    }\r\n    const sortOrder =\r\n      column.sortDirection === SortDirections.Ascending\r\n        ? SortDirections.Descending\r\n        : SortDirections.Ascending;\r\n    if (!this.multiColumnSortEnable) {\r\n      this._removeAllSorting();\r\n    }\r\n    column.sortDirection = sortOrder;\r\n    if (this.multiColumnSortEnable) {\r\n      const list = [];\r\n      for (const element of this.sortColumnList) {\r\n        if (element.dataField !== column.dataField) {\r\n          list.push(element);\r\n        }\r\n      }\r\n      this.sortColumnList = list;\r\n    }\r\n    this.sortColumnList.push({\r\n      dataField: column.dataField,\r\n      sortDirection: column.sortDirection,\r\n    });\r\n    this.selectedRowKeys = [];\r\n    this.isAllSelected = false;\r\n    this.openRowKeys = [];\r\n    if (!this.isServerOperations) {\r\n      this._sortDataSource();\r\n    }\r\n    this.gridPaginator.loadPage(1);\r\n  }\r\n\r\n  _sortDataSource(): void {\r\n    let data = this.dataSourceClone.data;\r\n    for (const element of this.sortColumnList) {\r\n      data = this.utilityService.custSort(\r\n        data,\r\n        element.dataField,\r\n        element.sortDirection\r\n      );\r\n    }\r\n    this.dataSourceClone.data = data;\r\n  }\r\n\r\n  _removeAllSorting(): void {\r\n    for (const element of this.gridColumns) {\r\n      element.sortDirection = null;\r\n    }\r\n    this.sortColumnList = [];\r\n  }\r\n\r\n  _removeSortingFromColumn(column: Column): void {\r\n    column.sortDirection = null;\r\n    const list = [];\r\n    for (const element of this.sortColumnList) {\r\n      if (element.dataField !== column.dataField) {\r\n        list.push(element);\r\n      }\r\n    }\r\n    this.sortColumnList = list;\r\n\r\n    if (!this.isServerOperations) {\r\n      this._resetDataSource();\r\n      this._filterDataSource();\r\n      for (const element of this.sortColumnList) {\r\n        this.dataSourceClone.data = this.utilityService.custSort(\r\n          this.dataSourceClone.data,\r\n          element.dataField,\r\n          element.sortDirection\r\n        );\r\n      }\r\n    }\r\n    this.gridPaginator.loadPage(1);\r\n  }\r\n\r\n  _resetDataSource(): void {\r\n    this.dataSourceClone.data = this.dataSource.getValue().data;\r\n    this.totalRow = this.dataSourceClone.data.length;\r\n  }\r\n\r\n  _onFilter(column: Column, isForceFilter: boolean = false): void {\r\n    if (column.filterOperator && column.filterOperator === FilterTypes.Reset) {\r\n      column.filterOperator = undefined;\r\n      column.filterValue = undefined;\r\n      isForceFilter = true;\r\n    }\r\n    if (\r\n      !isForceFilter &&\r\n      (column.filterValue === undefined ||\r\n        column.filterValue === null ||\r\n        column.filterValue.length === 0 ||\r\n        column.filterOperator === undefined ||\r\n        column.filterOperator === null)\r\n    ) {\r\n      return;\r\n    }\r\n    const currentFilterList = [];\r\n    for (const element of this.gridColumns) {\r\n      if (\r\n        element.filterOperator === undefined ||\r\n        element.filterOperator === null ||\r\n        element.filterValue === undefined ||\r\n        element.filterValue === null ||\r\n        element.filterValue.toString().length === 0\r\n      ) {\r\n        continue;\r\n      } else {\r\n        currentFilterList.push({\r\n          dataField: element.dataField,\r\n          filterOperator: element.filterOperator,\r\n          filterValue: element.filterValue,\r\n          dataType: element.dataType,\r\n        });\r\n      }\r\n    }\r\n    this.filterColumnList = currentFilterList;\r\n    this.selectedRowKeys = [];\r\n    this.isAllSelected = false;\r\n    this.openRowKeys = [];\r\n    if (!this.isServerOperations) {\r\n      this._filterDataSource();\r\n      this._sortDataSource();\r\n    }\r\n    this.gridPaginator.loadPage(1);\r\n  }\r\n\r\n  _filterDataSource(): void {\r\n    const data = this.filterService.filterData(\r\n      this.filterColumnList,\r\n      this.dataSource.getValue().data\r\n    );\r\n    this.dataSourceClone.data = data;\r\n    this.totalRow = data.length;\r\n  }\r\n\r\n  _removeAllFilters(): void {\r\n    for (const element of this.gridColumns) {\r\n      element.filterOperator = null;\r\n      element.filterValue = null;\r\n    }\r\n    this.filterColumnList = [];\r\n  }\r\n\r\n  _onClickExpandRow(data: any): void {\r\n    if (this.expandRowOnClick === true) {\r\n      return;\r\n    }\r\n    const keyValue = data[this.keyColumnName];\r\n    this._expandRow(keyValue);\r\n  }\r\n\r\n  _expandRow(keyValue: any): void {\r\n    if (this.singleRowExpand === true) {\r\n      this.openRowKeys = [keyValue];\r\n    } else {\r\n      this.openRowKeys.push(keyValue);\r\n    }\r\n  }\r\n\r\n  _onClickCollapseRow(data: any): void {\r\n    if (this.expandRowOnClick === true) {\r\n      return;\r\n    }\r\n    const keyValue = data[this.keyColumnName];\r\n    this._collapseRow(keyValue);\r\n  }\r\n\r\n  _collapseRow(keyValue: any): void {\r\n    const idx = this.openRowKeys.indexOf(keyValue);\r\n    this.openRowKeys.splice(idx, 1);\r\n  }\r\n\r\n  _onClickSelectAll(checked: boolean): void {\r\n    if (this.singleRowSelectEnable) {\r\n      return;\r\n    }\r\n    if (checked) {\r\n      this._selectAll();\r\n    } else {\r\n      this._deselectAll();\r\n    }\r\n  }\r\n\r\n  _deselectAll(): void {\r\n    const selectedRows = this.selectedRowKeys;\r\n    this.selectedRowKeys = [];\r\n    this.isAllSelected = false;\r\n    if (this.onDeselect !== undefined) {\r\n      const event = { data: selectedRows };\r\n      this.onDeselect.emit(event);\r\n    }\r\n  }\r\n\r\n  _selectAll(): void {\r\n    const key = this.keyColumnName;\r\n    const selectedKeys = [];\r\n    if (this.isServerOperations) {\r\n      for (const element of this.currentViewData) {\r\n        selectedKeys.push(element[key]);\r\n      }\r\n    } else {\r\n      for (const element of this.dataSourceClone.data) {\r\n        selectedKeys.push(element[key]);\r\n      }\r\n    }\r\n    this.selectedRowKeys = selectedKeys;\r\n    this.isAllSelected = true;\r\n    if (this.onSelect !== undefined) {\r\n      const event = { data: selectedKeys };\r\n      this.onSelect.emit(event);\r\n    }\r\n  }\r\n\r\n  _onClickSelectRow(checked: boolean, data: any): void {\r\n    if (this.selectRowOnClick === true) {\r\n      return;\r\n    }\r\n    const keyValue = data[this.keyColumnName];\r\n    this._selectRow(keyValue, checked);\r\n  }\r\n\r\n  _selectRow(keyValue: any, checked: boolean): void {\r\n    if (this.singleRowSelectEnable) {\r\n      this.selectedRowKeys = [];\r\n      if (checked) {\r\n        this.selectedRowKeys.push(keyValue);\r\n      }\r\n    } else {\r\n      if (checked) {\r\n        this.selectedRowKeys.push(keyValue);\r\n      } else {\r\n        const idx = this.selectedRowKeys.indexOf(keyValue);\r\n        this.selectedRowKeys.splice(idx, 1);\r\n      }\r\n    }\r\n    if (checked) {\r\n      if (this.onSelect !== undefined) {\r\n        this.onSelect.emit(keyValue);\r\n      }\r\n    } else {\r\n      this.isAllSelected = false;\r\n      if (this.onDeselect !== undefined) {\r\n        this.onDeselect.emit(keyValue);\r\n      }\r\n    }\r\n  }\r\n\r\n  _isSelected(data: any): boolean {\r\n    const keyValue = data[this.keyColumnName];\r\n    return this.selectedRowKeys.indexOf(keyValue) > -1;\r\n  }\r\n\r\n  _isOpenDetailRow(data: any): boolean {\r\n    if (!this.enableMasterDetail) {\r\n      return false;\r\n    }\r\n    const keyValue = data[this.keyColumnName];\r\n    return this.openRowKeys.indexOf(keyValue) > -1;\r\n  }\r\n\r\n  _rowClick(event: any, data: any): void {\r\n    if (this.masterDetailTemplate && this.expandRowOnClick) {\r\n      if (this._isOpenDetailRow(data)) {\r\n        this._collapseRow(data[this.keyColumnName]);\r\n      } else {\r\n        this._expandRow(data[this.keyColumnName]);\r\n      }\r\n    }\r\n    if (\r\n      (this.singleRowSelectEnable || this.multiRowSelectEnable) &&\r\n      this.selectRowOnClick\r\n    ) {\r\n      if (this._isSelected(data)) {\r\n        this._selectRow(data[this.keyColumnName], false);\r\n      } else {\r\n        this._selectRow(data[this.keyColumnName], true);\r\n      }\r\n    }\r\n    if (this.onRowClick) {\r\n      event.data = data;\r\n      this.onRowClick.emit(event);\r\n    }\r\n  }\r\n\r\n  _onColumnChoosing(checked: boolean, col: Column): void {\r\n    col.visible = checked;\r\n    this._setVisibleColumns();\r\n  }\r\n\r\n  _openColumnChooser(): void {\r\n    if (!this.columnChooserOverlayRef.hasAttached()) {\r\n      this.columnChooserOverlayRef.attach(this.columnChooserTemplatePortal);\r\n    }\r\n  }\r\n\r\n  _closeColumnChooser(): void {\r\n    this.columnChooserOverlayRef.detach();\r\n  }\r\n\r\n  _dropColumn(event: CdkDragDrop<string[]>): void {\r\n    moveItemInArray(this.gridColumns, event.previousIndex, event.currentIndex);\r\n    this._setVisibleColumns();\r\n  }\r\n\r\n  _saveState(): void {\r\n    const columns = this._cloneColumns(this.gridColumns);\r\n    const currentStateName = this.currentStateName;\r\n    let editedState;\r\n    for (const element of this.stateList) {\r\n      if (element.name === currentStateName) {\r\n        element.columns = columns;\r\n        editedState = element;\r\n        this.dialogService.open(\r\n          this.translationsService.translate(\"Saved_Successfully\"),\r\n          new NpDialogConfig({ type: \"alert\" }),\r\n          null\r\n        );\r\n      }\r\n    }\r\n    if (this.onStatesUpdate) {\r\n      this.onStatesUpdate.emit({ action: \"edit\", state: editedState });\r\n    }\r\n  }\r\n\r\n  _openDialogAddNewState(): void {\r\n    const promptAddNewState = this.dialogService.open(\r\n      this.translationsService.translate(\"Add_New_State\"),\r\n      new NpDialogConfig({ type: \"prompt\" }),\r\n      null\r\n    );\r\n    promptAddNewState.onClose.subscribe((data) => {\r\n      if (data != undefined && data != null && data.trim().length > 0) {\r\n        this._addState(data);\r\n      }\r\n    });\r\n  }\r\n\r\n  _addState(stateName: string): void {\r\n    const name = stateName.trim();\r\n    const state = this.stateList.filter((element: State) => element.name === name);\r\n    if (state && state.length > 0) {\r\n      this.dialogService.open(\r\n        this.translationsService.translate(\"State_Name_Already_Exists\"),\r\n        new NpDialogConfig({ type: \"alert\" }),\r\n        null\r\n      );\r\n      return;\r\n    }\r\n    const columns = this._cloneColumns(this.gridColumns);\r\n    const newState = new State(name, columns);\r\n    this.stateList.push(newState);\r\n    this.currentStateName = name;\r\n    if (this.onStatesUpdate) {\r\n      this.onStatesUpdate.emit({ action: \"add\", state: newState });\r\n    }\r\n  }\r\n\r\n  _deleteState(): void {\r\n    const currentStateName = this.currentStateName;\r\n    const list = [];\r\n    let deletedState;\r\n    for (const element of this.stateList) {\r\n      if (element.name !== currentStateName) {\r\n        list.push(element);\r\n      } else {\r\n        deletedState = element;\r\n      }\r\n    }\r\n    this.stateList = list;\r\n\r\n    if (this.stateList.length > 0) {\r\n      this.currentStateName = this.stateList[0].name;\r\n    } else {\r\n      this.currentStateName = \"\";\r\n    }\r\n    this._loadState();\r\n    if (this.onStatesUpdate) {\r\n      this.onStatesUpdate.emit({ action: \"delete\", state: deletedState });\r\n    }\r\n    this.dialogService.open(\r\n      this.translationsService.translate(\"Deleted_Successfully\"),\r\n      new NpDialogConfig({ type: \"alert\" }),\r\n      null\r\n    );\r\n  }\r\n\r\n  _loadState(): void {\r\n    const currentStateName = this.currentStateName;\r\n    if (currentStateName === \"\") {\r\n      this.reset();\r\n      return;\r\n    }\r\n    this.loadStateByName(currentStateName);\r\n  }\r\n\r\n  _cloneColumns(cols: Column[]): Column[] {\r\n    const result: Column[] = [];\r\n    for (const element of cols) {\r\n      result.push(new Column(element));\r\n    }\r\n    return result;\r\n  }\r\n\r\n  _onRefresh(): void {\r\n    this.gridPaginator.refresh();\r\n  }\r\n\r\n  _onResetColumns(): void {\r\n    this.reset();\r\n  }\r\n\r\n  _resizeColumn($event: any, column: Column): void {\r\n    let currentWidth = column.width;\r\n    if (isNaN(currentWidth)) {\r\n      currentWidth =\r\n        $event.source.element.nativeElement.parentElement.offsetWidth;\r\n    }\r\n    column.width = (isNaN(currentWidth) ? 0 : currentWidth) + $event.distance.x;\r\n    $event.source.reset();\r\n  }\r\n\r\n  _exportToFile(): void {\r\n    const loadOpt = new LoadOptions();\r\n    if (this.isServerExport) {\r\n      if (this.isODataOperations) {\r\n        loadOpt.odataQuery = this.oDataService.buildQuery(\r\n          this.filterColumnList,\r\n          this.sortColumnList,\r\n          0,\r\n          0,\r\n          false,\r\n          this.odataVersion\r\n        );\r\n        loadOpt.isAllPages = true;\r\n      } else {\r\n        loadOpt.pageNumber = 1;\r\n        loadOpt.pageSize = this.totalRow;\r\n        loadOpt.sortColumns = this.sortColumnList;\r\n        loadOpt.filterColumns = this.filterColumnList;\r\n        loadOpt.isAllPages = true;\r\n      }\r\n      this.onServerExport.emit(loadOpt);\r\n      return;\r\n    }\r\n    if (this.isServerOperations) {\r\n      if (this.isODataOperations) {\r\n        loadOpt.odataQuery = this.oDataService.buildQuery(\r\n          this.filterColumnList,\r\n          this.sortColumnList,\r\n          0,\r\n          0,\r\n          true,\r\n          this.odataVersion\r\n        );\r\n        loadOpt.isAllPages = true;\r\n      } else {\r\n        loadOpt.pageNumber = 1;\r\n        loadOpt.pageSize = this.totalRow;\r\n        loadOpt.sortColumns = this.sortColumnList;\r\n        loadOpt.filterColumns = this.filterColumnList;\r\n        loadOpt.isAllPages = true;\r\n      }\r\n      this.onLoadData.emit(loadOpt);\r\n    } else {\r\n      this.fileService.downloadCSVFile(\r\n        this.dataSourceClone.data,\r\n        this.visibleColumns,\r\n        this.dateFormat\r\n      );\r\n    }\r\n  }\r\n\r\n  _showAllColumns(): void {\r\n    this.gridColumns.forEach((element: Column) => {\r\n      element.visible = true;\r\n    });\r\n    this._setVisibleColumns();\r\n  }\r\n\r\n  _clearColumnSearch(): void {\r\n    this.searchColumnsKeyword = null;\r\n  }\r\n\r\n  _allowRowSelection(): boolean {\r\n    return this.singleRowSelectEnable || this.multiRowSelectEnable;\r\n  }\r\n\r\n  _trackBy(index: number): number {\r\n    return index;\r\n  }\r\n\r\n  _isAnyRowSelected(): boolean {\r\n    return (\r\n      !this.isAllSelected &&\r\n      this.selectedRowKeys &&\r\n      this.selectedRowKeys.length > 0\r\n    );\r\n  }\r\n\r\n  _onClickCheckbox($event: any): void {\r\n    if (this.selectRowOnClick) {\r\n      $event.preventDefault();\r\n    }\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-grid'\" [style.max-height.px]=\"height\" [style.max-width.px]=\"width\" [class]=\"styleClass\"\r\n  [attr.id]=\"inputId\">\r\n  <div class=\"np-grid-title\" *ngIf=\"title\" [innerHTML]=\"title\"></div>\r\n  <div class=\"np-toolbar np-grid-toolbar\" *ngIf=\"showToolBar\">\r\n    <div class=\"np-toolbar-item\" *ngIf=\"showColumnChooser\">\r\n      <button class=\"np-btn-icon np-column-chooser-btn\" id=\"btn-column-chooser\" type=\"button\"\r\n        (click)=\"_openColumnChooser()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M4 5v13h17V5H4zm10 2v9h-3V7h3zM6 7h3v9H6V7zm13 9h-3V7h3v9z\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-toolbar-item\" *ngIf=\"isFilterAvailable\">\r\n      <button class=\"np-btn-icon np-toggle-filter-btn\" type=\"button\" (click)=\"showFilters = !showFilters\">\r\n        <svg class=\"np-icon\" *ngIf=\"!showFilters\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M15,19.88C15.04,20.18 14.94,20.5 14.71,20.71C14.32,21.1 13.69,21.1 13.3,20.71L9.29,16.7C9.06,16.47 8.96,16.16 9,15.87V10.75L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L15,10.75V19.88M7.04,5L11,10.06V15.58L13,17.58V10.05L16.96,5H7.04Z\">\r\n          </path>\r\n        </svg>\r\n        <svg class=\"np-icon\" *ngIf=\"showFilters\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M14.73,20.83L17.58,18L14.73,15.17L16.15,13.76L19,16.57L21.8,13.76L23.22,15.17L20.41,18L23.22,20.83L21.8,22.24L19,19.4L16.15,22.24L14.73,20.83M13,19.88C13.04,20.18 12.94,20.5 12.71,20.71C12.32,21.1 11.69,21.1 11.3,20.71L7.29,16.7C7.06,16.47 6.96,16.16 7,15.87V10.75L2.21,4.62C1.87,4.19 1.95,3.56 2.38,3.22C2.57,3.08 2.78,3 3,3V3H17V3C17.22,3 17.43,3.08 17.62,3.22C18.05,3.56 18.13,4.19 17.79,4.62L13,10.75V19.88M5.04,5L9,10.06V15.58L11,17.58V10.05L14.96,5H5.04Z\">\r\n          </path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-toolbar-item\" *ngIf=\"allowExport\">\r\n      <button class=\"np-btn-icon np-grid-export-btn\" type=\"button\" (click)=\"_exportToFile()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z\">\r\n          </path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-toolbar-spacer\"></div>\r\n    <ng-container *ngIf=\"enableStateStoring\">\r\n      <div class=\"np-toolbar-item\">\r\n        <select class=\"np-form-control np-grid-states\" [(ngModel)]=\"currentStateName\" (change)=\"_loadState()\">\r\n          <option value>{{ \"Select\" | npTranslate }}</option>\r\n          <option *ngFor=\"let state of stateList; trackBy: _trackBy\" [text]=\"state.name\" [value]=\"state.name\"></option>\r\n        </select>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"currentStateName.length > 0 && !isReadOnlyStates\">\r\n        <button class=\"np-btn-icon np-grid-state-save\" type=\"button\" (click)=\"_saveState()\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path\r\n              d=\"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm2 16H5V5h11.17L19 7.83V19zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zM6 6h9v4H6z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"currentStateName.length > 0 && !isReadOnlyStates\">\r\n        <button class=\"np-btn-icon np-grid-state-delete\" type=\"button\" (click)=\"_deleteState()\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path\r\n              d=\"M14.12 10.47L12 12.59l-2.13-2.12-1.41 1.41L10.59 14l-2.12 2.12 1.41 1.41L12 15.41l2.12 2.12 1.41-1.41L13.41 14l2.12-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4zM6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\">\r\n        <button class=\"np-btn-icon np-grid-state-add\" type=\"button\" *ngIf=\"!isReadOnlyStates\"\r\n          (click)=\"_openDialogAddNewState()\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path\r\n              d=\"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-8-2h2v-4h4v-2h-4V7h-2v4H7v2h4z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n    </ng-container>\r\n  </div>\r\n  <div class=\"np-grid-container\">\r\n    <div class=\"np-grid-thead\">\r\n      <table role=\"grid\">\r\n        <colgroup>\r\n          <col *ngIf=\"enableMasterDetail\" class=\"np-grid-col-width\" />\r\n          <col *ngIf=\"_allowRowSelection()\" class=\"np-grid-col-width\" />\r\n          <col *ngFor=\"let column of visibleColumns; trackBy: _trackBy\" [style.width.px]=\"column.width\" />\r\n        </colgroup>\r\n        <thead>\r\n          <tr class=\"np-row-header\">\r\n            <th *ngIf=\"enableMasterDetail\"></th>\r\n            <th *ngIf=\"_allowRowSelection()\" class=\"no-padding\">\r\n              <np-checkbox *ngIf=\"multiRowSelectEnable\" [(ngModel)]=\"isAllSelected\"\r\n                [indeterminate]=\"_isAnyRowSelected()\" (onChange)=\"_onClickSelectAll($event)\">\r\n              </np-checkbox>\r\n            </th>\r\n            <th *ngFor=\"\r\n                let column of visibleColumns;\r\n                let k = index;\r\n                trackBy: _trackBy\r\n              \">\r\n              <span [innerHTML]=\"column.caption\" (click)=\"_onSort(column)\"\r\n                [ngClass]=\"{ 'np-grid-sorting-header': column.sortEnable }\">\r\n              </span>\r\n              <ng-container *ngIf=\"column.sortEnable\">\r\n                <button type=\"button\" [ngClass]=\"{\r\n                    'np-sort-ascending':\r\n                      column.sortDirection === sortDirections.Ascending,\r\n                    'np-sort-descending':\r\n                      column.sortDirection === sortDirections.Descending,\r\n                    'np-sort-toggle': !column.sortDirection\r\n                  }\" (click)=\"_onSort(column)\">\r\n                  <svg class=\"np-icon\" *ngIf=\"column.sortDirection === sortDirections.Ascending\" viewBox=\"0 0 24 24\">\r\n                    <path d=\"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"></path>\r\n                  </svg>\r\n                  <svg class=\"np-icon\" *ngIf=\"column.sortDirection === sortDirections.Descending\" viewBox=\"0 0 24 24\">\r\n                    <path d=\"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"></path>\r\n                  </svg>\r\n                  <svg class=\"np-icon\" *ngIf=\"!column.sortDirection\" viewBox=\"0 0 24 24\">\r\n                    <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n                    <path d=\"M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z\"></path>\r\n                  </svg>\r\n                </button>\r\n              </ng-container>\r\n              <div class=\"np-grid-resize-handle\" *ngIf=\"allowColumnResize\" cdkDrag cdkDragLockAxis=\"x\"\r\n                (cdkDragEnded)=\"_resizeColumn($event, column)\"></div>\r\n            </th>\r\n          </tr>\r\n          <tr class=\"np-row-filter\" *ngIf=\"isFilterAvailable && showFilters\">\r\n            <th *ngIf=\"enableMasterDetail\"></th>\r\n            <th *ngIf=\"_allowRowSelection()\"></th>\r\n            <th *ngFor=\"\r\n                let column of visibleColumns;\r\n                let l = index;\r\n                trackBy: _trackBy\r\n              \">\r\n              <ng-container *ngIf=\"column.filterEnable\">\r\n                <select class=\"np-form-control np-grid-filter-type\" [(ngModel)]=\"column.filterOperator\"\r\n                  (change)=\"_onFilter(column, false)\">\r\n                  <option [value]=\"undefined\" disabled hidden>\r\n                    {{ \"Select\" | npTranslate }}\r\n                  </option>\r\n                  <option *ngFor=\"\r\n                      let fOperator of filtersList\r\n                        | filterTypesPipe: column.dataType;\r\n                      trackBy: _trackBy\r\n                    \" [text]=\"fOperator.text | npTranslate\" [value]=\"fOperator.name\"></option>\r\n                  <option value=\"Reset\" [disabled]=\"column.filterOperator === undefined\">\r\n                    {{ \"Reset\" | npTranslate }}\r\n                  </option>\r\n                </select>\r\n                <input class=\"np-form-control np-grid-filter-val\" type=\"text\"\r\n                  *ngIf=\"column.dataType === dataTypes.String\" [(ngModel)]=\"column.filterValue\"\r\n                  (change)=\"_onFilter(column, false)\" [placeholder]=\"'Search' | npTranslate\" />\r\n                <input class=\"np-form-control np-grid-filter-val\" type=\"number\"\r\n                  *ngIf=\"column.dataType === dataTypes.Number\" [(ngModel)]=\"column.filterValue\"\r\n                  (change)=\"_onFilter(column, false)\" [placeholder]=\"'Search' | npTranslate\" />\r\n                <np-date-picker *ngIf=\"column.dataType === dataTypes.Date\" [format]=\"dateFormat\"\r\n                  [styleClass]=\"'np-grid-filter-val'\" [(ngModel)]=\"column.filterValue\"\r\n                  (onChange)=\"_onFilter(column, false)\" [placeholder]=\"dateFormat\">\r\n                </np-date-picker>\r\n                <select class=\"np-form-control np-grid-filter-val\" *ngIf=\"column.dataType === dataTypes.Boolean\"\r\n                  [(ngModel)]=\"column.filterValue\" (change)=\"_onFilter(column, false)\">\r\n                  <option [value]=\"undefined\" disabled hidden>\r\n                    {{ \"Select\" | npTranslate }}\r\n                  </option>\r\n                  <option [value]=\"true\">\r\n                    {{\r\n                    column.trueFilterText\r\n                    ? column.trueFilterText\r\n                    : (\"True\" | npTranslate)\r\n                    }}\r\n                  </option>\r\n                  <option [value]=\"false\">\r\n                    {{\r\n                    column.falseFilterText\r\n                    ? column.falseFilterText\r\n                    : (\"False\" | npTranslate)\r\n                    }}\r\n                  </option>\r\n                </select>\r\n              </ng-container>\r\n            </th>\r\n          </tr>\r\n        </thead>\r\n      </table>\r\n    </div>\r\n    <div class=\"np-grid-tbody\">\r\n      <table role=\"grid\">\r\n        <colgroup>\r\n          <col *ngIf=\"enableMasterDetail\" class=\"np-grid-col-width\" />\r\n          <col *ngIf=\"_allowRowSelection()\" class=\"np-grid-col-width\" />\r\n          <col *ngFor=\"let column of visibleColumns\" [style.width.px]=\"column.width\" />\r\n        </colgroup>\r\n        <tbody>\r\n          <ng-container *ngFor=\"\r\n              let data of currentViewData;\r\n              let i = index;\r\n              trackBy: _trackBy\r\n            \">\r\n            <tr id=\"row_{{ i }}\" [ngClass]=\"{\r\n                'np-grid-selected': _isSelected(data),\r\n                'np-row-master': enableMasterDetail\r\n              }\" (click)=\"_rowClick($event, data)\">\r\n              <td *ngIf=\"enableMasterDetail\" class=\"no-padding\">\r\n                <button *ngIf=\"!_isOpenDetailRow(data); else collapseRowButton\" class=\"np-detail-row-expand\"\r\n                  type=\"button\" (click)=\"_onClickExpandRow(data)\">\r\n                  <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n                    <path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"></path>\r\n                    <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n                  </svg>\r\n                </button>\r\n                <ng-template #collapseRowButton>\r\n                  <button class=\"np-detail-row-collapse\" type=\"button\" (click)=\"_onClickCollapseRow(data)\">\r\n                    <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n                      <path d=\"M19 13H5v-2h14v2z\"></path>\r\n                      <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n                    </svg>\r\n                  </button>\r\n                </ng-template>\r\n              </td>\r\n              <td *ngIf=\"_allowRowSelection()\" class=\"no-padding\">\r\n                <np-checkbox [ngModel]=\"_isSelected(data)\" (onChange)=\"_onClickSelectRow($event, data)\"\r\n                  (click)=\"_onClickCheckbox($event)\">\r\n                </np-checkbox>\r\n              </td>\r\n              <td *ngFor=\"\r\n                  let column of visibleColumns;\r\n                  let j = index;\r\n                  trackBy: _trackBy\r\n                \" [class]=\"column.styleClass\" [ngClass]=\"{ 'np-text-right': column.rightAlignText }\"\r\n                (click)=\"_onCellClick($event, column, data)\">\r\n                <ng-container *ngIf=\"!column.cellTemplate; else customTemplate\">\r\n                  <ng-container *ngIf=\"\r\n                      column.dataType !== dataTypes.Date;\r\n                      else dateTemplate\r\n                    \">\r\n                    {{ data[column.dataField] }}\r\n                  </ng-container>\r\n                  <ng-template #dateTemplate>\r\n                    {{ data[column.dataField] | date: dateFormat }}\r\n                  </ng-template>\r\n                </ng-container>\r\n                <ng-template #customTemplate [ngTemplateOutlet]=\"column.cellTemplate\"\r\n                  [ngTemplateOutletContext]=\"{ row: data }\">\r\n                </ng-template>\r\n              </td>\r\n            </tr>\r\n            <tr *ngIf=\"enableMasterDetail && _isOpenDetailRow(data)\" class=\"np-row-detail\" id=\"row_{{ i }}_detail\">\r\n              <td [attr.colspan]=\"_colSpanForDetailRow\">\r\n                <ng-container *ngTemplateOutlet=\"\r\n                    masterDetailTemplate;\r\n                    context: { row: data }\r\n                  \">\r\n                </ng-container>\r\n              </td>\r\n            </tr>\r\n          </ng-container>\r\n        </tbody>\r\n      </table>\r\n    </div>\r\n    <div class=\"np-grid-no-data\" *ngIf=\"currentViewData && currentViewData.length === 0\">\r\n      {{ noDataMessage || (\"No_Data_Found\" | npTranslate) }}\r\n    </div>\r\n    <div class=\"np-grid-summary\" *ngIf=\"showSummary\">\r\n      <ng-container *ngTemplateOutlet=\"summaryTemplate; context: { summary: summaryData }\">\r\n      </ng-container>\r\n    </div>\r\n  </div>\r\n  <np-paginator #gridPaginator [pageSize]=\"pageSize\" [totalItems]=\"totalRow\" [styleClass]=\"'np-grid-pagination'\"\r\n    (onPageChange)=\"_onPageChange($event)\">\r\n  </np-paginator>\r\n</div>\r\n<ng-template #columnChooserTemplate>\r\n  <div class=\"np-column-chooser np-border\">\r\n    <div class=\"np-btn-group np-float-right\">\r\n      <button class=\"np-btn-icon np-grid-show-all\" type=\"button\" (click)=\"_showAllColumns()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          <path\r\n            d=\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\">\r\n          </path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon np-grid-reset\" type=\"button\" (click)=\"_onResetColumns()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon np-grid-close\" type=\"button\" (click)=\"_closeColumnChooser()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-grid-search\">\r\n      <input class=\"np-form-control np-grid-search-input\" type=\"text\" [placeholder]=\"'Search_Columns' | npTranslate\"\r\n        [(ngModel)]=\"searchColumnsKeyword\" />\r\n      <button class=\"np-btn-icon np-float-right np-grid-clear\" type=\"button\" (click)=\"_clearColumnSearch()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-grid-columns\" cdkDropList [cdkDropListDisabled]=\"!allowColumnReorder\"\r\n      (cdkDropListDropped)=\"_dropColumn($event)\">\r\n      <div class=\"np-grid-columns-item\" *ngFor=\"\r\n          let column of gridColumns | searchColumnsPipe: searchColumnsKeyword;\r\n          trackBy: _trackBy\r\n        \" cdkDrag cdkDragLockAxis=\"y\" cdkDragBoundary=\".np-grid-columns\">\r\n        <np-checkbox [(ngModel)]=\"column.visible\" [label]=\"column.caption\"\r\n          (onChange)=\"_onColumnChoosing($event, column)\">\r\n        </np-checkbox>\r\n        <div class=\"np-grid-drag-handle\" cdkDragHandle *ngIf=\"allowColumnReorder\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path\r\n              d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\">\r\n            </path>\r\n          </svg>\r\n        </div>\r\n        <div class=\"np-grid-drag-placeholder\" *cdkDragPlaceholder></div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</ng-template>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpTooltipComponent } from \"./np-tooltip.component\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { NpTooltipDirective } from \"./np-tooltip.directive\";\r\n\r\n@NgModule({\r\n    declarations: [NpTooltipComponent, NpTooltipDirective],\r\n    imports: [CommonModule, OverlayModule],\r\n    exports: [NpTooltipDirective]\r\n})\r\nexport class NpTooltipModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpDatePickerComponent } from \"./np-date-picker.component\";\r\nimport { NpTooltipModule } from \"../np-tooltip/np-tooltip.module\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpDatePickerComponent],\r\n  imports: [\r\n    CommonModule,\r\n    OverlayModule,\r\n    PortalModule,\r\n    NpTooltipModule,\r\n    NpAutofocusModule,\r\n    NpTranslationsModule,\r\n  ],\r\n  exports: [NpDatePickerComponent],\r\n})\r\nexport class NpDatePickerModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpDialogContainerComponent } from \"./np-dialog-container.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\nimport { NpDialogService } from \"./np-dialog.service\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\n\r\n@NgModule({\r\n    declarations: [NpDialogContainerComponent],\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        OverlayModule,\r\n        PortalModule,\r\n        NpTranslationsModule,\r\n        NpAutofocusModule,\r\n    ],\r\n    exports: [NpDialogContainerComponent],\r\n    providers: [NpDialogService]\r\n})\r\nexport class NpDialogModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpPaginatorComponent } from \"./np-paginator.component\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpPaginatorComponent],\r\n  imports: [CommonModule, NpTranslationsModule],\r\n  exports: [NpPaginatorComponent],\r\n})\r\nexport class NpPaginatorModule { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  Input,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-checkbox-group\",\r\n  templateUrl: \"./np-checkbox-group.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpCheckboxGroupComponent {\r\n  private static controlCount = 1;\r\n\r\n  // Orientation can be 'horizontal' or 'vertical'\r\n  @Input() orientation: string = \"horizontal\";\r\n  @Input()\r\n  inputId: string = `np-checkbox-group_${NpCheckboxGroupComponent.controlCount++}`;\r\n}\r\n","<div class=\"np-checkbox-group\" role=\"group\" [ngClass]=\"{ 'np-checkbox-group-vertical': orientation === 'vertical' }\"\r\n  [attr.id]=\"inputId\">\r\n  <ng-content></ng-content>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpCheckboxComponent } from \"./np-checkbox.component\";\r\nimport { NpCheckboxGroupComponent } from \"./np-checkbox-group.component\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpCheckboxComponent, NpCheckboxGroupComponent],\r\n  imports: [CommonModule, NpAutofocusModule],\r\n  exports: [NpCheckboxComponent, NpCheckboxGroupComponent],\r\n})\r\nexport class NpCheckboxModule { }\r\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\n\r\nimport { NpDataGridComponent } from \"./np-data-grid.component\";\r\nimport { NpFilterTypesPipe } from \"./pipes/np-filter-types.pipe\";\r\nimport { NpSearchColumnsPipe } from \"./pipes/np-search-columns.pipe\";\r\nimport { NpFileService } from \"./services/np-file.service\";\r\nimport { NpFilterService } from \"./services/np-filter.service\";\r\nimport { NpODataService } from \"./services/np-odata.service\";\r\nimport { NpGridUtilityService } from \"./services/np-grid-utility.service\";\r\nimport { NpDatePickerModule } from \"../np-date-picker/np-date-picker.module\";\r\nimport { NpDialogModule } from \"../np-dialog/np-dialog.module\";\r\nimport { NpPaginatorModule } from \"../np-paginator/np-paginator.module\";\r\nimport { NpCheckboxModule } from \"../np-checkbox/np-checkbox.module\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpDataGridComponent, NpFilterTypesPipe, NpSearchColumnsPipe],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    DragDropModule,\r\n    OverlayModule,\r\n    PortalModule,\r\n    NpDatePickerModule,\r\n    NpDialogModule,\r\n    NpPaginatorModule,\r\n    NpCheckboxModule,\r\n    NpTranslationsModule,\r\n  ],\r\n  exports: [NpDataGridComponent],\r\n  providers: [\r\n    NpFilterService,\r\n    NpGridUtilityService,\r\n    NpODataService,\r\n    NpFileService,\r\n  ],\r\n})\r\nexport class NpDataGridModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  forwardRef,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport {\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  AfterContentInit,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport {\r\n  Overlay,\r\n  OverlayRef,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport { TopBottomOverlayPositions } from \"../np-utility/np-constants\";\r\n\r\n@Component({\r\n  selector: \"np-time-picker\",\r\n  templateUrl: \"np-time-picker.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpTimePickerComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpTimePickerComponent\r\n  implements ControlValueAccessor, AfterViewInit, AfterContentInit {\r\n  private static controlCount = 1;\r\n\r\n  @Input() defaultOpen: boolean = false;\r\n  @Input() is24Hours: boolean = false;\r\n  @Input() showNowButton: boolean = false;\r\n  @Input() hideSeconds: boolean = false;\r\n  @Input() placeholder: string = \"\";\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-time-picker_${NpTimePickerComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"templatePortalContent\") templatePortalContent: TemplateRef<any>;\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  hours: number[] = [];\r\n  minutes: number[] = [];\r\n  seconds: number[] = [];\r\n  isOpen: boolean = false;\r\n  selectedHour: number;\r\n  selectedMinute: number;\r\n  selectedSecond: number;\r\n  selectedAMPM: string = \"AM\";\r\n  pattern: any;\r\n  innerValue: string;\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n  private templatePortal: TemplatePortal<any>;\r\n  private overlayRef: OverlayRef;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  constructor(\r\n    public overlay: Overlay,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef\r\n  ) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(TopBottomOverlayPositions);\r\n    this.overlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      hasBackdrop: true,\r\n      backdropClass: \"np-time-picker-backdrop\",\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n      panelClass: this.styleClass,\r\n    });\r\n    this.templatePortal = new TemplatePortal(\r\n      this.templatePortalContent,\r\n      this.viewContainerRef\r\n    );\r\n    this.overlayRef.backdropClick().subscribe(() => this._close());\r\n  }\r\n\r\n  get value(): string {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: string) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: string): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this._extractValues();\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.hours = [];\r\n    const hoursList = [];\r\n    this.pattern = new RegExp(this._getRegEx());\r\n    if (this.is24Hours) {\r\n      for (let i = 0; i < 24; i++) {\r\n        hoursList.push(i);\r\n      }\r\n    } else {\r\n      for (let i = 0; i < 12; i++) {\r\n        hoursList.push(i);\r\n      }\r\n    }\r\n    this.hours = hoursList;\r\n    const minuteAndSeconds = [];\r\n    for (let i = 0; i < 60; i++) {\r\n      minuteAndSeconds.push(i);\r\n    }\r\n    this.minutes = minuteAndSeconds;\r\n    this.seconds = minuteAndSeconds;\r\n  }\r\n\r\n  get24hrsTimeFormat(): string {\r\n    if (this.is24Hours) {\r\n      return this.value;\r\n    }\r\n    return this.timeConvert12to24(this.value);\r\n  }\r\n\r\n  get12hrsTimeFormat(): string {\r\n    if (this.is24Hours) {\r\n      return this.timeConvert24to12(this.value);\r\n    }\r\n    return this.value;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _minusHour(): void {\r\n    this.selectedHour =\r\n      this.selectedHour === null || this.selectedHour === 0\r\n        ? this.is24Hours\r\n          ? 23\r\n          : 11\r\n        : this.selectedHour - 1;\r\n    this._setValue();\r\n  }\r\n\r\n  _minusMinute(): void {\r\n    this.selectedMinute =\r\n      this.selectedMinute === null || this.selectedMinute === 0\r\n        ? 59\r\n        : this.selectedMinute - 1;\r\n    if (this.selectedMinute === 59) {\r\n      this.selectedHour =\r\n        this.selectedHour === null || this.selectedHour === 0\r\n          ? this.is24Hours\r\n            ? 23\r\n            : 11\r\n          : this.selectedHour - 1;\r\n    }\r\n    this._setValue();\r\n  }\r\n\r\n  _minusSecond(): void {\r\n    this.selectedSecond =\r\n      this.selectedSecond === null || this.selectedSecond === 0\r\n        ? 59\r\n        : this.selectedSecond - 1;\r\n    if (this.selectedSecond === 59) {\r\n      this.selectedMinute =\r\n        this.selectedMinute === null || this.selectedMinute === 0\r\n          ? 59\r\n          : this.selectedMinute - 1;\r\n      if (this.selectedMinute === 59) {\r\n        this.selectedHour =\r\n          this.selectedHour === null || this.selectedHour === 0\r\n            ? this.is24Hours\r\n              ? 23\r\n              : 11\r\n            : this.selectedHour - 1;\r\n      }\r\n    }\r\n    this._setValue();\r\n  }\r\n\r\n  _addHour(): void {\r\n    if (this.selectedHour > (this.is24Hours ? 23 : 11)) {\r\n      this.selectedHour = this.is24Hours ? 23 : 11;\r\n    }\r\n    this.selectedHour =\r\n      this.selectedHour === null ||\r\n        this.selectedHour === (this.is24Hours ? 23 : 11)\r\n        ? 0\r\n        : this.selectedHour + 1;\r\n    this._setValue();\r\n  }\r\n\r\n  _addMinute(): void {\r\n    if (this.selectedMinute > 59) {\r\n      this.selectedMinute = 59;\r\n    }\r\n    this.selectedMinute =\r\n      this.selectedMinute === null || this.selectedMinute === 59\r\n        ? 0\r\n        : this.selectedMinute + 1;\r\n    if (this.selectedMinute === 0) {\r\n      this.selectedHour =\r\n        this.selectedHour === null ||\r\n          this.selectedHour === (this.is24Hours ? 23 : 11)\r\n          ? 0\r\n          : this.selectedHour + 1;\r\n    }\r\n    this._setValue();\r\n  }\r\n\r\n  _addSecond(): void {\r\n    if (this.selectedSecond > 59) {\r\n      this.selectedSecond = 59;\r\n    }\r\n    this.selectedSecond =\r\n      this.selectedSecond === null || this.selectedSecond === 59\r\n        ? 0\r\n        : this.selectedSecond + 1;\r\n    if (this.selectedSecond === 0) {\r\n      this.selectedMinute =\r\n        this.selectedMinute === null || this.selectedMinute === 59\r\n          ? 0\r\n          : this.selectedMinute + 1;\r\n      if (this.selectedMinute === 0) {\r\n        this.selectedHour =\r\n          this.selectedHour === null ||\r\n            this.selectedHour === (this.is24Hours ? 23 : 11)\r\n            ? 0\r\n            : this.selectedHour + 1;\r\n      }\r\n    }\r\n    this._setValue();\r\n  }\r\n\r\n  _changeTime($event: any, arg: string): void {\r\n    if (arg === \"hour\") {\r\n      this.selectedHour = Number($event.target.value);\r\n    } else if (arg === \"minute\") {\r\n      this.selectedMinute = Number($event.target.value);\r\n    } else if (arg === \"second\") {\r\n      this.selectedSecond = Number($event.target.value);\r\n    } else if (arg === \"AMPM\") {\r\n      this.selectedAMPM = $event.target.value;\r\n    }\r\n    this._setValue();\r\n  }\r\n\r\n  _setValue(): void {\r\n    if (this.is24Hours) {\r\n      this.value = `${this._getHours()}:${this._getMinutes()}${this._getSeconds()}`;\r\n    } else {\r\n      this.value = `${this._getHours()}:${this._getMinutes()}${this._getSeconds()} ${this.selectedAMPM\r\n        }`;\r\n    }\r\n  }\r\n\r\n  _getHours(): string {\r\n    return this.selectedHour\r\n      ? this.selectedHour.toString().padStart(2, \"0\")\r\n      : \"00\";\r\n  }\r\n\r\n  _getMinutes(): string {\r\n    return this.selectedMinute\r\n      ? this.selectedMinute.toString().padStart(2, \"0\")\r\n      : \"00\";\r\n  }\r\n\r\n  _getSeconds(): string {\r\n    return this.hideSeconds\r\n      ? \"\"\r\n      : \":\" +\r\n      (this.selectedSecond\r\n        ? this.selectedSecond.toString().padStart(2, \"0\")\r\n        : \"00\");\r\n  }\r\n\r\n  private timeConvert12to24(time: string): string {\r\n    const PM: boolean = time.match(\"PM\") ? true : false;\r\n    const timeArray: string[] = time.split(\":\");\r\n    const min: string = timeArray[1];\r\n    let hour: string;\r\n    let sec: string;\r\n    if (PM) {\r\n      hour = (12 + parseInt(timeArray[0], 10)).toString();\r\n      sec = timeArray[2].replace(\"PM\", \"\");\r\n    } else {\r\n      hour = timeArray[0];\r\n      sec = timeArray[2].replace(\"AM\", \"\");\r\n    }\r\n    return `${hour}:${min}:${sec}`;\r\n  }\r\n\r\n  private timeConvert24to12(time: string): string {\r\n    const values = time.split(\":\");\r\n    const hour24 = Number(values[0]);\r\n    const hour12 = hour24 % 12 || 12;\r\n    const ampm = hour24 < 12 || hour24 === 24 ? \"AM\" : \"PM\";\r\n    return `${hour12\r\n      .toString()\r\n      .padStart(2, \"0\")}:${values[1]\r\n        .toString()\r\n        .padStart(2, \"0\")}:${values[2].toString().padStart(2, \"0\")} ${ampm}`;\r\n  }\r\n\r\n  _toggleTimePicker(): void {\r\n    if (this.isOpen) {\r\n      this._close();\r\n    } else {\r\n      this._open();\r\n    }\r\n  }\r\n\r\n  _open(): void {\r\n    if (this.defaultOpen === true || this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.isOpen = true;\r\n    if (!this.overlayRef.hasAttached()) {\r\n      this.overlayRef.attach(this.templatePortal);\r\n    }\r\n  }\r\n\r\n  _close(): void {\r\n    if (this.defaultOpen) {\r\n      return;\r\n    }\r\n    this.isOpen = false;\r\n    this.overlayRef.detach();\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _extractValues(): void {\r\n    if (\r\n      this.value === undefined ||\r\n      this.value === null ||\r\n      !this.pattern.test(this.value)\r\n    ) {\r\n      this._clearSelectedValue();\r\n      return;\r\n    }\r\n    if (this.is24Hours === true) {\r\n      const result24 = this.timeConvert12to24(this.value);\r\n      const timeArray24 = result24.split(\":\");\r\n      this.selectedHour = Number(timeArray24[0]);\r\n      this.selectedMinute = Number(timeArray24[1]);\r\n      if (!this.hideSeconds) {\r\n        this.selectedSecond = Number(timeArray24[2]);\r\n      }\r\n    } else {\r\n      const result = this.value.split(\" \");\r\n      this.selectedAMPM = result[1].toLowerCase() === \"am\" ? \"AM\" : \"PM\";\r\n      const timeArray = result[0].split(\":\");\r\n      this.selectedHour = Number(timeArray[0]);\r\n      this.selectedMinute = Number(timeArray[1]);\r\n      if (!this.hideSeconds) {\r\n        this.selectedSecond = Number(timeArray[2]);\r\n      }\r\n    }\r\n\r\n    let isChanged = false;\r\n    if (this.selectedHour > (this.is24Hours ? 23 : 11)) {\r\n      isChanged = true;\r\n      this.selectedHour = this.is24Hours ? 23 : 11;\r\n    }\r\n    if (this.selectedMinute > 59) {\r\n      isChanged = true;\r\n      this.selectedMinute = 59;\r\n    }\r\n    if (this.selectedSecond > 59) {\r\n      isChanged = true;\r\n      this.selectedSecond = 59;\r\n    }\r\n    if (isChanged) {\r\n      this._setValue();\r\n    }\r\n  }\r\n\r\n  _selectNowTime(): void {\r\n    const today = new Date();\r\n    let nowTime = `${today\r\n      .getHours()\r\n      .toString()\r\n      .padStart(2, \"0\")}:${today.getMinutes().toString().padStart(2, \"0\")}${this.hideSeconds\r\n        ? \"\"\r\n        : \":\" + today.getSeconds().toString().padStart(2, \"0\")\r\n      }`;\r\n    if (!this.is24Hours) {\r\n      nowTime = this.timeConvert24to12(nowTime);\r\n    }\r\n    this.value = nowTime;\r\n    this._extractValues();\r\n    this._close();\r\n  }\r\n\r\n  _clear(): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.value = null;\r\n    this._clearSelectedValue();\r\n    this._close();\r\n  }\r\n\r\n  _clearSelectedValue(): void {\r\n    this.selectedHour = null;\r\n    this.selectedMinute = null;\r\n    this.selectedSecond = null;\r\n  }\r\n\r\n  _changeAMPM(): void {\r\n    this.selectedAMPM = this.selectedAMPM === \"AM\" ? \"PM\" : \"AM\";\r\n    this._setValue();\r\n  }\r\n\r\n  _onKeydown(event: KeyboardEvent): void {\r\n    if (event.key === \"Tab\" || event.key === \"Escape\") {\r\n      this._close();\r\n    }\r\n    if (event.key === \"ArrowDown\") {\r\n      this._open();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  _onInputChange($event: any): void {\r\n    let time = $event.target.value.trim();\r\n    time = time.toUpperCase();\r\n    const isValid = this.pattern.test(time);\r\n    if (!isValid) {\r\n      $event.target.value = \"\";\r\n    }\r\n    this.value = isValid ? time : null;\r\n    this._extractValues();\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _getRegEx(): string {\r\n    if (this.is24Hours) {\r\n      if (this.hideSeconds) {\r\n        return \"^(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[0-5][0-9])$\";\r\n      } else {\r\n        return \"^(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[0-5][0-9]):(0[0-9]|[0-5][0-9])$\";\r\n      }\r\n    } else {\r\n      if (this.hideSeconds) {\r\n        return \"^(0[0-9]|1[0-1]):(0[0-9]|[0-5][0-9]) ?(AM|PM)$\";\r\n      } else {\r\n        return \"^(0[0-9]|1[0-1]):(0[0-9]|[0-5][0-9]):(0[0-9]|[0-5][0-9]) ?(AM|PM)$\";\r\n      }\r\n    }\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-time-picker': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-input-group\" *ngIf=\"!defaultOpen; else templatePortalContent\" [ngClass]=\"{ 'np-focused': focused }\">\r\n    <input class=\"np-form-control\" type=\"text\" #control autocomplete=\"off\" [value]=\"value\" [placeholder]=\"placeholder\"\r\n      [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\" [readonly]=\"readOnly\" [disabled]=\"isDisabled\"\r\n      (click)=\"_open()\" (keydown)=\"_onKeydown($event)\" (change)=\"_onInputChange($event)\" (blur)=\"_onBlur($event)\"\r\n      (focus)=\"_onFocus($event)\" />\r\n    <div class=\"np-input-group-append\">\r\n      <button class=\"np-btn-icon np-toggle-overlay\" type=\"button\" tabindex=\"-1\" (click)=\"_toggleTimePicker()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          <path\r\n            d=\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\">\r\n          </path>\r\n          <path d=\"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n</div>\r\n<ng-template #templatePortalContent>\r\n  <div class=\"np-time-picker-overlay\" [ngClass]=\"{ 'np-overlay-open': defaultOpen }\">\r\n    <div class=\"np-time-picker-header\">\r\n      <div>{{ is24Hours ? \"HH\" : \"hh\" }}</div>\r\n      <div>mm</div>\r\n      <div *ngIf=\"hideSeconds === false\">ss</div>\r\n      <div *ngIf=\"is24Hours === false\">tt</div>\r\n    </div>\r\n    <div class=\"np-time-picker-controls\">\r\n      <button class=\"np-btn-icon\" type=\"button\" tabindex=\"-1\" (click)=\"_minusHour()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon\" type=\"button\" tabindex=\"-1\" (click)=\"_minusMinute()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon\" type=\"button\" *ngIf=\"hideSeconds === false\" tabindex=\"-1\" (click)=\"_minusSecond()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon\" type=\"button\" *ngIf=\"is24Hours === false\" tabindex=\"-1\" (click)=\"_changeAMPM()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-time-picker-controls\">\r\n      <select class=\"np-time-picker-select np-time-picker-hour\" tabindex=\"-1\" (change)=\"_changeTime($event, 'hour')\"\r\n        size=\"4\">\r\n        <option *ngFor=\"let hour of hours\" [value]=\"hour\" [text]=\"hour\" [selected]=\"hour === selectedHour\"></option>\r\n      </select>\r\n      <select class=\"np-time-picker-select np-time-picker-minute\" tabindex=\"-1\" (change)=\"_changeTime($event, 'minute')\"\r\n        size=\"4\">\r\n        <option *ngFor=\"let minute of minutes\" tabindex=\"-1\" [value]=\"minute\" [text]=\"minute\"\r\n          [selected]=\"minute === selectedMinute\"></option>\r\n      </select>\r\n      <select class=\"np-time-picker-select np-time-picker-second\" *ngIf=\"hideSeconds === false\" tabindex=\"-1\"\r\n        (change)=\"_changeTime($event, 'second')\" size=\"4\">\r\n        <option *ngFor=\"let second of seconds\" [value]=\"second\" [text]=\"second\" [selected]=\"second === selectedSecond\">\r\n        </option>\r\n      </select>\r\n      <select class=\"np-time-picker-select np-time-picker-ampm\" *ngIf=\"is24Hours === false\" tabindex=\"-1\"\r\n        (change)=\"_changeTime($event, 'AMPM')\" size=\"2\">\r\n        <option value=\"AM\" [selected]=\"'AM' === selectedAMPM\">AM</option>\r\n        <option value=\"PM\" [selected]=\"'PM' === selectedAMPM\">PM</option>\r\n      </select>\r\n    </div>\r\n    <div class=\"np-time-picker-controls\">\r\n      <button class=\"np-btn-icon\" type=\"button\" tabindex=\"-1\" (click)=\"_addHour()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"></path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon\" type=\"button\" tabindex=\"-1\" (click)=\"_addMinute()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"></path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon\" type=\"button\" *ngIf=\"hideSeconds === false\" tabindex=\"-1\" (click)=\"_addSecond()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"></path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon\" type=\"button\" *ngIf=\"is24Hours === false\" tabindex=\"-1\" (click)=\"_changeAMPM()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"></path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-time-picker-footer\">\r\n      <button class=\"np-btn np-btn-primary np-ok\" type=\"button\" *ngIf=\"!defaultOpen\" tabindex=\"-1\" (click)=\"_close()\">\r\n        {{ \"Ok\" | npTranslate }}\r\n      </button>\r\n      <button class=\"np-btn np-btn-primary np-now\" type=\"button\" *ngIf=\"showNowButton\" tabindex=\"-1\"\r\n        (click)=\"_selectNowTime()\">\r\n        {{ \"Now\" | npTranslate }}\r\n      </button>\r\n      <button class=\"np-btn np-btn-danger np-clear\" type=\"button\" tabindex=\"-1\" (click)=\"_clear()\">\r\n        {{ \"Clear\" | npTranslate }}\r\n      </button>\r\n    </div>\r\n  </div>\r\n</ng-template>","import { NgModule } from \"@angular/core\";\r\nimport { NpTimePickerComponent } from \"./np-time-picker.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpTimePickerComponent],\r\n  imports: [\r\n    CommonModule,\r\n    OverlayModule,\r\n    PortalModule,\r\n    NpAutofocusModule,\r\n    NpTranslationsModule,\r\n  ],\r\n  exports: [NpTimePickerComponent],\r\n})\r\nexport class NpTimePickerModule { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  forwardRef,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ElementRef,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"np-switch\",\r\n  templateUrl: \"./np-switch.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpSwitchComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpSwitchComponent implements ControlValueAccessor {\r\n  private static controlCount = 1;\r\n\r\n  @Input() trueLabelText: string;\r\n  @Input() falseLabelText: string;\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-switch_${NpSwitchComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  innerValue: boolean;\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  get value(): boolean {\r\n    return this.innerValue;\r\n  }\r\n\r\n  set value(v: boolean) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: boolean): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _onClickSwitch($event: any): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.value = $event.target.checked;\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _getInputId(): string {\r\n    return this.inputId + \"_input\";\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-switch': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly,\r\n    'np-focused': focused\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\" role=\"switch\" [attr.aria-checked]=\"innerValue\">\r\n  <label (change)=\"_onClickSwitch($event)\" [attr.for]=\"_getInputId()\">\r\n    <input class=\"np-switch-input\" type=\"checkbox\" #control [attr.id]=\"_getInputId()\" [checked]=\"innerValue\"\r\n      [disabled]=\"isDisabled\" [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\" [readonly]=\"readOnly\"\r\n      (blur)=\"_onBlur($event)\" (focus)=\"_onFocus($event)\" />\r\n    <div class=\"np-switch-label\" [ngClass]=\"{ 'np-switch-danger': value === false }\">\r\n      <span>{{\r\n        falseLabelText ? falseLabelText : (\"False\" | npTranslate)\r\n        }}</span>\r\n    </div>\r\n    <div class=\"np-switch-label\" [ngClass]=\"{ 'np-switch-success': value === true }\">\r\n      <span>{{ trueLabelText ? trueLabelText : (\"True\" | npTranslate) }}</span>\r\n    </div>\r\n  </label>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpSwitchComponent } from \"./np-switch.component\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpSwitchComponent],\r\n  imports: [CommonModule, NpAutofocusModule, NpTranslationsModule],\r\n  exports: [NpSwitchComponent],\r\n})\r\nexport class NpSwitchModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { NpNotification } from \"./np-notification.model\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class NpNotificationsService {\r\n  messages: NpNotification[] = [];\r\n\r\n  show(msg: NpNotification): void {\r\n    this.messages.push(msg);\r\n    setTimeout(\r\n      () => {\r\n        this.close(msg);\r\n      },\r\n      msg.autoCloseTimeout\r\n    );\r\n  }\r\n\r\n  close(msg: NpNotification): void {\r\n    const idx = this.messages.indexOf(msg);\r\n    if (idx > -1) {\r\n      this.messages.splice(idx, 1);\r\n    }\r\n  }\r\n\r\n  closeAll(): void {\r\n    this.messages = [];\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  Input,\r\n} from \"@angular/core\";\r\nimport { NpNotificationsService } from \"./np-notifications.service\";\r\nimport { NpNotification } from \"./np-notification.model\";\r\n\r\n@Component({\r\n  selector: \"np-notifications\",\r\n  templateUrl: \"./np-notifications.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpNotificationsComponent {\r\n  private static controlCount = 1;\r\n\r\n  @Input() styleClass: string;\r\n  @Input()\r\n  inputId: string = `np-notifications_${NpNotificationsComponent.controlCount++}`;\r\n\r\n  constructor(private npNotificationsService: NpNotificationsService) { }\r\n\r\n  get messageService(): NpNotificationsService {\r\n    return this.npNotificationsService;\r\n  }\r\n\r\n  _close(msg: NpNotification): void {\r\n    this.npNotificationsService.close(msg);\r\n  }\r\n\r\n  _closeAll(): void {\r\n    this.npNotificationsService.closeAll();\r\n  }\r\n}\r\n","<div *ngIf=\"messageService\" [ngClass]=\"'np-notifications'\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <ng-container *ngFor=\"let msg of messageService.messages\">\r\n    <div class=\"np-alert\" role=\"alert\" aria-atomic=\"true\" aria-live=\"assertive\" [attr.id]=\"msg._getId()\" [ngClass]=\"{\r\n        'np-alert-success': msg.type === 'success',\r\n        'np-alert-danger': msg.type === 'danger',\r\n        'np-alert-warning': msg.type === 'warning',\r\n        'np-alert-info': msg.type === 'info'\r\n      }\">\r\n      <div class=\"np-alert-icon\">\r\n        <svg class=\"np-icon\" *ngIf=\"msg.type === 'success'\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          <path\r\n            d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\">\r\n          </path>\r\n        </svg>\r\n        <svg class=\"np-icon\" *ngIf=\"msg.type === 'danger'\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\">\r\n          </path>\r\n        </svg>\r\n        <svg class=\"np-icon\" *ngIf=\"msg.type === 'warning'\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          <path d=\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"></path>\r\n        </svg>\r\n        <svg class=\"np-icon\" *ngIf=\"msg.type === 'info'\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\">\r\n          </path>\r\n        </svg>\r\n      </div>\r\n      <div class=\"np-alert-detail\">\r\n        <div class=\"np-alert-header\" *ngIf=\"msg.header\" [innerHTML]=\"msg.header\"></div>\r\n        <div class=\"np-alert-message\" [innerHTML]=\"msg.message\"></div>\r\n      </div>\r\n      <button class=\"np-btn-icon np-alert-close\" type=\"button\" (click)=\"_close(msg)\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </ng-container>\r\n  <button class=\"np-btn-icon np-alert-close-all\" type=\"button\"\r\n    *ngIf=\"messageService.messages && messageService.messages.length > 1\" (click)=\"_closeAll()\">\r\n    <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n      <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n      </path>\r\n      <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n    </svg>\r\n  </button>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpNotificationsComponent } from \"./np-notifications.component\";\r\n\r\n@NgModule({\r\n  declarations: [NpNotificationsComponent],\r\n  imports: [CommonModule],\r\n  exports: [NpNotificationsComponent],\r\n})\r\nexport class NpNotificationsModule { }\r\n","export class NpNotification {\r\n  constructor(value: any) {\r\n    this.type = value.type;\r\n    this.header = value.header;\r\n    this.message = value.message;\r\n    this.autoCloseTimeout = value.autoCloseTimeout || 10000;\r\n    this.id = Math.floor(Math.random() * 100) + 1;\r\n  }\r\n\r\n  public type: 'success' | 'danger' | 'info' | 'warning';\r\n  public header: string;\r\n  public message: string;\r\n  public autoCloseTimeout: number;\r\n  private id: number;\r\n\r\n  _getId(): number {\r\n    return this.id;\r\n  }\r\n}\r\n","import { NgModule, Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n  name: \"npOrderBy\",\r\n})\r\nexport class NpOrderByPipe implements PipeTransform {\r\n  transform(data: any[], orderBy: string, dir: string): any[] {\r\n    if (data && orderBy && dir) {\r\n      if (dir.toLowerCase() === \"desc\") {\r\n        return data\r\n          .concat()\r\n          .sort((a, b) =>\r\n            a[orderBy] < b[orderBy] ? 1 : b[orderBy] < a[orderBy] ? -1 : 0\r\n          );\r\n      } else {\r\n        return data\r\n          .concat()\r\n          .sort((a, b) =>\r\n            a[orderBy] > b[orderBy] ? 1 : b[orderBy] > a[orderBy] ? -1 : 0\r\n          );\r\n      }\r\n    } else if (data && dir) {\r\n      if (dir.toLowerCase() === \"desc\") {\r\n        return data.concat().sort((a, b) => (a < b ? 1 : b < a ? -1 : 0));\r\n      } else {\r\n        return data.concat().sort((a, b) => (a > b ? 1 : b > a ? -1 : 0));\r\n      }\r\n    } else {\r\n      return data;\r\n    }\r\n  }\r\n}\r\n\r\n@NgModule({\r\n  declarations: [NpOrderByPipe],\r\n  exports: [NpOrderByPipe],\r\n})\r\nexport class NpOrderByModule { }\r\n","import { NgModule, Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n  name: \"npHighlight\",\r\n})\r\nexport class NpHighlightPipe implements PipeTransform {\r\n  transform(text: string, search: string): string {\r\n    if (search && text) {\r\n      let pattern = search.replace(\r\n        /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\r\n        \"\\\\$&\"\r\n      );\r\n      pattern = pattern\r\n        .split(\" \")\r\n        .filter((t) => {\r\n          return t.length > 0;\r\n        })\r\n        .join(\"|\");\r\n      const regex = new RegExp(pattern, \"gi\");\r\n      return text.replace(\r\n        regex,\r\n        (match) => `<span class=\"np-highlight\">${match}</span>`\r\n      );\r\n    } else {\r\n      return text;\r\n    }\r\n  }\r\n}\r\n\r\n@NgModule({\r\n  declarations: [NpHighlightPipe],\r\n  exports: [NpHighlightPipe],\r\n})\r\nexport class NpHighlightModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  forwardRef,\r\n  ViewChild,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport {\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  AfterContentInit,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport {\r\n  Overlay,\r\n  OverlayRef,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport { BehaviorSubject, Subscription } from \"rxjs\";\r\nimport { TopBottomOverlayPositions } from \"../np-utility/np-constants\";\r\n\r\n@Component({\r\n  selector: \"np-auto-complete\",\r\n  templateUrl: \"./np-auto-complete.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpAutoCompleteComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpAutoCompleteComponent\r\n  implements ControlValueAccessor, AfterViewInit, AfterContentInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() searchResult: BehaviorSubject<any[]>;\r\n  @Input() forceToSelect = false;\r\n  @Input() valueKey: string;\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  @Input() searchDelay = 1000;\r\n  @Input() maxResultLimit: number;\r\n  @Input() minSearchCharLimit: number;\r\n  @Input() orderBy: string;\r\n  @Input() orderDir: string;\r\n  @Input() placeholder = \"\";\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input()\r\n  inputId = `np-auto-complete_${NpAutoCompleteComponent.controlCount++}`;\r\n\r\n  @Output() onSearch: EventEmitter<any> = new EventEmitter();\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"templatePortalContent\") templatePortalContent: TemplateRef<any>;\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  searchKeyword: string;\r\n  innerValue: any;\r\n  isDisabled = false;\r\n  subscription: Subscription;\r\n  options: any[];\r\n  searchTimeout: any;\r\n  isLoading = false;\r\n  focused = false;\r\n  isOpen = false;\r\n\r\n  private templatePortal: TemplatePortal<any>;\r\n  private overlayRef: OverlayRef;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  constructor(\r\n    public overlay: Overlay,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef\r\n  ) { }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.subscription = this.searchResult.subscribe((data) => {\r\n      if (data) {\r\n        this.overlayRef.detach();\r\n      }\r\n      if (\r\n        this.maxResultLimit &&\r\n        this.maxResultLimit > 0 &&\r\n        data &&\r\n        data.length > this.maxResultLimit\r\n      ) {\r\n        this.options = data.splice(0, this.maxResultLimit);\r\n      } else {\r\n        this.options = data;\r\n      }\r\n      this.isLoading = false;\r\n      if (data) {\r\n        if (!this.overlayRef.hasAttached()) {\r\n          this.overlayRef.attach(this.templatePortal);\r\n          this.isOpen = true;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(TopBottomOverlayPositions);\r\n    this.overlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      hasBackdrop: true,\r\n      backdropClass: \"np-auto-complete-backdrop\",\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n      panelClass: this.styleClass,\r\n    });\r\n    this.templatePortal = new TemplatePortal(\r\n      this.templatePortalContent,\r\n      this.viewContainerRef\r\n    );\r\n    this.overlayRef.backdropClick().subscribe(() => this._close());\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subscription) {\r\n      this.subscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  get value(): any {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: any) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: any): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _getDisplayValue(): void {\r\n    return this.innerValue || \"\";\r\n  }\r\n\r\n  _close(): void {\r\n    this.overlayRef.detach();\r\n    this.inputViewChild.nativeElement.focus();\r\n    this.isOpen = false;\r\n  }\r\n\r\n  _onInput($event: any): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    const value = $event.target.value.trim();\r\n    if (this.minSearchCharLimit && this.minSearchCharLimit > 0) {\r\n      if (\r\n        value === undefined ||\r\n        value === null ||\r\n        value.length < this.minSearchCharLimit\r\n      ) {\r\n        return;\r\n      }\r\n    }\r\n    this.isLoading = true;\r\n    if (this.searchTimeout) {\r\n      clearTimeout(this.searchTimeout);\r\n    }\r\n    this.searchTimeout = setTimeout(() => {\r\n      this.searchKeyword = value;\r\n      this.onSearch.emit(value);\r\n    }, this.searchDelay);\r\n  }\r\n\r\n  _onInputChange($event: any): void {\r\n    const value = $event.target.value.trim();\r\n    if (!this.forceToSelect) {\r\n      this.value = value;\r\n    }\r\n    if (this.forceToSelect && this.searchResult.value) {\r\n      let valid = false;\r\n      if (this.valueKey) {\r\n        for (const item of this.searchResult.value) {\r\n          if (item[this.valueKey] === value) {\r\n            valid = true;\r\n            break;\r\n          }\r\n        }\r\n      } else {\r\n        for (const item of this.searchResult.value) {\r\n          if (item === value) {\r\n            valid = true;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n      if (!valid) {\r\n        this.value = null;\r\n        this.inputViewChild.nativeElement.value = \"\";\r\n      } else {\r\n        this.value = value;\r\n      }\r\n    }\r\n  }\r\n\r\n  _selectValue(val: any): void {\r\n    this.value = this.valueKey ? val[this.valueKey] : val;\r\n    this._close();\r\n  }\r\n\r\n  _onKeydown(event: KeyboardEvent): void {\r\n    if (event.key === \"Tab\" || event.key === \"Escape\") {\r\n      this._close();\r\n    }\r\n  }\r\n\r\n  _trackBy(index: number): number {\r\n    return index;\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-auto-complete': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\" role=\"combobox\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"isOpen\"\r\n  [attr.aria-owns]=\"inputId + '_listbox'\">\r\n  <div class=\"np-input-group\" [ngClass]=\"{ 'np-focused': focused }\">\r\n    <input class=\"np-form-control\" type=\"text\" #control autocomplete=\"off\" [value]=\"_getDisplayValue()\"\r\n      [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\"\r\n      [readonly]=\"readOnly\" (input)=\"_onInput($event)\" (change)=\"_onInputChange($event)\" (keydown)=\"_onKeydown($event)\"\r\n      (blur)=\"_onBlur($event)\" (focus)=\"_onFocus($event)\" />\r\n    <div class=\"np-input-group-append\">\r\n      <div class=\"np-auto-complete-loader\" *ngIf=\"isLoading\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n<ng-template #templatePortalContent>\r\n  <ul class=\"np-auto-complete-overlay np-list\" role=\"listbox\" [attr.id]=\"inputId + '_listbox'\">\r\n    <ng-container *ngFor=\"\r\n        let item of options | npOrderBy: orderBy:orderDir;\r\n        let i = index;\r\n        trackBy: _trackBy\r\n      \">\r\n      <li class=\"np-list-item\" role=\"option\" (click)=\"_selectValue(item)\">\r\n        <ng-container *ngIf=\"!itemTemplate; else customTemplate\">\r\n          <span [innerHTML]=\"\r\n              (valueKey ? item[valueKey] : item) | npHighlight: searchKeyword\r\n            \"></span>\r\n        </ng-container>\r\n        <ng-template #customTemplate [ngTemplateOutlet]=\"itemTemplate\"\r\n          [ngTemplateOutletContext]=\"{ item: item, keyword: searchKeyword }\">\r\n        </ng-template>\r\n      </li>\r\n    </ng-container>\r\n    <li *ngIf=\"options && options.length === 0\" class=\"np-list-item np-disabled\" role=\"option\">\r\n      <b>{{ \"No_Result_Found\" | npTranslate }}</b>\r\n    </li>\r\n  </ul>\r\n</ng-template>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpAutoCompleteComponent } from \"./np-auto-complete.component\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\nimport { NpOrderByModule } from \"../np-utility/np-orderby.module\";\r\nimport { NpHighlightModule } from \"../np-utility/np-highlight.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpAutoCompleteComponent],\r\n  imports: [\r\n    CommonModule,\r\n    OverlayModule,\r\n    PortalModule,\r\n    NpAutofocusModule,\r\n    NpOrderByModule,\r\n    NpHighlightModule,\r\n    NpTranslationsModule,\r\n  ],\r\n  exports: [NpAutoCompleteComponent],\r\n})\r\nexport class NpAutoCompleteModule { }\r\n","import { Directive } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[npPanelContent]\",\r\n})\r\nexport class NpPanelContent { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  Input,\r\n  TemplateRef,\r\n  Output,\r\n  EventEmitter,\r\n  ElementRef,\r\n  ContentChild,\r\n  ViewContainerRef,\r\n  OnInit,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport { NpPanelContent } from \"./np-panel-content.directive\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\n\r\n@Component({\r\n  selector: \"np-panel\",\r\n  templateUrl: \"./np-panel.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpPanelComponent implements OnInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() title: string | TemplateRef<any>;\r\n  @Input() allowToMinimize: boolean;\r\n  @Input() allowToZoom: boolean;\r\n  @Input() allowToClose: boolean;\r\n  @Input() isOpen: boolean = true;\r\n  @Input() height: number;\r\n  @Input() disabled: boolean;\r\n  @Input() iconCss: string;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-panel_${NpPanelComponent.controlCount++}`;\r\n\r\n  @Output() onExpand: EventEmitter<any> = new EventEmitter();\r\n  @Output() onCollapse: EventEmitter<any> = new EventEmitter();\r\n  @Output() onClose: EventEmitter<any> = new EventEmitter();\r\n  @Output() onZoom: EventEmitter<any> = new EventEmitter();\r\n\r\n  isTitleTemplate: boolean;\r\n  isZoom: boolean = false;\r\n\r\n  @ContentChild(NpPanelContent, { read: TemplateRef, static: true })\r\n  _explicitContent: TemplateRef<any>;\r\n  private _contentPortal: TemplatePortal | null = null;\r\n  get content(): TemplatePortal | null {\r\n    return this._contentPortal;\r\n  }\r\n\r\n  constructor(\r\n    private _viewContainerRef: ViewContainerRef,\r\n    private el: ElementRef\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.title instanceof TemplateRef) {\r\n      this.isTitleTemplate = true;\r\n    }\r\n    if (this.isOpen) {\r\n      if (!this._contentPortal && this._explicitContent) {\r\n        this._contentPortal = new TemplatePortal(\r\n          this._explicitContent,\r\n          this._viewContainerRef\r\n        );\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this._contentPortal && this._contentPortal.isAttached) {\r\n      this._contentPortal.detach();\r\n    }\r\n  }\r\n\r\n  _toggle(): void {\r\n    if (this.disabled || !this.allowToMinimize || this.isZoom) {\r\n      return;\r\n    }\r\n    if (this.isOpen) {\r\n      this.isOpen = false;\r\n      this.onCollapse.emit(this);\r\n      return;\r\n    }\r\n    this.isOpen = true;\r\n    if (!this._contentPortal && this._explicitContent) {\r\n      this._contentPortal = new TemplatePortal(\r\n        this._explicitContent,\r\n        this._viewContainerRef\r\n      );\r\n    }\r\n    this.onExpand.emit(this);\r\n  }\r\n\r\n  _toggleZoom(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n    if (this.isZoom) {\r\n      this.isZoom = false;\r\n      this.onZoom.emit(this);\r\n      return;\r\n    }\r\n    if (!this.isOpen) {\r\n      this._toggle();\r\n    }\r\n    this.isZoom = true;\r\n    this.onZoom.emit(this);\r\n  }\r\n\r\n  _close(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n    this.el.nativeElement.remove();\r\n    this.onClose.emit(this);\r\n  }\r\n\r\n  _getTitleId(): string {\r\n    return this.inputId + \"_title\";\r\n  }\r\n\r\n  _getBodyId(): string {\r\n    return this.inputId + \"_body\";\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-panel': true,\r\n    'np-panel-zoom': isZoom,\r\n    'np-disabled': disabled\r\n  }\" [style.max-height.px]=\"height\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-panel-header\">\r\n    <button class=\"np-panel-title\" [attr.tabindex]=\"disabled || !allowToMinimize ? '-1' : '0'\" [attr.id]=\"_getTitleId()\"\r\n      (click)=\"_toggle()\" [attr.aria-controls]=\"_getBodyId()\" [attr.aria-expanded]=\"isOpen\"\r\n      [attr.aria-disabled]=\"disabled\">\r\n      <i *ngIf=\"iconCss\" [class]=\"iconCss\"></i>\r\n      <span *ngIf=\"!isTitleTemplate\" [innerHTML]=\"title\"></span>\r\n      <ng-container *ngIf=\"isTitleTemplate\" [ngTemplateOutlet]=\"title\">\r\n      </ng-container>\r\n    </button>\r\n    <div class=\"np-panel-btns\">\r\n      <button class=\"np-btn-icon\" type=\"button\" [attr.tabindex]=\"disabled ? '-1' : '0'\"\r\n        *ngIf=\"allowToMinimize && !isZoom\" [ngClass]=\"{ 'np-panel-expand': !isOpen, 'np-panel-collapse': isOpen }\"\r\n        (click)=\"_toggle()\">\r\n        <svg class=\"np-icon\" *ngIf=\"isOpen\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n        <svg class=\"np-icon\" *ngIf=\"!isOpen\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon\" type=\"button\" [attr.tabindex]=\"disabled ? '-1' : '0'\" *ngIf=\"allowToZoom\"\r\n        [ngClass]=\"{ 'np-panel-zoom-in': !isZoom, 'np-panel-zoom-out': isZoom }\" (click)=\"_toggleZoom()\">\r\n        <svg class=\"np-icon\" *ngIf=\"!isZoom\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>\r\n          <path d=\"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z\"></path>\r\n        </svg>\r\n        <svg class=\"np-icon\" *ngIf=\"isZoom\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>\r\n          <path\r\n            d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z\">\r\n          </path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon np-panel-close\" type=\"button\" [attr.tabindex]=\"disabled ? '-1' : '0'\"\r\n        *ngIf=\"allowToClose && !isZoom\" (click)=\"_close()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n  <div class=\"np-panel-body\" role=\"region\" *ngIf=\"isOpen\" [attr.aria-labelledby]=\"_getTitleId()\"\r\n    [attr.id]=\"_getBodyId()\">\r\n    <ng-content></ng-content>\r\n    <ng-template [cdkPortalOutlet]=\"content\"></ng-template>\r\n  </div>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpPanelComponent } from \"./np-panel.component\";\r\nimport { NpPanelContent } from \"./np-panel-content.directive\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\n\r\n@NgModule({\r\n  declarations: [NpPanelComponent, NpPanelContent],\r\n  imports: [CommonModule, PortalModule],\r\n  exports: [NpPanelComponent, NpPanelContent],\r\n})\r\nexport class NpPanelModule { }\r\n","export interface StringHashMap<T> {\r\n  [key: string]: T;\r\n}\r\n\r\nexport class NpMaskService {\r\n  private formatToRegExp: StringHashMap<RegExp> = {\r\n    0: /[0-9]/,\r\n    a: /[a-z]/,\r\n    A: /[A-Z]/,\r\n    B: /[a-zA-Z]/,\r\n  };\r\n\r\n  private allFormatsStr =\r\n    \"(\" +\r\n    Object.keys(this.formatToRegExp)\r\n      .map((key) => this.formatToRegExp[key].toString())\r\n      .map((regexStr) => regexStr.substr(1, regexStr.length - 2))\r\n      .join(\"|\") +\r\n    \")\";\r\n\r\n  private allFormatsGlobal = this.getAllFormatRegexp(\"g\");\r\n\r\n  valueToFormat(\r\n    value: string,\r\n    format: string,\r\n    goingBack = false,\r\n    prevValue?: string\r\n  ): string {\r\n    let maskedValue = \"\";\r\n    const unmaskedValue = this.unmaskValue(value);\r\n    const isLastCharFormatter = !this.getAllFormatRegexp().test(\r\n      value[value.length - 1]\r\n    );\r\n    const isPrevLastCharFormatter =\r\n      prevValue &&\r\n      !this.getAllFormatRegexp().test(prevValue[prevValue.length - 1]);\r\n\r\n    let formatOffset = 0;\r\n    for (\r\n      let i = 0, maxI = Math.min(unmaskedValue.length, format.length);\r\n      i < maxI;\r\n      ++i\r\n    ) {\r\n      const valueChar = unmaskedValue[i];\r\n      let formatChar = format[formatOffset + i];\r\n      let formatRegex = this.getFormatRegexp(formatChar);\r\n\r\n      while (formatChar && !formatRegex) {\r\n        maskedValue += formatChar;\r\n        formatChar = format[++formatOffset + i];\r\n        formatRegex = this.getFormatRegexp(formatChar);\r\n      }\r\n\r\n      if (valueChar && formatRegex) {\r\n        if (formatRegex.test(valueChar)) {\r\n          maskedValue += valueChar;\r\n        } else {\r\n          break;\r\n        }\r\n      }\r\n\r\n      const nextFormatChar = format[formatOffset + i + 1];\r\n      const nextFormatRegex = this.getFormatRegexp(nextFormatChar);\r\n      const isLastIteration = i === maxI - 1;\r\n\r\n      if (isLastIteration && nextFormatChar && !nextFormatRegex) {\r\n        if (!isLastCharFormatter && goingBack) {\r\n          if (prevValue && !isPrevLastCharFormatter) {\r\n            continue;\r\n          }\r\n          maskedValue = maskedValue.substr(0, formatOffset + i);\r\n        } else {\r\n          maskedValue += nextFormatChar;\r\n        }\r\n      }\r\n    }\r\n\r\n    return maskedValue;\r\n  }\r\n\r\n  unmaskValue(value: string): string {\r\n    const unmaskedMathes = value.match(this.allFormatsGlobal);\r\n    return unmaskedMathes ? unmaskedMathes.join(\"\") : \"\";\r\n  }\r\n\r\n  private getAllFormatRegexp(flags?: string): RegExp {\r\n    return new RegExp(this.allFormatsStr, flags);\r\n  }\r\n\r\n  private getFormatRegexp(formatChar: string): RegExp | null {\r\n    return formatChar && this.formatToRegExp[formatChar]\r\n      ? this.formatToRegExp[formatChar]\r\n      : null;\r\n  }\r\n}\r\n","import { Directive, Injector, Input, NgModule, OnInit } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\nimport { NpMaskService } from \"./np-mask.service\";\r\n\r\n@Directive({\r\n  selector: \"[npMask]\",\r\n})\r\nexport class NpMaskDirective implements OnInit {\r\n  @Input(\"npMask\") mask: string;\r\n\r\n  private control: NgControl;\r\n  private lastMaskedValue: string = \"\";\r\n\r\n  constructor(private injector: Injector, private maskService: NpMaskService) { }\r\n\r\n  ngOnInit(): void {\r\n    setTimeout(() => {\r\n      this.control = this.injector.get(NgControl);\r\n\r\n      if (!this.control || !this.control.valueAccessor) {\r\n        return;\r\n      }\r\n\r\n      const originalWriteVal = this.control.valueAccessor.writeValue.bind(\r\n        this.control.valueAccessor\r\n      );\r\n      this.control.valueAccessor.writeValue = (val: any) =>\r\n        originalWriteVal(this._maskValue(val));\r\n\r\n      const originalChange = (this.control.valueAccessor as any).onChange.bind(\r\n        this.control.valueAccessor\r\n      );\r\n      this.control.valueAccessor.registerOnChange((val: any) =>\r\n        originalChange(this._unmaskValue(val))\r\n      );\r\n\r\n      this._setVal(this._maskValue(this.control.value));\r\n    }, 10);\r\n  }\r\n\r\n  private _maskValue(val: string): string {\r\n    if (val === null || val === undefined) {\r\n      return '';\r\n    }\r\n\r\n    if (!this.mask || val === this.lastMaskedValue) {\r\n      return val;\r\n    }\r\n\r\n    const maskedVal = (this.lastMaskedValue = this.maskService.valueToFormat(\r\n      val,\r\n      this.mask,\r\n      this.lastMaskedValue.length > val.length,\r\n      this.lastMaskedValue\r\n    ));\r\n\r\n    return maskedVal;\r\n  }\r\n\r\n  private _unmaskValue(val: string): string {\r\n    const maskedVal = this._maskValue(val);\r\n    const unmaskedVal = this.maskService.unmaskValue(maskedVal);\r\n\r\n    if (maskedVal !== val) {\r\n      this._setVal(maskedVal);\r\n    }\r\n\r\n    return maskedVal ? unmaskedVal : \"\";\r\n  }\r\n\r\n  private _setVal(val: string): void {\r\n    if (this.control.control) {\r\n      this.control.control.setValue(val, { emitEvent: false });\r\n    }\r\n  }\r\n}\r\n\r\n@NgModule({\r\n  declarations: [NpMaskDirective],\r\n  exports: [NpMaskDirective],\r\n  providers: [NpMaskService],\r\n})\r\nexport class NpMaskModule { }\r\n","import {\r\n  NgModule,\r\n  Directive,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  OnDestroy,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  Renderer2,\r\n  EventEmitter,\r\n  Output,\r\n  ContentChild,\r\n  Input,\r\n} from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Directive({\r\n  selector: \"[npDefer]\",\r\n})\r\nexport class NpDeferDirective implements AfterViewInit, OnDestroy {\r\n  @Output() onLoad: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ContentChild(TemplateRef) template: TemplateRef<any>;\r\n\r\n  documentScrollListener: Function;\r\n\r\n  isLoaded = false;\r\n\r\n  constructor(\r\n    public el: ElementRef,\r\n    public renderer: Renderer2,\r\n    public viewContainer: ViewContainerRef\r\n  ) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.shouldLoad()) {\r\n      this.load();\r\n    }\r\n    if (!this.isLoaded) {\r\n      this.documentScrollListener = this.renderer.listen(\r\n        \"window\",\r\n        \"scroll\",\r\n        () => {\r\n          if (this.shouldLoad()) {\r\n            this.load();\r\n          }\r\n        }\r\n      );\r\n    }\r\n  }\r\n\r\n  shouldLoad(): boolean {\r\n    if (this.isLoaded) {\r\n      return false;\r\n    } else {\r\n      let rect = this.el.nativeElement.getBoundingClientRect();\r\n      let docElement = document.documentElement;\r\n      let winHeight = docElement.clientHeight;\r\n      return winHeight >= rect.top;\r\n    }\r\n  }\r\n\r\n  load(): void {\r\n    this.viewContainer.createEmbeddedView(this.template);\r\n    this.isLoaded = true;\r\n    this.documentScrollListener = null;\r\n    this.onLoad.emit();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.isLoaded = false;\r\n  }\r\n}\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  exports: [NpDeferDirective],\r\n  declarations: [NpDeferDirective],\r\n})\r\nexport class NpDeferModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-progress\",\r\n  templateUrl: \"./np-progress.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpProgressComponent {\r\n  private static controlCount = 1;\r\n\r\n  @Input() value: number;\r\n  @Input() styleClass: string;\r\n  @Input() indeterminate: boolean;\r\n  @Input() striped: boolean;\r\n  @Input() animated: boolean;\r\n  @Input() showLabel: boolean = true;\r\n  @Input() height: number;\r\n  @Input() inputId: string = `np-progress_${NpProgressComponent.controlCount++}`;\r\n\r\n  getTextValue(): string {\r\n    return `${this.value}%`;\r\n  }\r\n}\r\n","<div role=\"progressbar\" [ngClass]=\"'np-progress'\" [class]=\"styleClass\" [attr.id]=\"inputId\" [attr.aria-valuenow]=\"value\">\r\n  <div class=\"np-progress-container\" [style.height.px]=\"height\">\r\n    <div class=\"np-progress-bar\" *ngIf=\"!indeterminate\" [style.width.%]=\"value\" [ngClass]=\"{\r\n        'np-progress-striped': striped,\r\n        'np-progress-animated': animated\r\n      }\">\r\n      <span *ngIf=\"showLabel\" [innerHTML]=\"getTextValue()\"></span>\r\n    </div>\r\n    <div class=\"np-progress-bar np-progress-indeterminate\" *ngIf=\"indeterminate\"></div>\r\n  </div>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpProgressComponent } from \"./np-progress.component\";\r\n\r\n@NgModule({\r\n  declarations: [NpProgressComponent],\r\n  imports: [CommonModule],\r\n  exports: [NpProgressComponent],\r\n})\r\nexport class NpProgressModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  OnDestroy,\r\n  TemplateRef,\r\n  HostListener,\r\n  AfterContentInit,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  OnChanges,\r\n  SimpleChanges,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-carousel\",\r\n  templateUrl: \"./np-carousel.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpCarouselComponent\r\n  implements AfterContentInit, OnDestroy, OnChanges {\r\n  private static controlCount = 1;\r\n\r\n  @Input() items: any[] = [];\r\n  @Input() lazyLoaded: boolean;\r\n  @Input() autoPlay: boolean;\r\n  @Input() autoPlayInterval = 5000;\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  @Input() visibleNum: number = 1;\r\n  @Input() scrollNum: number = 1;\r\n  @Input() currentPage: number = 0;\r\n  @Input() pauseOnHover: boolean;\r\n  @Input() showNavigationArrows: boolean = true;\r\n  @Input() showNavigationIndicators: boolean = true;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-carousel_${NpCarouselComponent.controlCount++}`;\r\n\r\n  interval: any;\r\n  startIdx: number;\r\n  endIdx: number;\r\n  isPolite: boolean = false;\r\n\r\n  @HostListener(\"mouseenter\")\r\n  _onMouseEnter(): void {\r\n    if (this.pauseOnHover) {\r\n      this.pause();\r\n    }\r\n  }\r\n\r\n  @HostListener(\"mouseleave\")\r\n  _onMouseLeave(): void {\r\n    if (this.pauseOnHover) {\r\n      this.start();\r\n    }\r\n  }\r\n\r\n  pause(): void {\r\n    if (this.autoPlay) {\r\n      clearInterval(this.interval);\r\n      this.isPolite = true;\r\n    }\r\n  }\r\n\r\n  start(): void {\r\n    if (this.autoPlay) {\r\n      this._setAutoSlideChange();\r\n    }\r\n  }\r\n\r\n  select(page: number): void {\r\n    this._goToPage(page);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.autoPlay) {\r\n      clearInterval(this.interval);\r\n      this.isPolite = true;\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this._getSlidesFromPage();\r\n    if (this.autoPlay) {\r\n      this._setAutoSlideChange();\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes[\"scrollNum\"] || changes[\"visibleNum\"]) {\r\n      this._getSlidesFromPage();\r\n    }\r\n  }\r\n\r\n  _totalPages(): number {\r\n    if (this.items === undefined || this.items === null) {\r\n      return 0;\r\n    }\r\n    return Math.ceil(\r\n      (this.items.length - this.visibleNum + this.scrollNum) / this.scrollNum\r\n    );\r\n  }\r\n\r\n  getTotalPages(): number {\r\n    return this._totalPages();\r\n  }\r\n\r\n  _getSlidesFromPage(): void {\r\n    this.startIdx = this.currentPage * this.scrollNum;\r\n    this.endIdx = this.startIdx + this.visibleNum - 1;\r\n  }\r\n\r\n  _plusSlides(): void {\r\n    const idx = this.currentPage + 1;\r\n    this.currentPage = idx >= this._totalPages() ? 0 : idx;\r\n    this._getSlidesFromPage();\r\n  }\r\n\r\n  _minusSlides(): void {\r\n    const idx = this.currentPage - 1;\r\n    this.currentPage = idx < 0 ? this._totalPages() - 1 : idx;\r\n    this._getSlidesFromPage();\r\n  }\r\n\r\n  _setAutoSlideChange(): void {\r\n    this.interval = setInterval(() => {\r\n      this._plusSlides();\r\n    }, this.autoPlayInterval);\r\n    this.isPolite = false;\r\n  }\r\n\r\n  _goToPage(page: number): void {\r\n    this.currentPage = page;\r\n    this._getSlidesFromPage();\r\n  }\r\n\r\n  _getEmptyArray(i: number): any {\r\n    return new Array(i);\r\n  }\r\n\r\n  _isActive(idx: number): boolean {\r\n    if (this.lazyLoaded || (idx >= this.startIdx && idx <= this.endIdx)) {\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  _getActiveItems(): any[] {\r\n    if (!this.items || !this.lazyLoaded) {\r\n      return this.items;\r\n    }\r\n    return this.items.slice(this.startIdx, this.endIdx + 1);\r\n  }\r\n\r\n  _getIdxOfItem(i: number): string {\r\n    if (!this.lazyLoaded) {\r\n      return i + 1 + ' of ' + this.items.length;\r\n    }\r\n    return this.startIdx + i + 1 + ' of ' + this.items.length;\r\n  }\r\n\r\n  _trackBy(index: number): number {\r\n    return index;\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-carousel'\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-carousel-container\">\r\n    <button class=\"np-btn-icon np-carousel-prev\" type=\"button\" *ngIf=\"showNavigationArrows\" tabindex=\"0\"\r\n      (click)=\"_minusSlides()\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"></path>\r\n        <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n      </svg>\r\n    </button>\r\n    <div class=\"np-carousel-items\" [attr.aria-live]=\"isPolite ? 'polite' : 'off'\">\r\n      <div class=\"np-carousel-item\" role=\"group\" aria-roledescription=\"slide\"\r\n        *ngFor=\"let item of _getActiveItems(); let i = index; trackBy: _trackBy\" [attr.aria-label]=\"_getIdxOfItem(i)\"\r\n        [ngClass]=\"{ 'np-carousel-active': _isActive(i) }\">\r\n        <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ item: item }\">\r\n        </ng-container>\r\n      </div>\r\n    </div>\r\n    <button class=\"np-btn-icon np-carousel-next\" type=\"button\" *ngIf=\"showNavigationArrows\" tabindex=\"0\"\r\n      (click)=\"_plusSlides()\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"></path>\r\n        <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n      </svg>\r\n    </button>\r\n  </div>\r\n  <div class=\"np-carousel-nav\" *ngIf=\"showNavigationIndicators\">\r\n    <ng-container *ngFor=\"let img of _getEmptyArray(_totalPages()); let i = index\">\r\n      <span class=\"np-carousel-dot\" [ngClass]=\"{ 'np-carousel-dot-active': currentPage === i }\"\r\n        (click)=\"_goToPage(i)\"></span>\r\n    </ng-container>\r\n  </div>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpCarouselComponent } from \"./np-carousel.component\";\r\n\r\n@NgModule({\r\n  declarations: [NpCarouselComponent],\r\n  imports: [CommonModule],\r\n  exports: [NpCarouselComponent],\r\n})\r\nexport class NpCarouselModule { }\r\n","import { Directive } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[npTabContent]\",\r\n})\r\nexport class NpTabContent { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  TemplateRef,\r\n  OnInit,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n  ContentChild,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport { NpTabContent } from \"./np-tab-content.directive\";\r\n\r\n@Component({\r\n  selector: \"np-tab\",\r\n  template: \"<ng-template><ng-content></ng-content></ng-template>\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpTabComponent implements OnInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() title: string | TemplateRef<any>;\r\n  @Input() iconCss: string;\r\n  @Input() active: boolean = false;\r\n  @Input() disabled: boolean = false;\r\n  @Input() inputId: string = `np-tab_${NpTabComponent.controlCount++}`;\r\n\r\n  isLoadFirstTime: boolean = true;\r\n  titleIsTemplate: boolean;\r\n\r\n  @ContentChild(NpTabContent, { read: TemplateRef, static: true })\r\n  _explicitContent: TemplateRef<any>;\r\n  @ViewChild(TemplateRef, { static: true }) _implicitContent: TemplateRef<any>;\r\n  private _contentPortal: TemplatePortal | null = null;\r\n  get content(): TemplatePortal | null {\r\n    return this._contentPortal;\r\n  }\r\n\r\n  constructor(private _viewContainerRef: ViewContainerRef) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.title instanceof TemplateRef) {\r\n      this.titleIsTemplate = true;\r\n    }\r\n    this._contentPortal = new TemplatePortal(\r\n      this._explicitContent || this._implicitContent,\r\n      this._viewContainerRef\r\n    );\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this._contentPortal && this._contentPortal.isAttached) {\r\n      this._contentPortal.detach();\r\n    }\r\n  }\r\n\r\n  _isActive(): boolean {\r\n    return this.active;\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  ContentChildren,\r\n  QueryList,\r\n  AfterContentInit,\r\n} from \"@angular/core\";\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  Output,\r\n  EventEmitter,\r\n  Input,\r\n} from \"@angular/core\";\r\nimport { NpTabComponent } from \"./np-tab.component\";\r\n\r\n@Component({\r\n  selector: \"np-tabs\",\r\n  templateUrl: \"./np-tabs.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpTabsComponent implements AfterContentInit {\r\n  private static controlCount = 1;\r\n\r\n  @Input() verticalTabs: boolean;\r\n  @Input() height: number;\r\n  @Input() stretchLabels: boolean;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-tabs_${NpTabsComponent.controlCount++}`;\r\n\r\n  @Output() onTabChange: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ContentChildren(NpTabComponent) tabs: QueryList<NpTabComponent>;\r\n\r\n  selected: NpTabComponent;\r\n\r\n  ngAfterContentInit(): void {\r\n    // if default active and not disabled tab is present then select it.\r\n    const activeTabs = this.tabs.filter(\r\n      (tab) => tab.active && tab.disabled !== true\r\n    );\r\n    if (activeTabs.length === 0) {\r\n      // if there is no default active tab, then take the first tab which is not disabled and make it active.\r\n      const tabs = this.tabs.filter((tab) => tab.disabled !== true);\r\n      if (tabs) {\r\n        this.tabs.toArray().forEach((tab: NpTabComponent) => (tab.active = false));\r\n        tabs[0].active = true;\r\n        this.selected = tabs[0];\r\n        this.onTabChange.emit(tabs[0]);\r\n        tabs[0].isLoadFirstTime = false;\r\n      }\r\n    } else {\r\n      this.selected = activeTabs[0];\r\n      this.onTabChange.emit(activeTabs[0]);\r\n      activeTabs[0].isLoadFirstTime = false;\r\n    }\r\n  }\r\n\r\n  selectTabById(id: string): void {\r\n    const tab = this.tabs.find((item) => item.inputId === id);\r\n    if (tab && tab.disabled !== true) {\r\n      this._selectTab(tab);\r\n    }\r\n  }\r\n\r\n  selectTabByIndex(idx: number): void {\r\n    const tab = this.tabs.toArray()[idx];\r\n    if (tab && tab.disabled !== true) {\r\n      this._selectTab(tab);\r\n    }\r\n  }\r\n\r\n  getSelectedTabIndex(): any {\r\n    return this.tabs.toArray().findIndex((element) => element.active);\r\n  }\r\n\r\n  getSelectedTab(): any {\r\n    return this.selected;\r\n  }\r\n\r\n  _getTitleId(tab: NpTabComponent): string {\r\n    return tab.inputId + \"_title\";\r\n  }\r\n\r\n  _getBodyId(tab: NpTabComponent): string {\r\n    return tab.inputId + \"_body\";\r\n  }\r\n\r\n  _selectTab(tab: NpTabComponent): void {\r\n    if (tab.disabled === true || tab.active === true) {\r\n      return;\r\n    }\r\n    this.tabs.toArray().forEach((element: NpTabComponent) => {\r\n      if (element.inputId !== tab.inputId) {\r\n        element.active = false;\r\n      }\r\n    });\r\n    tab.active = true;\r\n    this.selected = tab;\r\n    this.onTabChange.emit(tab);\r\n    tab.isLoadFirstTime = false;\r\n  }\r\n}\r\n","<div role=\"tablist\" [ngClass]=\"{ 'np-tabs': true, 'np-tabs-vertical': verticalTabs }\" [style.max-height.px]=\"height\"\r\n  [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <ul class=\"np-tabs-header\">\r\n    <ng-container *ngFor=\"let tab of tabs\">\r\n      <li class=\"np-tab-title\" role=\"tab\" [attr.id]=\"_getTitleId(tab)\" [ngClass]=\"{\r\n          'np-tab-active': tab.active,\r\n          'np-disabled': tab.disabled,\r\n          'np-tab-stretch-label': stretchLabels\r\n        }\" [attr.tabindex]=\"tab.disabled ? '-1' : '0'\" [attr.aria-selected]=\"tab.active\"\r\n        [attr.aria-controls]=\"_getBodyId(tab)\" (click)=\"_selectTab(tab)\">\r\n        <a class=\"np-tab-title-link\">\r\n          <i *ngIf=\"tab.iconCss\" [class]=\"tab.iconCss\"></i>\r\n          <span *ngIf=\"!tab.titleIsTemplate\" [innerHTML]=\"tab.title\"></span>\r\n          <ng-container *ngIf=\"tab.titleIsTemplate\" [ngTemplateOutlet]=\"tab.title\">\r\n          </ng-container>\r\n        </a>\r\n      </li>\r\n    </ng-container>\r\n  </ul>\r\n  <div class=\"np-tab-body\" role=\"tabpanel\" [attr.id]=\"_getBodyId(selected)\"\r\n    [attr.aria-labelledby]=\"_getTitleId(selected)\">\r\n    <ng-template [cdkPortalOutlet]=\"selected.content\"></ng-template>\r\n  </div>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpTabsComponent } from \"./np-tabs.component\";\r\nimport { NpTabComponent } from \"./np-tab.component\";\r\nimport { NpTabContent } from \"./np-tab-content.directive\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\n\r\n@NgModule({\r\n  declarations: [NpTabsComponent, NpTabComponent, NpTabContent],\r\n  imports: [CommonModule, PortalModule],\r\n  exports: [NpTabsComponent, NpTabComponent, NpTabContent],\r\n})\r\nexport class NpTabsModule { }\r\n","import { Directive } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[npAccordionContent]\",\r\n})\r\nexport class NpAccordionContent { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  TemplateRef,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  Output,\r\n  EventEmitter,\r\n  ContentChild,\r\n  ViewContainerRef,\r\n  OnInit,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport { NpAccordionContent } from \"./np-accordion-content.directive\";\r\n\r\n@Component({\r\n  selector: \"np-accordion-item\",\r\n  templateUrl: \"./np-accordion-item.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpAccordionItemComponent implements OnInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() title: string | TemplateRef<any>;\r\n  @Input() isOpen = false;\r\n  @Input() height: number;\r\n  @Input() disabled: boolean;\r\n  @Input() iconCss: string;\r\n  @Input() styleClass: string;\r\n  @Input()\r\n  inputId = `np-accordion-item_${NpAccordionItemComponent.controlCount++}`;\r\n\r\n  @Output() _onExpand: EventEmitter<any> = new EventEmitter();\r\n  @Output() _onCollapse: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ContentChild(NpAccordionContent, { read: TemplateRef, static: true })\r\n  _explicitContent: TemplateRef<any>;\r\n\r\n  isTitleTemplate: boolean;\r\n  private _contentPortal: TemplatePortal | null = null;\r\n  get content(): TemplatePortal | null {\r\n    return this._contentPortal;\r\n  }\r\n\r\n  constructor(private _viewContainerRef: ViewContainerRef) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.title instanceof TemplateRef) {\r\n      this.isTitleTemplate = true;\r\n    }\r\n    if (this.isOpen) {\r\n      if (!this._contentPortal && this._explicitContent) {\r\n        this._contentPortal = new TemplatePortal(\r\n          this._explicitContent,\r\n          this._viewContainerRef\r\n        );\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this._contentPortal && this._contentPortal.isAttached) {\r\n      this._contentPortal.detach();\r\n    }\r\n  }\r\n\r\n  _getTitleId(): string {\r\n    return this.inputId + \"_title\";\r\n  }\r\n\r\n  _getBodyId(): string {\r\n    return this.inputId + \"_body\";\r\n  }\r\n\r\n  _expand(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n    this.isOpen = true;\r\n    if (!this._contentPortal && this._explicitContent) {\r\n      this._contentPortal = new TemplatePortal(\r\n        this._explicitContent,\r\n        this._viewContainerRef\r\n      );\r\n    }\r\n    this._onExpand.emit(this);\r\n  }\r\n\r\n  _collapse(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n    this.isOpen = false;\r\n    this._onCollapse.emit(this);\r\n  }\r\n\r\n  _toggle(): void {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n    if (this.isOpen) {\r\n      this._collapse();\r\n      return;\r\n    }\r\n    this._expand();\r\n  }\r\n}\r\n","<div [ngClass]=\"{ 'np-accordion-item': true, 'np-disabled': disabled }\" [style.max-height.px]=\"height\"\r\n  [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-accordion-header\">\r\n    <button class=\"np-accordion-title\" (click)=\"_toggle()\" [attr.id]=\"_getTitleId()\"\r\n      [attr.tabindex]=\"disabled ? '-1' : '0'\" [attr.aria-expanded]=\"isOpen\" [attr.aria-controls]=\"_getBodyId()\"\r\n      [attr.aria-disabled]=\"disabled\">\r\n      <i *ngIf=\"iconCss\" [class]=\"iconCss\"></i>\r\n      <span *ngIf=\"!isTitleTemplate\" [innerHTML]=\"title\"></span>\r\n      <ng-container *ngIf=\"isTitleTemplate\" [ngTemplateOutlet]=\"title\">\r\n      </ng-container>\r\n    </button>\r\n    <div class=\"np-accordion-btn\">\r\n      <button class=\"np-btn-icon\" type=\"button\" [attr.tabindex]=\"disabled ? '-1' : '0'\" [ngClass]=\"{\r\n          'np-accordion-expand': !isOpen,\r\n          'np-accordion-collapse': isOpen\r\n        }\" (click)=\"_toggle()\">\r\n        <svg class=\"np-icon\" *ngIf=\"isOpen\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n        <svg class=\"np-icon\" *ngIf=\"!isOpen\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n  <div class=\"np-accordion-body\" role=\"region\" *ngIf=\"isOpen\" [attr.id]=\"_getBodyId()\"\r\n    [attr.aria-labelledby]=\"_getTitleId()\">\r\n    <ng-content></ng-content>\r\n    <ng-template [cdkPortalOutlet]=\"content\"></ng-template>\r\n  </div>\r\n</div>","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  AfterContentInit,\r\n  OnDestroy,\r\n  ContentChildren,\r\n  QueryList,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { NpAccordionItemComponent } from \"./np-accordion-item/np-accordion-item.component\";\r\n\r\n@Component({\r\n  selector: \"np-accordion\",\r\n  templateUrl: \"./np-accordion.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpAccordionComponent implements AfterContentInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() defaultOpenIndex: number;\r\n  @Input() allowMultipleOpen = true;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-accordion_${NpAccordionComponent.controlCount++}`;\r\n\r\n  @Output() onExpand: EventEmitter<any> = new EventEmitter();\r\n  @Output() onCollapse: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ContentChildren(NpAccordionItemComponent)\r\n  items: QueryList<NpAccordionItemComponent>;\r\n\r\n  private subscriptions: Subscription[] = [];\r\n\r\n  ngAfterContentInit(): void {\r\n    if (this.defaultOpenIndex >= 0) {\r\n      this.expandByIndex(this.defaultOpenIndex);\r\n    }\r\n    this.items.toArray().forEach((element: NpAccordionItemComponent) => {\r\n      this.subscriptions.push(\r\n        element._onExpand.subscribe((item: any) => {\r\n          this._onExpand(item);\r\n        })\r\n      );\r\n      this.subscriptions.push(\r\n        element._onCollapse.subscribe((item: any) => {\r\n          this._onCollapse(item);\r\n        })\r\n      );\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscriptions.forEach((element: Subscription) => {\r\n      element.unsubscribe();\r\n    });\r\n  }\r\n\r\n  expandByIndex(idx: number): void {\r\n    this.items.toArray()[idx]._expand();\r\n  }\r\n\r\n  expandById(id: string): void {\r\n    this.items\r\n      .toArray()\r\n      .find((item) => item.inputId === id)\r\n      ._expand();\r\n  }\r\n\r\n  collapseByIndex(idx: number): void {\r\n    this.items.toArray()[idx]._collapse();\r\n  }\r\n\r\n  collapseById(id: string): void {\r\n    this.items\r\n      .toArray()\r\n      .find((item) => item.inputId === id)\r\n      ._collapse();\r\n  }\r\n\r\n  _onExpand(item: NpAccordionItemComponent): void {\r\n    if (!this.allowMultipleOpen) {\r\n      this.items.toArray().find((element: NpAccordionItemComponent) => {\r\n        if (item.inputId !== element.inputId && element.isOpen) {\r\n          element._collapse();\r\n        }\r\n      });\r\n    }\r\n    this.onExpand.emit(item);\r\n  }\r\n\r\n  _onCollapse(item: NpAccordionItemComponent): void {\r\n    this.onCollapse.emit(item);\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-accordion-component'\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <ng-content></ng-content>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpAccordionComponent } from \"./np-accordion.component\";\r\nimport { NpAccordionItemComponent } from \"./np-accordion-item/np-accordion-item.component\";\r\nimport { NpAccordionContent } from \"./np-accordion-item/np-accordion-content.directive\";\r\n\r\n@NgModule({\r\n  declarations: [\r\n    NpAccordionComponent,\r\n    NpAccordionItemComponent,\r\n    NpAccordionContent,\r\n  ],\r\n  imports: [CommonModule, PortalModule],\r\n  exports: [NpAccordionComponent, NpAccordionItemComponent, NpAccordionContent],\r\n})\r\nexport class NpAccordionModule { }\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  ElementRef,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-alert\",\r\n  templateUrl: \"./np-alert.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpAlertComponent implements OnInit {\r\n  private static controlCount = 1;\r\n\r\n  /* type should be 'success' | 'danger' | 'info' | 'warning' */\r\n  @Input() type: 'success' | 'danger' | 'info' | 'warning';\r\n  @Input() styleClass: string;\r\n  @Input() showCloseButton: boolean = false;\r\n  @Input() autoClose: boolean = false;\r\n  @Input() autoCloseTimeout: number = 10000;\r\n  @Input() inputId: string = `np-alert_${NpAlertComponent.controlCount++}`;\r\n\r\n  constructor(private el: ElementRef) { }\r\n\r\n  ngOnInit(): void {\r\n    if (this.autoClose) {\r\n      setTimeout(\r\n        () => {\r\n          this.close();\r\n        },\r\n        this.autoCloseTimeout\r\n      );\r\n    }\r\n  }\r\n\r\n  close(): void {\r\n    this.el.nativeElement.remove();\r\n  }\r\n}\r\n","<div role=\"alert\" aria-atomic=\"true\" aria-live=\"assertive\" [ngClass]=\"{\r\n    'np-alert': true,\r\n    'np-alert-success': type === 'success',\r\n    'np-alert-danger': type === 'danger',\r\n    'np-alert-warning': type === 'warning',\r\n    'np-alert-info': type === 'info'\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-alert-icon\">\r\n    <svg class=\"np-icon\" *ngIf=\"type === 'success'\" viewBox=\"0 0 24 24\">\r\n      <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n      <path\r\n        d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\">\r\n      </path>\r\n    </svg>\r\n    <svg class=\"np-icon\" *ngIf=\"type === 'danger'\" viewBox=\"0 0 24 24\">\r\n      <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n      <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"></path>\r\n    </svg>\r\n    <svg class=\"np-icon\" *ngIf=\"type === 'warning'\" viewBox=\"0 0 24 24\">\r\n      <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n      <path d=\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"></path>\r\n    </svg>\r\n    <svg class=\"np-icon\" *ngIf=\"type === 'info'\" viewBox=\"0 0 24 24\">\r\n      <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n      <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"></path>\r\n    </svg>\r\n  </div>\r\n  <div class=\"np-alert-detail\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n  <button class=\"np-btn-icon np-alert-close\" type=\"button\" *ngIf=\"showCloseButton\" (click)=\"close()\">\r\n    <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n      <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n      </path>\r\n      <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n    </svg>\r\n  </button>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpAlertComponent } from \"./np-alert.component\";\r\n\r\n@NgModule({\r\n  declarations: [NpAlertComponent],\r\n  imports: [CommonModule],\r\n  exports: [NpAlertComponent],\r\n})\r\nexport class NpAlertModule { }\r\n","import { Subject } from \"rxjs\";\r\nimport { OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { TemplateRef, Type } from \"@angular/core\";\r\nimport { NpModalConfig } from \"./np-modal.config\";\r\n\r\nexport class NpModalRef {\r\n  onClose = new Subject<any>();\r\n\r\n  constructor(\r\n    public overlay: OverlayRef,\r\n    public content: string | TemplateRef<any> | Type<any>,\r\n    public config: NpModalConfig,\r\n    public data: any\r\n  ) {\r\n    overlay.backdropClick().subscribe(() => {\r\n      if (config.closeOnClickOutside === true) {\r\n        this._close(null);\r\n      }\r\n    });\r\n  }\r\n\r\n  close(result?: any): void {\r\n    this._close(result);\r\n  }\r\n\r\n  private _close(result: any): void {\r\n    this.overlay.dispose();\r\n    this.onClose.next(result);\r\n    this.onClose.complete();\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  TemplateRef,\r\n  Type,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\nimport { NpModalRef } from \"./np-modal-ref\";\r\n\r\n@Component({\r\n  selector: \"np-modal\",\r\n  templateUrl: \"./np-modal-container.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpModalContainerComponent implements OnInit {\r\n  private static controlCount = 1;\r\n\r\n  contentType: \"template\" | \"string\" | \"component\";\r\n  content: string | TemplateRef<any> | Type<any>;\r\n  context: any;\r\n  showCloseButton: boolean;\r\n  header: string;\r\n  styleClass: string;\r\n  inputId: string = `np-modal_${NpModalContainerComponent.controlCount++}`;\r\n\r\n  constructor(public modalRef: NpModalRef) { }\r\n\r\n  ngOnInit(): void {\r\n    this.content = this.modalRef.content;\r\n    if (typeof this.content === \"string\") {\r\n      this.contentType = \"string\";\r\n    } else if (this.content instanceof TemplateRef) {\r\n      this.contentType = \"template\";\r\n      this.context = {\r\n        close: this.modalRef.close.bind(this.modalRef),\r\n        data: this.modalRef.data,\r\n      };\r\n    } else {\r\n      this.contentType = \"component\";\r\n    }\r\n    this.header = this.modalRef.config.header;\r\n    this.showCloseButton = this.modalRef.config.showCloseButton;\r\n    if (this.modalRef.config.inputId) {\r\n      this.inputId = this.modalRef.config.inputId;\r\n    }\r\n    if (this.modalRef.config.styleClass) {\r\n      this.styleClass = this.modalRef.config.styleClass;\r\n    }\r\n  }\r\n\r\n  close(): void {\r\n    this.modalRef.close(null);\r\n  }\r\n}\r\n","<div role=\"dialog\" [ngClass]=\"'np-modal'\" [class]=\"styleClass\" [attr.id]=\"inputId\"\r\n  [attr.aria-labelledby]=\"inputId + '-title'\" [attr.aria-describedby]=\"inputId + '-body'\"\r\n  [attr.aria-modal]=\"modalRef.config.hasBackDrop ? 'true' : null\">\r\n  <div class=\"np-modal-header\">\r\n    <a class=\"np-modal-title\" [innerHTML]=\"header\" [attr.id]=\"inputId + '-title'\"></a>\r\n    <button class=\"np-btn-icon np-modal-close\" type=\"button\" *ngIf=\"showCloseButton\" (click)=\"close()\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n        </path>\r\n        <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n      </svg>\r\n    </button>\r\n  </div>\r\n  <div class=\"np-modal-body\" [attr.id]=\"inputId + '-body'\">\r\n    <ng-container [ngSwitch]=\"contentType\">\r\n      <ng-container *ngSwitchCase=\"'string'\">\r\n        <div [innerHTML]=\"content\"></div>\r\n      </ng-container>\r\n      <ng-container *ngSwitchCase=\"'template'\">\r\n        <ng-container *ngTemplateOutlet=\"content; context: context\"></ng-container>\r\n      </ng-container>\r\n      <ng-container *ngSwitchCase=\"'component'\">\r\n        <ng-container *ngComponentOutlet=\"content\"></ng-container>\r\n      </ng-container>\r\n    </ng-container>\r\n  </div>\r\n</div>","export class NpModalConfig {\r\n  constructor(item: any) {\r\n    this.hasBackDrop = item.hasBackDrop === false ? false : true;\r\n    this.backDropClass = item.backDropClass;\r\n    this.height = item.height;\r\n    this.width = item.width;\r\n    this.showCloseButton = item.showCloseButton === false ? false : true;\r\n    this.header = item.header;\r\n    this.inputId = item.inputId;\r\n    this.styleClass = item.styleClass;\r\n    this.closeOnClickOutside =\r\n      item.closeOnClickOutside === false ? false : true;\r\n  }\r\n  public hasBackDrop: boolean;\r\n  public backDropClass: string;\r\n  public height: string | number;\r\n  public width: string | number;\r\n  public showCloseButton: boolean;\r\n  public header: string;\r\n  public inputId: string;\r\n  public styleClass: string;\r\n  public closeOnClickOutside: boolean;\r\n}\r\n","import {\r\n  Overlay,\r\n  OverlayConfig,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { Injectable, Injector, TemplateRef, Type } from \"@angular/core\";\r\nimport { NpModalRef } from \"./np-modal-ref\";\r\nimport { NpModalContainerComponent } from \"./np-modal-container.component\";\r\nimport { NpModalConfig } from \"./np-modal.config\";\r\n\r\n@Injectable()\r\nexport class NpModalService {\r\n  constructor(\r\n    private overlay: Overlay,\r\n    private injector: Injector,\r\n    private overlayPositionBuilder: OverlayPositionBuilder\r\n  ) { }\r\n\r\n  open(\r\n    content: string | TemplateRef<any> | Type<any>,\r\n    config: NpModalConfig,\r\n    data: any\r\n  ): NpModalRef {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .global()\r\n      .centerHorizontally()\r\n      .centerVertically();\r\n\r\n    if (!config) {\r\n      config = new NpModalConfig({});\r\n    }\r\n\r\n    const overlayConfig = new OverlayConfig({\r\n      positionStrategy,\r\n      hasBackdrop: config.hasBackDrop,\r\n      backdropClass: config.backDropClass || \"np-modal-backdrop\",\r\n      height: config.height,\r\n      width: config.width,\r\n      scrollStrategy: this.overlay.scrollStrategies.block(),\r\n      panelClass: \"np-modal-overlay\",\r\n    });\r\n    const overlayRef = this.overlay.create(overlayConfig);\r\n    const myOverlayRef = new NpModalRef(overlayRef, content, config, data);\r\n    const injector = Injector.create({\r\n      parent: this.injector,\r\n      providers: [{ provide: NpModalRef, useValue: myOverlayRef }],\r\n    });\r\n    overlayRef.attach(\r\n      new ComponentPortal(NpModalContainerComponent, null, injector)\r\n    );\r\n    return myOverlayRef;\r\n  }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpModalContainerComponent } from \"./np-modal-container.component\";\r\nimport { NpModalService } from \"./np-modal.service\";\r\n\r\n@NgModule({\r\n    declarations: [NpModalContainerComponent],\r\n    imports: [CommonModule, OverlayModule, PortalModule],\r\n    exports: [NpModalContainerComponent],\r\n    providers: [NpModalService]\r\n})\r\nexport class NpModalModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  forwardRef,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport {\r\n  ViewChild,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  ElementRef,\r\n  AfterViewInit,\r\n  AfterContentInit,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport {\r\n  Overlay,\r\n  OverlayRef,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport { BehaviorSubject, Subscription } from \"rxjs\";\r\nimport { NpUtilityService } from \"../np-utility/np-utility.service\";\r\nimport { TopBottomOverlayPositions } from \"../np-utility/np-constants\";\r\n\r\n@Component({\r\n  selector: \"np-tags\",\r\n  templateUrl: \"./np-tags.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpTagsComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpTagsComponent\r\n  implements ControlValueAccessor, AfterViewInit, AfterContentInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() displayKey: string;\r\n  @Input() valueKey: string;\r\n  @Input() searchResult: BehaviorSubject<any[]>;\r\n  @Input() isServerSide: boolean;\r\n  @Input() forceToSelect: boolean;\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  @Input() searchDelay = 1000;\r\n  @Input() maxResultLimit: number;\r\n  @Input() minSearchCharLimit: number;\r\n  @Input() maxSelectLimit: number;\r\n  @Input() orderBy: string;\r\n  @Input() orderDir: string;\r\n  @Input() placeholder = \"\";\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-tags_${NpTagsComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onSearch: EventEmitter<any> = new EventEmitter();\r\n  @Output() onCreateNewTag: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"templatePortalContent\") templatePortalContent: TemplateRef<any>;\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  selected: any[];\r\n  subscription: Subscription;\r\n  options: any[];\r\n  displayValue: string;\r\n  searchTimeout: any;\r\n  isLoading: boolean = false;\r\n  innerValue: any[];\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n\r\n  private templatePortal: TemplatePortal<any>;\r\n  private overlayRef: OverlayRef;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  constructor(\r\n    public overlay: Overlay,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef,\r\n    private utility: NpUtilityService\r\n  ) { }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.subscription = this.searchResult.subscribe((data) => {\r\n      if (\r\n        this.maxResultLimit &&\r\n        this.maxResultLimit > 0 &&\r\n        data &&\r\n        data.length > this.maxResultLimit\r\n      ) {\r\n        this.options = data.splice(0, this.maxResultLimit);\r\n      } else {\r\n        this.options = data;\r\n      }\r\n      if (this.isServerSide) {\r\n        this.isLoading = false;\r\n        if (data) {\r\n          if (!this.overlayRef.hasAttached()) {\r\n            this.overlayRef.attach(this.templatePortal);\r\n          }\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(TopBottomOverlayPositions);\r\n    this.overlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      hasBackdrop: true,\r\n      backdropClass: \"np-tags-backdrop\",\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n      panelClass: this.styleClass,\r\n    });\r\n    this.templatePortal = new TemplatePortal(\r\n      this.templatePortalContent,\r\n      this.viewContainerRef\r\n    );\r\n    this.overlayRef.backdropClick().subscribe(() => this._close());\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subscription) {\r\n      this.subscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  get value(): any[] {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: any[]) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: any): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.selected = Object.assign([], v);\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _close(): void {\r\n    this.displayValue = null;\r\n    this.overlayRef.detach();\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _onInput($event: any): void {\r\n    if (!$event.target.value) {\r\n      return;\r\n    }\r\n    this.displayValue = $event.target.value.trim();\r\n    if (this.isDisabled || this.readOnly || !this.isServerSide) {\r\n      return;\r\n    }\r\n    if (this.minSearchCharLimit && this.minSearchCharLimit > 0) {\r\n      if (\r\n        this.displayValue === undefined ||\r\n        this.displayValue === null ||\r\n        this.displayValue.length < this.minSearchCharLimit\r\n      ) {\r\n        return;\r\n      }\r\n    }\r\n    this.isLoading = true;\r\n    if (this.searchTimeout) {\r\n      clearTimeout(this.searchTimeout);\r\n    }\r\n    const searchKeyword = this.displayValue;\r\n    this.searchTimeout = setTimeout(() => {\r\n      this.onSearch.emit(searchKeyword);\r\n    }, this.searchDelay);\r\n  }\r\n\r\n  _selectValue(val: any): void {\r\n    if (this._isSelected(val)) {\r\n      this._removeTag(val);\r\n      return;\r\n    }\r\n    if (\r\n      this.maxSelectLimit > 0 &&\r\n      this.value &&\r\n      this.value.length === this.maxSelectLimit\r\n    ) {\r\n      return;\r\n    }\r\n    const currentVal = this.valueKey ? val[this.valueKey] : val;\r\n    if (!this.value) {\r\n      this.value = [currentVal];\r\n      this.selected = [val];\r\n    } else {\r\n      this.value.push(currentVal);\r\n      this.selected.push(val);\r\n      this.onChangeCallback(this.value);\r\n      this.onChange.emit(this.value);\r\n    }\r\n  }\r\n\r\n  _open(): void {\r\n    if (this.isServerSide || this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    if (!this.overlayRef.hasAttached()) {\r\n      this.overlayRef.attach(this.templatePortal);\r\n    }\r\n  }\r\n\r\n  _createNewTag(): void {\r\n    if (\r\n      this.maxSelectLimit > 0 &&\r\n      this.value &&\r\n      this.value.length === this.maxSelectLimit\r\n    ) {\r\n      return;\r\n    }\r\n    if (this.options === undefined || this.options === null) {\r\n      this.options = [];\r\n    }\r\n    let newObj: any;\r\n    if (this.displayKey) {\r\n      newObj = {};\r\n      newObj[this.displayKey] = this.displayValue;\r\n      if (this.valueKey) {\r\n        newObj[this.valueKey] = this.displayValue;\r\n      }\r\n    } else {\r\n      newObj = this.displayValue;\r\n    }\r\n    this.options.push(newObj);\r\n    this._selectValue(newObj);\r\n    this.onCreateNewTag.emit(newObj);\r\n    this.displayValue = null;\r\n  }\r\n\r\n  _getValueFromTag(val: any): void {\r\n    return this.displayKey ? val[this.displayKey] : val;\r\n  }\r\n\r\n  _removeTag(tag: any): void {\r\n    const idx = this.selected.findIndex((element) => this.utility.isEqual(element, tag));\r\n    if (idx > -1) {\r\n      if (this.value.length === 1) {\r\n        this.value = null;\r\n        this.selected = null;\r\n      } else {\r\n        this.value.splice(idx, 1);\r\n        this.selected.splice(idx, 1);\r\n        this.onChangeCallback(this.value);\r\n        this.onChange.emit(this.value);\r\n      }\r\n    }\r\n  }\r\n\r\n  _isSelected(tag: any): boolean {\r\n    return this.selected && (this.selected.findIndex((element) => this.utility.isEqual(element, tag))) > -1;\r\n  }\r\n\r\n  _onKeydown(event: KeyboardEvent): void {\r\n    if (event.key === \"Tab\" || event.key === \"Escape\") {\r\n      this._close();\r\n    }\r\n    if (event.key === \"ArrowDown\") {\r\n      this._open();\r\n      event.preventDefault();\r\n    }\r\n    if (\r\n      event.key === \"Backspace\" &&\r\n      this.value &&\r\n      this.value.length > 0 &&\r\n      (this.displayValue === undefined ||\r\n        this.displayValue === null ||\r\n        this.displayValue.length === 0)\r\n    ) {\r\n      if (this.value.length > 1) {\r\n        this.value.pop();\r\n        this.selected.pop();\r\n        this.onChangeCallback(this.value);\r\n        this.onChange.emit(this.value);\r\n      } else {\r\n        this.value = null;\r\n        this.selected = null;\r\n      }\r\n    }\r\n    if (\r\n      event.key === \"Enter\" &&\r\n      !this.forceToSelect &&\r\n      this.displayValue &&\r\n      this.displayValue.length > 0\r\n    ) {\r\n      this._createNewTag();\r\n    }\r\n  }\r\n\r\n  _trackBy(index: number): number {\r\n    return index;\r\n  }\r\n\r\n  _getDisplayValue(): string {\r\n    return this.displayValue || \"\";\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-tags': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-input-group\" [ngClass]=\"{ 'np-focused': focused }\">\r\n    <div class=\"np-tag\" *ngFor=\"let tag of selected\">\r\n      <div [innerHTML]=\"_getValueFromTag(tag)\"></div>\r\n      <button class=\"np-tag-remove\" tabindex=\"-1\" (click)=\"_removeTag(tag)\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <input class=\"np-form-control\" type=\"text\" #control autocomplete=\"off\" [placeholder]=\"placeholder\"\r\n      [value]=\"_getDisplayValue()\" [disabled]=\"isDisabled\" [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\"\r\n      [readonly]=\"readOnly\" (click)=\"_open()\" (input)=\"_onInput($event)\" (keydown)=\"_onKeydown($event)\"\r\n      (blur)=\"_onBlur($event)\" (focus)=\"_onFocus($event)\" />\r\n    <div class=\"np-input-group-append\">\r\n      <div class=\"np-tag-loader\" *ngIf=\"isLoading\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n<ng-template #templatePortalContent>\r\n  <ul class=\"np-tags-overlay np-list\" role=\"listbox\" [attr.id]=\"inputId + '_listbox'\">\r\n    <ng-container *ngFor=\"\r\n        let item of options | npOrderBy: orderBy:orderDir;\r\n        let i = index;\r\n        trackBy: _trackBy\r\n      \">\r\n      <li class=\"np-list-item\" role=\"option\" (click)=\"_selectValue(item)\"\r\n        [ngClass]=\"{ 'np-tag-selected': _isSelected(item) }\">\r\n        <ng-container *ngIf=\"!itemTemplate; else customTemplate\">\r\n          <span [innerHTML]=\"\r\n              (displayKey ? item[displayKey] : item) | npHighlight: displayValue\r\n            \">\r\n          </span>\r\n        </ng-container>\r\n        <ng-template #customTemplate [ngTemplateOutlet]=\"itemTemplate\"\r\n          [ngTemplateOutletContext]=\"{ item: item, keyword: displayValue }\">\r\n        </ng-template>\r\n      </li>\r\n    </ng-container>\r\n    <li class=\"np-list-item np-disabled\" role=\"option\" *ngIf=\"options && options.length === 0\">\r\n      <b>{{ \"No_Result_Found\" | npTranslate }}</b>\r\n    </li>\r\n  </ul>\r\n</ng-template>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpTagsComponent } from \"./np-tags.component\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\nimport { NpOrderByModule } from \"../np-utility/np-orderby.module\";\r\nimport { NpHighlightModule } from \"../np-utility/np-highlight.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpTagsComponent],\r\n  imports: [\r\n    CommonModule,\r\n    OverlayModule,\r\n    PortalModule,\r\n    NpAutofocusModule,\r\n    NpTranslationsModule,\r\n    NpOrderByModule,\r\n    NpHighlightModule,\r\n  ],\r\n  exports: [NpTagsComponent],\r\n})\r\nexport class NpTagsModule { }\r\n","import {\r\n  Component,\r\n  OnInit,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  Input,\r\n  TemplateRef,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-popover\",\r\n  templateUrl: \"./np-popover.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpPopoverComponent implements OnInit {\r\n  private static controlCount = 1;\r\n\r\n  @Input() header: string | TemplateRef<any>;\r\n  @Input() body: string | TemplateRef<any>;\r\n  @Input() width: number;\r\n  @Input() styleClass: string;\r\n  @Input() context: any;\r\n  @Input() inputId: string = `np-popover_${NpPopoverComponent.controlCount++}`;\r\n\r\n  isHeaderTemplate: boolean;\r\n  isBodyTemplate: boolean;\r\n\r\n  ngOnInit(): void {\r\n    if (this.header instanceof TemplateRef) {\r\n      this.isHeaderTemplate = true;\r\n    }\r\n    if (this.body instanceof TemplateRef) {\r\n      this.isBodyTemplate = true;\r\n    }\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-popover'\" [style.width.px]=\"width\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-popover-header\" *ngIf=\"header\">\r\n    <ng-container *ngIf=\"!isHeaderTemplate\">\r\n      <div [innerHTML]=\"header\"></div>\r\n    </ng-container>\r\n    <ng-template *ngIf=\"isHeaderTemplate\" [ngTemplateOutlet]=\"header\" [ngTemplateOutletContext]=\"context\">\r\n    </ng-template>\r\n  </div>\r\n  <div class=\"np-popover-body\">\r\n    <ng-container *ngIf=\"!isBodyTemplate\">\r\n      <div [innerHTML]=\"body\"></div>\r\n    </ng-container>\r\n    <ng-template *ngIf=\"isBodyTemplate\" [ngTemplateOutlet]=\"body\" [ngTemplateOutletContext]=\"context\">\r\n    </ng-template>\r\n  </div>\r\n</div>","import {\r\n  Directive,\r\n  HostListener,\r\n  Input,\r\n  AfterViewInit,\r\n  ComponentRef,\r\n  ElementRef,\r\n  TemplateRef,\r\n  OnDestroy,\r\n  EventEmitter,\r\n  Output,\r\n} from \"@angular/core\";\r\nimport {\r\n  OverlayRef,\r\n  Overlay,\r\n  OverlayPositionBuilder,\r\n  ConnectedPosition,\r\n} from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { NpPopoverComponent } from \"./np-popover.component\";\r\nimport { NpUtilityService } from \"../np-utility/np-utility.service\";\r\n\r\n@Directive({\r\n  selector: \"[npPopover]\",\r\n  exportAs: \"NpPopoverDirective\",\r\n})\r\nexport class NpPopoverDirective implements AfterViewInit, OnDestroy {\r\n  @Input() placement: string;\r\n  @Input() header: string | TemplateRef<any>;\r\n  @Input() body: string | TemplateRef<any>;\r\n  @Input() context: any;\r\n  @Input() openOnClick: boolean;\r\n  @Input() width: number;\r\n  @Input() closeOnClickOutside: boolean = true;\r\n  @Input() backDropClass: string = \"np-popover-backdrop\";\r\n  @Input() hasBackDrop: boolean = true;\r\n  @Input() styleClass: string;\r\n\r\n  @Output() onOpen: EventEmitter<any> = new EventEmitter();\r\n  @Output() onClose: EventEmitter<any> = new EventEmitter();\r\n\r\n  private overlayRef: OverlayRef;\r\n\r\n  constructor(\r\n    private overlay: Overlay,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef,\r\n    private utility: NpUtilityService\r\n  ) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.elementRef.nativeElement.className = `${this.elementRef.nativeElement.className} np-popover-target`.trim();\r\n    const position: ConnectedPosition[] = this.utility.getPosition(\r\n      this.placement\r\n    );\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(position);\r\n    if (this.openOnClick) {\r\n      this.overlayRef = this.overlay.create({\r\n        positionStrategy,\r\n        hasBackdrop: this.hasBackDrop,\r\n        backdropClass: this.backDropClass,\r\n      });\r\n      this.overlayRef.backdropClick().subscribe(() => {\r\n        if (this.closeOnClickOutside) {\r\n          this._close();\r\n        }\r\n      });\r\n    } else {\r\n      this.overlayRef = this.overlay.create({\r\n        positionStrategy,\r\n      });\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.overlayRef.hasAttached()) {\r\n      this.overlayRef.detach();\r\n    }\r\n  }\r\n\r\n  open(): void {\r\n    this._open();\r\n  }\r\n\r\n  close(): void {\r\n    this._close();\r\n  }\r\n\r\n  @HostListener(\"mouseover\")\r\n  _showOnMouseEnter(): void {\r\n    if (this.openOnClick) {\r\n      return;\r\n    }\r\n    this._open();\r\n  }\r\n\r\n  @HostListener(\"click\")\r\n  _openOnClick(): void {\r\n    if (!this.openOnClick) {\r\n      return;\r\n    }\r\n    if (this.overlayRef.hasAttached()) {\r\n      this.overlayRef.detach();\r\n      this.onClose.emit();\r\n    } else {\r\n      this._open();\r\n    }\r\n  }\r\n\r\n  _open(): void {\r\n    const popoverPortal = new ComponentPortal(NpPopoverComponent);\r\n    const popoverRef: ComponentRef<NpPopoverComponent> = this.overlayRef.attach(\r\n      popoverPortal\r\n    );\r\n    popoverRef.instance.header = this.header;\r\n    popoverRef.instance.body = this.body;\r\n    popoverRef.instance.context = this.context;\r\n    popoverRef.instance.width = this.width;\r\n    popoverRef.instance.styleClass = this.styleClass;\r\n    this.onOpen.emit();\r\n  }\r\n\r\n  @HostListener(\"mouseout\")\r\n  _hideOnMouseLeave(): void {\r\n    if (this.openOnClick) {\r\n      return;\r\n    }\r\n    this._close();\r\n  }\r\n\r\n  _close(): void {\r\n    if (this.overlayRef.hasAttached()) {\r\n      this.overlayRef.detach();\r\n      this.onClose.emit();\r\n    }\r\n  }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpPopoverComponent } from \"./np-popover.component\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { NpPopoverDirective } from \"./np-popover.directive\";\r\n\r\n@NgModule({\r\n    declarations: [NpPopoverComponent, NpPopoverDirective],\r\n    imports: [CommonModule, OverlayModule],\r\n    exports: [NpPopoverDirective]\r\n})\r\nexport class NpPopoverModule { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  forwardRef,\r\n  AfterViewInit,\r\n  OnChanges,\r\n  SimpleChanges,\r\n} from \"@angular/core\";\r\nimport {\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewContainerRef,\r\n  ElementRef,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport {\r\n  OverlayRef,\r\n  Overlay,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { TopBottomOverlayPositions } from \"../np-utility/np-constants\";\r\nimport { NpUtilityService } from \"../np-utility/np-utility.service\";\r\n\r\n@Component({\r\n  selector: \"np-dropdown\",\r\n  templateUrl: \"./np-dropdown.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpDropdownComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpDropdownComponent\r\n  implements ControlValueAccessor, AfterViewInit, OnChanges {\r\n  private static controlCount = 1;\r\n\r\n  @Input() items: any[];\r\n  @Input() displayKey: string;\r\n  @Input() valueKey: string;\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  @Input() orderBy: string;\r\n  @Input() orderDir: string;\r\n  @Input() placeholder: string = \"\";\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-dropdown_${NpDropdownComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"templatePortalContent\") templatePortalContent: TemplateRef<any>;\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  selected: any;\r\n  innerValue: any;\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n  isOpen: boolean = false;\r\n\r\n  private templatePortal: TemplatePortal<any>;\r\n  private overlayRef: OverlayRef;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  constructor(\r\n    public overlay: Overlay,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef,\r\n    private utility: NpUtilityService\r\n  ) { }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes[\"items\"]) {\r\n      this._setSelectedOption();\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(TopBottomOverlayPositions);\r\n    this.overlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      hasBackdrop: true,\r\n      backdropClass: \"np-dropdown-backdrop\",\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n      panelClass: this.styleClass,\r\n    });\r\n    this.templatePortal = new TemplatePortal(\r\n      this.templatePortalContent,\r\n      this.viewContainerRef\r\n    );\r\n    this.overlayRef.backdropClick().subscribe(() => this._close());\r\n  }\r\n\r\n  get value(): any {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: any) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: any): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this._setSelectedOption();\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _setSelectedOption(): void {\r\n    let selected: any;\r\n    if (this.valueKey) {\r\n      for (const item of this.items) {\r\n        if (item[this.valueKey] === this.value) {\r\n          selected = item;\r\n          break;\r\n        }\r\n      }\r\n    } else {\r\n      for (const item of this.items) {\r\n        if (item === this.value) {\r\n          selected = item;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    this.selected = selected;\r\n  }\r\n\r\n  _close(): void {\r\n    this.overlayRef.detach();\r\n    this.inputViewChild.nativeElement.focus();\r\n    this.isOpen = false;\r\n  }\r\n\r\n  _clear(): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.value = null;\r\n    this.selected = null;\r\n  }\r\n\r\n  _selectValue(val: any): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.value = this.valueKey ? val[this.valueKey] : val;\r\n    this.selected = val;\r\n    this._close();\r\n  }\r\n\r\n  _open(): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    if (!this.overlayRef.hasAttached()) {\r\n      this.overlayRef.attach(this.templatePortal);\r\n      this.isOpen = false;\r\n    }\r\n  }\r\n\r\n  _isSelected(item: any): boolean {\r\n    if (this.displayKey || this.valueKey) {\r\n      return this.utility.isEqual(this.selected, item);\r\n    }\r\n    return this.selected === item;\r\n  }\r\n\r\n  _onKeydown(event: KeyboardEvent): void {\r\n    if (event.key === \"Tab\" || event.key === \"Escape\") {\r\n      this._close();\r\n    }\r\n    if (event.key === \"ArrowDown\") {\r\n      this._open();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  _trackBy(index: number): number {\r\n    return index;\r\n  }\r\n\r\n  _getDisplayValue(): void {\r\n    return (\r\n      (this.displayKey && this.selected\r\n        ? this.selected[this.displayKey]\r\n        : this.selected) || \"\"\r\n    );\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-dropdown': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\" role=\"combobox\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"isOpen\"\r\n  [attr.aria-owns]=\"inputId + '_listbox'\">\r\n  <div class=\"np-input-group\" [ngClass]=\"{ 'np-focused': focused }\">\r\n    <input class=\"np-form-control\" type=\"text\" #control autocomplete=\"off\" readonly [disabled]=\"isDisabled\"\r\n      [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\" [value]=\"_getDisplayValue()\" [placeholder]=\"placeholder\"\r\n      [attr.id]=\"inputId + '_input'\" (click)=\"_open()\" (keydown)=\"_onKeydown($event)\" (blur)=\"_onBlur($event)\"\r\n      (focus)=\"_onFocus($event)\" />\r\n    <div class=\"np-input-group-append\" *ngIf=\"innerValue\">\r\n      <button class=\"np-btn-icon np-btn-clear\" type=\"button\" tabindex=\"-1\" (click)=\"_clear()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n  <ng-template #templatePortalContent>\r\n    <ul class=\"np-dropdown-overlay np-list\" role=\"listbox\" [attr.id]=\"inputId + '_listbox'\">\r\n      <li class=\"np-list-item\" role=\"option\" *ngFor=\"\r\n          let item of items | npOrderBy: orderBy:orderDir;\r\n          let i = index;\r\n          trackBy: _trackBy\r\n        \" [ngClass]=\"{ 'np-dropdown-selected': _isSelected(item) }\" (click)=\"_selectValue(item)\">\r\n        <ng-container *ngIf=\"!itemTemplate; else customTemplate\">\r\n          <span [innerHTML]=\"displayKey ? item[displayKey] : item\"></span>\r\n        </ng-container>\r\n        <ng-template #customTemplate [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ item: item }\">\r\n        </ng-template>\r\n      </li>\r\n    </ul>\r\n  </ng-template>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpDropdownComponent } from \"./np-dropdown.component\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\nimport { NpOrderByModule } from \"../np-utility/np-orderby.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpDropdownComponent],\r\n  imports: [\r\n    CommonModule,\r\n    OverlayModule,\r\n    PortalModule,\r\n    NpAutofocusModule,\r\n    NpOrderByModule,\r\n  ],\r\n  exports: [NpDropdownComponent],\r\n})\r\nexport class NpDropdownModule { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n} from \"@angular/core\";\r\nimport { NpMenuItem } from \"../np-menu.model\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n  selector: \"np-menu-item\",\r\n  templateUrl: \"./np-menu-item.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpMenuItemComponent {\r\n  @Input() item: NpMenuItem;\r\n  @Input() orientation: \"vertical\" | \"horizontal\" = \"vertical\";\r\n\r\n  @Output() onClickItem: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor(private router: Router) { }\r\n\r\n  _onMouseEnter($event: any, item: NpMenuItem): void {\r\n    if (this.orientation === \"vertical\") {\r\n      item.x = $event.target.offsetWidth;\r\n      item.y = 0;\r\n    } else {\r\n      item.x = 0;\r\n      item.y = $event.target.offsetHeight;\r\n    }\r\n    item.isChildVisible = true;\r\n  }\r\n\r\n  _onMouseLeave(item: NpMenuItem): void {\r\n    item.isChildVisible = false;\r\n  }\r\n\r\n  _onClickMenuItem(item: NpMenuItem): void {\r\n    this.onClickItem.emit(item);\r\n  }\r\n\r\n  _isActive(item: NpMenuItem): boolean {\r\n    return this.router.isActive(item.routerLink, { matrixParams: 'ignored', queryParams: 'ignored', paths: 'subset', fragment: 'ignored' });\r\n  }\r\n}\r\n","<ng-container *ngIf=\"item.visible\">\r\n  <ng-container *ngIf=\"item.isHeader\">\r\n    <li class=\"np-menu-header\" role=\"none\">\r\n      <a [attr.id]=\"item.id\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n      </a>\r\n    </li>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"item.items && !item.isHeader\">\r\n    <li class=\"np-menu-item\" role=\"none\" (mouseenter)=\"_onMouseEnter($event, item)\" (mouseleave)=\"_onMouseLeave(item)\">\r\n      <a class=\"np-menu-link\" role=\"menuitem\" aria-haspopup=\"true\" [attr.aria-expanded]=\"item.isChildVisible\"\r\n        tabindex=\"0\" [ngClass]=\"{ 'np-menu-active': item.routerLink && _isActive(item) }\" [attr.id]=\"item.id\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n        <span class=\"np-menu-icon\">\r\n          <svg class=\"np-icon\" *ngIf=\"orientation === 'vertical'\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"></path>\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          </svg>\r\n          <svg class=\"np-icon\" *ngIf=\"orientation === 'horizontal'\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"></path>\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          </svg>\r\n        </span>\r\n      </a>\r\n      <ng-container *ngIf=\"item.isChildVisible\">\r\n        <ul class=\"np-submenu\" role=\"menu\" [style.top.px]=\"item.y\" [style.left.px]=\"item.x\">\r\n          <ng-container *ngFor=\"let child of item.items\">\r\n            <np-menu-item [item]=\"child\" [orientation]=\"'vertical'\" (onClickItem)=\"_onClickMenuItem($event)\">\r\n            </np-menu-item>\r\n          </ng-container>\r\n        </ul>\r\n      </ng-container>\r\n    </li>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"!item.items && !item.isHeader\">\r\n    <li class=\"np-menu-item\" role=\"none\">\r\n      <a class=\"np-menu-link\" role=\"menuitem\" tabindex=\"0\" *ngIf=\"item.routerLink\" [attr.id]=\"item.id\"\r\n        [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" [fragment]=\"item.fragment\"\r\n        [queryParamsHandling]=\"item.queryParamsHandling\" [routerLinkActive]=\"'np-menu-active'\"\r\n        (click)=\"_onClickMenuItem(item)\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n      </a>\r\n      <a class=\"np-menu-link\" role=\"menuitem\" tabindex=\"0\" *ngIf=\"item.url\" [attr.id]=\"item.id\" [href]=\"item.url\"\r\n        [target]=\"item.target\" (click)=\"_onClickMenuItem(item)\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n        <svg class=\"np-icon ml-1\" *ngIf=\"item.target === '_blank'\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n          <path d=\"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5z\" />\r\n        </svg>\r\n      </a>\r\n      <a class=\"np-menu-link\" role=\"menuitem\" tabindex=\"0\" *ngIf=\"!item.routerLink && !item.url\" [attr.id]=\"item.id\"\r\n        (click)=\"_onClickMenuItem(item)\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n      </a>\r\n    </li>\r\n  </ng-container>\r\n</ng-container>","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\nimport { NpMenuItem } from \"../np-menu.model\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Component({\r\n  selector: \"np-panel-menu-item\",\r\n  templateUrl: \"./np-panel-menu-item.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpPanelMenuItemComponent {\r\n  @Input() item: NpMenuItem;\r\n\r\n  @Output() onClickItem: EventEmitter<any> = new EventEmitter();\r\n\r\n  constructor(private router: Router) { }\r\n\r\n  _onClickMenuItem(menuItem: NpMenuItem): void {\r\n    this.onClickItem.emit(menuItem);\r\n  }\r\n\r\n  _isActive(menuItem: NpMenuItem): boolean {\r\n    if (!menuItem.routerLink) {\r\n      return false;\r\n    }\r\n    return this.router.isActive(menuItem.routerLink, { matrixParams: 'ignored', queryParams: 'ignored', paths: 'subset', fragment: 'ignored' });\r\n  }\r\n\r\n  _onClickPanelMenu(menuItem: NpMenuItem): void {\r\n    menuItem.isChildVisible = !menuItem.isChildVisible;\r\n  }\r\n}\r\n","<ng-container *ngIf=\"item.visible\">\r\n  <ng-container *ngIf=\"item.isHeader\">\r\n    <li class=\"np-menu-header\" role=\"none\">\r\n      <a [attr.id]=\"item.id\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n      </a>\r\n    </li>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"item.items && !item.isHeader\">\r\n    <li class=\"np-menu-item\" role=\"none\">\r\n      <a class=\"np-menu-link\" role=\"menuitem\" tabindex=\"0\" [ngClass]=\"{ 'np-menu-active-parent': _isActive(item) }\"\r\n        [attr.id]=\"item.id\" (click)=\"_onClickPanelMenu(item)\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n        <span class=\"np-menu-icon\">\r\n          <svg class=\"np-icon\" *ngIf=\"!item.isChildVisible\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"></path>\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          </svg>\r\n          <svg class=\"np-icon\" *ngIf=\"item.isChildVisible\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"></path>\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          </svg>\r\n        </span>\r\n      </a>\r\n      <ng-container *ngIf=\"item.isChildVisible\">\r\n        <ul class=\"np-submenu\" role=\"menu\" [style.top.px]=\"item.y\" [style.left.px]=\"item.x\">\r\n          <ng-container *ngFor=\"let child of item.items\">\r\n            <np-panel-menu-item [item]=\"child\" (onClickItem)=\"_onClickMenuItem($event)\">\r\n            </np-panel-menu-item>\r\n          </ng-container>\r\n        </ul>\r\n      </ng-container>\r\n    </li>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"!item.items && !item.isHeader\">\r\n    <li class=\"np-menu-item\" role=\"none\">\r\n      <a class=\"np-menu-link\" role=\"menuitem\" tabindex=\"0\" *ngIf=\"item.routerLink\" [attr.id]=\"item.id\"\r\n        [routerLink]=\"item.routerLink\" [queryParams]=\"item.queryParams\" [fragment]=\"item.fragment\"\r\n        [queryParamsHandling]=\"item.queryParamsHandling\" [routerLinkActive]=\"'np-menu-active'\"\r\n        (click)=\"_onClickMenuItem(item)\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n      </a>\r\n      <a class=\"np-menu-link\" role=\"menuitem\" tabindex=\"0\" *ngIf=\"item.url\" [attr.id]=\"item.id\" [href]=\"item.url\"\r\n        [target]=\"item.target\" (click)=\"_onClickMenuItem(item)\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n        <svg class=\"np-icon ml-1\" *ngIf=\"item.target === '_blank'\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n          <path d=\"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5z\" />\r\n        </svg>\r\n      </a>\r\n      <a class=\"np-menu-link\" role=\"menuitem\" tabindex=\"0\" *ngIf=\"!item.routerLink && !item.url\" [attr.id]=\"item.id\"\r\n        (click)=\"_onClickMenuItem(item)\">\r\n        <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>\r\n        <span class=\"np-menu-text\" [innerHTML]=\"item.label\"></span>\r\n      </a>\r\n    </li>\r\n  </ng-container>\r\n</ng-container>","import {\r\n  Component,\r\n  Input,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  Output,\r\n  EventEmitter,\r\n  AfterContentInit,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport { NpMenuItem } from \"./np-menu.model\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n  selector: \"np-menubar\",\r\n  templateUrl: \"./np-menubar.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpMenubarComponent implements AfterContentInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() items: NpMenuItem[];\r\n  @Input() orientation: 'horizontal' | 'vertical';\r\n  @Input() isPanelMenu: boolean;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-menubar_${NpMenubarComponent.controlCount++}`;\r\n\r\n  @Output() onClickMenuItem: EventEmitter<any> = new EventEmitter();\r\n\r\n  subscription: Subscription;\r\n\r\n  ngAfterContentInit(): void {\r\n    if (!this.isPanelMenu) {\r\n      this.subscription = this.onClickMenuItem.subscribe(() => {\r\n        this.items.forEach((element: NpMenuItem) => {\r\n          if (element.items) {\r\n            this._collapseMenu(element);\r\n          }\r\n        });\r\n      });\r\n      this.orientation = this.orientation ? this.orientation : \"vertical\";\r\n    } else {\r\n      this.orientation = null;\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.subscription) {\r\n      this.subscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  _collapseMenu(item: NpMenuItem): void {\r\n    item.items.forEach((element: NpMenuItem) => {\r\n      if (element.items) {\r\n        this._collapseMenu(element);\r\n      }\r\n    });\r\n    item.isChildVisible = false;\r\n  }\r\n\r\n  _onClickMenuItem(item: NpMenuItem): void {\r\n    this.onClickMenuItem.emit(item);\r\n  }\r\n}\r\n","<ul role=\"menubar\" [ngClass]=\"{\r\n    'np-menubar': true,\r\n    'np-menubar-horizontal': orientation === 'horizontal',\r\n    'np-menubar-vertical': orientation === 'vertical',\r\n    'np-menubar-panel': isPanelMenu\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <ng-container *ngIf=\"!isPanelMenu\">\r\n    <np-menu-item *ngFor=\"let item of items\" [item]=\"item\" [orientation]=\"orientation\"\r\n      (onClickItem)=\"_onClickMenuItem($event)\">\r\n    </np-menu-item>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"isPanelMenu\">\r\n    <np-panel-menu-item *ngFor=\"let item of items\" [item]=\"item\" (onClickItem)=\"_onClickMenuItem($event)\">\r\n    </np-panel-menu-item>\r\n  </ng-container>\r\n</ul>","import {\r\n  Directive,\r\n  HostListener,\r\n  Input,\r\n  AfterViewInit,\r\n  ComponentRef,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Output,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport {\r\n  OverlayRef,\r\n  Overlay,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { NpMenubarComponent } from \"./np-menubar.component\";\r\nimport { NpMenuItem } from \"./np-menu.model\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { TopBottomOverlayPositions } from \"../np-utility/np-constants\";\r\n\r\n@Directive({\r\n  selector: \"[npPopupMenubar]\",\r\n})\r\nexport class NpPopupMenubarDirective implements AfterViewInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  @Input() items: NpMenuItem[];\r\n  @Input() styleClass: string;\r\n  @Input()\r\n  inputId: string = `np-popup-menubar_${NpPopupMenubarDirective.controlCount++}`;\r\n\r\n  @Output() onClickMenuItem: EventEmitter<any> = new EventEmitter();\r\n\r\n  subscription: Subscription;\r\n\r\n  private overlayRef: OverlayRef;\r\n\r\n  constructor(\r\n    private overlay: Overlay,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private elementRef: ElementRef\r\n  ) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.elementRef.nativeElement.className = `${this.elementRef.nativeElement.className} np-menubar-target`.trim();\r\n    const positionStrategy = this.overlayPositionBuilder\r\n      .flexibleConnectedTo(this.elementRef)\r\n      .withPositions(TopBottomOverlayPositions);\r\n    this.overlayRef = this.overlay.create({\r\n      positionStrategy,\r\n      hasBackdrop: true,\r\n      backdropClass: \"np-menubar-backdrop\",\r\n      panelClass: \"np-menubar-overlay\",\r\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n    });\r\n    this.overlayRef.backdropClick().subscribe(() => this._close());\r\n    this.subscription = this.onClickMenuItem.subscribe(() => {\r\n      setTimeout(() => {\r\n        this._close();\r\n      }, 100);\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.overlayRef.hasAttached()) {\r\n      this._close();\r\n    }\r\n    if (this.subscription) {\r\n      this.subscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  @HostListener(\"click\")\r\n  show(): void {\r\n    if (this.overlayRef.hasAttached()) {\r\n      this._close();\r\n      return;\r\n    }\r\n    const menubarPortal = new ComponentPortal(NpMenubarComponent);\r\n    const menubarRef: ComponentRef<NpMenubarComponent> = this.overlayRef.attach(\r\n      menubarPortal\r\n    );\r\n    menubarRef.instance.items = this.items;\r\n    menubarRef.instance.styleClass = this.styleClass;\r\n    menubarRef.instance.inputId = this.inputId;\r\n    menubarRef.instance.onClickMenuItem = this.onClickMenuItem;\r\n  }\r\n\r\n  _close(): void {\r\n    this.overlayRef.detach();\r\n  }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpMenubarComponent } from \"./np-menubar.component\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { OverlayModule } from \"@angular/cdk/overlay\";\r\nimport { NpPopupMenubarDirective } from \"./np-popup-menubar.directive\";\r\nimport { NpMenuItemComponent } from \"./np-menu-item/np-menu-item.component\";\r\nimport { NpPanelMenuItemComponent } from \"./np-panel-menu-item/np-panel-menu-item.component\";\r\n\r\n@NgModule({\r\n    declarations: [\r\n        NpMenubarComponent,\r\n        NpPopupMenubarDirective,\r\n        NpMenuItemComponent,\r\n        NpPanelMenuItemComponent,\r\n    ],\r\n    imports: [CommonModule, RouterModule, OverlayModule],\r\n    exports: [NpMenubarComponent, NpPopupMenubarDirective]\r\n})\r\nexport class NpMenubarModule { }\r\n","import { QueryParamsHandling } from \"@angular/router\";\r\n\r\nexport class NpMenuItem {\r\n  constructor(item: any) {\r\n    this.id = item.id;\r\n    this.label = item.label;\r\n    this.items = item.items;\r\n    this.url = item.url;\r\n    this.target = item.target ? item.target : \"_self\";\r\n    this.routerLink = item.routerLink;\r\n    this.queryParams = item.queryParams;\r\n    this.fragment = item.fragment;\r\n    this.queryParamsHandling = item.queryParamsHandling;\r\n    this.iconCss = item.iconCss;\r\n    this.isChildVisible = false;\r\n    this.visible = item.visible === false ? false : true;\r\n    this.isHeader = item.isHeader === true ? true : false;\r\n  }\r\n  public id: string;\r\n  public label: string;\r\n  public items: NpMenuItem[];\r\n  public url: string;\r\n  public target: string;\r\n  public routerLink: string;\r\n  public queryParams: any;\r\n  public fragment: string;\r\n  public queryParamsHandling: QueryParamsHandling;\r\n  public iconCss: string;\r\n  public visible: boolean;\r\n  public isHeader: boolean;\r\n  isChildVisible: boolean;\r\n  x: number;\r\n  y: number;\r\n}\r\n","import {\r\n  Component,\r\n  Input,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-card\",\r\n  templateUrl: \"./np-card.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpCardComponent {\r\n  private static controlCount = 1;\r\n\r\n  @Input() width: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-card_${NpCardComponent.controlCount++}`;\r\n}\r\n","<div [ngClass]=\"'np-card'\" [style.width.px]=\"width\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <ng-content></ng-content>\r\n</div>","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-card-header\",\r\n  template: '<div class=\"np-card-header\"><ng-content></ng-content></div>',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpCardHeaderComponent { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-card-image\",\r\n  template: '<div class=\"np-card-image\"><ng-content></ng-content></div>',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpCardImageComponent { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-card-footer\",\r\n  template: '<div class=\"np-card-footer\"><ng-content></ng-content></div>',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpCardFooterComponent { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-card-body\",\r\n  template: '<div class=\"np-card-body\"><ng-content></ng-content></div>',\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpCardBodyComponent { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpCardComponent } from \"./np-card.component\";\r\nimport { NpCardHeaderComponent } from \"./np-card-header.component\";\r\nimport { NpCardImageComponent } from \"./np-card-image.component\";\r\nimport { NpCardFooterComponent } from \"./np-card-footer.component\";\r\nimport { NpCardBodyComponent } from \"./np-card-body.component\";\r\n\r\n@NgModule({\r\n  declarations: [\r\n    NpCardComponent,\r\n    NpCardHeaderComponent,\r\n    NpCardImageComponent,\r\n    NpCardBodyComponent,\r\n    NpCardFooterComponent,\r\n  ],\r\n  imports: [CommonModule],\r\n  exports: [\r\n    NpCardComponent,\r\n    NpCardHeaderComponent,\r\n    NpCardImageComponent,\r\n    NpCardBodyComponent,\r\n    NpCardFooterComponent,\r\n  ],\r\n})\r\nexport class NpCardModule { }\r\n","import {\r\n  Directive,\r\n  ElementRef,\r\n  Input,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  Renderer2,\r\n  OnInit,\r\n} from \"@angular/core\";\r\n\r\n@Directive({ selector: \"[npLoader]\" })\r\nexport class NpLoaderDirective implements OnChanges, OnInit {\r\n  @Input(\"npLoader\") show: boolean;\r\n  @Input() diameter: number = 32;\r\n  @Input() strokeWidth: number = 4;\r\n  @Input() loadingText: string;\r\n\r\n  loaderEle: any;\r\n  isActive: boolean = false;\r\n  initialized: boolean = false;\r\n\r\n  constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n  ngOnInit(): void {\r\n    const loader = this.renderer.createElement(\"div\");\r\n    this.renderer.setAttribute(loader, \"role\", \"progressbar\");\r\n    this.renderer.setAttribute(loader, \"aria-busy\", \"true\");\r\n    this.renderer.addClass(loader, \"np-loader\");\r\n    this.renderer.setStyle(loader, \"width\", `${this.diameter}px`);\r\n    this.renderer.setStyle(loader, \"height\", `${this.diameter}px`);\r\n    this.renderer.setStyle(loader, \"border-width\", `${this.strokeWidth}px`);\r\n    this.loaderEle = this.renderer.createElement(\"div\");\r\n    this.renderer.addClass(this.loaderEle, \"np-loader-backdrop\");\r\n    this.renderer.appendChild(this.loaderEle, loader);\r\n    if (this.loadingText) {\r\n      const loaderTextDiv = this.renderer.createElement(\"div\");\r\n      const loaderText = this.renderer.createText(this.loadingText);\r\n      this.renderer.appendChild(loaderTextDiv, loaderText);\r\n      this.renderer.addClass(loaderTextDiv, \"np-loader-text\");\r\n      this.renderer.appendChild(this.loaderEle, loaderTextDiv);\r\n    }\r\n    this.initialized = true;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    setTimeout(() => {\r\n      if (this.initialized) {\r\n        if (changes[\"show\"] && changes[\"show\"].currentValue === true) {\r\n          this._showLoader();\r\n        } else {\r\n          this._hideLoader();\r\n        }\r\n      }\r\n    }, 10);\r\n  }\r\n\r\n  _showLoader(): void {\r\n    if (!this.initialized || this.isActive) {\r\n      return;\r\n    }\r\n    this.renderer.addClass(this.elRef.nativeElement, \"np-loader-target\");\r\n    this.renderer.appendChild(this.elRef.nativeElement, this.loaderEle);\r\n    this.isActive = true;\r\n  }\r\n\r\n  _hideLoader(): void {\r\n    if (!this.initialized || !this.isActive) {\r\n      return;\r\n    }\r\n    this.renderer.removeClass(this.elRef.nativeElement, \"np-loader-target\");\r\n    this.renderer.removeChild(this.elRef.nativeElement, this.loaderEle);\r\n    this.isActive = false;\r\n  }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpLoaderDirective } from \"./np-loader.directive\";\r\n\r\n@NgModule({\r\n  declarations: [NpLoaderDirective],\r\n  imports: [CommonModule],\r\n  exports: [NpLoaderDirective],\r\n})\r\nexport class NpLoaderModule { }\r\n","import {\r\n  Directive,\r\n  ElementRef,\r\n  Input,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  Renderer2,\r\n} from \"@angular/core\";\r\n\r\n@Directive({ selector: \"[npBlockUi]\" })\r\nexport class NpBlockUiDirective implements OnChanges {\r\n  @Input(\"npBlockUi\") visible: boolean;\r\n\r\n  element: any;\r\n  isActive = false;\r\n\r\n  constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n    const icon = `<svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\r\n            <path d=\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\"/>\r\n        </svg>`;\r\n    const blockUi = this.renderer.createElement(\"div\");\r\n    this.renderer.addClass(blockUi, \"np-blockui\");\r\n    blockUi.innerHTML = icon;\r\n    this.element = this.renderer.createElement(\"div\");\r\n    this.renderer.addClass(this.element, \"np-blockui-backdrop\");\r\n    this.renderer.appendChild(this.element, blockUi);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes[\"visible\"].currentValue === true) {\r\n      this._show();\r\n    } else {\r\n      this._hide();\r\n    }\r\n  }\r\n\r\n  _show(): void {\r\n    if (this.isActive) {\r\n      return;\r\n    }\r\n    this.isActive = true;\r\n    this.renderer.addClass(this.elRef.nativeElement, \"np-blockui-target\");\r\n    this.renderer.appendChild(this.elRef.nativeElement, this.element);\r\n  }\r\n\r\n  _hide(): void {\r\n    if (!this.isActive) {\r\n      return;\r\n    }\r\n    this.isActive = false;\r\n    this.renderer.removeClass(this.elRef.nativeElement, \"np-blockui-target\");\r\n    this.renderer.removeChild(this.elRef.nativeElement, this.element);\r\n  }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpBlockUiDirective } from \"./np-blockui.directive\";\r\n\r\n@NgModule({\r\n  declarations: [NpBlockUiDirective],\r\n  imports: [CommonModule],\r\n  exports: [NpBlockUiDirective],\r\n})\r\nexport class NpBlockUiModule { }\r\n","import { Directive } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"[npSidepanelContent]\",\r\n})\r\nexport class NpSidepanelContent { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class NpSidepanelService {\r\n  private _observables = {};\r\n\r\n  _add(id: string): Subject<any> {\r\n    this._observables[id] = new Subject<any>();\r\n    return this._observables[id];\r\n  }\r\n\r\n  get(id: string): Subject<any> {\r\n    return this._observables[id];\r\n  }\r\n\r\n  _remove(id: string): void {\r\n    delete this._observables[id];\r\n  }\r\n\r\n  closeSidepanel(id: string, data: any): void {\r\n    this._observables[id].next(data);\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  ViewChild,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ContentChild,\r\n  OnInit,\r\n  OnDestroy,\r\n} from \"@angular/core\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport {\r\n  OverlayRef,\r\n  Overlay,\r\n  OverlayPositionBuilder,\r\n} from \"@angular/cdk/overlay\";\r\nimport { NpSidepanelContent } from \"./np-sidepanel-content.directive\";\r\nimport { NpSidepanelService } from \"./np-sidepanel.service\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Component({\r\n  selector: \"np-sidepanel\",\r\n  templateUrl: \"./np-sidepanel.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpSidepanelComponent implements OnInit, OnDestroy {\r\n  private static controlCount = 1;\r\n\r\n  // left | right | top | bottom\r\n  @Input() position: 'left' | 'right' | 'top' | 'bottom' = \"left\";\r\n  @Input() height: number | string;\r\n  @Input() width: number | string;\r\n  @Input() header: string;\r\n  @Input() closeOnClickOutside: boolean = true;\r\n  @Input() backDropClass: string = \"np-sidepanel-backdrop\";\r\n  @Input() hasBackDrop: boolean = true;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-sidepanel_${NpSidepanelComponent.controlCount++}`;\r\n\r\n  @Output() onOpen: EventEmitter<any> = new EventEmitter();\r\n  @Output() onClose: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"templatePortalContent\") templatePortalContent: TemplateRef<any>;\r\n  @ContentChild(NpSidepanelContent, { read: TemplateRef, static: true })\r\n  _explicitContent: TemplateRef<any>;\r\n  private _contentPortal: TemplatePortal | null = null;\r\n  get content(): TemplatePortal | null {\r\n    return this._contentPortal;\r\n  }\r\n\r\n  private templatePortal: TemplatePortal<any>;\r\n  private overlayRef: OverlayRef;\r\n  private sidepanelRef = new Subject<any>();\r\n\r\n  constructor(\r\n    public overlay: Overlay,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private overlayPositionBuilder: OverlayPositionBuilder,\r\n    private sidepanelService: NpSidepanelService\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    this.sidepanelRef = this.sidepanelService._add(this.inputId);\r\n    this.sidepanelRef.subscribe((data) => {\r\n      this.close(data);\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.sidepanelRef.unsubscribe();\r\n    this.sidepanelService._remove(this.inputId);\r\n  }\r\n\r\n  open(data: any): Subject<any> {\r\n    // if overlay is not attached then only attach\r\n    if (this.overlayRef === undefined || !this.overlayRef.hasAttached()) {\r\n      const positionStrategy = this.overlayPositionBuilder.global();\r\n      if (this.position === \"left\") {\r\n        positionStrategy.left(\"0\");\r\n      }\r\n      if (this.position === \"right\") {\r\n        positionStrategy.right(\"0\");\r\n      }\r\n      if (this.position === \"top\") {\r\n        positionStrategy.top(\"0\");\r\n      }\r\n      if (this.position === \"bottom\") {\r\n        positionStrategy.bottom(\"0\");\r\n      }\r\n      this.overlayRef = this.overlay.create({\r\n        positionStrategy,\r\n        hasBackdrop: this.hasBackDrop,\r\n        backdropClass: this.backDropClass,\r\n        height: this.height,\r\n        width: this.width,\r\n        scrollStrategy: this.overlay.scrollStrategies.block(),\r\n        panelClass: \"np-sidepanel-overlay\",\r\n      });\r\n      this.templatePortal = new TemplatePortal(\r\n        this.templatePortalContent,\r\n        this.viewContainerRef\r\n      );\r\n      this.overlayRef.backdropClick().subscribe(() => {\r\n        if (this.closeOnClickOutside) {\r\n          this.close(null);\r\n        }\r\n      });\r\n      if (!this._contentPortal && this._explicitContent) {\r\n        this._contentPortal = new TemplatePortal(\r\n          this._explicitContent,\r\n          this.viewContainerRef\r\n        );\r\n      }\r\n      this.overlayRef.attach(this.templatePortal);\r\n      this.onOpen.emit(data);\r\n      return this.sidepanelRef;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  close(data: any): void {\r\n    if (this.overlayRef && this.overlayRef.hasAttached()) {\r\n      if (this._contentPortal && this._contentPortal.isAttached) {\r\n        this._contentPortal.detach();\r\n      }\r\n      this.overlayRef.detach();\r\n      this.onClose.emit(data);\r\n    }\r\n  }\r\n}\r\n","<ng-template #templatePortalContent>\r\n  <div role=\"complementary\" [ngClass]=\"'np-sidepanel'\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n    <div class=\"np-sidepanel-header\" *ngIf=\"header\" [innerHTML]=\"header\">\r\n    </div>\r\n    <div class=\"np-sidepanel-content\">\r\n      <ng-content></ng-content>\r\n      <ng-template [cdkPortalOutlet]=\"content\"></ng-template>\r\n    </div>\r\n  </div>\r\n</ng-template>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpSidepanelComponent } from \"./np-sidepanel.component\";\r\nimport { PortalModule } from \"@angular/cdk/portal\";\r\nimport { NpSidepanelContent } from \"./np-sidepanel-content.directive\";\r\n\r\n@NgModule({\r\n  declarations: [NpSidepanelComponent, NpSidepanelContent],\r\n  imports: [CommonModule, PortalModule],\r\n  exports: [NpSidepanelComponent, NpSidepanelContent],\r\n})\r\nexport class NpSidepanelModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { NpBreadcrumbItem } from \"./np-breadcrumb.model\";\r\n\r\n@Component({\r\n  selector: \"np-breadcrumb\",\r\n  templateUrl: \"./np-breadcrumb.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpBreadcrumbComponent {\r\n  private static controlCount = 1;\r\n\r\n  @Input() items: NpBreadcrumbItem[];\r\n  @Input() showIcon: boolean = true;\r\n  @Input() iconCss: string;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-breadcrumb_${NpBreadcrumbComponent.controlCount++}`;\r\n\r\n  @Output() onClick: EventEmitter<any> = new EventEmitter();\r\n\r\n  _onClick(item: NpBreadcrumbItem): void {\r\n    if (this.onClick && !item.disabled) {\r\n      this.onClick.emit(item);\r\n    }\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-breadcrumb'\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <ul class=\"np-breadcrumb-items\">\r\n    <ng-container *ngIf=\"showIcon\">\r\n      <li class=\"np-breadcrumb-item\">\r\n        <i *ngIf=\"iconCss\" [class]=\"iconCss\"></i>\r\n        <svg class=\"np-icon\" *ngIf=\"!iconCss\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </li>\r\n    </ng-container>\r\n    <ng-container *ngFor=\"let item of items; let i = index\">\r\n      <li class=\"np-breadcrumb-item\" [attr.tabindex]=\"item.disabled ? '-1' : '0'\">\r\n        <a [ngClass]=\"{ 'np-disabled': item.disabled }\" [attr.id]=\"item.id\" [innerHTML]=\"item.label\"\r\n          (click)=\"_onClick(item)\"></a>\r\n      </li>\r\n    </ng-container>\r\n  </ul>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpBreadcrumbComponent } from \"./np-breadcrumb.component\";\r\n\r\n@NgModule({\r\n  declarations: [NpBreadcrumbComponent],\r\n  imports: [CommonModule],\r\n  exports: [NpBreadcrumbComponent],\r\n})\r\nexport class NpBreadcrumbModule { }\r\n","export class NpBreadcrumbItem {\r\n  constructor(item: any) {\r\n    this.id = item.id;\r\n    this.label = item.label;\r\n    this.data = item.data;\r\n    this.disabled = item.disabled;\r\n  }\r\n  public id: string;\r\n  public label: string;\r\n  public data: any;\r\n  public disabled: boolean;\r\n}\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  forwardRef,\r\n  ElementRef,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport {\r\n  NG_VALUE_ACCESSOR,\r\n  ControlValueAccessor,\r\n  NG_VALIDATORS,\r\n  Validator,\r\n} from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"np-number-box\",\r\n  templateUrl: \"./np-number-box.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpNumberBoxComponent),\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => NpNumberBoxComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpNumberBoxComponent implements ControlValueAccessor, Validator {\r\n  private static controlCount = 1;\r\n\r\n  @Input() steps: number = 1;\r\n  @Input() min: number;\r\n  @Input() max: number;\r\n  @Input() pattern: string;\r\n  @Input() prefixLabel: string;\r\n  @Input() suffixLabel: string;\r\n  @Input() showControls: boolean = true;\r\n  @Input() placeholder: string = \"\";\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-number-box_${NpNumberBoxComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  innerValue: number;\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n  private timeout: any;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  get value(): number {\r\n    return this.innerValue !== undefined ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: number) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: number): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  validate(): any {\r\n    if (this.min !== undefined && this.value < this.min) {\r\n      return {\r\n        min: {\r\n          valid: false,\r\n        },\r\n      };\r\n    }\r\n    if (this.max !== undefined && this.value > this.max) {\r\n      return {\r\n        max: {\r\n          valid: false,\r\n        },\r\n      };\r\n    }\r\n    if (this.pattern) {\r\n      const regex = new RegExp(this.pattern);\r\n      if (this.value && !regex.test(this.value.toString())) {\r\n        return {\r\n          pattern: {\r\n            valid: false,\r\n          },\r\n        };\r\n      }\r\n    }\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _add(): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.value = this.value + this.steps;\r\n  }\r\n\r\n  _minus(): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.value = this.value - this.steps;\r\n  }\r\n\r\n  _onMouseDownPlus(): void {\r\n    const that = this;\r\n    this._clearTimeout();\r\n    this.timeout = setTimeout(() => {\r\n      that._onMouseDownPlus();\r\n    }, 200);\r\n    that._add();\r\n  }\r\n\r\n  _onMouseUpPlus(): void {\r\n    this._clearTimeout();\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _onMouseDownMinus(): void {\r\n    const that = this;\r\n    this._clearTimeout();\r\n    this.timeout = setTimeout(() => {\r\n      that._onMouseDownMinus();\r\n    }, 200);\r\n    that._minus();\r\n  }\r\n\r\n  _onMouseUpMinus(): void {\r\n    this._clearTimeout();\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _clearTimeout(): void {\r\n    if (this.timeout) {\r\n      clearTimeout(this.timeout);\r\n    }\r\n  }\r\n\r\n  _onInputChange(event: any): void {\r\n    if (isNaN(parseFloat(event.target.value))) {\r\n      this.value = null;\r\n    } else {\r\n      this.value = Number(event.target.value);\r\n    }\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-number-box': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-input-group\" [ngClass]=\"{ 'np-focused': focused }\">\r\n    <label class=\"np-prefix-label\" *ngIf=\"prefixLabel\" [innerHTML]=\"prefixLabel\"></label>\r\n    <input class=\"np-form-control\" type=\"number\" #control autocomplete=\"off\" [npAutofocus]=\"autoFocus\"\r\n      [attr.tabindex]=\"tabIndex\" [readonly]=\"readOnly\" [value]=\"innerValue\" [placeholder]=\"placeholder\"\r\n      [attr.aria-valumin]=\"min\" [attr.aria-valuemax]=\"max\" [attr.aria-valuenow]=\"innerValue\" [disabled]=\"isDisabled\"\r\n      (change)=\"_onInputChange($event)\" (blur)=\"_onBlur($event)\" (focus)=\"_onFocus($event)\" />\r\n    <label class=\"np-suffix-label\" *ngIf=\"suffixLabel\" [innerHTML]=\"suffixLabel\"></label>\r\n    <div class=\"np-input-group-append\" *ngIf=\"showControls\">\r\n      <button class=\"np-btn-icon np-number-minus\" type=\"button\" tabindex=\"-1\" (mousedown)=\"_onMouseDownMinus()\"\r\n        (mouseup)=\"_onMouseUpMinus()\" (mouseleave)=\"_onMouseUpMinus()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M19 13H5v-2h14v2z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n      <button class=\"np-btn-icon np-number-plus\" type=\"button\" tabindex=\"-1\" (mousedown)=\"_onMouseDownPlus()\"\r\n        (mouseup)=\"_onMouseUpPlus()\" (mouseleave)=\"_onMouseUpPlus()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpNumberBoxComponent } from \"./np-number-box.component\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpNumberBoxComponent],\r\n  imports: [CommonModule, NpAutofocusModule],\r\n  exports: [NpNumberBoxComponent],\r\n})\r\nexport class NpNumberBoxModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n} from \"@angular/core\";\r\nimport { NpTreeViewItem } from \"./np-tree-view.model\";\r\n\r\n@Component({\r\n  selector: \"np-tree-view\",\r\n  templateUrl: \"./np-tree-view.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpTreeViewComponent implements OnChanges {\r\n  private static controlCount = 1;\r\n\r\n  @Input() items: NpTreeViewItem[];\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  /* Selection mode can be single or multiple */\r\n  @Input() selectionMode: string;\r\n  @Input() cascadeSelection: boolean = false;\r\n\r\n  @Input() selection: any[];\r\n  @Output() selectionChange: EventEmitter<any> = new EventEmitter();\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-treeview_${NpTreeViewComponent.controlCount++}`;\r\n\r\n  @Output() onClick: EventEmitter<any> = new EventEmitter();\r\n  @Output() onExpand: EventEmitter<any> = new EventEmitter();\r\n  @Output() onCollapse: EventEmitter<any> = new EventEmitter();\r\n  @Output() onExpandAll: EventEmitter<any> = new EventEmitter();\r\n  @Output() onCollapseAll: EventEmitter<any> = new EventEmitter();\r\n  @Output() onSelect: EventEmitter<any> = new EventEmitter();\r\n  @Output() onDeselect: EventEmitter<any> = new EventEmitter();\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes[\"selection\"] && this.cascadeSelection) {\r\n      this._syncSelectionForAll();\r\n    }\r\n    if (changes[\"cascadeSelection\"] && !changes[\"cascadeSelection\"].firstChange) {\r\n      if (changes[\"cascadeSelection\"].currentValue) {\r\n        this._syncSelectionForAll();\r\n      } else {\r\n        this._removePartialSelectionAll();\r\n      }\r\n    }\r\n  }\r\n\r\n  expandAll(): void {\r\n    this.items.forEach((element: NpTreeViewItem) => {\r\n      this._expandAllInNode(element);\r\n    });\r\n    this.onExpandAll.emit();\r\n  }\r\n\r\n  collapseAll(): void {\r\n    this.items.forEach((element: NpTreeViewItem) => {\r\n      this._collapseAllInNode(element);\r\n    });\r\n    this.onCollapseAll.emit();\r\n  }\r\n\r\n  selectAll(): void {\r\n    if (this._isSingleSelectionMode()) {\r\n      return;\r\n    }\r\n    this.selection = [];\r\n    this.items.forEach((element: NpTreeViewItem) => {\r\n      this._selectAll(element);\r\n    });\r\n    this.selectionChange.emit(this.selection);\r\n  }\r\n\r\n  deselectAll(): void {\r\n    if (this._isSingleSelectionMode()) {\r\n      return;\r\n    }\r\n    this.selection = [];\r\n    this.selectionChange.emit(this.selection);\r\n  }\r\n\r\n  _toggle(item: NpTreeViewItem): void {\r\n    if (item.isExpanded) {\r\n      item.isExpanded = false;\r\n      this.onCollapse.emit(item);\r\n      return;\r\n    }\r\n    item.isExpanded = true;\r\n    this.onExpand.emit(item);\r\n  }\r\n\r\n  _expandAllInNode(item: NpTreeViewItem): void {\r\n    item.isExpanded = true;\r\n    if (item.childItems) {\r\n      item.childItems.forEach((element: NpTreeViewItem) => {\r\n        this._expandAllInNode(element);\r\n      });\r\n    }\r\n  }\r\n\r\n  _collapseAllInNode(item: NpTreeViewItem): void {\r\n    item.isExpanded = false;\r\n    if (item.childItems) {\r\n      item.childItems.forEach((element: NpTreeViewItem) => {\r\n        this._collapseAllInNode(element);\r\n      });\r\n    }\r\n  }\r\n\r\n  _onClick(item: NpTreeViewItem): void {\r\n    this.onClick.emit(item);\r\n  }\r\n\r\n  _changeSelection(checked: any, item: NpTreeViewItem): void {\r\n    if (!item.id) {\r\n      throw new Error(\"NpTreeViewItem.id must be defined for selection\");\r\n    }\r\n    if (checked) {\r\n      this._selectNode(item);\r\n    } else {\r\n      this._deselectNode(item);\r\n    }\r\n    if (this.cascadeSelection) {\r\n      this._syncSelectionForAll();\r\n    }\r\n    if (checked) {\r\n      this.onSelect.emit(item);\r\n    } else {\r\n      this.onDeselect.emit(item);\r\n    }\r\n  }\r\n\r\n  _selectNode(item: NpTreeViewItem): void {\r\n    if (this._isSingleSelectionMode()) {\r\n      this.selection = [item];\r\n    } else {\r\n      if (!this.selection) {\r\n        this.selection = [];\r\n      }\r\n      this.selection.push(item);\r\n      if (this.cascadeSelection) {\r\n        this._selectChildNodes(item);\r\n      }\r\n    }\r\n    this.selectionChange.emit(this.selection);\r\n  }\r\n\r\n  _selectChildNodes(item: NpTreeViewItem): void {\r\n    if (item.childItems) {\r\n      item.childItems.forEach((element: NpTreeViewItem) => {\r\n        if (element.childItems) {\r\n          this._selectChildNodes(element);\r\n        }\r\n        const idx = this._findIndexInSelection(element);\r\n        if (idx === -1) {\r\n          if (!this.selection) {\r\n            this.selection = [];\r\n          }\r\n          this.selection.push(element);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  _deselectNode(item: NpTreeViewItem): void {\r\n    if (this._isSingleSelectionMode()) {\r\n      this.selection = [];\r\n    } else {\r\n      const idx = this._findIndexInSelection(item);\r\n      if (idx > -1) {\r\n        this.selection.splice(idx, 1);\r\n      }\r\n      if (this.cascadeSelection) {\r\n        this._deselectChildNodes(item);\r\n      }\r\n    }\r\n    this.selectionChange.emit(this.selection);\r\n  }\r\n\r\n  _deselectChildNodes(item: NpTreeViewItem): void {\r\n    if (item.childItems) {\r\n      item.childItems.forEach((element: NpTreeViewItem) => {\r\n        if (element.childItems) {\r\n          this._deselectChildNodes(element);\r\n        }\r\n        const idx = this._findIndexInSelection(element);\r\n        if (idx > -1) {\r\n          this.selection.splice(idx, 1);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  _isSelected(item: NpTreeViewItem): boolean {\r\n    return this._findIndexInSelection(item) > -1;\r\n  }\r\n\r\n  _findIndexInSelection(item: NpTreeViewItem): number {\r\n    let index = -1;\r\n    if (this.selectionMode && this.selection) {\r\n      for (let i = 0; i < this.selection.length; i++) {\r\n        const selectedItem = this.selection[i];\r\n        if (selectedItem.id === item.id) {\r\n          index = i;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    return index;\r\n  }\r\n\r\n  _isSingleSelectionMode(): boolean {\r\n    return this.selectionMode && this.selectionMode === \"single\";\r\n  }\r\n\r\n  _syncSelectionForAll(): void {\r\n    this.items.forEach((element: NpTreeViewItem) => {\r\n      this._syncSelection(element);\r\n    });\r\n  }\r\n\r\n  _syncSelection(item: NpTreeViewItem): void {\r\n    if (!item.id) {\r\n      throw new Error(\"NpTreeViewItem.id must be defined for selection\");\r\n    }\r\n    if (item.childItems && item.childItems.length) {\r\n      for (const child of item.childItems) {\r\n        this._syncSelection(child);\r\n      }\r\n\r\n      let selectedCount = 0;\r\n      let childPartiallySelected = false;\r\n      for (const child of item.childItems) {\r\n        if (this._isSelected(child)) {\r\n          selectedCount++;\r\n        }\r\n        if (child.partiallySelected) {\r\n          childPartiallySelected = true;\r\n        }\r\n      }\r\n      if (\r\n        (childPartiallySelected || selectedCount > 0) &&\r\n        selectedCount !== item.childItems.length\r\n      ) {\r\n        item.partiallySelected = true;\r\n      } else {\r\n        item.partiallySelected = false;\r\n      }\r\n\r\n      if (!this._isSingleSelectionMode()) {\r\n        const idx = this._findIndexInSelection(item);\r\n        if (selectedCount === item.childItems.length) {\r\n          if (idx === -1) {\r\n            if (!this.selection) {\r\n              this.selection = [];\r\n            }\r\n            this.selection.push(item);\r\n          }\r\n        } else {\r\n          if (idx > -1) {\r\n            this.selection.splice(idx, 1);\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  _selectAll(item: NpTreeViewItem): void {\r\n    if (!item.id) {\r\n      throw new Error(\"NpTreeViewItem.id must be defined for selection\");\r\n    }\r\n    this.selection.push(item);\r\n    if (item.childItems) {\r\n      item.childItems.forEach((element: NpTreeViewItem) => {\r\n        this._selectAll(element);\r\n      });\r\n    }\r\n  }\r\n\r\n  _trackBy(index: number): number {\r\n    return index;\r\n  }\r\n\r\n  _removePartialSelectionAll(): void {\r\n    this.items.forEach((element: NpTreeViewItem) => {\r\n      this._removePartialSelection(element);\r\n    });\r\n  }\r\n\r\n  _removePartialSelection(element: any): void {\r\n    element.partiallySelected = false;\r\n    if (element.childItems) {\r\n      element.childItems.forEach((item: NpTreeViewItem) => {\r\n        this._removePartialSelection(item);\r\n      });\r\n    }\r\n  }\r\n}\r\n","<ul role=\"tree\" [ngClass]=\"'np-treeview'\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <ng-container *ngTemplateOutlet=\"treeViewTemplate; context: { items: items }\">\r\n  </ng-container>\r\n</ul>\r\n<ng-template #treeViewTemplate let-items=\"items\">\r\n  <li class=\"np-treeview-node\" role=\"treeitem\" *ngFor=\"let item of items; trackBy: _trackBy\"\r\n    [attr.aria-expanded]=\"item.isExpanded\">\r\n    <ng-container *ngIf=\"item.childItems\">\r\n      <button class=\"np-btn-icon\" type=\"button\" tabindex=\"0\" (click)=\"_toggle(item)\" [ngClass]=\"{\r\n          'np-treeview-expand': !item.isExpanded,\r\n          'np-treeview-collapse': item.isExpanded\r\n        }\">\r\n        <svg class=\"np-icon\" *ngIf=\"item.isExpanded\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n          `\r\n        </svg>\r\n        <svg class=\"np-icon\" *ngIf=\"!item.isExpanded\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\"></path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </ng-container>\r\n    <div class=\"np-treeview-label\" [ngClass]=\"{ 'np-treeview-selection': selectionMode }\">\r\n      <np-checkbox *ngIf=\"selectionMode\" [ngModel]=\"_isSelected(item)\" [styleClass]=\"'np-treeview-checkbox'\"\r\n        [indeterminate]=\"item.partiallySelected\" (onChange)=\"_changeSelection($event, item)\">\r\n      </np-checkbox>\r\n      <span (click)=\"_onClick(item)\">\r\n        <ng-container *ngIf=\"!itemTemplate; else treeViewLabelTemp\">\r\n          <i *ngIf=\"item.iconCss\" [class]=\"item.iconCss\"></i>{{ item.label }}\r\n        </ng-container>\r\n        <ng-template #treeViewLabelTemp [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ item: item }\">\r\n        </ng-template>\r\n      </span>\r\n    </div>\r\n    <ul class=\"np-treeview-sub\" role=\"group\" *ngIf=\"item.childItems && item.isExpanded\">\r\n      <ng-container *ngTemplateOutlet=\"\r\n          treeViewTemplate;\r\n          context: { items: item.childItems }\r\n        \">\r\n      </ng-container>\r\n    </ul>\r\n  </li>\r\n</ng-template>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpTreeViewComponent } from \"./np-tree-view.component\";\r\nimport { NpCheckboxModule } from \"../np-checkbox/np-checkbox.module\";\r\nimport { FormsModule } from \"@angular/forms\";\r\n\r\n@NgModule({\r\n  declarations: [NpTreeViewComponent],\r\n  imports: [CommonModule, FormsModule, NpCheckboxModule],\r\n  exports: [NpTreeViewComponent],\r\n})\r\nexport class NpTreeViewModule { }\r\n","export class NpTreeViewItem {\r\n  constructor(item: any) {\r\n    this.label = item.label;\r\n    this.id = item.id;\r\n    this.childItems = item.childItems;\r\n    this.isExpanded = item.isExpanded;\r\n    this.data = item.data;\r\n    this.iconCss = item.iconCss;\r\n  }\r\n\r\n  label: string;\r\n  id: any;\r\n  isExpanded: boolean;\r\n  childItems: NpTreeViewItem[];\r\n  data: any;\r\n  partiallySelected: boolean;\r\n  iconCss: string;\r\n}\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  forwardRef,\r\n  Output,\r\n  EventEmitter,\r\n  Input,\r\n  ViewChild,\r\n  ElementRef,\r\n} from \"@angular/core\";\r\nimport {\r\n  NG_VALUE_ACCESSOR,\r\n  ControlValueAccessor,\r\n  UntypedFormControl,\r\n  NG_VALIDATORS,\r\n  Validator,\r\n} from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"np-file-upload\",\r\n  templateUrl: \"./np-file-upload.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpFileUploadComponent),\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => NpFileUploadComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpFileUploadComponent implements ControlValueAccessor, Validator {\r\n  private static controlCount = 1;\r\n\r\n  @Input() multiple: boolean;\r\n  @Input() extensions: string;\r\n  @Input() accept: string;\r\n  @Input() size: number;\r\n  @Input() totalSize: number;\r\n  @Input() maxFiles: number;\r\n  @Input() uploadButtonLabel: string;\r\n  @Input() showFileSize: boolean = true;\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-file-upload_${NpFileUploadComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<File[]> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"fileUploadInput\") fileUploadInput: ElementRef;\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  innerValue: File[];\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  get value(): File[] {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: File[]) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: File[]): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  validate(control: UntypedFormControl): any {\r\n    const value = control.value || [];\r\n    if (this.extensions) {\r\n      let isInValidExtension = false;\r\n      const exts = this.extensions.split(\",\");\r\n      value.forEach((element: any) => {\r\n        if (exts.indexOf(element.name.split(\".\")[1]) === -1) {\r\n          isInValidExtension = true;\r\n        }\r\n      });\r\n      if (isInValidExtension) {\r\n        return { extensions: { valid: false } };\r\n      }\r\n    }\r\n    if (this.size) {\r\n      let isInValidSize = false;\r\n      value.forEach((element: any) => {\r\n        if (element.size > this.size) {\r\n          isInValidSize = true;\r\n        }\r\n      });\r\n      if (isInValidSize) {\r\n        return { size: { valid: false } };\r\n      }\r\n    }\r\n    if (this.multiple && this.totalSize) {\r\n      let totalSize = 0;\r\n      value.forEach((element: any) => {\r\n        totalSize = totalSize + element.size;\r\n      });\r\n      if (totalSize > this.totalSize) {\r\n        return { totalSize: { valid: false } };\r\n      }\r\n    }\r\n    if (this.maxFiles) {\r\n      if (value.length > this.maxFiles) {\r\n        return { maxFiles: { valid: false } };\r\n      }\r\n    }\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _clear(): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    this.value = null;\r\n  }\r\n\r\n  _onFileSelected($event: any): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      return;\r\n    }\r\n    if (this.multiple) {\r\n      const newFiles = Array.from<File>($event.target.files);\r\n      if (newFiles.length > 0) {\r\n        if (this.value && this.value.length > 0) {\r\n          this.value = this.value.concat(newFiles);\r\n        } else {\r\n          this.value = newFiles;\r\n        }\r\n      }\r\n    } else {\r\n      this.value = Array.from<File>($event.target.files);\r\n    }\r\n    this.fileUploadInput.nativeElement.value = \"\";\r\n  }\r\n\r\n  _formatBytes(file: File, decimals = 2): string {\r\n    const bytes = file.size;\r\n    if (bytes === 0) {\r\n      return \"0 Bytes\";\r\n    }\r\n    const k = 1024;\r\n    const dm = decimals < 0 ? 0 : decimals;\r\n    const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\r\n    const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\r\n  }\r\n\r\n  _remove(idx: number): void {\r\n    this.value = this.value.filter((element, index) => index !== idx);\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _getLabel(): string {\r\n    return this.uploadButtonLabel\r\n      ? this.uploadButtonLabel\r\n      : this.multiple\r\n        ? \"Choose_Files\"\r\n        : \"Choose_File\";\r\n  }\r\n\r\n  _getInputId(): string {\r\n    return this.inputId + \"_input\";\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-file-upload': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-input-group\" [ngClass]=\"{ 'np-focused': focused }\">\r\n    <label class=\"np-file-label\" tabindex=\"auto\" [attr.for]=\"_getInputId()\">\r\n      <input class=\"np-file-input\" type=\"file\" #control [attr.id]=\"_getInputId()\" [attr.accept]=\"accept\"\r\n        [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\" [readonly]=\"readOnly\" [disabled]=\"isDisabled\"\r\n        [multiple]=\"multiple\" #fileUploadInput (change)=\"_onFileSelected($event)\" (blur)=\"_onBlur($event)\"\r\n        (focus)=\"_onFocus($event)\" />\r\n      <span class=\"np-file-btn\">{{ _getLabel() | npTranslate }}</span>\r\n    </label>\r\n    <div class=\"np-input-group-append\" *ngIf=\"value && value.length > 1\">\r\n      <button class=\"np-btn-icon np-btn-clear\" type=\"button\" tabindex=\"-1\" (click)=\"_clear()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n</div>\r\n<ul class=\"np-list np-file-upload-list\" *ngIf=\"value && value.length > 0\">\r\n  <li class=\"np-list-item\" *ngFor=\"let file of value; let i = index\">\r\n    <span class=\"np-file-name\">\r\n      <svg class=\"np-icon mr-1\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>\r\n        <path d=\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z\">\r\n        </path>\r\n      </svg>\r\n      <a [innerHTML]=\"file.name\"></a>\r\n    </span>\r\n    <span *ngIf=\"showFileSize\" [innerHTML]=\"_formatBytes(file)\"></span>\r\n    <button class=\"np-file-remove-btn\" type=\"button\" tabindex=\"-1\" (click)=\"_remove(i)\">\r\n      <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n        <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\">\r\n        </path>\r\n        <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n      </svg>\r\n    </button>\r\n  </li>\r\n</ul>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpFileUploadComponent } from \"./np-file-upload.component\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpFileUploadComponent],\r\n  imports: [CommonModule, NpAutofocusModule, NpTranslationsModule],\r\n  exports: [NpFileUploadComponent],\r\n})\r\nexport class NpFileUploadModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  forwardRef,\r\n  Output,\r\n  EventEmitter,\r\n  ElementRef,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"np-slider\",\r\n  templateUrl: \"./np-slider.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpSliderComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpSliderComponent {\r\n  private static controlCount = 1;\r\n\r\n  @Input() min: number = 0;\r\n  @Input() max: number = 100;\r\n  @Input() step: number = 1;\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-slider_${NpSliderComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  labelText: number;\r\n  innerValue: number;\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n  style: any;\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  get value(): number {\r\n    return this.innerValue;\r\n  }\r\n\r\n  set value(v: number) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.labelText = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: number): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.labelText = v;\r\n      this._setLeftPosition(v);\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _onChange($event: any): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      $event.preventDefault();\r\n      return;\r\n    }\r\n    this.value = $event.target.value;\r\n  }\r\n\r\n  _onInput($event: any): void {\r\n    if (this.isDisabled || this.readOnly) {\r\n      $event.preventDefault();\r\n      return;\r\n    }\r\n    this.labelText = $event.target.value;\r\n    this._setLeftPosition(this.labelText);\r\n  }\r\n\r\n  _onKeyDown($event: any): void {\r\n    if (this.readOnly) {\r\n      $event.preventDefault();\r\n      return;\r\n    }\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _setLeftPosition(value: number): void {\r\n    const val = ((value - this.min) * 100) / (this.max - this.min);\r\n    this.style = val < 50 ? { left: `${val}%` } : { right: `${100 - val}%` };\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-slider': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <input class=\"np-slider-input\" type=\"range\" #control [ngClass]=\"{ 'np-focused': focused }\" [min]=\"min\" [max]=\"max\"\r\n    [step]=\"step\" [value]=\"innerValue\" [disabled]=\"isDisabled\" [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\"\r\n    [readonly]=\"readOnly\" [attr.aria-valuenow]=\"value\" [attr.aria-valuemin]=\"min\" [attr.aria-valuemax]=\"max\"\r\n    (change)=\"_onChange($event)\" (keydown)=\"_onKeyDown($event)\" (input)=\"_onInput($event)\" (blur)=\"_onBlur($event)\"\r\n    (focus)=\"_onFocus($event)\" />\r\n  <label *ngIf=\"labelText != undefined && labelText != null\" class=\"np-slider-label\" [ngStyle]=\"style\"\r\n    [innerHTML]=\"labelText\"></label>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpSliderComponent } from \"./np-slider.component\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpSliderComponent],\r\n  imports: [CommonModule, NpAutofocusModule],\r\n  exports: [NpSliderComponent],\r\n})\r\nexport class NpSliderModule { }\r\n","import {\r\n  Component,\r\n  ChangeDetectionStrategy,\r\n  ViewEncapsulation,\r\n  Input,\r\n  TemplateRef,\r\n  Output,\r\n  EventEmitter,\r\n  ViewChild\r\n} from \"@angular/core\";\r\nimport { NpPaginatorComponent } from \"../np-paginator/np-paginator.component\";\r\nimport { NpUtilityService } from \"../np-utility/np-utility.service\";\r\n\r\n@Component({\r\n  selector: \"np-list\",\r\n  templateUrl: \"./np-list.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpListComponent {\r\n  private static controlCount = 1;\r\n\r\n  @Input() header: string;\r\n  @Input() items: any[];\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  /* Selection mode can be single or multiple */\r\n  @Input() selectionMode: string;\r\n  @Input() valueKey: string;\r\n  @Input() height: number;\r\n  @Input() orderBy: string;\r\n  @Input() orderDir: string;\r\n  @Input() showTiles: boolean = false;\r\n  @Input() columnSize: number = 4;\r\n  @Input() isServerOperations: boolean = false;\r\n  @Input() pageSize: number = 10;\r\n  @Input() totalItems: number = 0;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-list_${NpListComponent.controlCount++}`;\r\n  @Input() selection: any[];\r\n  @Output() selectionChange: EventEmitter<any> = new EventEmitter();\r\n\r\n  @Output() onClick: EventEmitter<any> = new EventEmitter();\r\n  @Output() onSelect: EventEmitter<any> = new EventEmitter();\r\n  @Output() onDeselect: EventEmitter<any> = new EventEmitter();\r\n  @Output() onPageChange: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"listPaginator\") listPaginator: NpPaginatorComponent;\r\n\r\n  constructor(private utility: NpUtilityService) { }\r\n\r\n  selectAll(): void {\r\n    if (this._isSingleSelectionMode()) {\r\n      return;\r\n    }\r\n    const items = [];\r\n    this.items.forEach((element: any) => {\r\n      if (this.valueKey) {\r\n        items.push(element[this.valueKey]);\r\n      } else {\r\n        items.push(element);\r\n      }\r\n    });\r\n    this.selection = items;\r\n    this.selectionChange.emit(this.selection);\r\n  }\r\n\r\n  deselectAll(): void {\r\n    this.selection = [];\r\n    this.selectionChange.emit(this.selection);\r\n  }\r\n\r\n  refresh(): void {\r\n    this.listPaginator.refresh();\r\n  }\r\n\r\n  loadPage(page: number): void {\r\n    this.listPaginator.loadPage(page);\r\n  }\r\n\r\n  _onSelectItem(checked: any, item: any): void {\r\n    if (checked) {\r\n      if (this.valueKey) {\r\n        if (this._isSingleSelectionMode()) {\r\n          this.selection = [item[this.valueKey]];\r\n        } else {\r\n          this.selection.push(item[this.valueKey]);\r\n        }\r\n        this.onSelect.emit(item[this.valueKey]);\r\n      } else {\r\n        if (this._isSingleSelectionMode()) {\r\n          this.selection = [item];\r\n        } else {\r\n          this.selection.push(item);\r\n        }\r\n        this.onSelect.emit(item);\r\n      }\r\n    } else {\r\n      const idx = this.selection.indexOf(item);\r\n      this.selection.splice(idx, 1);\r\n      this.onDeselect.emit(item);\r\n    }\r\n    this.selectionChange.emit(this.selection);\r\n  }\r\n\r\n  _isSelected(item: any): boolean {\r\n    return this.selectionMode && this._getSelectedIndexOfItem(item) > -1;\r\n  }\r\n\r\n  _getSelectedIndexOfItem(item: any): any {\r\n    const that = this;\r\n    if (this.valueKey) {\r\n      return this.selection.findIndex((element) => element === item[this.valueKey]);\r\n    }\r\n    return this.selection.findIndex((element) => that.utility.isEqual(element, item));\r\n  }\r\n\r\n  _trackBy(index: number): number {\r\n    return index;\r\n  }\r\n\r\n  _onClick(item: any): void {\r\n    this.onClick.emit(item);\r\n  }\r\n\r\n  _onPageChange(options: any): void {\r\n    this.onPageChange.emit(options);\r\n  }\r\n\r\n  _isSingleSelectionMode(): boolean {\r\n    return this.selectionMode && this.selectionMode === \"single\";\r\n  }\r\n\r\n  _clearSelection(): void {\r\n    this.deselectAll();\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-list-wrapper'\" [style.max-height.px]=\"height\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-list-header\" *ngIf=\"header\" [innerHTML]=\"header\" [attr.id]=\"inputId + '-title'\"></div>\r\n  <ng-container *ngIf=\"!showTiles\">\r\n    <ul class=\"np-list\" role=\"listbox\" [attr.aria-labelledby]=\"inputId + '-title'\">\r\n      <ng-container *ngFor=\"\r\n          let item of items | npOrderBy: orderBy:orderDir;\r\n          let i = index;\r\n          trackBy: _trackBy\r\n        \">\r\n        <li class=\"np-list-item\" role=\"option\" [attr.aria-selected]=\"_isSelected(item)\" [ngClass]=\"{\r\n            'np-list-selectable': selectionMode,\r\n            'np-list-selected': _isSelected(item)\r\n          }\" [attr.id]=\"'np-list-item_' + (i + 1)\">\r\n          <np-checkbox *ngIf=\"selectionMode\" [ngModel]=\"_isSelected(item)\" [styleClass]=\"'np-list-checkbox'\"\r\n            (onChange)=\"_onSelectItem($event, item)\"></np-checkbox>\r\n          <div class=\"np-list-item-content\" (click)=\"_onClick(item)\">\r\n            <ng-container *ngTemplateOutlet=\"itemTemplate; context: { item: item }\">\r\n            </ng-container>\r\n          </div>\r\n        </li>\r\n      </ng-container>\r\n    </ul>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"showTiles\">\r\n    <div class=\"np-tiles\">\r\n      <div class=\"np-row np-no-gutters\">\r\n        <ng-container *ngFor=\"\r\n            let item of items | npOrderBy: orderBy:orderDir;\r\n            let i = index;\r\n            trackBy: _trackBy\r\n          \">\r\n          <div class=\"np-col np-col-{{ columnSize }}\">\r\n            <div class=\"np-tiles-item\" [ngClass]=\"{\r\n                'np-tiles-selectable': selectionMode,\r\n                'np-tile-selected': _isSelected(item)\r\n              }\" [attr.id]=\"'np-tiles-item_' + (i + 1)\">\r\n              <np-checkbox *ngIf=\"selectionMode\" [ngModel]=\"_isSelected(item)\" [styleClass]=\"'np-tiles-checkbox'\"\r\n                (onChange)=\"_onSelectItem($event, item)\"></np-checkbox>\r\n              <div class=\"np-tiles-item-content\" (click)=\"_onClick(item)\">\r\n                <ng-container *ngTemplateOutlet=\"itemTemplate; context: { item: item }\">\r\n                </ng-container>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </ng-container>\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n  <ng-container *ngIf=\"isServerOperations\">\r\n    <np-paginator #listPaginator [pageSize]=\"pageSize\" [totalItems]=\"totalItems\" [styleClass]=\"'np-list-pagination'\"\r\n      (onPageChange)=\"_onPageChange($event)\" (onRefresh)=\"_clearSelection()\" (onPageSizeChange)=\"_clearSelection()\">\r\n    </np-paginator>\r\n  </ng-container>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpListComponent } from \"./np-list.component\";\r\nimport { NpPaginatorModule } from \"../np-paginator/np-paginator.module\";\r\nimport { NpCheckboxModule } from \"../np-checkbox/np-checkbox.module\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { NpOrderByModule } from \"../np-utility/np-orderby.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpListComponent],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    NpPaginatorModule,\r\n    NpCheckboxModule,\r\n    NpOrderByModule,\r\n  ],\r\n  exports: [NpListComponent],\r\n})\r\nexport class NpListModule { }\r\n","import {\r\n  Component,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  TemplateRef,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\r\n\r\n@Component({\r\n  selector: \"np-virtual-scroll\",\r\n  templateUrl: \"./np-virtual-scroll.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpVirtualScrollComponent {\r\n  private static controlCount = 1;\r\n\r\n  @Input() header: string;\r\n  @Input() items: any[];\r\n  @Input() pageSize: number;\r\n  @Input() itemHeight: number;\r\n  @Input() template: TemplateRef<any>;\r\n  @Input() styleClass: string;\r\n  @Input()\r\n  inputId = `np-virtualscroll_${NpVirtualScrollComponent.controlCount++}`;\r\n\r\n  @Output() loadData: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(CdkVirtualScrollViewport) viewPort: CdkVirtualScrollViewport;\r\n\r\n  loadedPages: number[] = [];\r\n\r\n  scrollToIndex(idx: number): void {\r\n    this.viewPort.scrollToIndex(idx);\r\n  }\r\n\r\n  scrollToOffset(offset: number): void {\r\n    this.viewPort.scrollToOffset(offset);\r\n  }\r\n\r\n  _onScrollIndexChange(index: number): void {\r\n    const pageRange = this._createPageRange(Math.floor(index / this.pageSize));\r\n    pageRange.forEach((page: number) => this._loadPage(page));\r\n  }\r\n\r\n  _loadPage(page: number): void {\r\n    if (this.loadedPages.indexOf(page) === -1) {\r\n      this.loadData.emit({ first: this.pageSize * page, rows: this.pageSize });\r\n      this.loadedPages.push(page);\r\n    }\r\n  }\r\n\r\n  private _createPageRange(page: number): number[] {\r\n    const range: number[] = [];\r\n\r\n    if (page !== 0) {\r\n      range.push(page - 1);\r\n    }\r\n    range.push(page);\r\n    if (page !== Math.ceil(this.items.length / this.pageSize) - 1) {\r\n      range.push(page + 1);\r\n    }\r\n\r\n    return range;\r\n  }\r\n}\r\n","<div\r\n  [ngClass]=\"'np-virtual-scroll-wrapper'\"\r\n  [class]=\"styleClass\"\r\n  [attr.id]=\"inputId\"\r\n>\r\n  <div\r\n    class=\"np-virtual-scroll-header\"\r\n    *ngIf=\"header\"\r\n    [innerHTML]=\"header\"\r\n    [attr.id]=\"inputId + '-title'\"\r\n  ></div>\r\n  <div\r\n    role=\"listbox\"\r\n    [ngClass]=\"'np-virtual-scroll'\"\r\n    [attr.aria-labelledby]=\"inputId + '-title'\"\r\n  >\r\n    <cdk-virtual-scroll-viewport\r\n      [itemSize]=\"itemHeight\"\r\n      (scrolledIndexChange)=\"_onScrollIndexChange($event)\"\r\n      [style.height.px]=\"pageSize * itemHeight\"\r\n    >\r\n      <div\r\n        class=\"np-virtual-scroll-item\"\r\n        role=\"option\"\r\n        *cdkVirtualFor=\"let item of items\"\r\n        [style.height.px]=\"itemHeight\"\r\n      >\r\n        <ng-container *ngIf=\"!item; else customTemplate\">\r\n          Loading...\r\n        </ng-container>\r\n        <ng-template\r\n          #customTemplate\r\n          [ngTemplateOutlet]=\"template\"\r\n          [ngTemplateOutletContext]=\"{ item: item }\"\r\n        >\r\n        </ng-template>\r\n      </div>\r\n    </cdk-virtual-scroll-viewport>\r\n  </div>\r\n</div>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpVirtualScrollComponent } from \"./np-virtual-scroll.component\";\r\nimport { ScrollingModule } from \"@angular/cdk/scrolling\";\r\n\r\n@NgModule({\r\n  declarations: [NpVirtualScrollComponent],\r\n  imports: [CommonModule, ScrollingModule],\r\n  exports: [NpVirtualScrollComponent],\r\n})\r\nexport class NpVirtualScrollModule { }\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  TemplateRef,\r\n  Input,\r\n} from \"@angular/core\";\r\nimport { CdkStepper } from \"@angular/cdk/stepper\";\r\nimport { NpStepComponent } from \"./np-step.component\";\r\n\r\n@Component({\r\n  selector: \"np-steps\",\r\n  templateUrl: \"./np-steps.component.html\",\r\n  providers: [{ provide: CdkStepper, useExisting: NpStepsComponent }],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpStepsComponent extends CdkStepper {\r\n  private static controlCount = 1;\r\n\r\n  @Input() stretchLabels: boolean;\r\n  @Input() verticalSteps: boolean;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-steps_${NpStepsComponent.controlCount++}`;\r\n\r\n  _onClick(index: number): void {\r\n    this.selectedIndex = index;\r\n  }\r\n\r\n  _isTemplate(step: NpStepComponent): boolean {\r\n    return step.labelTemplate instanceof TemplateRef;\r\n  }\r\n\r\n  _getTitleId(step: any): string {\r\n    return step.inputId + \"_title\";\r\n  }\r\n\r\n  _getBodyId(step: any): string {\r\n    return step.inputId + \"_body\";\r\n  }\r\n}\r\n","<div role=\"tablist\" *ngIf=\"!verticalSteps\" [ngClass]=\"{ 'np-steps': true }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-steps-header\" [ngClass]=\"{ 'np-steps-header-stretch': stretchLabels }\">\r\n    <ng-container *ngFor=\"let step of steps; let i = index\">\r\n      <button class=\"np-step-title\" role=\"tab\" [ngClass]=\"{\r\n          'np-step-done': step.completed,\r\n          'np-step-error': step.hasError,\r\n          'np-step-active': selectedIndex === i\r\n        }\" [attr.tabindex]=\"step.disabled ? '-1' : '0'\" [attr.id]=\"_getTitleId(step)\"\r\n        [attr.aria-selected]=\"step.active\" [attr.aria-controls]=\"_getBodyId(step)\" (click)=\"_onClick(i)\">\r\n        <ng-container *ngIf=\"!_isTemplate(step); else stepLabelTemp\">\r\n          <a class=\"np-step-number\" *ngIf=\"!step.iconCss\">{{ i + 1 }}</a>\r\n          <i *ngIf=\"step.iconCss\" [class]=\"step.iconCss\"></i>\r\n          <span [innerHTML]=\"step.label\"></span>\r\n        </ng-container>\r\n        <ng-template #stepLabelTemp [ngTemplateOutlet]=\"step.labelTemplate\">\r\n        </ng-template>\r\n      </button>\r\n    </ng-container>\r\n  </div>\r\n  <div class=\"np-step-body\" role=\"tabpanel\" [attr.id]=\"_getBodyId(selected)\"\r\n    [attr.aria-labelledby]=\"_getTitleId(selected)\">\r\n    <ng-container [ngTemplateOutlet]=\"selected.content\"></ng-container>\r\n  </div>\r\n</div>\r\n\r\n<div role=\"tablist\" *ngIf=\"verticalSteps\" [ngClass]=\"'np-steps np-steps-vertical'\" [class]=\"styleClass\"\r\n  [attr.id]=\"inputId\">\r\n  <div class=\"np-steps-header\">\r\n    <ng-container *ngFor=\"let step of steps; let i = index\">\r\n      <button class=\"np-step-title\" role=\"tab\" [ngClass]=\"{\r\n          'np-step-done': step.completed,\r\n          'np-step-error': step.hasError,\r\n          'np-step-active': selectedIndex === i\r\n        }\" [attr.tabindex]=\"step.disabled ? '-1' : '0'\" [attr.id]=\"_getTitleId(step)\"\r\n        [attr.aria-selected]=\"step.active\" [attr.aria-controls]=\"_getBodyId(step)\" (click)=\"_onClick(i)\">\r\n        <ng-container *ngIf=\"!_isTemplate(step); else stepLabelTemp\">\r\n          <a class=\"np-step-number\" *ngIf=\"!step.iconCss\">{{ i + 1 }}</a>\r\n          <i *ngIf=\"step.iconCss\" [class]=\"step.iconCss\"></i>\r\n          <span [innerHTML]=\"step.label\"></span>\r\n        </ng-container>\r\n        <ng-template #stepLabelTemp [ngTemplateOutlet]=\"step.labelTemplate\">\r\n        </ng-template>\r\n      </button>\r\n      <div *ngIf=\"selectedIndex === i\" class=\"np-step-body\" role=\"tabpanel\" [attr.id]=\"_getBodyId(selected)\"\r\n        [attr.aria-labelledby]=\"_getTitleId(selected)\">\r\n        <ng-container [ngTemplateOutlet]=\"selected.content\"></ng-container>\r\n      </div>\r\n    </ng-container>\r\n  </div>\r\n</div>","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  TemplateRef,\r\n  Input,\r\n  Inject,\r\n  Optional,\r\n  forwardRef,\r\n} from \"@angular/core\";\r\nimport { CdkStep, StepperOptions, STEPPER_GLOBAL_OPTIONS } from \"@angular/cdk/stepper\";\r\nimport { NpStepsComponent } from \"./np-steps.component\";\r\n\r\n@Component({\r\n  selector: \"np-step\",\r\n  template:\r\n    '<ng-template><div [attr.id]=\"inputId\"><ng-content></ng-content></div></ng-template>',\r\n  providers: [{ provide: CdkStep, useExisting: NpStepComponent }],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpStepComponent extends CdkStep {\r\n  private static controlCount = 1;\r\n\r\n  constructor(@Inject(forwardRef(() => NpStepsComponent)) stepper: NpStepsComponent,\r\n    @Optional() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions?: StepperOptions) {\r\n    super(stepper, stepperOptions);\r\n  }\r\n\r\n  @Input() labelTemplate: TemplateRef<any>;\r\n  @Input() iconCss: string;\r\n  @Input() inputId: string = `np-step_${NpStepComponent.controlCount++}`;\r\n}\r\n","import { CdkStepperNext, CdkStepperPrevious } from \"@angular/cdk/stepper\";\r\nimport { Directive } from \"@angular/core\";\r\n\r\n@Directive({\r\n  selector: \"button[npStepNext]\",\r\n  host: {\r\n    \"[type]\": \"type\",\r\n  },\r\n  inputs: [\"type\"],\r\n})\r\nexport class NpStepNext extends CdkStepperNext { }\r\n\r\n@Directive({\r\n  selector: \"button[npStepPrevious]\",\r\n  host: {\r\n    \"[type]\": \"type\",\r\n  },\r\n  inputs: [\"type\"],\r\n})\r\nexport class NpStepPrevious extends CdkStepperPrevious { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpStepsComponent } from \"./np-steps.component\";\r\nimport { NpStepComponent } from \"./np-step.component\";\r\nimport { CdkStepperModule } from \"@angular/cdk/stepper\";\r\nimport { NpStepNext, NpStepPrevious } from \"./np-step-buttons.directive\";\r\n\r\n@NgModule({\r\n  declarations: [NpStepsComponent, NpStepComponent, NpStepNext, NpStepPrevious],\r\n  imports: [CommonModule, CdkStepperModule],\r\n  exports: [NpStepsComponent, NpStepComponent, NpStepNext, NpStepPrevious],\r\n})\r\nexport class NpStepsModule { }\r\n","import {\r\n  AfterContentInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  TemplateRef,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { NpCalendarEvent } from \"./np-calendar-event.model\";\r\n\r\n@Component({\r\n  selector: \"np-calendar\",\r\n  templateUrl: \"./np-calendar.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpCalendarComponent implements AfterContentInit {\r\n  private static controlCount = 1;\r\n\r\n  @Input() disableWeekDays: string[] = [];\r\n  @Input() disableDates: Date[] = [];\r\n  @Input() dateClass: any;\r\n  @Input() isStartMonthWithMonday: boolean = false;\r\n  @Input() eventTemplate: TemplateRef<any>;\r\n  @Input() styleClass: string;\r\n  @Input() resetEventsOnLoad: boolean = false;\r\n  @Input() inputId: string = `np-calendar_${NpCalendarComponent.controlCount++}`;\r\n\r\n  @Output() onLoadMonth: EventEmitter<any> = new EventEmitter();\r\n  @Output() onClickDate: EventEmitter<any> = new EventEmitter();\r\n  @Output() onClickEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n  weekDays: string[];\r\n  monthsList: any[];\r\n  months: any[];\r\n  years: number[] = [];\r\n  currentMonthWeeks: any;\r\n  currentMonth: number;\r\n  currentYear: number;\r\n  today: Date;\r\n  events: NpCalendarEvent[] = [];\r\n  originalWeekDays = [\r\n    \"Sunday\",\r\n    \"Monday\",\r\n    \"Tuesday\",\r\n    \"Wednesday\",\r\n    \"Thursday\",\r\n    \"Friday\",\r\n    \"Saturday\",\r\n  ];\r\n\r\n  constructor() {\r\n    this.monthsList = [\r\n      { key: 0, value: \"January\" },\r\n      { key: 1, value: \"February\" },\r\n      { key: 2, value: \"March\" },\r\n      { key: 3, value: \"April\" },\r\n      { key: 4, value: \"May\" },\r\n      { key: 5, value: \"June\" },\r\n      { key: 6, value: \"July\" },\r\n      { key: 7, value: \"August\" },\r\n      { key: 8, value: \"September\" },\r\n      { key: 9, value: \"October\" },\r\n      { key: 10, value: \"November\" },\r\n      { key: 11, value: \"December\" },\r\n    ];\r\n    this.today = new Date();\r\n    this.today.setHours(0, 0, 0, 0);\r\n    this.currentMonth = this.today.getMonth();\r\n    this.currentYear = this.today.getFullYear();\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    if (this.isStartMonthWithMonday) {\r\n      this.weekDays = [\r\n        \"Monday\",\r\n        \"Tuesday\",\r\n        \"Wednesday\",\r\n        \"Thursday\",\r\n        \"Friday\",\r\n        \"Saturday\",\r\n        \"Sunday\",\r\n      ];\r\n    } else {\r\n      this.weekDays = [\r\n        \"Sunday\",\r\n        \"Monday\",\r\n        \"Tuesday\",\r\n        \"Wednesday\",\r\n        \"Thursday\",\r\n        \"Friday\",\r\n        \"Saturday\",\r\n      ];\r\n    }\r\n    this._calculateDays();\r\n    this._onLoad();\r\n  }\r\n\r\n  refresh(): void {\r\n    this._calculateDays();\r\n    this._onLoad();\r\n  }\r\n\r\n  addEvents(eve: NpCalendarEvent[]): void {\r\n    eve.forEach((element: NpCalendarEvent) => {\r\n      this.events.push(element);\r\n    });\r\n    this._calculateDays();\r\n  }\r\n\r\n  removeEvents(eve: NpCalendarEvent[]): void {\r\n    eve.forEach((element: NpCalendarEvent) => {\r\n      const idx = this._findIndexOfEvent(element);\r\n      if (idx > -1) {\r\n        this.events.splice(idx, 1);\r\n      }\r\n    });\r\n    this._calculateDays();\r\n  }\r\n\r\n  _calculateDays(): void {\r\n    const weeks = [];\r\n    weeks[0] = [];\r\n    const daysInMonth = this._getCurrentMonthData();\r\n    const firstWeekDayOfMonth = new Date(\r\n      this.currentYear,\r\n      this.currentMonth,\r\n      1\r\n    ).getDay();\r\n    // push extra values up to week days match to start date if month\r\n    for (let index = 0; index < firstWeekDayOfMonth; index++) {\r\n      weeks[0].push({ disabled: true });\r\n    }\r\n    if (this.isStartMonthWithMonday) {\r\n      // if start with monday then\r\n      if (firstWeekDayOfMonth === 0) {\r\n        weeks[0].push(\r\n          { disabled: true },\r\n          { disabled: true },\r\n          { disabled: true },\r\n          { disabled: true },\r\n          { disabled: true },\r\n          { disabled: true }\r\n        );\r\n      } else {\r\n        weeks[0].pop();\r\n      }\r\n    }\r\n    let j = 0;\r\n    // push all dates in month\r\n    daysInMonth.forEach((element: any) => {\r\n      if (weeks[j].length === 7) {\r\n        j++;\r\n        weeks[j] = [];\r\n      }\r\n      weeks[j].push(element);\r\n    });\r\n    if (weeks[j].length !== 7) {\r\n      while (weeks[j].length !== 7) {\r\n        weeks[j].push({ disabled: true });\r\n      }\r\n    }\r\n    this.currentMonthWeeks = weeks;\r\n  }\r\n\r\n  _getCurrentMonthData(): any[] {\r\n    const data = [];\r\n    const totalDaysInMonth = this._daysInCurrentMonth();\r\n    for (let i = 1; i <= totalDaysInMonth; i++) {\r\n      const date = new Date(this.currentYear, this.currentMonth, i);\r\n      data.push({\r\n        date,\r\n        day: i,\r\n        disabled: this._checkIsFullDateDisabled(date),\r\n        today: this._compareDate(this.today, date),\r\n        events: this._getEventsForDate(date),\r\n      });\r\n    }\r\n    return data;\r\n  }\r\n\r\n  _getEventsForDate(date: Date): NpCalendarEvent[] {\r\n    if (this.events === undefined || this.events === null) {\r\n      return null;\r\n    }\r\n    return this.events\r\n      .filter((element) => this._compareDate(element.startDate, date))\r\n      .sort((a: NpCalendarEvent, b: NpCalendarEvent) =>\r\n        a.startDate > b.startDate ? 1 : b.startDate > a.startDate ? -1 : 0\r\n      );\r\n  }\r\n\r\n  _daysInCurrentMonth(): number {\r\n    let days = 0;\r\n    switch (this.currentMonth) {\r\n      case 0: // Jan\r\n      case 2: // Mar\r\n      case 4: // May\r\n      case 6: // Jul\r\n      case 7: // Aug\r\n      case 9: // Oct\r\n      case 11: // Dec\r\n        days = 31;\r\n        break;\r\n      case 3: // Apr\r\n      case 5: // Jun\r\n      case 8: // Sept\r\n      case 10: // Nov\r\n        days = 30;\r\n        break;\r\n      case 1: // Feb\r\n        days = this.currentYear % 4 === 0 ? 29 : 28;\r\n        break;\r\n    }\r\n    return days;\r\n  }\r\n\r\n  _checkIsFullDateDisabled(date: Date): boolean {\r\n    if (date === undefined || date === null) {\r\n      return false;\r\n    }\r\n    if (this._checkIsWeekDayDisabled(date.getDay())) {\r\n      return true;\r\n    }\r\n    return (this.disableDates.findIndex((item) => this._compareDate(item, date))) > -1;\r\n  }\r\n\r\n  _checkIsWeekDayDisabled(index: number): boolean {\r\n    const day = this.originalWeekDays[index];\r\n    return this.disableWeekDays.indexOf(day) > -1;\r\n  }\r\n\r\n  _prevMonth(): void {\r\n    if (this.currentMonth === 0) {\r\n      this.currentMonth = 11;\r\n      this.currentYear = this.currentYear - 1;\r\n    } else {\r\n      this.currentMonth = this.currentMonth - 1;\r\n    }\r\n    this._calculateDays();\r\n    this._onLoad();\r\n  }\r\n\r\n  _nextMonth(): void {\r\n    if (this.currentMonth === 11) {\r\n      this.currentMonth = 0;\r\n      this.currentYear = this.currentYear + 1;\r\n    } else {\r\n      this.currentMonth = this.currentMonth + 1;\r\n    }\r\n    this._calculateDays();\r\n    this._onLoad();\r\n  }\r\n\r\n  _changeYear($event: any): void {\r\n    this.currentYear = Number($event.target.value.trim());\r\n    this._calculateDays();\r\n    this._onLoad();\r\n  }\r\n\r\n  _selectMonth($event: any): void {\r\n    this.currentMonth = Number($event.target.value);\r\n    this._calculateDays();\r\n    this._onLoad();\r\n  }\r\n\r\n  _loadCurrentMonth(): void {\r\n    this.currentMonth = this.today.getMonth();\r\n    this.currentYear = this.today.getFullYear();\r\n    this._calculateDays();\r\n    this._onLoad();\r\n  }\r\n\r\n  _compareDate(dateA: Date, dateB: Date): boolean {\r\n    if (!dateA || !dateB) {\r\n      return false;\r\n    }\r\n    if (\r\n      dateA.getFullYear() === dateB.getFullYear() &&\r\n      dateA.getMonth() === dateB.getMonth() &&\r\n      dateA.getDate() === dateB.getDate()\r\n    ) {\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  _onClickDate(date: Date): void {\r\n    if (this._checkIsFullDateDisabled(date)) {\r\n      return;\r\n    }\r\n    if (this.onClickDate) {\r\n      this.onClickDate.emit(date);\r\n    }\r\n  }\r\n\r\n  _onClickEvent($domEvent: any, event: NpCalendarEvent): void {\r\n    $domEvent.stopPropagation();\r\n    if (this._checkIsFullDateDisabled(event.startDate)) {\r\n      return;\r\n    }\r\n    if (this.onClickEvent) {\r\n      this.onClickEvent.emit(event);\r\n    }\r\n  }\r\n\r\n  _findIndexOfEvent(event: NpCalendarEvent): number {\r\n    let index = -1;\r\n    if (this.events) {\r\n      for (let i = 0; i < this.events.length; i++) {\r\n        const element = this.events[i];\r\n        if (\r\n          element.startDate === event.startDate &&\r\n          element.endDate === event.endDate &&\r\n          element.title === event.title\r\n        ) {\r\n          index = i;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    return index;\r\n  }\r\n\r\n  _onLoad(): void {\r\n    if (this.resetEventsOnLoad) {\r\n      this.events = [];\r\n    }\r\n    if (this.onLoadMonth) {\r\n      this.onLoadMonth.emit({\r\n        month: this.currentMonth,\r\n        year: this.currentYear,\r\n      });\r\n    }\r\n  }\r\n\r\n  _getDateClass(item: any): string {\r\n    if (this.dateClass) {\r\n      return (\r\n        `np-calendar-day np-day-${item.day} ` + this.dateClass(item.date)\r\n      ).trim();\r\n    }\r\n    return `np-calendar-day np-day-${item.day}`;\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-calendar'\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-toolbar np-calendar-toolbar\">\r\n    <div class=\"np-toolbar-item\">\r\n      <button class=\"np-btn-icon np-calendar-refresh-btn\" type=\"button\" tabindex=\"-1\" (click)=\"refresh()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path\r\n            d=\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\">\r\n          </path>\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-toolbar-item\">\r\n      <button class=\"np-btn np-calendar-today-btn\" type=\"button\" tabindex=\"-1\" (click)=\"_loadCurrentMonth()\">\r\n        {{ \"Today\" | npTranslate }}\r\n      </button>\r\n    </div>\r\n    <div class=\"np-toolbar-spacer\"></div>\r\n    <div class=\"np-toolbar-item\">\r\n      <button class=\"np-btn-icon np-calendar-prev-btn\" type=\"button\" tabindex=\"-1\" (click)=\"_prevMonth()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"></path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n    <div class=\"np-toolbar-item\">\r\n      <input class=\"np-form-control np-calendar-years-input\" type=\"number\" tabindex=\"-1\" [value]=\"currentYear\"\r\n        (change)=\"_changeYear($event)\" required />\r\n    </div>\r\n    <div class=\"np-toolbar-item\">\r\n      <select class=\"np-form-control np-calendar-months-select\" tabindex=\"-1\" (change)=\"_selectMonth($event)\">\r\n        <option *ngFor=\"let month of monthsList\" [value]=\"month.key\" [text]=\"month.value | npTranslate\"\r\n          [selected]=\"month.key === currentMonth\"></option>\r\n      </select>\r\n    </div>\r\n    <div class=\"np-toolbar-item\">\r\n      <button class=\"np-btn-icon np-calendar-next-btn\" type=\"button\" tabindex=\"-1\" (click)=\"_nextMonth()\">\r\n        <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n          <path d=\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"></path>\r\n          <path fill=\"none\" d=\"M0 0h24v24H0V0z\"></path>\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n  <table class=\"np-calendar-table\">\r\n    <thead>\r\n      <tr>\r\n        <th *ngFor=\"let weekDay of weekDays\">{{ weekDay | npTranslate }}</th>\r\n      </tr>\r\n    </thead>\r\n    <tbody>\r\n      <tr *ngFor=\"let week of currentMonthWeeks\">\r\n        <td *ngFor=\"let item of week\">\r\n          <div *ngIf=\"!item.day\" class=\"np-calendar-day\"></div>\r\n          <div *ngIf=\"item.day\" [class]=\"_getDateClass(item)\" [ngClass]=\"{\r\n              'np-calendar-today': item.today,\r\n              'np-disabled': item.disabled\r\n            }\" (click)=\"_onClickDate(item.date)\">\r\n            <div class=\"np-calendar-day-label\" [innerHTML]=\"item.day\"></div>\r\n            <div class=\"np-calendar-events\">\r\n              <ng-container *ngFor=\"let eve of item.events\">\r\n                <div class=\"np-calendar-event\" [style.background-color]=\"eve.backgroundColor\"\r\n                  [style.color]=\"eve.fontColor\" (click)=\"_onClickEvent($event, eve)\">\r\n                  <div class=\"np-calendar-event-details\">\r\n                    <div *ngIf=\"!eventTemplate; else customTemplate\" [innerHTML]=\"eve.title\" [title]=\"eve.title\"></div>\r\n                    <ng-template #customTemplate [ngTemplateOutlet]=\"eventTemplate\"\r\n                      [ngTemplateOutletContext]=\"{ event: eve }\">\r\n                    </ng-template>\r\n                  </div>\r\n                </div>\r\n              </ng-container>\r\n            </div>\r\n          </div>\r\n        </td>\r\n      </tr>\r\n    </tbody>\r\n  </table>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpCalendarComponent } from \"./np-calendar.component\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpCalendarComponent],\r\n  imports: [CommonModule, NpTranslationsModule],\r\n  exports: [NpCalendarComponent],\r\n})\r\nexport class NpCalendarModule {}\r\n","export class NpCalendarEvent {\r\n  constructor(item: any) {\r\n    this.startDate = item.startDate;\r\n    this.endDate = item.endDate;\r\n    this.title = item.description;\r\n    this.data = item.data;\r\n    this.backgroundColor = item.backgroundColor;\r\n    this.fontColor = item.fontColor;\r\n  }\r\n  public startDate: Date;\r\n  public endDate: Date;\r\n  public title: string;\r\n  public data: any;\r\n  public backgroundColor: string;\r\n  public fontColor: string;\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Input,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-radio-button\",\r\n  template: \"\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpRadioButtonComponent implements AfterViewInit {\r\n  private static controlCount = 1;\r\n\r\n  @Input() label: string;\r\n  @Input() value: any;\r\n  @Input() inputId: string = `np-radio-button_${NpRadioButtonComponent.controlCount++}`;\r\n\r\n  focused: boolean = false;\r\n\r\n  ngAfterViewInit(): void {\r\n    if (!this.value) {\r\n      throw new EvalError(\"The [value] property is required!\");\r\n    }\r\n    if (!this.label) {\r\n      throw new EvalError(\"The [label] property is required!\");\r\n    }\r\n  }\r\n}\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ContentChildren,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  Input,\r\n  Output,\r\n  QueryList,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { NpRadioButtonComponent } from \"./np-radio-button.component\";\r\n\r\n@Component({\r\n  selector: \"np-radio-group\",\r\n  templateUrl: \"./np-radio-group.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpRadioGroupComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpRadioGroupComponent implements ControlValueAccessor {\r\n  private static controlCount = 1;\r\n\r\n  @Input() name: string;\r\n  // Orientation can be 'horizontal' or 'vertical'\r\n  @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n  @Input() readOnly: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-radio-group_${NpRadioGroupComponent.controlCount++}`;\r\n  @Input() set autoFocus(value: boolean) {\r\n    if (value) {\r\n      this.focus();\r\n    }\r\n  }\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ContentChildren(NpRadioButtonComponent)\r\n  radioButtons: QueryList<NpRadioButtonComponent>;\r\n\r\n  innerValue: any;\r\n  isDisabled: boolean = false;\r\n\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  constructor(private el: ElementRef) { }\r\n\r\n  get value(): any {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: any) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: any): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  focus(): void {\r\n    setTimeout(() => {\r\n      if (!this.value) {\r\n        const radio = this.el.nativeElement.querySelector(\r\n          \"#\" + this.radioButtons.first.inputId\r\n        );\r\n        if (radio) {\r\n          radio.querySelector(\".np-radio-button-input\").focus();\r\n        }\r\n      }\r\n      this.radioButtons.forEach((item: any) => {\r\n        if (item.value === this.value) {\r\n          const radio = this.el.nativeElement.querySelector(\"#\" + item.inputId);\r\n          if (radio) {\r\n            radio.querySelector(\".np-radio-button-input\").focus();\r\n          }\r\n        }\r\n      });\r\n    }, 100);\r\n  }\r\n\r\n  _onKeyDown(event: KeyboardEvent): void {\r\n    if (\r\n      (event.key === \"ArrowRight\" ||\r\n        event.key === \"ArrowLeft\" ||\r\n        event.key === \"ArrowUp\" ||\r\n        event.key === \"ArrowDown\") &&\r\n      (this.readOnly || this.isDisabled)\r\n    ) {\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  _onChange(item: NpRadioButtonComponent): void {\r\n    this.value = item.value;\r\n  }\r\n\r\n  _isSelected(item: NpRadioButtonComponent): boolean {\r\n    return this.value === item.value;\r\n  }\r\n\r\n  _getTabIndex(item: NpRadioButtonComponent, i: number): number {\r\n    if (!this.value) {\r\n      if (i === 0) {\r\n        return this.tabIndex || 0;\r\n      }\r\n      return -1;\r\n    }\r\n    return this._isSelected(item) ? this.tabIndex || 0 : -1;\r\n  }\r\n\r\n  _onBlur($event: any, item: NpRadioButtonComponent): void {\r\n    item.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any, item: NpRadioButtonComponent): void {\r\n    item.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _getInputId(id: string): string {\r\n    return id + \"_input\";\r\n  }\r\n}\r\n","<div class=\"np-radio-group\" role=\"radiogroup\" [ngClass]=\"{ 'np-radio-group-vertical': orientation === 'vertical' }\"\r\n  [attr.id]=\"inputId\">\r\n  <ng-container *ngFor=\"let item of radioButtons; let i = index\">\r\n    <div [ngClass]=\"{\r\n        'np-radio-button': true,\r\n        'np-disabled': isDisabled,\r\n        'np-readonly': readOnly\r\n      }\" role=\"radio\" [attr.aria-checked]=\"_isSelected(item)\" [class]=\"styleClass\" [attr.id]=\"item.inputId\">\r\n      <label class=\"np-radio-button-label\" [attr.for]=\"_getInputId(item.inputId)\">\r\n        <input class=\"np-radio-button-input\" type=\"radio\" [value]=\"value\" [checked]=\"_isSelected(item)\"\r\n          [attr.id]=\"_getInputId(item.inputId)\" [attr.name]=\"name\" [disabled]=\"isDisabled\" [readonly]=\"readOnly\"\r\n          [attr.tabindex]=\"_getTabIndex(item, i)\" (change)=\"_onChange(item)\" (keydown)=\"_onKeyDown($event)\"\r\n          (blur)=\"_onBlur($event, item)\" (focus)=\"_onFocus($event, item)\" />\r\n        <span class=\"np-radio-container\" [ngClass]=\"{\r\n            'np-radio-selected': _isSelected(item),\r\n            'np-focused-rounded': item.focused\r\n          }\">\r\n          <span class=\"np-radio-outer-circle\"></span>\r\n          <span class=\"np-radio-inner-circle\"></span>\r\n        </span>\r\n        <span class=\"np-radio-button-text\" [innerHTML]=\"item.label\"></span>\r\n      </label>\r\n    </div>\r\n  </ng-container>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpRadioButtonComponent } from \"./np-radio-button.component\";\r\nimport { NpRadioGroupComponent } from \"./np-radio-group.component\";\r\n\r\n@NgModule({\r\n  declarations: [NpRadioButtonComponent, NpRadioGroupComponent],\r\n  imports: [CommonModule],\r\n  exports: [NpRadioButtonComponent, NpRadioGroupComponent],\r\n})\r\nexport class NpRadioButtonModule { }\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  Input,\r\n  Output,\r\n  ViewChild,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport {\r\n  ControlValueAccessor,\r\n  NG_VALIDATORS,\r\n  NG_VALUE_ACCESSOR,\r\n  Validator,\r\n} from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"np-input-text\",\r\n  templateUrl: \"./np-input-text.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpInputTextComponent),\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => NpInputTextComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpInputTextComponent implements ControlValueAccessor, Validator {\r\n  private static controlCount = 1;\r\n\r\n  @Input() type: string = \"text\";\r\n  @Input() minLength: number;\r\n  @Input() maxLength: number;\r\n  @Input() pattern: string;\r\n  @Input() prefixLabel: string;\r\n  @Input() suffixLabel: string;\r\n  @Input() mask: string;\r\n  @Input() placeholder: string = \"\";\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-input-text_${NpInputTextComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  innerValue: string;\r\n  isDisabled = false;\r\n  focused = false;\r\n\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  get value(): string {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: string) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: string): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  validate(): any {\r\n    if (\r\n      this.minLength !== undefined &&\r\n      this.value &&\r\n      this.value.length < this.minLength\r\n    ) {\r\n      return {\r\n        minLength: {\r\n          valid: false,\r\n        },\r\n      };\r\n    }\r\n    if (\r\n      this.maxLength !== undefined &&\r\n      this.value &&\r\n      this.value.length > this.maxLength\r\n    ) {\r\n      return {\r\n        maxLength: {\r\n          valid: false,\r\n        },\r\n      };\r\n    }\r\n    if (this.pattern) {\r\n      const regex = new RegExp(this.pattern);\r\n      if (this.value && !regex.test(this.value.toString())) {\r\n        return {\r\n          pattern: {\r\n            valid: false,\r\n          },\r\n        };\r\n      }\r\n    }\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _onInputChange(event: any): void {\r\n    this.value = event.target.value;\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-input-text': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-input-group\" [ngClass]=\"{ 'np-focused': focused }\">\r\n    <label class=\"np-prefix-label\" *ngIf=\"prefixLabel\" [innerHTML]=\"prefixLabel\"></label>\r\n    <input class=\"np-form-control\" [type]=\"type\" #control autocomplete=\"off\" [npAutofocus]=\"autoFocus\"\r\n      [attr.tabindex]=\"tabIndex\" [readonly]=\"readOnly\" [value]=\"innerValue || ''\" [placeholder]=\"placeholder\"\r\n      [attr.minlength]=\"minLength\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled\" (blur)=\"_onBlur($event)\"\r\n      (focus)=\"_onFocus($event)\" (change)=\"_onInputChange($event)\" />\r\n    <label class=\"np-suffix-label\" *ngIf=\"suffixLabel\" [innerHTML]=\"suffixLabel\"></label>\r\n  </div>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpInputTextComponent } from \"./np-input-text.component\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpInputTextComponent],\r\n  imports: [CommonModule, NpAutofocusModule],\r\n  exports: [NpInputTextComponent],\r\n})\r\nexport class NpInputTextModule { }\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  Input,\r\n  Output,\r\n  ViewChild,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport {\r\n  ControlValueAccessor,\r\n  NG_VALIDATORS,\r\n  NG_VALUE_ACCESSOR,\r\n  Validator,\r\n} from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"np-textarea\",\r\n  templateUrl: \"./np-textarea.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpTextareaComponent),\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => NpTextareaComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpTextareaComponent implements ControlValueAccessor, Validator {\r\n  private static controlCount = 1;\r\n\r\n  @Input() rows: number;\r\n  @Input() cols: number;\r\n  @Input() resize: boolean = true;\r\n  @Input() minLength: number;\r\n  @Input() maxLength: number;\r\n  @Input() placeholder: string = \"\";\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-textarea_${NpTextareaComponent.controlCount++}`;\r\n\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n\r\n  innerValue: string;\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  get value(): string {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: string) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: string): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  validate(): any {\r\n    if (\r\n      this.minLength !== undefined &&\r\n      this.value &&\r\n      this.value.length < this.minLength\r\n    ) {\r\n      return {\r\n        minLength: {\r\n          valid: false,\r\n        },\r\n      };\r\n    }\r\n    if (\r\n      this.maxLength !== undefined &&\r\n      this.value &&\r\n      this.value.length > this.maxLength\r\n    ) {\r\n      return {\r\n        maxLength: {\r\n          valid: false,\r\n        },\r\n      };\r\n    }\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _onInputChange(event: any): void {\r\n    this.value = event.target.value;\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-textarea': true,\r\n    'np-disabled': isDisabled,\r\n    'np-readonly': readOnly,\r\n    'np-focused': focused\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <textarea class=\"np-textarea-control\" #control [npAutofocus]=\"autoFocus\" [attr.tabindex]=\"tabIndex\"\r\n    [readonly]=\"readOnly\" [value]=\"innerValue || ''\" [placeholder]=\"placeholder\" [attr.minlength]=\"minLength\"\r\n    [attr.rows]=\"rows\" [attr.cols]=\"cols\" [style.resize]=\"resize ? 'both' : 'none'\" [attr.maxlength]=\"maxLength\"\r\n    [disabled]=\"isDisabled\" (blur)=\"_onBlur($event)\" (focus)=\"_onFocus($event)\"\r\n    (change)=\"_onInputChange($event)\"></textarea>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpTextareaComponent } from \"./np-textarea.component\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpTextareaComponent],\r\n  imports: [CommonModule, NpAutofocusModule],\r\n  exports: [NpTextareaComponent],\r\n})\r\nexport class NpTextareaModule { }\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  Input,\r\n  Output,\r\n  ViewChild,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport {\r\n  NG_VALUE_ACCESSOR,\r\n  ControlValueAccessor,\r\n  NG_VALIDATORS,\r\n  Validator,\r\n} from \"@angular/forms\";\r\nimport { NpPopoverDirective } from \"../np-popover/np-popover.directive\";\r\n\r\n@Component({\r\n  selector: \"np-rich-text\",\r\n  templateUrl: \"./np-rich-text.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NpRichTextComponent),\r\n      multi: true,\r\n    },\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => NpRichTextComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NpRichTextComponent implements ControlValueAccessor, Validator {\r\n  private static controlCount = 1;\r\n\r\n  @Input() minLength: number;\r\n  @Input() maxLength: number;\r\n  @Input() config: string[];\r\n  @Input() fonts: string[];\r\n  @Input() height: number;\r\n  @Input() readOnly: boolean;\r\n  @Input() autoFocus: boolean;\r\n  @Input() tabIndex: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-rich-text_${NpRichTextComponent.controlCount++}`;\r\n  @Output() onChange: EventEmitter<any> = new EventEmitter();\r\n  @Output() onFocus: EventEmitter<any> = new EventEmitter();\r\n  @Output() onBlur: EventEmitter<any> = new EventEmitter();\r\n\r\n  @ViewChild(\"control\") inputViewChild: ElementRef;\r\n  @ViewChild(\"createLinkPopover\") createLinkPopover: NpPopoverDirective;\r\n  @ViewChild(\"foreColorPopover\") foreColorPopover: NpPopoverDirective;\r\n  @ViewChild(\"backColorPopover\") backColorPopover: NpPopoverDirective;\r\n\r\n  innerValue: string;\r\n  isDisabled: boolean = false;\r\n  focused: boolean = false;\r\n  isBold: boolean = false;\r\n  isItalic: boolean = false;\r\n  isUnderline: boolean = false;\r\n  isBlockquote: boolean = false;\r\n  isStrikethrough: boolean = false;\r\n  currentFormat: string = \"no value\";\r\n  currentFont: string = \"no value\";\r\n  currentfontsize: string = \"no value\";\r\n  linkUrl: string;\r\n  currentSelectionRange: Range;\r\n  foreColor: string;\r\n  backColor: string;\r\n\r\n  private onChangeCallback: (_: any) => void = () => { };\r\n  private onTouchedCallback: () => void = () => { };\r\n\r\n  constructor(private el: ElementRef) {\r\n    this.config = [\r\n      \"bold\",\r\n      \"italic\",\r\n      \"underline\",\r\n      \"strikethrough\",\r\n      \"removeformat\",\r\n      \"formatblock\",\r\n      \"blockquote\",\r\n      \"fontname\",\r\n      \"fontsize\",\r\n      \"forecolor\",\r\n      \"backcolor\",\r\n      \"subscript\",\r\n      \"superscript\",\r\n      \"justifyleft\",\r\n      \"justifycenter\",\r\n      \"justifyright\",\r\n      \"indent\",\r\n      \"outdent\",\r\n      \"insertunorderedlist\",\r\n      \"insertorderedlist\",\r\n      \"createlink\",\r\n      \"undo\",\r\n      \"redo\",\r\n    ];\r\n    this.fonts = [\"Arial\", \"Arial Black\", \"Courier New\", \"Times New Roman\"];\r\n  }\r\n\r\n  get value(): string {\r\n    return this.innerValue ? this.innerValue : null;\r\n  }\r\n\r\n  set value(v: string) {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      this.onChangeCallback(v);\r\n      this.onChange.emit(v);\r\n    }\r\n  }\r\n\r\n  writeValue(v: string): void {\r\n    if (v !== this.innerValue) {\r\n      this.innerValue = v;\r\n      if (this.inputViewChild && v) {\r\n        this.inputViewChild.nativeElement.innerHTML = v;\r\n      }\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChangeCallback = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouchedCallback = fn;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.isDisabled = isDisabled;\r\n  }\r\n\r\n  validate(): any {\r\n    var text = this.el.nativeElement.querySelector(\".np-rich-text-input\")\r\n      .textContent;\r\n    if (this.minLength !== undefined && text && text.length < this.minLength) {\r\n      return {\r\n        minLength: {\r\n          valid: false,\r\n        },\r\n      };\r\n    }\r\n    if (this.maxLength !== undefined && text && text.length > this.maxLength) {\r\n      return {\r\n        maxLength: {\r\n          valid: false,\r\n        },\r\n      };\r\n    }\r\n  }\r\n\r\n  focus(): void {\r\n    this.inputViewChild.nativeElement.focus();\r\n  }\r\n\r\n  _onInputChange(event: any): void {\r\n    this.value = event.target.innerHTML;\r\n  }\r\n\r\n  _onBlur($event: any): void {\r\n    this.focused = false;\r\n    this.onTouchedCallback();\r\n    this.onBlur.emit($event);\r\n  }\r\n\r\n  _onFocus($event: any): void {\r\n    this.focused = true;\r\n    this.onFocus.emit($event);\r\n  }\r\n\r\n  _formatDoc(sCmd: string, sValue: any): void {\r\n    document.execCommand(sCmd, false, sValue);\r\n    this.focus();\r\n  }\r\n\r\n  _formatBlock(sCmd: string, sValue: any): void {\r\n    if (sValue === \"no value\") {\r\n      return;\r\n    }\r\n    this._formatDoc(sCmd, sValue);\r\n    setTimeout(() => {\r\n      this.currentFormat = \"no value\";\r\n      this.currentFont = \"no value\";\r\n      this.currentfontsize = \"no value\";\r\n    }, 100);\r\n  }\r\n\r\n  _showForeColorOverlay(): void {\r\n    if (!this.focused) {\r\n      this.focus();\r\n    }\r\n    if (document.getSelection() && document.getSelection().getRangeAt) {\r\n      this.currentSelectionRange = document.getSelection().getRangeAt(0);\r\n    }\r\n    let colour = document.queryCommandValue(\"foreColor\");\r\n    if (colour.indexOf(\"rgb\") > -1) {\r\n      colour = this._changeRGBToHex(colour);\r\n    }\r\n    if (colour.indexOf(\"transparent\") > -1) {\r\n      colour = null;\r\n    }\r\n    this.foreColor = colour;\r\n  }\r\n\r\n  _changeForeColor(color: any): void {\r\n    if (this.currentSelectionRange) {\r\n      document.getSelection().removeAllRanges();\r\n      document.getSelection().addRange(this.currentSelectionRange);\r\n      this.foreColor = color;\r\n      if (color) {\r\n        this._formatDoc(\"foreColor\", color);\r\n      } else {\r\n        document.execCommand(\"removeformat\", false, \"foreColor\");\r\n      }\r\n      this.currentSelectionRange = null;\r\n    }\r\n    this.foreColorPopover.close();\r\n  }\r\n\r\n  _showBackColorOverlay(): void {\r\n    if (!this.focused) {\r\n      this.focus();\r\n    }\r\n    if (document.getSelection() && document.getSelection().getRangeAt) {\r\n      this.currentSelectionRange = document.getSelection().getRangeAt(0);\r\n    }\r\n    let colour = document.queryCommandValue(\"backColor\");\r\n    if (colour.indexOf(\"rgb\") > -1) {\r\n      colour = this._changeRGBToHex(colour);\r\n    }\r\n    if (colour.indexOf(\"transparent\") > -1) {\r\n      colour = null;\r\n    }\r\n    this.backColor = colour;\r\n  }\r\n\r\n  _changeBackColor(color: any): void {\r\n    if (this.currentSelectionRange) {\r\n      document.getSelection().removeAllRanges();\r\n      document.getSelection().addRange(this.currentSelectionRange);\r\n      this.backColor = color;\r\n      if (color) {\r\n        this._formatDoc(\"backColor\", color);\r\n      } else {\r\n        document.execCommand(\"removeformat\", false, \"backColor\");\r\n      }\r\n      this.currentSelectionRange = null;\r\n    }\r\n    this.backColorPopover.close();\r\n  }\r\n\r\n  _onCloseOverlays(): void {\r\n    if (this.currentSelectionRange) {\r\n      document.getSelection().removeAllRanges();\r\n      document.getSelection().addRange(this.currentSelectionRange);\r\n      this.currentSelectionRange = null;\r\n    }\r\n    this.focus();\r\n  }\r\n\r\n  _showCreateLink(): void {\r\n    if (!this.focused) {\r\n      this.focus();\r\n    }\r\n    if (document.getSelection() && document.getSelection().getRangeAt) {\r\n      this.currentSelectionRange = document.getSelection().getRangeAt(0);\r\n    }\r\n    this.linkUrl = \"https://\";\r\n  }\r\n\r\n  _createLink(): void {\r\n    if (this.currentSelectionRange) {\r\n      document.getSelection().removeAllRanges();\r\n      document.getSelection().addRange(this.currentSelectionRange);\r\n      if (this.linkUrl) {\r\n        this._formatDoc(\"createlink\", this.linkUrl);\r\n      }\r\n      this.currentSelectionRange = null;\r\n    }\r\n    this.createLinkPopover.close();\r\n  }\r\n\r\n  _closeCreateLinkOverlay(): void {\r\n    this.createLinkPopover.close();\r\n  }\r\n\r\n  _changeRGBToHex(val: any): string {\r\n    const rgb = val\r\n      .replace(\"rgb\", \"\")\r\n      .replace(\"rgba\", \"\")\r\n      .replace(\"(\", \"\")\r\n      .replace(\")\", \"\")\r\n      .replace(\" \", \"\");\r\n    const rgbAray = rgb.split(\",\");\r\n    return this._rgbToHex(\r\n      Number(rgbAray[0]),\r\n      Number(rgbAray[1]),\r\n      Number(rgbAray[2])\r\n    );\r\n  }\r\n\r\n  _rgbToHex(r: any, g: any, b: any): string {\r\n    const red = this._convertNumberToHex(r);\r\n    const green = this._convertNumberToHex(g);\r\n    const blue = this._convertNumberToHex(b);\r\n    return `#${red}${green}${blue}`;\r\n  }\r\n\r\n  _convertNumberToHex(num: any): string {\r\n    let hex = Number(num).toString(16);\r\n    if (hex.length < 2) {\r\n      hex = `0${hex}`;\r\n    }\r\n    return hex;\r\n  }\r\n\r\n  _isAllowed(permission: string): boolean {\r\n    return this.config.indexOf(permission) > -1;\r\n  }\r\n}\r\n","<div [ngClass]=\"{\r\n    'np-rich-text': true,\r\n    'np-disabled': isDisabled,\r\n    'np-focused': focused\r\n  }\" [class]=\"styleClass\" [attr.id]=\"inputId\">\r\n  <div class=\"np-rich-text-container\">\r\n    <div [ngClass]=\"{ 'np-toolbar': true, 'np-readonly': readOnly }\">\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('bold')\">\r\n        <button class=\"np-btn-icon np-btn-bold\" [ngClass]=\"{ 'np-btn-active': isBold }\"\r\n          (click)=\"_formatDoc('bold', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path\r\n              d=\"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('italic')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-italic\" [ngClass]=\"{ 'np-btn-active': isItalic }\"\r\n          (click)=\"_formatDoc('italic', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path d=\"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z\"></path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('underline')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-underline\" [ngClass]=\"{ 'np-btn-active': isUnderline }\"\r\n          (click)=\"_formatDoc('underline', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path\r\n              d=\"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('strikethrough')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-strikethrough\" [ngClass]=\"{ 'np-btn-active': isStrikethrough }\"\r\n          (click)=\"_formatDoc('strikethrough', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path d=\"M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z\"></path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('removeformat')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-remove-format\" (click)=\"_formatDoc('removeformat', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n            <path\r\n              d=\"M3.27 5L2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.55 5.27 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z\" />\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-separator\" *ngIf=\"_isAllowed('formatblock') || _isAllowed('blockquote')\"></div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('formatblock')\">\r\n        <select class=\"np-form-control np-select-format\" [(ngModel)]=\"currentFormat\"\r\n          (change)=\"_formatBlock('formatblock', currentFormat)\">\r\n          <option [value]=\"'no value'\">\r\n            {{ \"Formatting\" | npTranslate }}\r\n          </option>\r\n          <option [value]=\"'h1'\">Header 1</option>\r\n          <option [value]=\"'h2'\">Header 2</option>\r\n          <option [value]=\"'h3'\">Header 3</option>\r\n          <option [value]=\"'h4'\">Header 4</option>\r\n          <option [value]=\"'h5'\">Header 5</option>\r\n          <option [value]=\"'h6'\">Header 6</option>\r\n          <option [value]=\"'p'\">Paragraph</option>\r\n          <option [value]=\"'pre'\">Pre formatted</option>\r\n        </select>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('blockquote')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-blockquote\" [ngClass]=\"{ 'np-btn-active': isBlockquote }\"\r\n          (click)=\"_formatDoc('formatblock', 'blockquote')\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path d=\"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z\"></path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-separator\" *ngIf=\"\r\n          _isAllowed('fontname') ||\r\n          _isAllowed('fontsize') ||\r\n          _isAllowed('foreColor') ||\r\n          _isAllowed('backcolor')\r\n        \"></div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('fontname')\">\r\n        <select class=\"np-form-control np-select-font\" [(ngModel)]=\"currentFont\"\r\n          (change)=\"_formatBlock('fontname', currentFont)\">\r\n          <option [value]=\"'no value'\">\r\n            {{ \"Font\" | npTranslate }}\r\n          </option>\r\n          <option *ngFor=\"let font of fonts\" [value]=\"font\">{{ font }}</option>\r\n        </select>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('fontsize')\">\r\n        <select class=\"np-form-control np-select-fontsize\" [(ngModel)]=\"currentfontsize\"\r\n          (change)=\"_formatBlock('fontsize', currentfontsize)\">\r\n          <option [value]=\"'no value'\">\r\n            {{ \"Font_Size\" | npTranslate }}\r\n          </option>\r\n          <option [value]=\"1\">Smaller</option>\r\n          <option [value]=\"2\">Small</option>\r\n          <option [value]=\"3\">Medium</option>\r\n          <option [value]=\"4\">Large</option>\r\n          <option [value]=\"5\">Larger</option>\r\n          <option [value]=\"6\">X-large</option>\r\n          <option [value]=\"7\">X-larger</option>\r\n        </select>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('forecolor')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-fore-color\" npPopover #foreColorPopover=\"NpPopoverDirective\"\r\n          [body]=\"foreColorTemplate\" [openOnClick]=\"true\" (onOpen)=\"_showForeColorOverlay()\"\r\n          (onClose)=\"_onCloseOverlays()\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n            <path\r\n              d=\"M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z\" />\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('backcolor')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-back-color\" npPopover #backColorPopover=\"NpPopoverDirective\"\r\n          [body]=\"backColorTemplate\" [openOnClick]=\"true\" (onOpen)=\"_showBackColorOverlay()\"\r\n          (onClose)=\"_onCloseOverlays()\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\r\n            <path\r\n              d=\"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z\" />\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-separator\" *ngIf=\"_isAllowed('subscript') || _isAllowed('superscript')\"></div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('subscript')\">\r\n        <button class=\"np-btn-icon np-btn-subscript\" [ngClass]=\"{ 'np-btn-active': isBold }\"\r\n          (click)=\"_formatDoc('subscript', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <g>\r\n              <rect fill=\"none\" height=\"24\" width=\"24\" />\r\n              <path\r\n                d=\"M22,18h-2v1h3v1h-4v-2c0-0.55,0.45-1,1-1h2v-1h-3v-1h3c0.55,0,1,0.45,1,1v1C23,17.55,22.55,18,22,18z M5.88,18h2.66 l3.4-5.42h0.12l3.4,5.42h2.66l-4.65-7.27L17.81,4h-2.68l-3.07,4.99h-0.12L8.85,4H6.19l4.32,6.73L5.88,18z\" />\r\n            </g>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('superscript')\">\r\n        <button class=\"np-btn-icon np-btn-superscript\" [ngClass]=\"{ 'np-btn-active': isBold }\"\r\n          (click)=\"_formatDoc('superscript', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <g>\r\n              <rect fill=\"none\" height=\"24\" width=\"24\" x=\"0\" y=\"0\" />\r\n              <path\r\n                d=\"M22,7h-2v1h3v1h-4V7c0-0.55,0.45-1,1-1h2V5h-3V4h3c0.55,0,1,0.45,1,1v1C23,6.55,22.55,7,22,7z M5.88,20h2.66l3.4-5.42h0.12 l3.4,5.42h2.66l-4.65-7.27L17.81,6h-2.68l-3.07,4.99h-0.12L8.85,6H6.19l4.32,6.73L5.88,20z\" />\r\n            </g>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-separator\" *ngIf=\"\r\n          _isAllowed('justifyleft') ||\r\n          _isAllowed('justifycenter') ||\r\n          _isAllowed('justifyright')\r\n        \"></div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('justifyleft')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-align-left\" (click)=\"_formatDoc('justifyleft', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path d=\"M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z\"></path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('justifycenter')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-align-center\" (click)=\"_formatDoc('justifycenter', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path d=\"M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z\"></path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('justifyright')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-align-right\" (click)=\"_formatDoc('justifyright', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path d=\"M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z\"></path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-separator\" *ngIf=\"_isAllowed('indent') || _isAllowed('outdent')\"></div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('indent')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-add-indent\" (click)=\"_formatDoc('indent', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n            <path d=\"M3 21h18v-2H3v2zM3 8v8l4-4-4-4zm8 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z\" />\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('outdent')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-remove-indent\" (click)=\"_formatDoc('outdent', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n            <path d=\"M11 17h10v-2H11v2zm-8-5l4 4V8l-4 4zm0 9h18v-2H3v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z\" />\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-separator\" *ngIf=\"\r\n          _isAllowed('insertunorderedlist') || _isAllowed('insertorderedlist')\r\n        \"></div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('insertunorderedlist')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-unorder-list\" (click)=\"_formatDoc('insertunorderedlist', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>\r\n            <path\r\n              d=\"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('insertorderedlist')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-order-list\" (click)=\"_formatDoc('insertorderedlist', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path\r\n              d=\"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-separator\" *ngIf=\"_isAllowed('createlink')\"></div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('createlink')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-create-link\" npPopover #createLinkPopover=\"NpPopoverDirective\"\r\n          [header]=\"'Enter_The_URL_For_Link' | npTranslate\" [body]=\"createLinkTemp\" [openOnClick]=\"true\"\r\n          (onOpen)=\"_showCreateLink()\" (onClose)=\"_onCloseOverlays()\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n            <path\r\n              d=\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\" />\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('createlink')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-unlink\" (click)=\"_formatDoc('unlink', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\r\n            <path\r\n              d=\"M17 7h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1 0 1.43-.98 2.63-2.31 2.98l1.46 1.46C20.88 15.61 22 13.95 22 12c0-2.76-2.24-5-5-5zm-1 4h-2.19l2 2H16zM2 4.27l3.11 3.11C3.29 8.12 2 9.91 2 12c0 2.76 2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1 0-1.59 1.21-2.9 2.76-3.07L8.73 11H8v2h2.73L13 15.27V17h1.73l4.01 4L20 19.74 3.27 3 2 4.27z\" />\r\n            <path d=\"M0 24V0\" fill=\"none\" />\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-separator\" *ngIf=\"_isAllowed('undo') || _isAllowed('redo')\"></div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('undo')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-undo\" (click)=\"_formatDoc('undo', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path\r\n              d=\"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <div class=\"np-toolbar-item\" *ngIf=\"_isAllowed('redo')\">\r\n        <button type=\"button\" class=\"np-btn-icon np-btn-redo\" (click)=\"_formatDoc('redo', null)\">\r\n          <svg class=\"np-icon\" viewBox=\"0 0 24 24\">\r\n            <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n            <path\r\n              d=\"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z\">\r\n            </path>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n    </div>\r\n    <div class=\"np-rich-text-input\" role=\"textbox\" [attr.contenteditable]=\"!isDisabled && !readOnly\" #control\r\n      [attr.tabindex]=\"tabIndex\" [style.height.px]=\"height\" [npAutofocus]=\"autoFocus\" (blur)=\"_onBlur($event)\"\r\n      (focus)=\"_onFocus($event)\" (input)=\"_onInputChange($event)\"></div>\r\n  </div>\r\n</div>\r\n\r\n<ng-template #backColorTemplate>\r\n  <np-color-picker [(ngModel)]=\"backColor\" [colors]=\"[]\" [defaultOpen]=\"true\" (onChange)=\"_changeBackColor($event)\">\r\n  </np-color-picker>\r\n</ng-template>\r\n\r\n<ng-template #foreColorTemplate>\r\n  <np-color-picker [(ngModel)]=\"foreColor\" [colors]=\"[]\" [defaultOpen]=\"true\" (onChange)=\"_changeForeColor($event)\">\r\n  </np-color-picker>\r\n</ng-template>\r\n\r\n<ng-template #createLinkTemp>\r\n  <div class=\"np-create-link-form\">\r\n    <div class=\"np-form-group\">\r\n      <input type=\"url\" class=\"np-form-control\" [npAutofocus]=\"true\" [(ngModel)]=\"linkUrl\" />\r\n    </div>\r\n    <div class=\"np-btn-group\">\r\n      <button type=\"button\" class=\"np-btn\" (click)=\"_createLink()\">\r\n        {{ \"Ok\" | npTranslate }}\r\n      </button>\r\n      <button type=\"button\" class=\"np-btn\" (click)=\"_closeCreateLinkOverlay()\">\r\n        {{ \"Cancel\" | npTranslate }}\r\n      </button>\r\n    </div>\r\n  </div>\r\n</ng-template>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpRichTextComponent } from \"./np-rich-text.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { NpColorPickerModule } from \"../np-color-picker/np-color-picker.module\";\r\nimport { NpPopoverModule } from \"../np-popover/np-popover.module\";\r\nimport { NpTranslationsModule } from \"../np-translations/np-translations.module\";\r\nimport { NpAutofocusModule } from \"../np-utility/np-autofocus.module\";\r\n\r\n@NgModule({\r\n  declarations: [NpRichTextComponent],\r\n  imports: [\r\n    CommonModule,\r\n    NpAutofocusModule,\r\n    FormsModule,\r\n    NpColorPickerModule,\r\n    NpPopoverModule,\r\n    NpTranslationsModule,\r\n  ],\r\n  exports: [NpRichTextComponent],\r\n})\r\nexport class NpRichTextModule { }\r\n","import {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Input,\r\n  OnInit,\r\n  TemplateRef,\r\n  ViewEncapsulation,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n  selector: \"np-timeline\",\r\n  templateUrl: \"./np-timeline.component.html\",\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class NpTimelineComponent implements OnInit {\r\n  private static controlCount = 1;\r\n\r\n  @Input() items: any[];\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  @Input() height: number;\r\n  @Input() styleClass: string;\r\n  @Input() inputId: string = `np-timeline_${NpTimelineComponent.controlCount++}`;\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {}\r\n\r\n  _trackBy(index: number): number {\r\n    return index;\r\n  }\r\n}\r\n","<div [ngClass]=\"'np-timeline'\" [class]=\"styleClass\" [style.max-height.px]=\"height\" [attr.id]=\"inputId\">\r\n  <div class=\"np-timeline-container\">\r\n    <ng-container *ngFor=\"let item of items; let i = index; trackBy: _trackBy\">\r\n      <div class=\"np-timeline-item\" [attr.id]=\"'np-timeline-item_' + (i + 1)\" [class]=\"item.styleClass\">\r\n        <div class=\"np-timeline-separator\">\r\n          <span *ngIf=\"item.iconCss\" class=\"np-timeline-marker\">\r\n            <i [class]=\"item.iconCss\"></i>\r\n          </span>\r\n          <span *ngIf=\"!item.iconCss\" class=\"np-timeline-default-marker\"></span>\r\n          <div class=\"np-timeline-connector\"></div>\r\n        </div>\r\n        <div class=\"np-timeline-item-content\">\r\n          <ng-container *ngTemplateOutlet=\"itemTemplate; context: { item: item }\">\r\n          </ng-container>\r\n        </div>\r\n      </div>\r\n    </ng-container>\r\n  </div>\r\n</div>","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NpTimelineComponent } from \"./np-timeline.component\";\r\n\r\n@NgModule({\r\n  declarations: [NpTimelineComponent],\r\n  imports: [CommonModule],\r\n  exports: [NpTimelineComponent],\r\n})\r\nexport class NpTimelineModule {}\r\n","/*Color Picker */\r\nexport * from \"./lib/np-color-picker/np-color-picker.module\";\r\nexport * from \"./lib/np-color-picker/np-color-picker.component\";\r\n\r\n/*Data Grid */\r\nexport * from \"./lib/np-data-grid/np-data-grid.module\";\r\nexport * from \"./lib/np-data-grid/models/column.model\";\r\nexport * from \"./lib/np-data-grid/models/constants\";\r\nexport * from \"./lib/np-data-grid/models/data-source.model\";\r\nexport * from \"./lib/np-data-grid/models/load-options.model\";\r\nexport * from \"./lib/np-data-grid/models/state.model\";\r\nexport * from \"./lib/np-data-grid/np-data-grid.component\";\r\n\r\n/*Date Picker */\r\nexport * from \"./lib/np-date-picker/np-date-picker.module\";\r\nexport * from \"./lib/np-date-picker/np-date-picker.component\";\r\n\r\n/*Time Picker */\r\nexport * from \"./lib/np-time-picker/np-time-picker.module\";\r\nexport * from \"./lib/np-time-picker/np-time-picker.component\";\r\n\r\n/*Switch */\r\nexport * from \"./lib/np-switch/np-switch.module\";\r\nexport * from \"./lib/np-switch/np-switch.component\";\r\n\r\n/*Notifications */\r\nexport * from \"./lib/np-notifications/np-notifications.module\";\r\nexport * from \"./lib/np-notifications/np-notifications.component\";\r\nexport * from \"./lib/np-notifications/np-notifications.service\";\r\nexport * from \"./lib/np-notifications/np-notification.model\";\r\n\r\n/*Auto complete */\r\nexport * from \"./lib/np-auto-complete/np-auto-complete.module\";\r\nexport * from \"./lib/np-auto-complete/np-auto-complete.component\";\r\n\r\n/*Panel */\r\nexport * from \"./lib/np-panel/np-panel.module\";\r\nexport * from \"./lib/np-panel/np-panel.component\";\r\nexport * from \"./lib/np-panel/np-panel-content.directive\";\r\n\r\n/*Utility */\r\nexport * from \"./lib/np-utility/np-highlight.module\";\r\nexport * from \"./lib/np-utility/np-mask.module\";\r\nexport * from \"./lib/np-utility/np-orderby.module\";\r\nexport * from \"./lib/np-utility/np-autofocus.module\";\r\nexport * from \"./lib/np-utility/np-defer.module\";\r\n\r\n/*Tooltip */\r\nexport * from \"./lib/np-tooltip/np-tooltip.module\";\r\nexport * from \"./lib/np-tooltip/np-tooltip.directive\";\r\n\r\n/*Progress */\r\nexport * from \"./lib/np-progress/np-progress.module\";\r\nexport * from \"./lib/np-progress/np-progress.component\";\r\n\r\n/*Carousel */\r\nexport * from \"./lib/np-carousel/np-carousel.module\";\r\nexport * from \"./lib/np-carousel/np-carousel.component\";\r\n\r\n/*Tabs */\r\nexport * from \"./lib/np-tabs/np-tabs.module\";\r\nexport * from \"./lib/np-tabs/np-tabs.component\";\r\nexport * from \"./lib/np-tabs/np-tab.component\";\r\nexport * from \"./lib/np-tabs/np-tab-content.directive\";\r\n\r\n/*Accordion */\r\nexport * from \"./lib/np-accordion/np-accordion.module\";\r\nexport * from \"./lib/np-accordion/np-accordion.component\";\r\nexport * from \"./lib/np-accordion/np-accordion-item/np-accordion-item.component\";\r\nexport * from \"./lib/np-accordion/np-accordion-item/np-accordion-content.directive\";\r\n\r\n/*Alert */\r\nexport * from \"./lib/np-alert/np-alert.module\";\r\nexport * from \"./lib/np-alert/np-alert.component\";\r\n\r\n/*Modal */\r\nexport * from \"./lib/np-modal/np-modal.module\";\r\nexport * from \"./lib/np-modal/np-modal.config\";\r\nexport * from \"./lib/np-modal/np-modal.service\";\r\nexport * from \"./lib/np-modal/np-modal-container.component\";\r\nexport * from \"./lib/np-modal/np-modal-ref\";\r\n\r\n/*Tags */\r\nexport * from \"./lib/np-tags/np-tags.module\";\r\nexport * from \"./lib/np-tags/np-tags.component\";\r\n\r\n/*Popover */\r\nexport * from \"./lib/np-popover/np-popover.module\";\r\nexport * from \"./lib/np-popover/np-popover.component\";\r\nexport * from \"./lib/np-popover/np-popover.directive\";\r\n\r\n/*Dropdown */\r\nexport * from \"./lib/np-dropdown/np-dropdown.module\";\r\nexport * from \"./lib/np-dropdown/np-dropdown.component\";\r\n\r\n/*Menubar */\r\nexport * from \"./lib/np-menubar/np-menubar.module\";\r\nexport * from \"./lib/np-menubar/np-menubar.component\";\r\nexport * from \"./lib/np-menubar/np-menu.model\";\r\nexport * from \"./lib/np-menubar/np-popup-menubar.directive\";\r\n\r\n/*Card */\r\nexport * from \"./lib/np-card/np-card.module\";\r\nexport * from \"./lib/np-card/np-card.component\";\r\nexport * from \"./lib/np-card/np-card-header.component\";\r\nexport * from \"./lib/np-card/np-card-image.component\";\r\nexport * from \"./lib/np-card/np-card-body.component\";\r\nexport * from \"./lib/np-card/np-card-footer.component\";\r\n\r\n/*Loader */\r\nexport * from \"./lib/np-loader/np-loader.module\";\r\nexport * from \"./lib/np-loader/np-loader.directive\";\r\n\r\n/*Blockui */\r\nexport * from \"./lib/np-blockui/np-blockui.module\";\r\nexport * from \"./lib/np-blockui/np-blockui.directive\";\r\n\r\n/*Sidepanel */\r\nexport * from \"./lib/np-sidepanel/np-sidepanel.module\";\r\nexport * from \"./lib/np-sidepanel/np-sidepanel.component\";\r\nexport * from \"./lib/np-sidepanel/np-sidepanel-content.directive\";\r\nexport * from \"./lib/np-sidepanel/np-sidepanel.service\";\r\n\r\n/*Breadcrumb */\r\nexport * from \"./lib/np-breadcrumb/np-breadcrumb.module\";\r\nexport * from \"./lib/np-breadcrumb/np-breadcrumb.component\";\r\nexport * from \"./lib/np-breadcrumb/np-breadcrumb.model\";\r\n\r\n/*Number box */\r\nexport * from \"./lib/np-number-box/np-number-box.module\";\r\nexport * from \"./lib/np-number-box/np-number-box.component\";\r\n\r\n/*Tree view */\r\nexport * from \"./lib/np-tree-view/np-tree-view.module\";\r\nexport * from \"./lib/np-tree-view/np-tree-view.component\";\r\nexport * from \"./lib/np-tree-view/np-tree-view.model\";\r\n\r\n/*File upload */\r\nexport * from \"./lib/np-file-upload/np-file-upload.module\";\r\nexport * from \"./lib/np-file-upload/np-file-upload.component\";\r\n\r\n/*Slider */\r\nexport * from \"./lib/np-slider/np-slider.module\";\r\nexport * from \"./lib/np-slider/np-slider.component\";\r\n\r\n/*List */\r\nexport * from \"./lib/np-list/np-list.module\";\r\nexport * from \"./lib/np-list/np-list.component\";\r\n\r\n/*Virtual Scroll */\r\nexport * from \"./lib/np-virtual-scroll/np-virtual-scroll.module\";\r\nexport * from \"./lib/np-virtual-scroll/np-virtual-scroll.component\";\r\n\r\n/*Dialog */\r\nexport * from \"./lib/np-dialog/np-dialog.module\";\r\nexport * from \"./lib/np-dialog/np-dialog.config\";\r\nexport * from \"./lib/np-dialog/np-dialog.service\";\r\nexport * from \"./lib/np-dialog/np-dialog-container.component\";\r\nexport * from \"./lib/np-dialog/np-dialog-ref\";\r\n\r\n/*Steps */\r\nexport * from \"./lib/np-steps/np-steps.module\";\r\nexport * from \"./lib/np-steps/np-steps.component\";\r\nexport * from \"./lib/np-steps/np-step.component\";\r\nexport * from \"./lib/np-steps/np-step-buttons.directive\";\r\n\r\n/*Paginator */\r\nexport * from \"./lib/np-paginator/np-paginator.module\";\r\nexport * from \"./lib/np-paginator/np-paginator.component\";\r\n\r\n/*Date Picker */\r\nexport * from \"./lib/np-calendar/np-calendar.module\";\r\nexport * from \"./lib/np-calendar/np-calendar.component\";\r\nexport * from \"./lib/np-calendar/np-calendar-event.model\";\r\n\r\n/*Checkbox */\r\nexport * from \"./lib/np-checkbox/np-checkbox.module\";\r\nexport * from \"./lib/np-checkbox/np-checkbox.component\";\r\nexport * from \"./lib/np-checkbox/np-checkbox-group.component\";\r\n\r\n/*Radio button */\r\nexport * from \"./lib/np-radio-button/np-radio-button.module\";\r\nexport * from \"./lib/np-radio-button/np-radio-button.component\";\r\nexport * from \"./lib/np-radio-button/np-radio-group.component\";\r\n\r\n/*Input Text */\r\nexport * from \"./lib/np-input-text/np-input-text.module\";\r\nexport * from \"./lib/np-input-text/np-input-text.component\";\r\n\r\n/*Input Text */\r\nexport * from \"./lib/np-textarea/np-textarea.module\";\r\nexport * from \"./lib/np-textarea/np-textarea.component\";\r\n\r\n/*Translations */\r\nexport * from \"./lib/np-translations/np-translations.module\";\r\nexport * from \"./lib/np-translations/np-translate.pipe\";\r\nexport * from \"./lib/np-translations/np-translations.service\";\r\n\r\n/*Rich text */\r\nexport * from \"./lib/np-rich-text/np-rich-text.module\";\r\nexport * from \"./lib/np-rich-text/np-rich-text.component\";\r\n\r\n/*Timeline */\r\nexport * from \"./lib/np-timeline/np-timeline.module\";\r\nexport * from \"./lib/np-timeline/np-timeline.component\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NpTranslationsService","i2","i3.NpAutofocusDirective","i4.NpTranslatePipe","i1.NpGridUtilityService","i1","i1.NpDialogRef","i2.NpTranslationsService","i3","i4","i5.NpAutofocusDirective","i6.NpTranslatePipe","i2.NpUtilityService","i4.NpTooltipDirective","i2.NpTranslatePipe","i2.NpAutofocusDirective","i1.NpFilterService","i2.NpGridUtilityService","i3.NpODataService","i4.NpFileService","i5","i6.NpDialogService","i7.NpTranslationsService","i8","i9","i11.NpDatePickerComponent","i12.NpPaginatorComponent","i13.NpCheckboxComponent","i14.NpTranslatePipe","i15.NpFilterTypesPipe","i16.NpSearchColumnsPipe","i3.NpTranslatePipe","i1.NpNotificationsService","i4.NpOrderByPipe","i5.NpHighlightPipe","i1.NpMaskService","i1.NpModalRef","i4.NpAutofocusDirective","i5.NpTranslatePipe","i6.NpOrderByPipe","i7.NpHighlightPipe","i5.NpOrderByPipe","i2.NpMenuItemComponent","i3.NpPanelMenuItemComponent","i2.NpSidepanelService","i3.NpCheckboxComponent","i1.NpUtilityService","i4.NpPaginatorComponent","i5.NpCheckboxComponent","i4.NpColorPickerComponent","i5.NpPopoverDirective"],"mappings":"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"}