tolga-ng2
Version:
Angular 2/4 components and directives
1 lines • 59.2 kB
Source Map (JSON)
{"version":3,"file":"tolga-ng2.mjs","sources":["../../src/app/ngsm/components/ngsm-autocomplete/ngsm-autocomplete.component.ts","../../src/app/ngsm/components/ngsm-autocomplete/ngsm-autocomplete.component.html","../../src/app/ngsm/components/ngsm-datepicker/ngsm-datepicker.component.ts","../../src/app/ngsm/components/ngsm-datepicker/ngsm-datepicker.component.html","../../src/app/ngsm/components/ngsm-loader/ngsm-loader.component.ts","../../src/app/ngsm/components/ngsm-loader/ngsm-loader.component.html","../../src/app/ngsm/directives/ngsm-sub-menu-display-directive/ngsm-sub-menu-display-directive.component.ts","../../src/app/ngsm/directives/ngsm-sub-menu-display-directive/ngsm-sub-menu-display-directive.component.html","../../src/app/ngsm/directives/highlight-tab.directive.ts","../../src/app/ngsm/directives/ngsm-menu-display-directive/ngsm-menu-display-directive.component.ts","../../src/app/ngsm/directives/ngsm-menu-display-directive/ngsm-menu-display-directive.component.html","../../src/app/ngsm/components/ngsm-menu/ngsm-menu.component.ts","../../src/app/ngsm/components/ngsm-menu/ngsm-menu.component.html","../../src/app/ngsm/components/ngsm-tablepager/ngsm-tablepager.component.ts","../../src/app/ngsm/components/ngsm-tablepager/ngsm-tablepager.component.html","../../src/app/ngsm/components/ngsm-tags/ngsm-tags.component.ts","../../src/app/ngsm/components/ngsm-tags/ngsm-tags.component.html","../../src/app/ngsm/components/ngsm-timepicker/ngsm-timepicker.component.ts","../../src/app/ngsm/components/ngsm-timepicker/ngsm-timepicker.component.html","../../src/app/ngsm/ngsm.module.ts","../../tolga-ng2.ts"],"sourcesContent":["import { Component, forwardRef, Input, OnChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { NgsmAutocompleteConfig } from '../../models/ngsmAutocompleteConfig';\r\n\r\n@Component({\r\n selector: 'ngsm-autocomplete',\r\n templateUrl: './ngsm-autocomplete.component.html',\r\n styleUrls: ['./ngsm-autocomplete.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgsmAutocompleteComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class NgsmAutocompleteComponent implements OnChanges, ControlValueAccessor {\r\n\r\n @Input() config: NgsmAutocompleteConfig;\r\n\r\n get loadingClass(): string {\r\n if (!this.config || !this.config.loadingIcon) return \"asterisk loading icon\";\r\n return `${this.config.loadingIcon} loading icon`;\r\n }\r\n\r\n defaultTextId: string = \"ngsmAutocompleteDefaultText\";\r\n selectedItem: any;\r\n isBusy: boolean = false;\r\n\r\n remoteResponse = {\r\n success: true,\r\n results: []\r\n };\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n //this.ngsmService.log(\"ngsmAutocomplete\", \"ngOnInit\");\r\n }\r\n\r\n ngOnChanges() {\r\n //this.ngsmService.log(\"ngsmAutocomplete\", \"ngOnChanges\");\r\n if (this.config.id && this.config.url) {\r\n this.defaultTextId = `${this.config.id}-defaultText`;\r\n this.setDisplayValue(this.config.placeholder);\r\n this.init();\r\n }\r\n }\r\n\r\n setAutocompleteValidationClass() {\r\n var returnValue = \"\";\r\n if (this.config.required && !this.selectedItem) returnValue = \"ngsmInvalid\";\r\n else if (this.config.required && this.selectedItem) returnValue = \"ngsmValid\";\r\n if (this.config.disabled) returnValue += \" disabled\";\r\n return returnValue;\r\n }\r\n\r\n setIsActiveClass() {\r\n var returnValue = \"ngsmAutocompleteMuted\";\r\n if (this.selectedItem && this.selectedItem !== null && this.selectedItem !== \"\" && this.selectedItem.id) returnValue = \"ngsmAutocompleteActive\";\r\n return returnValue;\r\n }\r\n\r\n setBusy($event: any) {\r\n let srcElement = $event.srcElement;\r\n let value = srcElement.value; \r\n if (value && value !== null && value.length >= this.config.minchar) this.isBusy = true;\r\n else this.isBusy = false;\r\n }\r\n\r\n init() {\r\n //this.ngsmService.log(\"ngsmAutocomplete\", `init: id: ${this.config.id}, url ${this.config.url}`);\r\n this.setAutocompleteValidationClass();\r\n\r\n let self = this;\r\n setTimeout(function () {\r\n sessionStorage.clear();\r\n (<any>$(`#${self.config.id}`)).dropdown({\r\n minCharacters: self.config.minchar,\r\n placeholder: self.config.placeholder,\r\n onChange: jQuery.proxy(function (value, text, $selectedItem) {\r\n self.isBusy = false;\r\n let remoteItem = self.remoteResponse.results.filter(p => p.value === +value)[0];\r\n if (remoteItem) {\r\n self.selectedItem = remoteItem.item;\r\n self.setDisplayValue(self.selectedItem[self.config.selectedItemDisplayBy]);\r\n self.propagateChange(self.selectedItem);\r\n }\r\n self.setAutocompleteValidationClass();\r\n }, self),\r\n hideError: true,\r\n saveRemoteData: false,\r\n apiSettings: {\r\n url: `${self.config.url}/{query}`,\r\n method: 'get',\r\n hideError: true,\r\n saveRemoteData: false,\r\n onResponse: function (results) {\r\n self.isBusy = false;\r\n self.remoteResponse = {\r\n success: true,\r\n results: []\r\n };\r\n $.each(results, function (index, item) {\r\n self.remoteResponse.results.push({\r\n value: item[self.config.identifyBy],\r\n name: item[self.config.displayBy],\r\n item: item[self.config.objectBy]\r\n });\r\n });\r\n return self.remoteResponse;\r\n },\r\n onError: function (error) {\r\n this.ngsmAppService.error(`ngsmAutocomplete: Error ${error}`);\r\n }\r\n }\r\n });\r\n }, 250);\r\n\r\n }\r\n\r\n clear() {\r\n (<any>$(`#${this.config.id}`)).dropdown('clear');\r\n this.setAutocompleteValidationClass();\r\n this.propagateChange(\"\");\r\n this.selectedItem = {};\r\n this.setDisplayValue(this.config.placeholder);\r\n }\r\n\r\n setDisplayValue(value: string) {\r\n //this.ngsmService.log(\"ngsmAutocomplete\", `new value ${value}`);\r\n let self = this;\r\n setTimeout(function () {\r\n (<any>$(`#${self.defaultTextId}`)).text(value);\r\n }, 100);\r\n }\r\n\r\n\r\n\r\n get value(): any {\r\n return this.selectedItem;\r\n };\r\n\r\n writeValue(value: any) {\r\n if (this.config.id) {\r\n if (value && value.id) {\r\n this.selectedItem = value;\r\n //this.ngsmService.log(\"ngsmAutocomplete\", `writeValue: selectedItem: ${this.selectedItem}`);\r\n this.setDisplayValue(this.selectedItem[this.config.selectedItemDisplayBy]);\r\n }\r\n else {\r\n this.setDisplayValue(this.config.placeholder);\r\n }\r\n }\r\n else {\r\n this.setDisplayValue(\"\");\r\n }\r\n }\r\n\r\n onTouchedCallback() { }\r\n registerOnTouched() { }\r\n propagateChange = (_: any) => { };\r\n\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n}\r\n","<div id=\"{{config.id}}\"\r\n class=\"ui selection search dropdown\"\r\n (keyup)=\"setBusy($event)\"\r\n [ngClass]=\"setAutocompleteValidationClass()\">\r\n <div class=\"default text\"\r\n id=\"{{defaultTextId}}\"\r\n [ngClass]=\"setIsActiveClass()\">\r\n {{value}}\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"isBusy && loadingClass\"\r\n class=\"loading-container\">\r\n <i [class]=\"loadingClass\"></i>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"isBusy\"\r\n class=\"ui active inline small loader\">\r\n</div> -->\r\n\r\n<button class=\"ui icon only button btn-delete\"\r\n (click)=\"clear()\"\r\n title=\"{{config.clearMessage}}\"\r\n [disabled]=\"config.disabled\"\r\n *ngIf=\"config.allowClear && selectedItem && selectedItem.id\">\r\n <i class=\"icon trash\"></i>\r\n</button>","import { Component, forwardRef, Input, OnChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { NgsmDatepickerConfig } from '../../models/ngsmDatepickerConfig';\r\n\r\ndeclare var moment: any;\r\n\r\n@Component({\r\n selector: 'ngsm-datepicker',\r\n templateUrl: './ngsm-datepicker.component.html',\r\n styleUrls: ['./ngsm-datepicker.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgsmDatepickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class NgsmDatepickerComponent implements OnChanges, ControlValueAccessor {\r\n\r\n @Input() config: NgsmDatepickerConfig;\r\n\r\n innerValue: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n // this.ngsmService.log(\"ngsmDatepicker\", \"ngOnInit\");\r\n // if (this.config && this.config.id) {\r\n // this.ngsmService.log(\"ngsmDatepicker\", `ngOnInit: ${this.config.id}`);\r\n // }\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.config && this.config.id) {\r\n //this.ngsmService.log(\"ngsmDatepicker\", `ngOnChanges: ${this.config.id}`);\r\n this.init();\r\n }\r\n }\r\n\r\n async getClassNames(selectedDate: string) {\r\n if (this.config.required && !selectedDate) return \"invalid\";\r\n else if (this.config.required && selectedDate) return \"valid\";\r\n return \"\";\r\n }\r\n\r\n async init() {\r\n //this.ngsmService.log(\"ngsmDatepicker\", \"init\");\r\n let self = this;\r\n setTimeout(function () {\r\n (<any>$(`#${self.config.id}`)).calendar({\r\n type: 'date',\r\n minDate: self.config.minDate,\r\n maxDate: self.config.maxDate,\r\n on: \"click\",\r\n today: true,\r\n formatInput: false,\r\n date: function (date, settings) {\r\n console.log('Date: %s', date);\r\n },\r\n onChange: jQuery.proxy(function (value) {\r\n const isValidDate = moment(value).isValid();\r\n console.log('Is valid date: %s, %s', value, isValidDate);\r\n if (!isValidDate) return;\r\n\r\n let formatedDate = moment(value).format(\"MM/DD/YYYY\");\r\n\r\n if (moment(value).isBefore(moment(this.config.minDate))) {\r\n //self.ngsmService.log(\"ngsmDatepicker\", 'Date is before MinDate');\r\n formatedDate = moment().format(\"MM/DD/YYYY\");\r\n }\r\n\r\n //self.innerValue = moment(value).format(\"MM/DD/YYYY\");\r\n //self.ngsmService.log(\"ngsmDatepicker\", self.innerValue);\r\n self.propagateChange(formatedDate);\r\n self.getClassNames(formatedDate);\r\n }, self)\r\n });\r\n }, 250);\r\n }\r\n\r\n async onKeyupClick(event: KeyboardEvent) {\r\n event.preventDefault();\r\n return;\r\n if (!event) return;\r\n console.log(event.key);\r\n if (event.key === \"Backspace\") return;\r\n }\r\n\r\n async innerValueChanged(event: any) {\r\n if (!event) return;\r\n const isValidDate = moment(this.value).isValid();\r\n if (!isValidDate) {\r\n return;\r\n }\r\n }\r\n\r\n get value(): any {\r\n //this.ngsmService.log(\"ngsmDatepicker\", `value(): ${this.innerValue}`);\r\n return this.innerValue;\r\n };\r\n\r\n writeValue(value: any) {\r\n if (value && value !== null) {\r\n //this.ngsmService.log(\"ngsmDatepicker\", `writeValue: ${value}`);\r\n this.innerValue = value;\r\n }\r\n else {\r\n if (this.config && this.config.id) {\r\n this.innerValue = \"\";\r\n // this.ngsmService.log(\"ngsmDatepicker\", `clear`);\r\n // let self = this;\r\n // setTimeout(function () {\r\n // (<any>$(`#${self.config.id}`)).calendar('clear');\r\n // }, 200);\r\n }\r\n }\r\n }\r\n\r\n onTouchedCallback() { }\r\n registerOnTouched() { }\r\n propagateChange = (_: any) => { };\r\n\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n\r\n}\r\n","<div id=\"{{config.id}}\"\r\n class=\"ui calendar\">\r\n <div class=\"ui input left icon\">\r\n <i class=\"calendar icon\"></i>\r\n <!-- (ngModelChange)=\"innerValueChanged($event)\" -->\r\n <!-- (keyup)=\"onKeyupClick($event)\" -->\r\n <input [(ngModel)]=\"innerValue\" \r\n [ngClass]=\"getClassNames(innerValue)\"\r\n [disabled]=\"config.disabled\"\r\n placeholder=\"{{config.placeholder}}\"\r\n autofocus=\"false\">\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ngsm-loader',\r\n templateUrl: './ngsm-loader.component.html',\r\n styleUrls: ['./ngsm-loader.component.css']\r\n})\r\nexport class NgsmLoaderComponent implements OnInit {\r\n\r\n @Input()showWhen: boolean;\r\n @Input()isInverted: boolean = true; \r\n @Input()message: string = \"\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n //this.ngsmService.log(\"ngsmloader\", \"ngOnInit\");\r\n }\r\n\r\n}\r\n","<div class=\"ui active dimmer\"\r\n [ngClass]=\"{inverted: isInverted}\"\r\n *ngIf=\"showWhen\">\r\n <div class=\"ui text loader\">{{message}}</div>\r\n</div>","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgsmMenuTab } from '../../models/ngsmMenuTab';\r\n@Component({\r\n selector: 'ngsm-sub-menu-display-directive',\r\n templateUrl: './ngsm-sub-menu-display-directive.component.html',\r\n styleUrls: ['./ngsm-sub-menu-display-directive.component.css']\r\n})\r\nexport class NgsmSubMenuDisplayDirectiveComponent implements OnChanges {\r\n\r\n @Input() tab: NgsmMenuTab;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private router: Router) { }\r\n\r\n navigateToRoute(tab: NgsmMenuTab) {\r\n if (!tab.route) return;\r\n this.router.navigate([tab.route]);\r\n }\r\n\r\n getChildlessTabs() {\r\n return this.tab.subTabs.filter(p => p.subTabs === null || p.subTabs === undefined);\r\n }\r\n\r\n getTabsWithChildren() {\r\n return this.tab.subTabs.filter(p => p.subTabs !== null && p.subTabs !== undefined);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n }\r\n\r\n}\r\n","<div class=\"ui simple dropdown\">\r\n <span class=\"text\">{{tab.title}}</span>\r\n <i class=\"dropdown icon\"></i>\r\n <div class=\"menu\">\r\n <a *ngFor=\"let subTab of getChildlessTabs()\"\r\n (click)=\"navigateToRoute(subTab)\"\r\n class=\"item\">\r\n {{subTab.title}}\r\n </a>\r\n <div class=\"item\"\r\n *ngFor=\"let subTab of getTabsWithChildren()\">\r\n <i class=\"dropdown icon\"></i>\r\n <span class=\"text\">{{subTab.title}}</span>\r\n <div class=\"menu\">\r\n <a *ngFor=\"let subSubTab of subTab.subTabs\"\r\n (click)=\"navigateToRoute(subSubTab)\"\r\n class=\"item\">\r\n {{subSubTab.title}}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Directive, ElementRef, Input, OnChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgsmMenuTab } from '../models/ngsmMenuTab';\r\n\r\n@Directive({\r\n selector: '[appHighlightTab]'\r\n})\r\nexport class HighlightTabDirective implements OnChanges {\r\n\r\n @Input('appHighlightTab') tab: NgsmMenuTab;\r\n @Input() defaultClassName: string;\r\n\r\n constructor(private el: ElementRef,\r\n private router: Router) { }\r\n\r\n applyClass() {\r\n try {\r\n this.el.nativeElement.className = this.defaultClassName || \"\";\r\n if (this.tab && this.tab.routeGroupName) {\r\n let groupNameMatches = this.router.url.toLowerCase().indexOf(this.tab.routeGroupName.toLowerCase()) >= 0;\r\n var subTabMatches = false;\r\n if (this.tab.subTabs)\r\n subTabMatches = this.tab.subTabs.filter(p => this.router.url.toLowerCase().indexOf(p.routeGroupName.toLowerCase()) >= 0).length > 0;\r\n if (groupNameMatches || subTabMatches) {\r\n if (!this.el.nativeElement.className)\r\n this.el.nativeElement.className = \"active\";\r\n else\r\n this.el.nativeElement.className += \" active\";\r\n }\r\n }\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.router.events.subscribe(result => {\r\n this.applyClass();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.tab) {\r\n this.applyClass();\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { NgsmMenuTab } from '../../models/ngsmMenuTab';\r\n\r\n@Component({\r\n selector: 'ngsm-menu-display-directive',\r\n templateUrl: './ngsm-menu-display-directive.component.html',\r\n styleUrls: ['./ngsm-menu-display-directive.component.css']\r\n})\r\nexport class NgsmMenuDisplayDirectiveComponent implements OnChanges {\r\n\r\n @Input() tabs: NgsmMenuTab[];\r\n\r\n @Input() containerClassName: string = \"\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n }\r\n\r\n}\r\n","<div class=\"{{containerClassName}}\">\r\n <div *ngFor=\"let tab of tabs\">\r\n <a *ngIf=\"tab.type === 2\"\r\n class=\"item\"\r\n [appHighlightTab]=\"tab\"\r\n [defaultClassName]=\"'item'\">\r\n <img class=\"ui avatar image profileImage\"\r\n *ngIf=\"tab.imageUrl\"\r\n src=\"{{tab.imageUrl}}\">\r\n <ngsm-sub-menu-display-directive [tab]=\"tab\"></ngsm-sub-menu-display-directive>\r\n </a>\r\n <a *ngIf=\"tab.type === 1 && !tab.route && !tab.tabUrl\"\r\n class=\"item\"\r\n [appHighlightTab]=\"tab\"\r\n [defaultClassName]=\"'item'\">\r\n <img class=\"ui avatar image profileImage\"\r\n *ngIf=\"tab.imageUrl\"\r\n src=\"{{tab.imageUrl}}\"> {{tab.title}}\r\n </a>\r\n <a *ngIf=\"tab.type !== 2 && tab.route\"\r\n class=\"item\"\r\n [appHighlightTab]=\"tab\"\r\n [defaultClassName]=\"'item'\"\r\n routerLink=\"{{tab.route}}\">\r\n <img class=\"ui avatar image profileImage\"\r\n *ngIf=\"tab.imageUrl\"\r\n src=\"{{tab.imageUrl}}\"> {{tab.title}}\r\n </a>\r\n <a *ngIf=\"tab.type !== 2 && tab.tabUrl\"\r\n class=\"item\"\r\n [appHighlightTab]=\"tab\"\r\n [defaultClassName]=\"'item'\"\r\n href=\"{{tab.tabUrl}}\"\r\n target=\"_blank\">\r\n <img class=\"ui avatar image profileImage\"\r\n *ngIf=\"tab.imageUrl\"\r\n src=\"{{tab.imageUrl}}\"> {{tab.title}}\r\n </a>\r\n </div>\r\n</div>","import { Component, Input, OnChanges } from '@angular/core';\r\nimport { NgsmMenuConfig } from '../../models/ngsmMenuConfig';\r\nimport { NgsmMenuTab } from '../../models/ngsmMenuTab';\r\n\r\n@Component({\r\n selector: 'ngsm-menu',\r\n templateUrl: './ngsm-menu.component.html',\r\n styleUrls: ['./ngsm-menu.component.css']\r\n})\r\nexport class NgsmMenuComponent implements OnChanges {\r\n\r\n @Input() config: NgsmMenuConfig;\r\n @Input() tabs: NgsmMenuTab[] = [];\r\n @Input() profileTabs: Array<NgsmMenuTab>;\r\n @Input() isBusy: boolean = false;\r\n\r\n get loadingClass(): string {\r\n if (!this.config || !this.config.loadingIcon) return \"asterisk loading icon\";\r\n return `${this.config.loadingIcon} loading icon`;\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges() { }\r\n\r\n}\r\n","<div class=\"ui top attached inverted pointing menu\"\r\n [ngClass]=\"config.menuClassName\">\r\n <div class=\"ui fluid container\">\r\n <a *ngIf=\"config\"\r\n href=\"{{config.homeUrl}}\"\r\n [ngClass]=\"config.homeClassName\">\r\n </a>\r\n\r\n <div class=\"header item\">\r\n <div *ngIf=\"config && !config.titleUrl\">\r\n {{config.title}}\r\n </div>\r\n <a *ngIf=\"config && config.titleUrl\"\r\n href=\"{{config.titleUrl}}\">{{config.title}}\r\n </a>\r\n </div>\r\n\r\n <div *ngIf=\"isBusy\"\r\n class=\"header item\">\r\n <i [class]=\"loadingClass\"></i>\r\n </div>\r\n \r\n <ngsm-menu-display-directive [tabs]=\"tabs\"\r\n [containerClassName]=\"'menu left'\">\r\n </ngsm-menu-display-directive>\r\n\r\n <div class=\"menu right\">\r\n <ngsm-menu-display-directive [tabs]=\"profileTabs\"\r\n [containerClassName]=\"'menu right'\">\r\n </ngsm-menu-display-directive>\r\n </div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ngsm-tablepager',\r\n templateUrl: './ngsm-tablepager.component.html',\r\n styleUrls: ['./ngsm-tablepager.component.css']\r\n})\r\nexport class NgsmTablepagerComponent implements OnChanges {\r\n\r\n @Input() totalNumberOfRecords: number = 0;\r\n @Input() selectedPageSize: number = 10;\r\n @Input() selectedPage: number = 0;\r\n @Output() onPageSizeChange: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() onPageChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n numberOfPagesDisplayed = 5;\r\n totalNumberOfPages: number = 0;\r\n pageSizes: any[] = [{\r\n title: \"10 Records\",\r\n value: 10\r\n }, {\r\n title: \"25 Records\",\r\n value: 25\r\n }, {\r\n title: \"50 Records\",\r\n value: 50\r\n }, {\r\n title: \"100 Records\",\r\n value: 100\r\n }];\r\n\r\n \r\n\r\n constructor() { }\r\n\r\n ngOnChanges(changes) {\r\n //this.ngsmService.log(\"ngsmTablepager\", \"ngOnChanges\");\r\n if (this.totalNumberOfRecords && this.selectedPageSize)\r\n this.totalNumberOfPages = Math.ceil(this.totalNumberOfRecords / this.selectedPageSize);\r\n }\r\n\r\n setPage(page) {\r\n //this.ngsmService.log(\"ngsmTablepager\", `setPage: ${page}`);\r\n this.selectedPage = page;\r\n if (this.selectedPage < 0) this.selectedPage = 0;\r\n if (this.selectedPage >= this.totalNumberOfPages) this.selectedPage = this.totalNumberOfPages;\r\n this.onPageChange.emit(this.selectedPage);\r\n }\r\n\r\n setPageSize(pageSize) {\r\n this.selectedPageSize = pageSize;\r\n //this.ngsmService.log(\"ngsmTablepager\", `setPageSize: ${pageSize}`);\r\n this.totalNumberOfPages = Math.ceil(this.totalNumberOfRecords / this.selectedPageSize);\r\n this.onPageSizeChange.emit(pageSize);\r\n }\r\n\r\n range(): any[] {\r\n if (this.totalNumberOfPages === 0 || this.totalNumberOfPages === 1) return [];\r\n let start = this.selectedPage - 2;\r\n\r\n if (start < 0) start = 0;\r\n\r\n let end = start + this.numberOfPagesDisplayed;\r\n if (end > this.totalNumberOfPages) {\r\n end = this.totalNumberOfPages;\r\n start = end - this.numberOfPagesDisplayed;\r\n }\r\n\r\n if (start < 0) start = 0;\r\n\r\n if (start > end) return [];\r\n\r\n let ret = [];\r\n for (var i = start; i !== end; ++i) {\r\n ret.push(i);\r\n }\r\n return ret;\r\n }\r\n\r\n}\r\n","<div class=\"ui pagination menu\">\r\n <a class=\"icon item\"\r\n *ngIf=\"selectedPage > 0\"\r\n (click)=\"setPage(0)\">\r\n <i class=\"angle double left icon\"></i>\r\n </a>\r\n <a class=\"icon item\"\r\n *ngIf=\"selectedPage > 0\"\r\n (click)=\"setPage(selectedPage - 1)\">\r\n <i class=\"angle left icon\"></i>\r\n </a>\r\n <a class=\"item\"\r\n *ngFor=\"let r of range()\"\r\n [ngClass]=\"{active: selectedPage === r}\"\r\n (click)=\"setPage(r)\">\r\n {{r+1}}\r\n </a>\r\n <a class=\"icon item\"\r\n *ngIf=\"selectedPage < (totalNumberOfPages-1)\"\r\n (click)=\"setPage(selectedPage + 1)\">\r\n <i class=\"angle right icon\"></i>\r\n </a>\r\n <a class=\"icon item\"\r\n *ngIf=\"selectedPage < (totalNumberOfPages-1)\"\r\n (click)=\"setPage(totalNumberOfPages-1)\">\r\n <i class=\"angle double right icon\"></i>\r\n </a>\r\n <select [(ngModel)]=\"selectedPageSize\"\r\n (ngModelChange)=\"setPageSize($event)\"\r\n placeholder=\"Transactions per Page\"\r\n *ngIf=\"totalNumberOfRecords>0\"\r\n class=\"ui fluid dropdown\"\r\n style=\"border:1px solid white;\">\r\n <option *ngFor=\"let pageSize of pageSizes\"\r\n [value]=\"pageSize.value\">{{pageSize.title}}\r\n </option>\r\n </select>\r\n</div>","import { HttpClient } from '@angular/common/http';\r\nimport { Component, forwardRef, Input, OnChanges, Output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { NgsmTagConfig } from '../../models/ngsmTagConfig';\r\n\r\n\r\n@Component({\r\n selector: 'ngsm-tags',\r\n templateUrl: './ngsm-tags.component.html',\r\n styleUrls: ['./ngsm-tags.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgsmTagsComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class NgsmTagsComponent implements OnChanges, ControlValueAccessor {\r\n\r\n @Input() config: NgsmTagConfig;\r\n @Output() events: Subject<any> = new Subject<any>();\r\n tags: any[] = [];\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public requestAutocompleteItems = (text: string): Observable<Object> => {\r\n const url = `${this.config.url}/${text}`;\r\n //this.ngsmService.log(\"ngsmTags\", `requestAutocompleteItemsUrl: ${url}`);\r\n return this.http.get(url);\r\n };\r\n\r\n public onItemAdded(newTag: any) {\r\n this.propagateChange(this.tags);\r\n this.events.next({\r\n type: \"itemAdded\",\r\n item: newTag\r\n });\r\n }\r\n\r\n public onItemRemoved(tagToRemove: any) {\r\n this.propagateChange(this.tags);\r\n this.events.next({\r\n type: \"itemRemoved\",\r\n item: tagToRemove\r\n });\r\n }\r\n\r\n get value(): any {\r\n return this.tags;\r\n };\r\n\r\n writeValue(value: any) {\r\n if (value !== undefined && value !== null) {\r\n this.tags = value;\r\n }\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges() { }\r\n\r\n onTouchedCallback() { }\r\n registerOnTouched() { }\r\n propagateChange = (_: any) => { };\r\n\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n}\r\n","<tag-input [(ngModel)]=\"tags\"\r\n [theme]=\"config.theme\"\r\n [identifyBy]=\"config.identifyBy\"\r\n [displayBy]=\"config.displayBy\"\r\n [placeholder]=\"config.placeholder\"\r\n [secondaryPlaceholder]=\"config.secondaryPlaceholder\"\r\n [disable]=\"config.disabled\"\r\n [onlyFromAutocomplete]=\"config.onlyFromAutocomplete\"\r\n (onAdd)=\"onItemAdded($event)\"\r\n (onRemove)=\"onItemRemoved($event)\">\r\n <tag-input-dropdown [autocompleteObservable]='requestAutocompleteItems'\r\n [minimumTextLength]=\"config.minimumTextLength\"\r\n [identifyBy]=\"config.identifyBy\"\r\n [displayBy]=\"config.displayBy\">\r\n </tag-input-dropdown>\r\n</tag-input>","import { Component, forwardRef, Input, OnChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { NgsmDatepickerConfig } from '../../models/ngsmDatepickerConfig';\r\n\r\n\r\ndeclare var moment: any;\r\n\r\n@Component({\r\n selector: 'ngsm-timepicker',\r\n templateUrl: './ngsm-timepicker.component.html',\r\n styleUrls: ['./ngsm-timepicker.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgsmTimepickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class NgsmTimepickerComponent implements OnChanges, ControlValueAccessor {\r\n\r\n @Input()\r\n config: NgsmDatepickerConfig;\r\n\r\n innerValue: string;\r\n\r\n constructor() { }\r\n\r\n getClassNames() {\r\n if (this.config.required && !this.innerValue)\r\n return \"invalid\";\r\n else if (this.config.required && this.innerValue)\r\n return \"valid\";\r\n return \"\";\r\n }\r\n\r\n init() {\r\n //this.ngsmService.log(\"ngsmTimepicker\", \"init\");\r\n let self = this;\r\n setTimeout(function () {\r\n (<any>$(`#${self.config.id}`)).calendar({\r\n type: 'time',\r\n onChange: jQuery.proxy(function (value) {\r\n let formatedTime = moment(value).format(\"HH:mm A\");\r\n //self.ngsmService.log(\"ngsmTimepicker\", formatedTime);\r\n self.propagateChange(formatedTime);\r\n }, self)\r\n });\r\n }, 250);\r\n }\r\n\r\n ngOnInit() {\r\n //this.ngsmService.log(\"ngsmTimepicker\", \"ngOnInit\");\r\n }\r\n\r\n ngOnChanges() {\r\n //this.ngsmService.log(\"ngsmTimepicker\", \"ngOnChanges\");\r\n if (this.config && this.config.id) {\r\n this.init();\r\n }\r\n }\r\n\r\n get value(): any {\r\n return this.innerValue;\r\n };\r\n\r\n writeValue(value: any) {\r\n if (value !== undefined) {\r\n //this.ngsmService.log(\"ngsm-timepicker writeValue\", value);\r\n var dateValue = moment(value);\r\n if (moment(dateValue).isValid())\r\n this.innerValue = `${dateValue.format(\"HH:mm A\")}`;\r\n else\r\n this.innerValue = value;\r\n }\r\n }\r\n\r\n onTouchedCallback() { }\r\n registerOnTouched() { }\r\n propagateChange = (_: any) => { };\r\n\r\n registerOnChange(fn) {\r\n this.propagateChange = fn;\r\n }\r\n\r\n\r\n}\r\n","<div id=\"{{config.id}}\"\r\n class=\"ui calendar\">\r\n <div class=\"ui input left icon\">\r\n <i class=\"time icon\"></i>\r\n <input [(ngModel)]=\"innerValue\"\r\n [ngClass]=\"getClassNames()\"\r\n placeholder=\"{{config.placeholder}}\">\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n//3rd party\r\nimport { TagInputModule } from 'ngx-chips';\r\nimport { NgsmAutocompleteComponent } from './components/ngsm-autocomplete/ngsm-autocomplete.component';\r\nimport { NgsmDatepickerComponent } from './components/ngsm-datepicker/ngsm-datepicker.component';\r\nimport { NgsmLoaderComponent } from './components/ngsm-loader/ngsm-loader.component';\r\nimport { NgsmMenuComponent } from './components/ngsm-menu/ngsm-menu.component';\r\nimport { NgsmTablepagerComponent } from './components/ngsm-tablepager/ngsm-tablepager.component';\r\nimport { NgsmTagsComponent } from './components/ngsm-tags/ngsm-tags.component';\r\nimport { NgsmTimepickerComponent } from './components/ngsm-timepicker/ngsm-timepicker.component';\r\nimport { HighlightTabDirective } from './directives/highlight-tab.directive';\r\nimport { NgsmMenuDisplayDirectiveComponent } from './directives/ngsm-menu-display-directive/ngsm-menu-display-directive.component';\r\nimport { NgsmSubMenuDisplayDirectiveComponent } from './directives/ngsm-sub-menu-display-directive/ngsm-sub-menu-display-directive.component';\r\n//import { NgsmService } from './services/ngsm.service';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n TagInputModule\r\n ],\r\n declarations: [\r\n NgsmLoaderComponent,\r\n NgsmTagsComponent,\r\n NgsmDatepickerComponent,\r\n NgsmTimepickerComponent,\r\n NgsmTablepagerComponent,\r\n NgsmAutocompleteComponent,\r\n NgsmMenuComponent,\r\n NgsmMenuDisplayDirectiveComponent,\r\n NgsmSubMenuDisplayDirectiveComponent,\r\n HighlightTabDirective\r\n ],\r\n exports: [\r\n NgsmLoaderComponent,\r\n NgsmTagsComponent,\r\n NgsmDatepickerComponent,\r\n NgsmTimepickerComponent,\r\n NgsmTablepagerComponent,\r\n NgsmAutocompleteComponent,\r\n NgsmMenuComponent,\r\n NgsmMenuDisplayDirectiveComponent,\r\n NgsmSubMenuDisplayDirectiveComponent,\r\n HighlightTabDirective\r\n ]\r\n})\r\nexport class NgsmModule {\r\n public static forRoot(config?: any): ModuleWithProviders<NgsmModule> {\r\n return {\r\n ngModule: NgsmModule,\r\n providers: [\r\n //NgsmService,\r\n { provide: 'config', useValue: config }\r\n ]\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3.NgsmSubMenuDisplayDirectiveComponent","i4.HighlightTabDirective","i2.NgsmMenuDisplayDirectiveComponent"],"mappings":"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