@nettyapps/ntyux 21.0.0 → 21.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/nettyapps-ntyux.mjs +117 -3
- package/fesm2022/nettyapps-ntyux.mjs.map +1 -1
- package/package.json +16 -4
- package/styles/public-nettyapp-base.scss +353 -0
- package/themes/blueorangetheme.css +323 -0
- package/themes/deep-bluetheme.css +322 -0
- package/themes/graytheme.css +323 -0
- package/themes/greentheme.css +323 -0
- package/themes/orangetheme.css +322 -0
- package/themes/purpletheme.css +322 -0
- package/themes/redtheme.css +322 -0
- package/themes/themes.css +7 -0
- package/types/nettyapps-ntyux.d.ts +84 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nettyapps-ntyux.mjs","sources":["../../../projects/ntyux/src/lib/ntyux.ts","../../../projects/ntyux/src/lib/ntyux-module.ts","../../../projects/ntyux/src/lib/auto-complete/models/guid.ts","../../../projects/ntyux/src/lib/auto-complete/services/auto-complete-proxy.ts","../../../projects/ntyux/src/lib/auto-complete/models/auto-complete-filter.ts","../../../projects/ntyux/src/lib/auto-complete/auto-complete-lookup/auto-complete-lookup.ts","../../../projects/ntyux/src/lib/auto-complete/auto-complete-popup-menu/auto-complete-popup-menu.ts","../../../projects/ntyux/src/lib/auto-complete/auto-complete-popup-menu/auto-complete-popup-menu.html","../../../projects/ntyux/src/lib/auto-complete/auto-complete.ts","../../../projects/ntyux/src/lib/auto-complete/auto-complete.html","../../../projects/ntyux/src/lib/components/http-error403/http-error403.ts","../../../projects/ntyux/src/lib/components/http-error403/http-error403.html","../../../projects/ntyux/src/lib/components/http-error404/http-error404.ts","../../../projects/ntyux/src/lib/components/http-error404/http-error404.html","../../../projects/ntyux/src/lib/components/left-sidenav/left-sidenav.ts","../../../projects/ntyux/src/lib/components/left-sidenav/left-sidenav.html","../../../projects/ntyux/src/lib/themes/services/theme.ts","../../../projects/ntyux/src/lib/themes/services/color-palette.ts","../../../projects/ntyux/src/lib/components/toolbar/toolbar.ts","../../../projects/ntyux/src/lib/components/toolbar/toolbar.html","../../../projects/ntyux/src/public-api.ts","../../../projects/ntyux/src/nettyapps-ntyux.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ntyux',\n standalone: false,\n template: `\n <p>\n ntyux works!\n </p>\n `,\n styles: ``,\n})\nexport class Ntyux {\n\n}\n","import { NgModule } from '@angular/core';\nimport { Ntyux } from './ntyux';\n\n\n\n@NgModule({\n declarations: [\n Ntyux\n ],\n imports: [\n ],\n exports: [\n Ntyux\n ]\n})\nexport class NtyuxModule { }\n","export class Guid {\n private value: string = this.empty;\n constructor(value?: string) {\n if (value) {\n if (Guid.isValid(value)) {\n this.value = value;\n }\n }\n }\n\n public static newGuid(): Guid {\n return new Guid(\n 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n })\n );\n }\n /**\n * return all zeros '00000000-0000-0000-0000-000000000000'\n */\n public static get empty(): string {\n return '00000000-0000-0000-0000-000000000000';\n }\n public get empty(): string {\n return Guid.empty;\n }\n public static isValid(str: string): boolean {\n const validRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return validRegex.test(str);\n }\n public toString() {\n return this.value;\n }\n\n public toJSON(): string {\n return this.value;\n }\n /**\n * True is guid is empty or not valid\n * @param str\n * @returns\n */\n public static isNullOrEmpty(str: string): boolean {\n if (str == null || str == undefined) {\n return true;\n }\n if (!Guid.isValid(str)) {\n return true;\n }\n if (str == Guid.empty) {\n return true;\n }\n return false;\n }\n /**\n * True if the guid is valid and not all zeros (empty)\n * @param str\n * @returns\n */\n public static isValidAndNotEmpty(str: string): boolean {\n return !Guid.isNullOrEmpty(str);\n }\n /**\n * Return empty guid if the given guid is not valid\n * @param guid\n * @returns\n */\n public static emptyWhenNull(guid: any): any {\n if (Guid.isValidAndNotEmpty(guid)) {\n return guid;\n }\n return Guid.empty;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { EnvironmentProxy } from '@nettyapps/ntycontract';\nimport { NtyAutoCompleteFilter } from '../models/auto-complete-filter';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AutoCompleteProxy {\n private http = inject(HttpClient);\n private environmentProxy = inject(EnvironmentProxy);\n\n getAutocompleteDataFilter(\n searchTable: string,\n searchData: NtyAutoCompleteFilter\n ) {\n let functionUrl = this.environmentProxy.getServerLink(\n searchTable + '/AutoCompleteFilter'\n );\n return this.http.post(functionUrl, searchData);\n }\n}\n","import { NtyAutoCompleteFilterFields } from './auto-complete-filter-fields';\n\nexport class NtyAutoCompleteFilter {\n coid: any = null;\n searchString: string | null = null;\n fields: NtyAutoCompleteFilterFields[] | null = null;\n}\n","import {\n Component,\n input,\n output,\n ViewChild,\n ViewContainerRef,\n inject,\n SimpleChanges,\n OnChanges,\n} from '@angular/core';\nimport { NettyAgGridBase } from '@nettyapps/ntybase';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n/**\n * This component can load and display any container which is provided dynamically during run time\n * The only requirement is the component that will be displayed should extend AgGridBaseComponent\n */\n@Component({\n selector: 'ntybase-auto-complete-lookup',\n imports: [],\n template: ` <ng-template #container></ng-template> `,\n})\nexport class AutoCompleteLookup implements OnChanges {\n data = inject(MAT_DIALOG_DATA);\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n container!: ViewContainerRef;\n\n component = input<any>();\n filterField = input<string | null>(null);\n filterFieldValue = input<any>(null);\n filterFieldNumeric = input<boolean>(false);\n filterFieldEquality = input<string>('=');\n\n // Output\n selectedElement = output<any>();\n\n ngOnInit() {\n this.initializeComponent();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isComponentConfigChanged(changes)) {\n this.initializeComponent();\n }\n }\n\n private isComponentConfigChanged(changes: SimpleChanges): boolean {\n return (\n !!changes['component'] ||\n !!changes['filterField'] ||\n !!changes['filterFieldValue'] ||\n !!changes['filterFieldNumeric'] ||\n !!changes['filterFieldEquality']\n );\n }\n\n private initializeComponent() {\n const config = this.data || this.getInputConfig();\n this.loadComponent(config);\n }\n\n private getInputConfig() {\n return {\n component: this.component(),\n filterField: this.filterField(),\n filterFieldValue: this.filterFieldValue(),\n filterFieldNumeric: this.filterFieldNumeric(),\n filterFieldEquality: this.filterFieldEquality(),\n };\n }\n\n loadComponent(config: any) {\n if (!config?.component) return;\n\n this.container.clear();\n const componentRef = this.container.createComponent<NettyAgGridBase<any>>(\n config.component\n );\n\n componentRef.setInput('popupValid', true);\n\n if (config.filterField !== undefined) {\n componentRef.setInput('filterField', config.filterField);\n }\n\n if (config.filterFieldValue !== undefined) {\n componentRef.setInput('filterFieldValue', config.filterFieldValue);\n }\n\n if (config.filterFieldEquality !== undefined) {\n componentRef.setInput('filterFieldEquality', config.filterFieldEquality);\n }\n\n if (config.filterFieldNumeric !== undefined) {\n componentRef.setInput('filterFieldNumeric', config.filterFieldNumeric);\n }\n\n const sub = componentRef.instance.selectedElement.subscribe((data: any) => {\n this.selectedElement.emit(data);\n });\n\n componentRef.onDestroy(() => sub.unsubscribe());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n OnInit,\n Input,\n ViewEncapsulation,\n inject,\n output,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { AlertService } from '@nettyapps/ntybase';\n\n@Component({\n selector: 'ntybase-auto-complete-popup-menu',\n imports: [CommonModule, ReactiveFormsModule, MatIconModule, TranslateModule],\n templateUrl: './auto-complete-popup-menu.html',\n styleUrl: './auto-complete-popup-menu.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AutoCompletePopupMenu implements OnInit {\n @Input() field: string = '';\n @Input() recordGuid: any;\n @Input() fieldDisabled: boolean = false;\n @Input() componentPath: string = '';\n @Input() inputValue: string = '';\n Result = output<string>();\n\n private clipboard = inject(Clipboard);\n private alertService = inject(AlertService);\n\n ngOnInit() {}\n\n gotoNew() {\n if (!this.componentPath) return;\n\n // Split the component path into segments\n const pathSegments = this.componentPath.split('/').filter((p) => p);\n this.gotoNewTab(pathSegments, '', 'new');\n this.Result.emit('New');\n }\n\n gotoMain() {\n if (!this.componentPath || !this.recordGuid) return;\n\n // Split the component path into segments\n const pathSegments = this.componentPath.split('/').filter((p) => p);\n this.gotoNewTab(pathSegments, this.recordGuid, 'edit');\n this.Result.emit('Main');\n }\n\n gotoLookup() {\n if (!this.fieldDisabled) {\n this.Result.emit('Lookup');\n }\n }\n\n gotoNewTab(target: string[], params: any, type: string) {\n if (!target || target.length === 0) return;\n\n // Construct the URL directly in the format you want\n let url = `/${target.join('/')}`;\n\n // Add query parameters\n const queryParams = [];\n if (params) {\n queryParams.push(\n `parameters=${encodeURIComponent(JSON.stringify(params))}`\n );\n }\n if (type) {\n queryParams.push(`type=${type}`);\n }\n queryParams.push('isNewTab=true');\n\n if (queryParams.length > 0) {\n url += `?${queryParams.join('&')}`;\n }\n\n // Open in new tab\n window.open(url, '_blank');\n }\n\n copyToClipboard() {\n if (this.inputValue) {\n this.clipboard.copy(this.inputValue);\n this.alertService.showAlert('@copiedToClipboard');\n this.Result.emit('Copy');\n }\n }\n}\n","<div class=\"dialogbase\">\n <div class=\"menu\">\n <ul class=\"list-group\">\n <li\n class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center menu-item\"\n >\n <span (click)=\"copyToClipboard()\" class=\"align-line\"\n ><mat-icon>content_copy</mat-icon>{{'@copy'| translate}}</span\n >\n </li>\n <li\n class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center menu-item\"\n >\n <span (click)=\"gotoMain()\" class=\"align-line\"\n ><mat-icon>edit</mat-icon>{{'@popupGotoRecordDefinition'|\n translate}}</span\n >\n </li>\n <li\n class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center menu-item\"\n >\n <span (click)=\"gotoNew()\" class=\"align-line\"\n ><mat-icon>add</mat-icon>{{'@popupNewRecord'| translate}}</span\n >\n </li>\n <li\n class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center\"\n [ngClass]=\"{'menu-item':!fieldDisabled , 'menu-item-disabled':fieldDisabled }\"\n >\n <span (click)=\"gotoLookup()\" class=\"align-line\"\n ><mat-icon>search</mat-icon>{{'@popupSelectFromList'|translate}}</span\n >\n </li>\n </ul>\n </div>\n</div>\n","import {\n Component,\n computed,\n effect,\n ElementRef,\n input,\n signal,\n ViewChild,\n ChangeDetectionStrategy,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport {\n MatAutocompleteModule,\n MatAutocompleteSelectedEvent,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport {\n FormsModule,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '@nettyapps/ntyui';\nimport { Guid } from '../auto-complete/models/guid';\nimport { AutoCompleteProxy } from './services/auto-complete-proxy';\nimport {\n MatDialog,\n MatDialogConfig,\n MatDialogModule,\n} from '@angular/material/dialog';\nimport { NtyAutoCompleteFilter } from './models/auto-complete-filter';\nimport { NtyAutoCompleteFilterFields } from './models/auto-complete-filter-fields';\nimport { AutoCompleteLookup } from './auto-complete-lookup/auto-complete-lookup';\nimport { AutoCompletePopupMenu } from './auto-complete-popup-menu/auto-complete-popup-menu';\nimport { AlertService } from '@nettyapps/ntybase';\n\nexport class SelectionItem {\n name: string | null = null;\n value: any = null;\n\n constructor(_value: any = null, _name: string | null = null) {\n this.name = _name;\n this.value = _value;\n }\n}\n\n@Component({\n selector: 'ntybase-auto-complete',\n imports: [\n MatFormFieldModule,\n MatAutocompleteModule,\n FormsModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatDialogModule,\n ],\n templateUrl: './auto-complete.html',\n styleUrl: './auto-complete.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutoComplete),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AutoComplete extends UiBase {\n // Input parameters\n tableName = input<string>('');\n searchAfter = input<number>(3);\n fieldCode = input<string | null>(null);\n fieldName = input<string | null>(null);\n lookupComponent = input<any>(null);\n lookupComponentPath = input<any>(null);\n filterField = input<string | null>(null);\n filterFieldValue = input<any>(null);\n filterFieldNumeric = input<boolean>(false);\n filterFieldEquality = input<string>('=');\n debounceTime = input<number>(500);\n\n // Inject dependencies\n private alertService = inject(AlertService);\n private autoCompleteService = inject(AutoCompleteProxy);\n private dialog = inject(MatDialog);\n\n @ViewChild(MatAutocompleteTrigger)\n autoCompleteTrigger!: MatAutocompleteTrigger;\n @ViewChild('autoCompleteInput') inputField!: ElementRef;\n\n control = new FormControl();\n matcher = new ErrorStateMatcher();\n\n // Signal parameters\n searchText = signal('');\n selectedOption = signal<SelectionItem | null>(null);\n loadedOptions = signal<SelectionItem[]>([]);\n\n private searchSignal = signal<string>('');\n private debounceTimeout: any;\n\n constructor() {\n super();\n // Sync form control with selected option\n effect(() => {\n const option = this.selectedOption();\n if (option) {\n this.searchText.set(option.name || '');\n } else if (this.control.value && !this.selectedOption()) {\n const found = this.loadedOptions().find(\n (opt) => opt.value === this.control.value\n );\n if (found) {\n this.selectedOption.set(found);\n this.searchText.set(found.name || '');\n }\n }\n });\n\n // Then watch the debounced signal:\n effect((onCleanup) => {\n const searchValue = this.searchSignal();\n\n clearTimeout(this.debounceTimeout);\n\n this.debounceTimeout = setTimeout(() => {\n if (this.shouldTriggerSearch(searchValue)) {\n this.loadAutoCompleteData(searchValue);\n } else {\n this.loadedOptions.set([]);\n }\n }, this.debounceTime());\n\n onCleanup(() => {\n clearTimeout(this.debounceTimeout);\n });\n });\n\n effect(() => {\n this.onChange(this.value());\n });\n\n effect(() => {\n this.updateValidators();\n });\n }\n\n private shouldTriggerSearch(searchValue: string): boolean {\n return searchValue.length >= this.searchAfter();\n }\n\n filteredData = computed(() => {\n return this.loadedOptions();\n });\n\n onInputChanged(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchText.set(value);\n this.onTouched();\n\n // Clear selection if text doesn't match\n if (this.selectedOption() && this.selectedOption()?.name !== value) {\n this.selectedOption.set(null);\n }\n\n if (value.length === 0) {\n this.clearInput();\n return;\n }\n this.searchSignal.set(value);\n this.autoCompleteTrigger.closePanel();\n }\n\n private loadAutoCompleteData(searchValue: string) {\n this.loadedOptions.set([]);\n\n const filter = new NtyAutoCompleteFilter();\n\n filter.searchString =\n searchValue.trim() === '' && searchValue.length >= this.searchAfter()\n ? ''\n : searchValue;\n\n filter.fields = [];\n\n if (this.filterField() && this.filterField()!.trim().length > 0) {\n const fields: NtyAutoCompleteFilterFields = {\n equalitySign: this.filterFieldEquality(),\n fieldName: this.filterField()!,\n fieldValue: this.filterFieldValue(),\n numeric: this.filterFieldNumeric(),\n };\n filter.fields?.push(fields);\n }\n\n this.autoCompleteService\n .getAutocompleteDataFilter(this.tableName(), filter)\n .subscribe({\n next: (data: any) => {\n if (data && Array.isArray(data)) {\n const options = data.map((item: any) => ({\n name: item.text,\n value: item.guidValue,\n }));\n this.loadedOptions.set(options);\n\n if (options.length === 1) {\n this.selectedOption.set(options[0]);\n this.control.setValue(options[0].value);\n this.searchText.set(options[0].name || '');\n } else if (options.length > 1) {\n this.autoCompleteTrigger.openPanel();\n }\n }\n },\n error: (err: any) => {\n this.alertService.showAlert(err.message);\n },\n });\n }\n\n override clearInput() {\n this.selectedOption.set(new SelectionItem(Guid.empty, ''));\n this.control.reset();\n this.searchText.set('');\n this.loadedOptions.set([]);\n this.inputField.nativeElement.value = '';\n }\n\n onPaste(event: ClipboardEvent) {\n const clipboardData = event.clipboardData;\n if (!clipboardData) return;\n\n const pastedText = clipboardData.getData('text');\n this.searchText.set(pastedText);\n this.searchSignal.set(pastedText);\n }\n\n displayFn(item: any): string {\n return this.searchText();\n }\n\n optionSelected(event: MatAutocompleteSelectedEvent) {\n const selectedValue = event.option.value;\n const selected = this.loadedOptions().find(\n (opt) => opt.value === selectedValue\n );\n\n if (selected) {\n this.selectedOption.set(selected);\n this.control.setValue(selected.value);\n this.searchText.set(selected.name || '');\n }\n }\n\n override writeValue(value: any): void {\n this.value.set(value);\n if (!value) return;\n\n if (this.fieldCode()) {\n this.selectedOption.set({ value, name: this.fieldCode() });\n }\n }\n\n onLookup() {\n if (!this.lookupComponent()) return;\n\n const dialogRef = this.dialog.open(AutoCompleteLookup, {\n height: 'auto',\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'auto',\n data: {\n component: this.lookupComponent(),\n ...(this.filterField() && {\n filterField: this.filterField(),\n filterFieldValue: this.filterFieldValue(),\n filterFieldEquality: this.filterFieldEquality(),\n filterFieldNumeric: this.filterFieldNumeric(),\n }),\n },\n });\n\n dialogRef.componentInstance.selectedElement.subscribe((data: any) => {\n if (data) {\n const selection = new SelectionItem(data.value, data.text);\n this.selectedOption.set(selection);\n this.control.setValue(selection.value);\n this.searchText.set(selection.name || '');\n }\n dialogRef.close();\n });\n }\n\n /** Popup screen to goto main table\n *\n * @param event\n * @returns\n */\n rightClick(event: any) {\n event.stopPropagation();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.position = {\n top: event.clientY + 'px',\n left: event.clientX + 'px',\n };\n dialogConfig.height = 'auto';\n dialogConfig.width = 'auto';\n dialogConfig.panelClass = 'foo';\n const dialogRef = this.dialog.open(AutoCompletePopupMenu, dialogConfig);\n dialogRef.componentInstance.field = this.tableName();\n dialogRef.componentInstance.recordGuid = this.value();\n dialogRef.componentInstance.fieldDisabled = this.disabled();\n dialogRef.componentInstance.componentPath = this.lookupComponentPath();\n dialogRef.componentInstance.inputValue = this.searchText();\n dialogRef.componentInstance.Result.subscribe((result: string) => {\n switch (result) {\n case 'Lookup':\n dialogRef.close();\n this.onLookup();\n break;\n default:\n dialogRef.close();\n break;\n }\n });\n return false;\n }\n\n // Validation\n override getErrorMessage() {\n if (this.control.hasError('required') && this.errorMessages()['required']) {\n return this.errorMessages()['required'];\n }\n return '';\n }\n\n override updateValidators() {\n const validators = [];\n\n if (this.required()) {\n validators.push(Validators.required);\n }\n\n this.control.setValidators(validators);\n this.control.updateValueAndValidity();\n }\n}\n","<mat-form-field\n class=\"ui-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n type=\"text\"\n #autoCompleteInput\n matInput\n [(ngModel)]=\"value\"\n [matAutocomplete]=\"auto\"\n (input)=\"onInputChanged($event)\"\n (paste)=\"onPaste($event)\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"control\"\n (contextmenu)=\"rightClick($event)\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n }\n\n <button\n mat-icon-button\n matSuffix\n aria-label=\"Search\"\n (click)=\"onLookup()\"\n class=\"search-btn\"\n >\n <mat-icon>search</mat-icon>\n </button>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayFn.bind(this)\"\n (optionSelected)=\"optionSelected($event)\"\n >\n @for (option of filteredData(); track option.value) {\n <mat-option [value]=\"option.value\"> {{ option.name }} </mat-option>\n }\n </mat-autocomplete>\n\n <mat-error>{{ getErrorMessage() }}</mat-error>\n</mat-form-field>\n","import { Location } from '@angular/common';\nimport { Component, inject, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { CommonService } from '@nettyapps/ntybase';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ntybase-http-error403',\n imports: [],\n templateUrl: './http-error403.html',\n styleUrl: './http-error403.scss',\n})\nexport class HttpError403 implements OnDestroy {\n attemptedUrl: string = '';\n\n private routeSubscription: Subscription;\n\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private location = inject(Location);\n private commonService = inject(CommonService);\n\n constructor() {\n // Router'dan state'i al\n const navigation = this.router.currentNavigation();\n this.attemptedUrl = navigation?.extras.state?.['attemptedUrl'] || '';\n\n // Eğer state'ten gelmediyse, mevcut URL'i temizleyerek kullan\n if (!this.attemptedUrl) {\n this.attemptedUrl = this.getCleanUrlPath();\n }\n\n this.routeSubscription = this.router.events.subscribe(() => {\n this.updateAttemptedUrl();\n });\n }\n\n ngOnInit() {\n // 1. URL'deki secondary outlet'leri temizle (örneğin: \"(rightSidenav:...)\")\n this.cleanUrlFromFragments();\n\n // 2. Hata mesajı için attemptedUrl'i güncelle\n this.updateAttemptedUrl();\n\n // 3. Right sidenav'ı kapat\n this.commonService.toggleRightSidenav(false);\n }\n\n ngOnDestroy() {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n }\n\n /**\n * URL'deki fragment ve outlet'leri temizler.\n * Örnek: \"/sys/NettyUserGroup(rightSidenav:...)\" → \"/sys/NettyUserGroup\"\n */\n private cleanUrlFromFragments() {\n const currentUrl = this.router.url;\n const cleanUrl = currentUrl.split('(')[0]; // \"(\" sonrasını sil\n\n if (currentUrl !== cleanUrl) {\n // URL'yi temizlenmiş haliyle değiştir (tarayıcı geçmişine eklemeden)\n this.router.navigateByUrl(cleanUrl, {\n replaceUrl: true,\n skipLocationChange: false,\n });\n }\n }\n\n /**\n * attemptedUrl'i güncel router URL'ine göre günceller\n */\n private updateAttemptedUrl() {\n this.attemptedUrl = this.getCleanUrlPath();\n }\n\n /**\n * Temizlenmiş URL yolunu döndürür (queryParams ve fragment olmadan).\n */\n private getCleanUrlPath(): string {\n return this.router.url.split('?')[0].split('(')[0];\n }\n\n goHome() {\n this.router.navigate(['/'], { replaceUrl: true });\n this.commonService.toggleRightSidenav(false);\n }\n\n goBack() {\n this.location.back();\n }\n}\n","<div class=\"error-container\">\n <div class=\"error-page\">\n <h1>403 - Erişim Engellendi</h1>\n\n <p>\n <strong>Üzgünüz, {{ attemptedUrl }}</strong> sayfasına erişim izniniz\n bulunmamaktadır.\n </p>\n\n <p class=\"error-detail\">\n Bu sayfayı görüntülemek için gerekli yetkilere sahip değilsiniz. Eğer bu\n bir hata olduğunu düşünüyorsanız, lütfen sistem yöneticinizle iletişime\n geçin.\n </p>\n <button mat-raised-button (click)=\"goHome()\" color=\"primary\" routerLink=\"/\">\n Ana Sayfaya Dön\n </button>\n <button mat-raised-button (click)=\"goBack()\" color=\"primary\" routerLink=\"/\">\n Geri Dön\n </button>\n </div>\n</div>\n","import { Location } from '@angular/common';\nimport { Component, inject, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { CommonService } from '@nettyapps/ntybase';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ntybase-http-error404',\n imports: [],\n templateUrl: './http-error404.html',\n styleUrl: './http-error404.scss',\n})\nexport class HttpError404 {\n attemptedUrl: string = '';\n private routeSubscription: Subscription;\n\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private location = inject(Location);\n private commonService = inject(CommonService);\n\n constructor() {\n this.routeSubscription = this.router.events.subscribe(() => {\n this.updateAttemptedUrl();\n });\n }\n\n ngOnInit() {\n // 1. URL'deki secondary outlet'leri temizle (örneğin: \"(rightSidenav:...)\")\n this.cleanUrlFromFragments();\n\n // 2. Hata mesajı için attemptedUrl'i güncelle\n this.updateAttemptedUrl();\n\n // 3. Right sidenav'ı kapat\n this.commonService.toggleRightSidenav(false);\n }\n\n ngOnDestroy() {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n }\n\n /**\n * URL'deki fragment ve outlet'leri temizler.\n * Örnek: \"/sys/NettyUserGroup(rightSidenav:...)\" → \"/sys/NettyUserGroup\"\n */\n private cleanUrlFromFragments() {\n const currentUrl = this.router.url;\n const cleanUrl = currentUrl.split('(')[0]; // \"(\" sonrasını sil\n\n if (currentUrl !== cleanUrl) {\n // URL'yi temizlenmiş haliyle değiştir (tarayıcı geçmişine eklemeden)\n this.router.navigateByUrl(cleanUrl, {\n replaceUrl: true,\n skipLocationChange: false,\n });\n }\n }\n\n /**\n * Temizlenmiş URL yolunu döndürür (queryParams ve fragment olmadan).\n */\n private getCleanUrlPath(): string {\n return this.router.url.split('?')[0].split('(')[0];\n }\n\n /**\n * attemptedUrl'i güncel router URL'ine göre günceller\n */\n private updateAttemptedUrl() {\n this.attemptedUrl = this.getCleanUrlPath();\n }\n\n goHome() {\n this.router.navigate(['/'], { replaceUrl: true });\n this.commonService.toggleRightSidenav(false);\n }\n\n goBack() {\n this.location.back();\n }\n}\n","<div class=\"error-container\">\n <div class=\"error-page\">\n <h1>404</h1>\n <h3>Sayfa Bulunamadı</h3>\n <p><strong>{{ attemptedUrl }}</strong> adresi bulunamadı.</p>\n <p>Bu içerik taşınmış veya silinmiş olabilir.</p>\n <button mat-raised-button (click)=\"goHome()\" color=\"primary\" routerLink=\"/\">\n Ana Sayfaya Dön\n </button>\n <button mat-raised-button (click)=\"goBack()\" color=\"primary\" routerLink=\"/\">\n Geri Dön\n </button>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { Router, RouterLink, RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';\nimport { NettyUISearchInput } from '@nettyapps/ntyui';\nimport { EnvironmentProxy } from '@nettyapps/ntycontract';\nimport {\n AuthenticationService,\n NettyMenuService,\n CommonService,\n CredentialsService,\n NettyImageService,\n} from '@nettyapps/ntybase';\n\n@Component({\n selector: 'ntybase-left-sidenav',\n imports: [\n CommonModule,\n MatIconModule,\n MatListModule,\n MatMenuModule,\n MatMenuTrigger,\n RouterLink,\n RouterModule,\n NettyUISearchInput,\n TranslateModule,\n ],\n templateUrl: './left-sidenav.html',\n styleUrl: './left-sidenav.scss',\n})\nexport class LeftSidenav implements OnInit, AfterViewInit {\n private authService = inject(AuthenticationService);\n private router = inject(Router);\n private menuService = inject(NettyMenuService);\n private commonService = inject(CommonService);\n private environmentProxy = inject(EnvironmentProxy);\n private credentialsService = inject(CredentialsService);\n private imageService = inject(NettyImageService);\n private elementRef = inject(ElementRef);\n\n username = signal<string>('');\n profileImage = signal<string>('');\n\n version: string | null = this.environmentProxy.version();\n\n isMinimized = input<boolean>(false);\n toggleMinimize = output<void>();\n\n onToggleMinimize() {\n this.toggleMinimize.emit();\n }\n\n logout() {\n this.authService.logout().subscribe({\n next: (success) => {\n if (success) {\n const cleanUrl = this.commonService.getCleanUrlPath();\n this.router.navigateByUrl(cleanUrl, { replaceUrl: true }).then(() => {\n this.router.navigate(['/login']);\n });\n }\n },\n error: (err) => {\n console.error('Logout failed:', err);\n },\n });\n }\n\n // Menu Search\n menuItems = signal<any[]>([]);\n searchTerm = signal<string>('');\n originalMenuItems = signal<any[]>([]);\n\n constructor() {\n effect(() => {\n const fetchedMenu = this.menuService.menu();\n if (fetchedMenu) {\n const processedItems = this.processMenuItems(fetchedMenu);\n this.originalMenuItems.set(processedItems);\n } else {\n this.originalMenuItems.set([]);\n }\n });\n\n this.loadUserInfo();\n }\n\n ngOnInit(): void {\n // Application name gelene kadar 3 kez dene\n this.trySetMenuName(0);\n }\n\n private trySetMenuName(attempt: number): void {\n const appName = this.environmentProxy.getApplicationName();\n\n if (appName && appName.trim()) {\n // Application name geldi, menüyü yükle\n this.menuService.setMenuName(appName);\n } else if (attempt < 3) {\n // Henüz gelmedi, 300ms sonra tekrar dene\n setTimeout(() => {\n this.trySetMenuName(attempt + 1);\n }, 300);\n } else {\n // 3 denemeden sonra hala gelmedi, boş string ile dene\n console.warn('Application name not found, using empty string');\n this.menuService.setMenuName('');\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.loadUserInfo();\n }, 0);\n }\n\n loadUserInfo(): void {\n const credentials = this.credentialsService.getCredentials();\n if (credentials && credentials.username) {\n this.username.set(credentials.username);\n\n this.generateProfileImage(credentials.username);\n }\n }\n\n generateProfileImage(username: string): void {\n const initials = this.getInitials(username);\n\n const primaryColor = this.getCssVariableValue('--mat-sys-primary');\n\n const imageUrl = this.imageService.generateTextImage(\n initials,\n 40,\n 40,\n primaryColor || '#4ECDC4',\n '#FFFFFF',\n 'rgba(0, 0, 0, 0.2)'\n );\n\n this.profileImage.set(imageUrl);\n }\n\n private getCssVariableValue(variableName: string): string | null {\n if (typeof window === 'undefined') return null;\n\n const element = this.elementRef.nativeElement;\n return (\n getComputedStyle(element).getPropertyValue(variableName).trim() || null\n );\n }\n\n private getInitials(username: string): string {\n if (!username) return 'U';\n\n const names = username.trim().split(' ');\n if (names.length === 1) {\n return names[0].charAt(0).toUpperCase();\n } else {\n return (\n names[0].charAt(0) + names[names.length - 1].charAt(0)\n ).toUpperCase();\n }\n }\n\n processMenuItems(apiResponse: any): any[] {\n if (!apiResponse || !Array.isArray(apiResponse)) {\n return [];\n }\n return apiResponse.map((item: any) => ({\n name: item.label || item.name,\n icon: item.icon || '',\n link: item.route || item.link || '#',\n expanded: false,\n children: item.children ? this.processMenuItems(item.children) : [],\n }));\n }\n\n filteredMenuItems = computed(() => {\n const term = this.searchTerm().toLowerCase();\n if (!term) return this.originalMenuItems();\n\n return this.filterMenuItems(this.originalMenuItems(), term);\n });\n\n private filterMenuItems(items: any[], term: string): any[] {\n const normalizedTerm = this.commonService.normalizeTurkish(term);\n\n return items\n .map((item) => {\n const filteredChildren = item.children\n ? this.filterMenuItems(item.children, term)\n : [];\n\n const normalizedName = this.commonService.normalizeTurkish(item.name);\n const matches =\n normalizedName.includes(normalizedTerm) ||\n filteredChildren.length > 0;\n\n return matches\n ? {\n ...item,\n children: filteredChildren,\n expanded: matches || filteredChildren.length > 0,\n }\n : null;\n })\n .filter((item) => item !== null);\n }\n\n toggleSubMenu(item: any): void {\n item.expanded = !item.expanded;\n }\n\n onSearch(term: string) {\n this.searchTerm.set(term);\n }\n}\n","<div class=\"sidenav-content-wrapper\">\n <!-- Minimize Icon -->\n <button mat-icon-button (click)=\"onToggleMinimize()\" class=\"minimize-button\">\n <mat-icon class=\"minimize-icon\">\n {{ isMinimized() ? \"chevron_right\" : \"chevron_left\" }}\n </mat-icon>\n </button>\n\n <!-- Profile -->\n <div class=\"profile-section\">\n <button mat-button [matMenuTriggerFor]=\"profileMenu\" class=\"profile-button\">\n <img [src]=\"profileImage()\" [alt]=\"username()\" class=\"profile-image\" />\n @if(!isMinimized()){\n <div class=\"profile-info\">\n <p class=\"profile-name\">{{ username() }}</p>\n </div>\n }\n </button>\n\n <mat-menu #profileMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item disabled>\n <mat-icon>account_circle</mat-icon>\n <span>{{ '@profile' | translate }}</span>\n </button>\n <button mat-menu-item mat-button disabled>\n <mat-icon>swap_horiz</mat-icon>\n <span>{{ '@changeCompany' | translate }}</span>\n </button>\n <button mat-menu-item mat-button (click)=\"logout()\">\n <mat-icon>logout</mat-icon>\n <span>{{ '@logout' | translate }}</span>\n </button>\n </mat-menu>\n </div>\n\n <!-- Search Input -->\n @if (!isMinimized()){\n <ntyui-search-input\n class=\"search-input\"\n [label]=\"'@search' | translate\"\n [placeholder]=\"'@placeholderSearch' | translate\"\n [appearance]=\"'outline'\"\n (search)=\"onSearch($event)\"\n >\n </ntyui-search-input>\n }\n\n <!-- Menu -->\n @if (!isMinimized()) {\n <mat-nav-list>\n <div class=\"sidebar\">\n <ul>\n <!-- Recursive menu render -->\n @let items = filteredMenuItems(); @let level = 0;\n <ng-container\n [ngTemplateOutlet]=\"menuItemsTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: items, level: level }\"\n ></ng-container>\n </ul>\n </div>\n </mat-nav-list>\n }\n\n <!-- Footer -->\n <div class=\"sidenav-footer\">\n <button mat-button [matMenuTriggerFor]=\"footerMenu\" class=\"footer-button\">\n @if (!isMinimized()) {\n <div class=\"footer-text\">\n <div class=\"company-name\">\n <p>© 2025 AXIS</p>\n </div>\n </div>\n }\n </button>\n <div class=\"version\">\n <span class=\"version\">v{{version}}</span>\n </div>\n </div>\n\n <mat-menu #footerMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item disabled>\n <mat-icon>swap_horiz</mat-icon>\n {{ '@changeCompany' | translate }}\n </button>\n <button mat-menu-item mat-button (click)=\"logout()\">\n <mat-icon>logout</mat-icon>\n <span>{{ '@logout' | translate }}</span>\n </button>\n </mat-menu>\n</div>\n\n<!-- Recursive Menu Template -->\n<ng-template #menuItemsTemplate let-items let-level=\"level\">\n @for (item of items; track item.name) {\n <li [class]=\"'menu-level-' + level\">\n <!-- Leaf node (no children) -->\n @if (!item.children || item.children.length === 0) {\n <a\n [routerLink]=\"item.link\"\n routerLinkActive=\"active\"\n [class]=\"'menu-link level-' + level\"\n >\n <mat-icon>{{ item.icon }}</mat-icon>\n <span>{{ item.name }}</span>\n </a>\n }\n\n <!-- Parent node with children -->\n @if (item.children && item.children.length > 0) {\n <a\n (click)=\"toggleSubMenu(item)\"\n [class.expanded]=\"item.expanded\"\n [class]=\"'menu-link has-children level-' + level\"\n >\n <mat-icon>{{ item.icon }}</mat-icon>\n <span>{{ item.name }}</span>\n <mat-icon [class.rotated]=\"item.expanded\" class=\"expand-icon\">\n {{ item.expanded ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </a>\n }\n\n <!-- Recursive submenu -->\n @if (item.children && item.children.length > 0 && item.expanded) {\n <ul [class]=\"'submenu level-' + (level + 1)\">\n <ng-container\n *ngTemplateOutlet=\"menuItemsTemplate; context: { $implicit: item.children, level: level + 1 }\"\n ></ng-container>\n </ul>\n }\n </li>\n }\n</ng-template>\n","import { computed, effect, Injectable, signal } from '@angular/core';\n\nexport interface AppTheme {\n name: 'light' | 'dark';\n icon: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Theme {\n private readonly THEME_STORAGE_KEY = 'app-theme';\n\n private appTheme = signal<'light' | 'dark'>('light');\n private themes: AppTheme[] = [\n { name: 'light', icon: 'light_mode' },\n { name: 'dark', icon: 'dark_mode' },\n ];\n\n selectedTheme = computed(() =>\n this.themes.find((theme) => theme.name === this.appTheme())\n );\n\n constructor() {\n const savedTheme = this.getSavedTheme();\n if (savedTheme) {\n this.appTheme.set(savedTheme);\n }\n\n effect(() => {\n const appTheme = this.appTheme();\n document.body.style.setProperty('color-scheme', appTheme);\n document.body.setAttribute('data-ag-theme-mode', appTheme);\n });\n }\n\n getThemes() {\n return this.themes;\n }\n\n setTheme(theme: 'light' | 'dark') {\n this.appTheme.set(theme);\n this.saveTheme(theme);\n }\n\n private getSavedTheme(): 'light' | 'dark' | null {\n if (typeof window !== 'undefined' && window.localStorage) {\n const saved = localStorage.getItem(this.THEME_STORAGE_KEY);\n return saved === 'light' || saved === 'dark' ? saved : null;\n }\n return null;\n }\n\n private saveTheme(theme: 'light' | 'dark'): void {\n if (typeof window !== 'undefined' && window.localStorage) {\n localStorage.setItem(this.THEME_STORAGE_KEY, theme);\n }\n }\n}\n","import { effect, Injectable, signal } from '@angular/core';\n\nexport interface ColorTheme {\n id: string;\n primary: string;\n secondary?: string;\n displayName: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ColorPalette {\n private readonly THEME_STORAGE_KEY = 'selected-theme';\n\n private themes: ColorTheme[] = [];\n currentTheme = signal<ColorTheme | null>(null);\n\n setThemes(customThemes: ColorTheme[]): void {\n this.themes = customThemes;\n\n const savedThemeId = this.getSavedTheme();\n const themeToSet = savedThemeId\n ? this.themes.find((t) => t.id === savedThemeId)\n : this.themes[0];\n\n if (themeToSet) {\n this.currentTheme.set(themeToSet);\n } else if (this.themes.length > 0) {\n this.currentTheme.set(this.themes[0]);\n }\n }\n\n getThemes(): ColorTheme[] {\n return this.themes;\n }\n\n setTheme(themeId: string): void {\n const theme = this.themes.find((t) => t.id === themeId);\n if (theme) {\n this.currentTheme.set(theme);\n this.saveTheme(themeId);\n }\n }\n\n private getSavedTheme(): string | null {\n if (typeof window !== 'undefined' && window.localStorage) {\n return localStorage.getItem(this.THEME_STORAGE_KEY);\n }\n return null;\n }\n\n private saveTheme(themeId: string): void {\n if (typeof window !== 'undefined' && window.localStorage) {\n localStorage.setItem(this.THEME_STORAGE_KEY, themeId);\n }\n }\n\n updateThemeClass = effect(() => {\n const theme = this.currentTheme();\n if (theme) {\n document.body.classList.remove(\n ...this.themes.map((t) => `${t.id}-theme`)\n );\n document.body.classList.add(`${theme.id}-theme`);\n }\n });\n}\n","import { Component, inject, model, output } from '@angular/core';\nimport { CommonModule, TitleCasePipe } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { Theme } from '../../themes/services/theme';\nimport { ColorPalette } from '../../themes/services/color-palette';\nimport { I18nService } from '@nettyapps/ntyi18n';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'ntybase-toolbar',\n imports: [\n MatIconModule,\n MatMenuModule,\n MatToolbarModule,\n CommonModule,\n TitleCasePipe,\n TranslateModule,\n ],\n templateUrl: './toolbar.html',\n styleUrl: './toolbar.scss',\n})\nexport class Toolbar {\n protected themeService = inject(Theme);\n protected colorPaletteService = inject(ColorPalette);\n private i18nService = inject(I18nService);\n private router = inject(Router);\n toggleSidenav = output<void>();\n\n onToggleSidenav() {\n this.toggleSidenav.emit();\n }\n\n // Language\n icon = model(false);\n\n get currentLanguage(): string {\n return this.i18nService.language;\n }\n\n get languages(): string[] {\n return this.i18nService.supportedLanguages;\n }\n\n setLanguage(language: string) {\n this.i18nService.language = language;\n\n setTimeout(() => {\n window.location.reload();\n }, 100);\n }\n\n getCurrentLanguageIcon(): string {\n switch (this.i18nService.language) {\n case 'Türkçe':\n return 'fi fi-tr';\n case 'English':\n return 'fi fi-us';\n default:\n return 'fi fi-tr';\n }\n }\n\n getLanguageIcon(language: string): string {\n switch (language) {\n case 'Türkçe':\n return 'fi fi-tr';\n case 'English':\n return 'fi fi-us';\n default:\n return 'fi fi-tr';\n }\n }\n}\n","<mat-toolbar class=\"sidenav-header\">\n <div class=\"left-section\">\n <button mat-icon-button (click)=\"onToggleSidenav()\" class=\"menu-button\">\n <mat-icon>menu</mat-icon>\n </button>\n <span>{{'app_name' | translate }}</span>\n\n <!-- Language Selection -->\n <div class=\"language-toggle\">\n @if (icon()) {\n <button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <span class=\"{{ getCurrentLanguageIcon() }}\"></span>\n </button>\n } @else {\n <button\n mat-raised-button\n color=\"primary\"\n [matMenuTriggerFor]=\"languageMenu\"\n >\n {{ currentLanguage }}\n </button>\n }\n </div>\n\n <!-- Language Menu -->\n <mat-menu #languageMenu=\"matMenu\">\n @for (language of languages; track language) {\n <button mat-menu-item (click)=\"setLanguage(language)\">\n <span class=\"{{ getLanguageIcon(language) }}\"></span>\n {{ language }}\n </button>\n }\n </mat-menu>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"flex-stretch\"></div>\n <button\n mat-icon-button\n [mat-menu-trigger-for]=\"themeMenu\"\n class=\"theme-button\"\n >\n <mat-icon>{{ themeService.selectedTheme()?.icon }}</mat-icon>\n </button>\n <mat-menu #themeMenu=\"matMenu\">\n @for (theme of themeService.getThemes(); track theme.name) {\n <button\n [class.selected-theme]=\"themeService.selectedTheme()?.name === theme.name\"\n mat-menu-item\n (click)=\"themeService.setTheme(theme.name)\"\n >\n <mat-icon>{{ theme.icon }}</mat-icon>\n <span>{{ theme.name | titlecase }}</span>\n </button>\n }\n </mat-menu>\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"customThemeMenu\"\n class=\"custom-theme-button\"\n >\n <mat-icon>format_color_fill</mat-icon>\n </button>\n <mat-menu #customThemeMenu=\"matMenu\">\n @for (customTheme of colorPaletteService.getThemes(); track customTheme.id)\n {\n <button\n mat-menu-item\n (click)=\"colorPaletteService.setTheme(customTheme.id)\"\n >\n <div class=\"theme-menu-item\">\n <div\n class=\"color-preview\"\n [style.background-color]=\"customTheme.primary\"\n ></div>\n <span>{{ customTheme.displayName }}</span>\n </div>\n </button>\n }\n </mat-menu>\n</mat-toolbar>\n","/*\n * Public API Surface of ntyux\n */\n\nexport * from './lib/ntyux';\nexport * from './lib/ntyux-module';\nexport * from './lib/auto-complete/auto-complete';\nexport * from './lib/components/http-error403/http-error403';\nexport * from './lib/components/http-error404/http-error404';\nexport * from './lib/components/left-sidenav/left-sidenav';\nexport * from './lib/components/toolbar/toolbar';\nexport * from './lib/themes/services/color-palette';\nexport * from './lib/themes/services/theme';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i5","i6","i1","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nettyapps-ntyux.mjs","sources":["../../../projects/ntyux/src/lib/ntyux.ts","../../../projects/ntyux/src/lib/ntyux-module.ts","../../../projects/ntyux/src/lib/auto-complete/models/guid.ts","../../../projects/ntyux/src/lib/auto-complete/services/auto-complete-proxy.ts","../../../projects/ntyux/src/lib/auto-complete/models/auto-complete-filter.ts","../../../projects/ntyux/src/lib/auto-complete/auto-complete-lookup/auto-complete-lookup.ts","../../../projects/ntyux/src/lib/auto-complete/auto-complete-popup-menu/auto-complete-popup-menu.ts","../../../projects/ntyux/src/lib/auto-complete/auto-complete-popup-menu/auto-complete-popup-menu.html","../../../projects/ntyux/src/lib/auto-complete/auto-complete.ts","../../../projects/ntyux/src/lib/auto-complete/auto-complete.html","../../../projects/ntyux/src/lib/auto-complete/models/filter.ts","../../../projects/ntyux/src/lib/auto-complete/models/auto-complete-filter-fields.ts","../../../projects/ntyux/src/lib/value-unit-input/value-unit-input.ts","../../../projects/ntyux/src/lib/value-unit-input/value-unit-input.html","../../../projects/ntyux/src/lib/components/http-error403/http-error403.ts","../../../projects/ntyux/src/lib/components/http-error403/http-error403.html","../../../projects/ntyux/src/lib/components/http-error404/http-error404.ts","../../../projects/ntyux/src/lib/components/http-error404/http-error404.html","../../../projects/ntyux/src/lib/components/left-sidenav/left-sidenav.ts","../../../projects/ntyux/src/lib/components/left-sidenav/left-sidenav.html","../../../projects/ntyux/src/lib/themes/services/theme.ts","../../../projects/ntyux/src/lib/themes/services/color-palette.ts","../../../projects/ntyux/src/lib/components/toolbar/toolbar.ts","../../../projects/ntyux/src/lib/components/toolbar/toolbar.html","../../../projects/ntyux/src/public-api.ts","../../../projects/ntyux/src/nettyapps-ntyux.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ntyux',\n standalone: false,\n template: `\n <p>\n ntyux works!\n </p>\n `,\n styles: ``,\n})\nexport class Ntyux {\n\n}\n","import { NgModule } from '@angular/core';\nimport { Ntyux } from './ntyux';\n\n\n\n@NgModule({\n declarations: [\n Ntyux\n ],\n imports: [\n ],\n exports: [\n Ntyux\n ]\n})\nexport class NtyuxModule { }\n","export class Guid {\n private value: string = this.empty;\n constructor(value?: string) {\n if (value) {\n if (Guid.isValid(value)) {\n this.value = value;\n }\n }\n }\n\n public static newGuid(): Guid {\n return new Guid(\n 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n })\n );\n }\n /**\n * return all zeros '00000000-0000-0000-0000-000000000000'\n */\n public static get empty(): string {\n return '00000000-0000-0000-0000-000000000000';\n }\n public get empty(): string {\n return Guid.empty;\n }\n public static isValid(str: string): boolean {\n const validRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n return validRegex.test(str);\n }\n public toString() {\n return this.value;\n }\n\n public toJSON(): string {\n return this.value;\n }\n /**\n * True is guid is empty or not valid\n * @param str\n * @returns\n */\n public static isNullOrEmpty(str: string): boolean {\n if (str == null || str == undefined) {\n return true;\n }\n if (!Guid.isValid(str)) {\n return true;\n }\n if (str == Guid.empty) {\n return true;\n }\n return false;\n }\n /**\n * True if the guid is valid and not all zeros (empty)\n * @param str\n * @returns\n */\n public static isValidAndNotEmpty(str: string): boolean {\n return !Guid.isNullOrEmpty(str);\n }\n /**\n * Return empty guid if the given guid is not valid\n * @param guid\n * @returns\n */\n public static emptyWhenNull(guid: any): any {\n if (Guid.isValidAndNotEmpty(guid)) {\n return guid;\n }\n return Guid.empty;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { EnvironmentProxy } from '@nettyapps/ntycontract';\nimport { NtyAutoCompleteFilter } from '../models/auto-complete-filter';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AutoCompleteProxy {\n private http = inject(HttpClient);\n private environmentProxy = inject(EnvironmentProxy);\n\n getAutocompleteDataFilter(\n searchTable: string,\n searchData: NtyAutoCompleteFilter\n ) {\n let functionUrl = this.environmentProxy.getServerLink(\n searchTable + '/AutoCompleteFilter'\n );\n return this.http.post(functionUrl, searchData);\n }\n}\n","import { NtyAutoCompleteFilterFields } from './auto-complete-filter-fields';\n\nexport class NtyAutoCompleteFilter {\n coid: any = null;\n searchString: string | null = null;\n fields: NtyAutoCompleteFilterFields[] | null = null;\n}\n","import {\n Component,\n input,\n output,\n ViewChild,\n ViewContainerRef,\n inject,\n SimpleChanges,\n OnChanges,\n} from '@angular/core';\nimport { NettyAgGridBase } from '@nettyapps/ntybase';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n/**\n * This component can load and display any container which is provided dynamically during run time\n * The only requirement is the component that will be displayed should extend AgGridBaseComponent\n */\n@Component({\n selector: 'ntybase-auto-complete-lookup',\n imports: [],\n template: ` <ng-template #container></ng-template> `,\n})\nexport class AutoCompleteLookup implements OnChanges {\n data = inject(MAT_DIALOG_DATA);\n\n @ViewChild('container', { read: ViewContainerRef, static: true })\n container!: ViewContainerRef;\n\n component = input<any>();\n filterField = input<string | null>(null);\n filterFieldValue = input<any>(null);\n filterFieldNumeric = input<boolean>(false);\n filterFieldEquality = input<string>('=');\n\n // Output\n selectedElement = output<any>();\n\n ngOnInit() {\n this.initializeComponent();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isComponentConfigChanged(changes)) {\n this.initializeComponent();\n }\n }\n\n private isComponentConfigChanged(changes: SimpleChanges): boolean {\n return (\n !!changes['component'] ||\n !!changes['filterField'] ||\n !!changes['filterFieldValue'] ||\n !!changes['filterFieldNumeric'] ||\n !!changes['filterFieldEquality']\n );\n }\n\n private initializeComponent() {\n const config = this.data || this.getInputConfig();\n this.loadComponent(config);\n }\n\n private getInputConfig() {\n return {\n component: this.component(),\n filterField: this.filterField(),\n filterFieldValue: this.filterFieldValue(),\n filterFieldNumeric: this.filterFieldNumeric(),\n filterFieldEquality: this.filterFieldEquality(),\n };\n }\n\n loadComponent(config: any) {\n if (!config?.component) return;\n\n this.container.clear();\n const componentRef = this.container.createComponent<NettyAgGridBase<any>>(\n config.component\n );\n\n componentRef.setInput('popupValid', true);\n\n if (config.filterField !== undefined) {\n componentRef.setInput('filterField', config.filterField);\n }\n\n if (config.filterFieldValue !== undefined) {\n componentRef.setInput('filterFieldValue', config.filterFieldValue);\n }\n\n if (config.filterFieldEquality !== undefined) {\n componentRef.setInput('filterFieldEquality', config.filterFieldEquality);\n }\n\n if (config.filterFieldNumeric !== undefined) {\n componentRef.setInput('filterFieldNumeric', config.filterFieldNumeric);\n }\n\n const sub = componentRef.instance.selectedElement.subscribe((data: any) => {\n this.selectedElement.emit(data);\n });\n\n componentRef.onDestroy(() => sub.unsubscribe());\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n OnInit,\n Input,\n ViewEncapsulation,\n inject,\n output,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { AlertService } from '@nettyapps/ntybase';\n\n@Component({\n selector: 'ntybase-auto-complete-popup-menu',\n imports: [CommonModule, ReactiveFormsModule, MatIconModule, TranslateModule],\n templateUrl: './auto-complete-popup-menu.html',\n styleUrl: './auto-complete-popup-menu.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AutoCompletePopupMenu implements OnInit {\n @Input() field: string = '';\n @Input() recordGuid: any;\n @Input() fieldDisabled: boolean = false;\n @Input() componentPath: string = '';\n @Input() inputValue: string = '';\n Result = output<string>();\n\n private clipboard = inject(Clipboard);\n private alertService = inject(AlertService);\n\n ngOnInit() {}\n\n gotoNew() {\n if (!this.componentPath) return;\n\n // Split the component path into segments\n const pathSegments = this.componentPath.split('/').filter((p) => p);\n this.gotoNewTab(pathSegments, '', 'new');\n this.Result.emit('New');\n }\n\n gotoMain() {\n if (!this.componentPath || !this.recordGuid) return;\n\n // Split the component path into segments\n const pathSegments = this.componentPath.split('/').filter((p) => p);\n this.gotoNewTab(pathSegments, this.recordGuid, 'edit');\n this.Result.emit('Main');\n }\n\n gotoLookup() {\n if (!this.fieldDisabled) {\n this.Result.emit('Lookup');\n }\n }\n\n gotoNewTab(target: string[], params: any, type: string) {\n if (!target || target.length === 0) return;\n\n // Construct the URL directly in the format you want\n let url = `/${target.join('/')}`;\n\n // Add query parameters\n const queryParams = [];\n if (params) {\n queryParams.push(\n `parameters=${encodeURIComponent(JSON.stringify(params))}`\n );\n }\n if (type) {\n queryParams.push(`type=${type}`);\n }\n queryParams.push('isNewTab=true');\n\n if (queryParams.length > 0) {\n url += `?${queryParams.join('&')}`;\n }\n\n // Open in new tab\n window.open(url, '_blank');\n }\n\n copyToClipboard() {\n if (this.inputValue) {\n this.clipboard.copy(this.inputValue);\n this.alertService.showAlert('@copiedToClipboard');\n this.Result.emit('Copy');\n }\n }\n}\n","<div class=\"dialogbase\">\n <div class=\"menu\">\n <ul class=\"list-group\">\n <li\n class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center menu-item\"\n >\n <span (click)=\"copyToClipboard()\" class=\"align-line\"\n ><mat-icon>content_copy</mat-icon>{{'@copy'| translate}}</span\n >\n </li>\n <li\n class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center menu-item\"\n >\n <span (click)=\"gotoMain()\" class=\"align-line\"\n ><mat-icon>edit</mat-icon>{{'@popupGotoRecordDefinition'|\n translate}}</span\n >\n </li>\n <li\n class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center menu-item\"\n >\n <span (click)=\"gotoNew()\" class=\"align-line\"\n ><mat-icon>add</mat-icon>{{'@popupNewRecord'| translate}}</span\n >\n </li>\n <li\n class=\"list-group-item list-group-item-action d-flex justify-content-between align-items-center\"\n [ngClass]=\"{'menu-item':!fieldDisabled , 'menu-item-disabled':fieldDisabled }\"\n >\n <span (click)=\"gotoLookup()\" class=\"align-line\"\n ><mat-icon>search</mat-icon>{{'@popupSelectFromList'|translate}}</span\n >\n </li>\n </ul>\n </div>\n</div>\n","import {\n Component,\n computed,\n effect,\n ElementRef,\n input,\n signal,\n ViewChild,\n ChangeDetectionStrategy,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\nimport {\n MatAutocompleteModule,\n MatAutocompleteSelectedEvent,\n MatAutocompleteTrigger,\n} from '@angular/material/autocomplete';\nimport {\n FormsModule,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { UiBase } from '@nettyapps/ntyui';\nimport { Guid } from '../auto-complete/models/guid';\nimport { AutoCompleteProxy } from './services/auto-complete-proxy';\nimport {\n MatDialog,\n MatDialogConfig,\n MatDialogModule,\n} from '@angular/material/dialog';\nimport { NtyAutoCompleteFilter } from './models/auto-complete-filter';\nimport { NtyAutoCompleteFilterFields } from './models/auto-complete-filter-fields';\nimport { AutoCompleteLookup } from './auto-complete-lookup/auto-complete-lookup';\nimport { AutoCompletePopupMenu } from './auto-complete-popup-menu/auto-complete-popup-menu';\nimport { AlertService } from '@nettyapps/ntybase';\n\nexport class SelectionItem {\n name: string | null = null;\n value: any = null;\n\n constructor(_value: any = null, _name: string | null = null) {\n this.name = _name;\n this.value = _value;\n }\n}\n\n@Component({\n selector: 'ntybase-auto-complete',\n imports: [\n MatFormFieldModule,\n MatAutocompleteModule,\n FormsModule,\n MatInputModule,\n MatIconModule,\n ReactiveFormsModule,\n MatDialogModule,\n ],\n templateUrl: './auto-complete.html',\n styleUrl: './auto-complete.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutoComplete),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AutoComplete extends UiBase {\n // Input parameters\n tableName = input<string>('');\n searchAfter = input<number>(3);\n fieldCode = input<string | null>(null);\n fieldName = input<string | null>(null);\n lookupComponent = input<any>(null);\n lookupComponentPath = input<any>(null);\n filterField = input<string | null>(null);\n filterFieldValue = input<any>(null);\n filterFieldNumeric = input<boolean>(false);\n filterFieldEquality = input<string>('=');\n debounceTime = input<number>(500);\n\n // Inject dependencies\n private alertService = inject(AlertService);\n private autoCompleteService = inject(AutoCompleteProxy);\n private dialog = inject(MatDialog);\n\n @ViewChild(MatAutocompleteTrigger)\n autoCompleteTrigger!: MatAutocompleteTrigger;\n @ViewChild('autoCompleteInput') inputField!: ElementRef;\n\n control = new FormControl();\n matcher = new ErrorStateMatcher();\n\n // Signal parameters\n searchText = signal('');\n selectedOption = signal<SelectionItem | null>(null);\n loadedOptions = signal<SelectionItem[]>([]);\n\n private searchSignal = signal<string>('');\n private debounceTimeout: any;\n\n constructor() {\n super();\n // Sync form control with selected option\n effect(() => {\n const option = this.selectedOption();\n if (option) {\n this.searchText.set(option.name || '');\n } else if (this.control.value && !this.selectedOption()) {\n const found = this.loadedOptions().find(\n (opt) => opt.value === this.control.value\n );\n if (found) {\n this.selectedOption.set(found);\n this.searchText.set(found.name || '');\n }\n }\n });\n\n // Then watch the debounced signal:\n effect((onCleanup) => {\n const searchValue = this.searchSignal();\n\n clearTimeout(this.debounceTimeout);\n\n this.debounceTimeout = setTimeout(() => {\n if (this.shouldTriggerSearch(searchValue)) {\n this.loadAutoCompleteData(searchValue);\n } else {\n this.loadedOptions.set([]);\n }\n }, this.debounceTime());\n\n onCleanup(() => {\n clearTimeout(this.debounceTimeout);\n });\n });\n\n effect(() => {\n this.onChange(this.value());\n });\n\n effect(() => {\n this.updateValidators();\n });\n }\n\n private shouldTriggerSearch(searchValue: string): boolean {\n return searchValue.length >= this.searchAfter();\n }\n\n filteredData = computed(() => {\n return this.loadedOptions();\n });\n\n onInputChanged(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchText.set(value);\n this.onTouched();\n\n // Clear selection if text doesn't match\n if (this.selectedOption() && this.selectedOption()?.name !== value) {\n this.selectedOption.set(null);\n }\n\n if (value.length === 0) {\n this.clearInput();\n return;\n }\n this.searchSignal.set(value);\n this.autoCompleteTrigger.closePanel();\n }\n\n private loadAutoCompleteData(searchValue: string) {\n this.loadedOptions.set([]);\n\n const filter = new NtyAutoCompleteFilter();\n\n filter.searchString =\n searchValue.trim() === '' && searchValue.length >= this.searchAfter()\n ? ''\n : searchValue;\n\n filter.fields = [];\n\n if (this.filterField() && this.filterField()!.trim().length > 0) {\n const fields: NtyAutoCompleteFilterFields = {\n equalitySign: this.filterFieldEquality(),\n fieldName: this.filterField()!,\n fieldValue: this.filterFieldValue(),\n numeric: this.filterFieldNumeric(),\n };\n filter.fields?.push(fields);\n }\n\n this.autoCompleteService\n .getAutocompleteDataFilter(this.tableName(), filter)\n .subscribe({\n next: (data: any) => {\n if (data && Array.isArray(data)) {\n const options = data.map((item: any) => ({\n name: item.text,\n value: item.guidValue,\n }));\n this.loadedOptions.set(options);\n\n if (options.length === 1) {\n this.selectedOption.set(options[0]);\n this.control.setValue(options[0].value);\n this.searchText.set(options[0].name || '');\n } else if (options.length > 1) {\n this.autoCompleteTrigger.openPanel();\n }\n }\n },\n error: (err: any) => {\n this.alertService.showAlert(err.message);\n },\n });\n }\n\n override clearInput() {\n this.selectedOption.set(new SelectionItem(Guid.empty, ''));\n this.control.reset();\n this.searchText.set('');\n this.loadedOptions.set([]);\n this.inputField.nativeElement.value = '';\n }\n\n onPaste(event: ClipboardEvent) {\n const clipboardData = event.clipboardData;\n if (!clipboardData) return;\n\n const pastedText = clipboardData.getData('text');\n this.searchText.set(pastedText);\n this.searchSignal.set(pastedText);\n }\n\n displayFn(item: any): string {\n return this.searchText();\n }\n\n optionSelected(event: MatAutocompleteSelectedEvent) {\n const selectedValue = event.option.value;\n const selected = this.loadedOptions().find(\n (opt) => opt.value === selectedValue\n );\n\n if (selected) {\n this.selectedOption.set(selected);\n this.control.setValue(selected.value);\n this.searchText.set(selected.name || '');\n }\n }\n\n override writeValue(value: any): void {\n this.value.set(value);\n if (!value) return;\n\n if (this.fieldCode()) {\n this.selectedOption.set({ value, name: this.fieldCode() });\n }\n }\n\n onLookup() {\n if (!this.lookupComponent()) return;\n\n const dialogRef = this.dialog.open(AutoCompleteLookup, {\n height: 'auto',\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'auto',\n data: {\n component: this.lookupComponent(),\n ...(this.filterField() && {\n filterField: this.filterField(),\n filterFieldValue: this.filterFieldValue(),\n filterFieldEquality: this.filterFieldEquality(),\n filterFieldNumeric: this.filterFieldNumeric(),\n }),\n },\n });\n\n dialogRef.componentInstance.selectedElement.subscribe((data: any) => {\n if (data) {\n const selection = new SelectionItem(data.value, data.text);\n this.selectedOption.set(selection);\n this.control.setValue(selection.value);\n this.searchText.set(selection.name || '');\n }\n dialogRef.close();\n });\n }\n\n /** Popup screen to goto main table\n *\n * @param event\n * @returns\n */\n rightClick(event: any) {\n event.stopPropagation();\n const dialogConfig = new MatDialogConfig();\n dialogConfig.position = {\n top: event.clientY + 'px',\n left: event.clientX + 'px',\n };\n dialogConfig.height = 'auto';\n dialogConfig.width = 'auto';\n dialogConfig.panelClass = 'foo';\n const dialogRef = this.dialog.open(AutoCompletePopupMenu, dialogConfig);\n dialogRef.componentInstance.field = this.tableName();\n dialogRef.componentInstance.recordGuid = this.value();\n dialogRef.componentInstance.fieldDisabled = this.disabled();\n dialogRef.componentInstance.componentPath = this.lookupComponentPath();\n dialogRef.componentInstance.inputValue = this.searchText();\n dialogRef.componentInstance.Result.subscribe((result: string) => {\n switch (result) {\n case 'Lookup':\n dialogRef.close();\n this.onLookup();\n break;\n default:\n dialogRef.close();\n break;\n }\n });\n return false;\n }\n\n // Validation\n override getErrorMessage() {\n if (this.control.hasError('required') && this.errorMessages()['required']) {\n return this.errorMessages()['required'];\n }\n return '';\n }\n\n override updateValidators() {\n const validators = [];\n\n if (this.required()) {\n validators.push(Validators.required);\n }\n\n this.control.setValidators(validators);\n this.control.updateValueAndValidity();\n }\n}\n","<mat-form-field\n class=\"ui-full-width\"\n [appearance]=\"appearance()\"\n [class.required-field]=\"required()\"\n [class.required-with-value]=\"required() && value()\"\n>\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n\n <input\n type=\"text\"\n #autoCompleteInput\n matInput\n [(ngModel)]=\"value\"\n [matAutocomplete]=\"auto\"\n (input)=\"onInputChanged($event)\"\n (paste)=\"onPaste($event)\"\n [errorStateMatcher]=\"matcher\"\n [formControl]=\"control\"\n (contextmenu)=\"rightClick($event)\"\n />\n\n @if (value() && !disabled()) {\n <button\n mat-icon-button\n matSuffix\n (click)=\"clearInput()\"\n aria-label=\"Clear\"\n class=\"clear-btn number-clear-btn\"\n >\n <mat-icon>cancel</mat-icon>\n </button>\n }\n\n <button\n mat-icon-button\n matSuffix\n aria-label=\"Search\"\n (click)=\"onLookup()\"\n class=\"search-btn\"\n >\n <mat-icon>search</mat-icon>\n </button>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [displayWith]=\"displayFn.bind(this)\"\n (optionSelected)=\"optionSelected($event)\"\n >\n @for (option of filteredData(); track option.value) {\n <mat-option [value]=\"option.value\"> {{ option.name }} </mat-option>\n }\n </mat-autocomplete>\n\n <mat-error>{{ getErrorMessage() }}</mat-error>\n</mat-form-field>\n","export class NettyFilter {\n value: any;\n text: any;\n}\n","export class NtyAutoCompleteFilterFields {\n fieldName: string | null = null;\n fieldValue: string | null = null;\n numeric: boolean = false;\n equalitySign: string = '=';\n}\n","import {\n Component,\n forwardRef,\n effect,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgModel, FormsModule } from '@angular/forms';\nimport { NettyUINumberInput, UiBase } from '@nettyapps/ntyui';\nimport { AutoComplete } from '../auto-complete/auto-complete';\n\n@Component({\n selector: 'lib-value-unit-input',\n imports: [NettyUINumberInput, AutoComplete, FormsModule],\n templateUrl: './value-unit-input.html',\n styleUrl: './value-unit-input.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ValueUnitInput),\n multi: true,\n },\n ],\n})\nexport class ValueUnitInput extends UiBase {\n name = input<string>('');\n\n // Number input\n min = input<number | null>(null);\n max = input<number | null>(null);\n step = input<number>(1);\n precision = input<number>(2);\n\n // AutoComplete\n tableName = input<string>('');\n searchAfter = input<number>(3);\n fieldCode = input<string | null>(null);\n fieldName = input<string | null>(null);\n lookupComponent = input<any>(null);\n lookupComponentPath = input<any>(null);\n filterField = input<string | null>(null);\n filterFieldValue = input<any>(null);\n filterFieldNumeric = input<boolean>(false);\n filterFieldEquality = input<string>('=');\n debounceTime = input<number>(500);\n\n override value = model<any>(null);\n\n quantityModel = viewChild<NgModel>('quantityModel');\n unitModel = viewChild<NgModel>('unitModel');\n\n private internalValue: any = {\n quantity: null,\n unit: null,\n };\n\n constructor() {\n super();\n\n effect(() => {\n const currentValue = this.value();\n if (currentValue !== null && currentValue !== this.internalValue) {\n this.updateInternalValue(currentValue);\n }\n });\n }\n\n private updateInternalValue(value: any) {\n if (value && typeof value === 'object') {\n this.internalValue = {\n quantity: value.quantity || null,\n unit: value.unit || null,\n };\n } else {\n this.internalValue = { quantity: null, unit: null };\n }\n }\n\n // Quantity changed\n onQuantityChange(quantity: number | null) {\n this.internalValue.quantity = quantity;\n this.updateValue();\n this.onTouched();\n }\n\n // Unit changed\n onUnitChange(unit: any) {\n this.internalValue.unit = unit;\n this.updateValue();\n this.onTouched();\n }\n\n private updateValue() {\n const newValue = {\n quantity: this.internalValue.quantity,\n unit: this.internalValue.unit,\n };\n\n this.value.set(newValue);\n\n this.onChange(newValue);\n }\n\n override writeValue(value: any): void {\n if (value) {\n this.updateInternalValue(value);\n this.value.set(value);\n } else {\n this.internalValue = { quantity: null, unit: null };\n this.value.set(null);\n }\n }\n\n clearAll() {\n this.internalValue = { quantity: null, unit: null };\n this.value.set(null);\n this.onChange(null);\n this.onTouched();\n }\n}\n","<div class=\"value-unit-container\">\n <!-- Number Input -->\n <ntyui-number-input\n #quantityModel=\"ngModel\"\n [label]=\"label()\"\n [appearance]=\"appearance()\"\n [name]=\"name() + '_quantity'\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onQuantityChange($event)\"\n class=\"quantity-input\"\n >\n </ntyui-number-input>\n\n <!-- AutoComplete for Unit -->\n <ntybase-auto-complete\n #unitModel=\"ngModel\"\n [label]=\"'Birim'\"\n [appearance]=\"appearance()\"\n [name]=\"name() + '_unit'\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n [tableName]=\"tableName()\"\n [searchAfter]=\"searchAfter()\"\n [fieldCode]=\"fieldCode()\"\n [fieldName]=\"fieldName()\"\n [lookupComponent]=\"lookupComponent()\"\n [lookupComponentPath]=\"lookupComponentPath()\"\n [filterField]=\"filterField()\"\n [filterFieldValue]=\"filterFieldValue()\"\n [filterFieldNumeric]=\"filterFieldNumeric()\"\n [filterFieldEquality]=\"filterFieldEquality()\"\n [debounceTime]=\"debounceTime()\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onUnitChange($event)\"\n class=\"unit-input\"\n >\n </ntybase-auto-complete>\n</div>\n","import { Location } from '@angular/common';\nimport { Component, inject, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { CommonService } from '@nettyapps/ntybase';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ntybase-http-error403',\n imports: [],\n templateUrl: './http-error403.html',\n styleUrl: './http-error403.scss',\n})\nexport class HttpError403 implements OnDestroy {\n attemptedUrl: string = '';\n\n private routeSubscription: Subscription;\n\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private location = inject(Location);\n private commonService = inject(CommonService);\n\n constructor() {\n // Router'dan state'i al\n const navigation = this.router.currentNavigation();\n this.attemptedUrl = navigation?.extras.state?.['attemptedUrl'] || '';\n\n // Eğer state'ten gelmediyse, mevcut URL'i temizleyerek kullan\n if (!this.attemptedUrl) {\n this.attemptedUrl = this.getCleanUrlPath();\n }\n\n this.routeSubscription = this.router.events.subscribe(() => {\n this.updateAttemptedUrl();\n });\n }\n\n ngOnInit() {\n // 1. URL'deki secondary outlet'leri temizle (örneğin: \"(rightSidenav:...)\")\n this.cleanUrlFromFragments();\n\n // 2. Hata mesajı için attemptedUrl'i güncelle\n this.updateAttemptedUrl();\n\n // 3. Right sidenav'ı kapat\n this.commonService.toggleRightSidenav(false);\n }\n\n ngOnDestroy() {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n }\n\n /**\n * URL'deki fragment ve outlet'leri temizler.\n * Örnek: \"/sys/NettyUserGroup(rightSidenav:...)\" → \"/sys/NettyUserGroup\"\n */\n private cleanUrlFromFragments() {\n const currentUrl = this.router.url;\n const cleanUrl = currentUrl.split('(')[0]; // \"(\" sonrasını sil\n\n if (currentUrl !== cleanUrl) {\n // URL'yi temizlenmiş haliyle değiştir (tarayıcı geçmişine eklemeden)\n this.router.navigateByUrl(cleanUrl, {\n replaceUrl: true,\n skipLocationChange: false,\n });\n }\n }\n\n /**\n * attemptedUrl'i güncel router URL'ine göre günceller\n */\n private updateAttemptedUrl() {\n this.attemptedUrl = this.getCleanUrlPath();\n }\n\n /**\n * Temizlenmiş URL yolunu döndürür (queryParams ve fragment olmadan).\n */\n private getCleanUrlPath(): string {\n return this.router.url.split('?')[0].split('(')[0];\n }\n\n goHome() {\n this.router.navigate(['/'], { replaceUrl: true });\n this.commonService.toggleRightSidenav(false);\n }\n\n goBack() {\n this.location.back();\n }\n}\n","<div class=\"error-container\">\n <div class=\"error-page\">\n <h1>403 - Erişim Engellendi</h1>\n\n <p>\n <strong>Üzgünüz, {{ attemptedUrl }}</strong> sayfasına erişim izniniz\n bulunmamaktadır.\n </p>\n\n <p class=\"error-detail\">\n Bu sayfayı görüntülemek için gerekli yetkilere sahip değilsiniz. Eğer bu\n bir hata olduğunu düşünüyorsanız, lütfen sistem yöneticinizle iletişime\n geçin.\n </p>\n <button mat-raised-button (click)=\"goHome()\" color=\"primary\" routerLink=\"/\">\n Ana Sayfaya Dön\n </button>\n <button mat-raised-button (click)=\"goBack()\" color=\"primary\" routerLink=\"/\">\n Geri Dön\n </button>\n </div>\n</div>\n","import { Location } from '@angular/common';\nimport { Component, inject, OnDestroy } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { CommonService } from '@nettyapps/ntybase';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ntybase-http-error404',\n imports: [],\n templateUrl: './http-error404.html',\n styleUrl: './http-error404.scss',\n})\nexport class HttpError404 {\n attemptedUrl: string = '';\n private routeSubscription: Subscription;\n\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private location = inject(Location);\n private commonService = inject(CommonService);\n\n constructor() {\n this.routeSubscription = this.router.events.subscribe(() => {\n this.updateAttemptedUrl();\n });\n }\n\n ngOnInit() {\n // 1. URL'deki secondary outlet'leri temizle (örneğin: \"(rightSidenav:...)\")\n this.cleanUrlFromFragments();\n\n // 2. Hata mesajı için attemptedUrl'i güncelle\n this.updateAttemptedUrl();\n\n // 3. Right sidenav'ı kapat\n this.commonService.toggleRightSidenav(false);\n }\n\n ngOnDestroy() {\n if (this.routeSubscription) {\n this.routeSubscription.unsubscribe();\n }\n }\n\n /**\n * URL'deki fragment ve outlet'leri temizler.\n * Örnek: \"/sys/NettyUserGroup(rightSidenav:...)\" → \"/sys/NettyUserGroup\"\n */\n private cleanUrlFromFragments() {\n const currentUrl = this.router.url;\n const cleanUrl = currentUrl.split('(')[0]; // \"(\" sonrasını sil\n\n if (currentUrl !== cleanUrl) {\n // URL'yi temizlenmiş haliyle değiştir (tarayıcı geçmişine eklemeden)\n this.router.navigateByUrl(cleanUrl, {\n replaceUrl: true,\n skipLocationChange: false,\n });\n }\n }\n\n /**\n * Temizlenmiş URL yolunu döndürür (queryParams ve fragment olmadan).\n */\n private getCleanUrlPath(): string {\n return this.router.url.split('?')[0].split('(')[0];\n }\n\n /**\n * attemptedUrl'i güncel router URL'ine göre günceller\n */\n private updateAttemptedUrl() {\n this.attemptedUrl = this.getCleanUrlPath();\n }\n\n goHome() {\n this.router.navigate(['/'], { replaceUrl: true });\n this.commonService.toggleRightSidenav(false);\n }\n\n goBack() {\n this.location.back();\n }\n}\n","<div class=\"error-container\">\n <div class=\"error-page\">\n <h1>404</h1>\n <h3>Sayfa Bulunamadı</h3>\n <p><strong>{{ attemptedUrl }}</strong> adresi bulunamadı.</p>\n <p>Bu içerik taşınmış veya silinmiş olabilir.</p>\n <button mat-raised-button (click)=\"goHome()\" color=\"primary\" routerLink=\"/\">\n Ana Sayfaya Dön\n </button>\n <button mat-raised-button (click)=\"goBack()\" color=\"primary\" routerLink=\"/\">\n Geri Dön\n </button>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { Router, RouterLink, RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';\nimport { NettyUISearchInput } from '@nettyapps/ntyui';\nimport { EnvironmentProxy } from '@nettyapps/ntycontract';\nimport {\n AuthenticationService,\n NettyMenuService,\n CommonService,\n CredentialsService,\n NettyImageService,\n} from '@nettyapps/ntybase';\n\n@Component({\n selector: 'ntybase-left-sidenav',\n imports: [\n CommonModule,\n MatIconModule,\n MatListModule,\n MatMenuModule,\n MatMenuTrigger,\n RouterLink,\n RouterModule,\n NettyUISearchInput,\n TranslateModule,\n ],\n templateUrl: './left-sidenav.html',\n styleUrl: './left-sidenav.scss',\n})\nexport class LeftSidenav implements OnInit, AfterViewInit {\n private authService = inject(AuthenticationService);\n private router = inject(Router);\n private menuService = inject(NettyMenuService);\n private commonService = inject(CommonService);\n private environmentProxy = inject(EnvironmentProxy);\n private credentialsService = inject(CredentialsService);\n private imageService = inject(NettyImageService);\n private elementRef = inject(ElementRef);\n\n username = signal<string>('');\n profileImage = signal<string>('');\n\n version: string | null = this.environmentProxy.version();\n\n isMinimized = input<boolean>(false);\n toggleMinimize = output<void>();\n\n onToggleMinimize() {\n this.toggleMinimize.emit();\n }\n\n logout() {\n this.authService.logout().subscribe({\n next: (success) => {\n if (success) {\n const cleanUrl = this.commonService.getCleanUrlPath();\n this.router.navigateByUrl(cleanUrl, { replaceUrl: true }).then(() => {\n this.router.navigate(['/login']);\n });\n }\n },\n error: (err) => {\n console.error('Logout failed:', err);\n },\n });\n }\n\n // Menu Search\n menuItems = signal<any[]>([]);\n searchTerm = signal<string>('');\n originalMenuItems = signal<any[]>([]);\n\n constructor() {\n effect(() => {\n const fetchedMenu = this.menuService.menu();\n if (fetchedMenu) {\n const processedItems = this.processMenuItems(fetchedMenu);\n this.originalMenuItems.set(processedItems);\n } else {\n this.originalMenuItems.set([]);\n }\n });\n\n this.loadUserInfo();\n }\n\n ngOnInit(): void {\n // Application name gelene kadar 3 kez dene\n this.trySetMenuName(0);\n }\n\n private trySetMenuName(attempt: number): void {\n const appName = this.environmentProxy.getApplicationName();\n\n if (appName && appName.trim()) {\n // Application name geldi, menüyü yükle\n this.menuService.setMenuName(appName);\n } else if (attempt < 3) {\n // Henüz gelmedi, 300ms sonra tekrar dene\n setTimeout(() => {\n this.trySetMenuName(attempt + 1);\n }, 300);\n } else {\n // 3 denemeden sonra hala gelmedi, boş string ile dene\n console.warn('Application name not found, using empty string');\n this.menuService.setMenuName('');\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.loadUserInfo();\n }, 0);\n }\n\n loadUserInfo(): void {\n const credentials = this.credentialsService.getCredentials();\n if (credentials && credentials.username) {\n this.username.set(credentials.username);\n\n this.generateProfileImage(credentials.username);\n }\n }\n\n generateProfileImage(username: string): void {\n const initials = this.getInitials(username);\n\n const primaryColor = this.getCssVariableValue('--mat-sys-primary');\n\n const imageUrl = this.imageService.generateTextImage(\n initials,\n 40,\n 40,\n primaryColor || '#4ECDC4',\n '#FFFFFF',\n 'rgba(0, 0, 0, 0.2)'\n );\n\n this.profileImage.set(imageUrl);\n }\n\n private getCssVariableValue(variableName: string): string | null {\n if (typeof window === 'undefined') return null;\n\n const element = this.elementRef.nativeElement;\n return (\n getComputedStyle(element).getPropertyValue(variableName).trim() || null\n );\n }\n\n private getInitials(username: string): string {\n if (!username) return 'U';\n\n const names = username.trim().split(' ');\n if (names.length === 1) {\n return names[0].charAt(0).toUpperCase();\n } else {\n return (\n names[0].charAt(0) + names[names.length - 1].charAt(0)\n ).toUpperCase();\n }\n }\n\n processMenuItems(apiResponse: any): any[] {\n if (!apiResponse || !Array.isArray(apiResponse)) {\n return [];\n }\n return apiResponse.map((item: any) => ({\n name: item.label || item.name,\n icon: item.icon || '',\n link: item.route || item.link || '#',\n expanded: false,\n children: item.children ? this.processMenuItems(item.children) : [],\n }));\n }\n\n filteredMenuItems = computed(() => {\n const term = this.searchTerm().toLowerCase();\n if (!term) return this.originalMenuItems();\n\n return this.filterMenuItems(this.originalMenuItems(), term);\n });\n\n private filterMenuItems(items: any[], term: string): any[] {\n const normalizedTerm = this.commonService.normalizeTurkish(term);\n\n return items\n .map((item) => {\n const filteredChildren = item.children\n ? this.filterMenuItems(item.children, term)\n : [];\n\n const normalizedName = this.commonService.normalizeTurkish(item.name);\n const matches =\n normalizedName.includes(normalizedTerm) ||\n filteredChildren.length > 0;\n\n return matches\n ? {\n ...item,\n children: filteredChildren,\n expanded: matches || filteredChildren.length > 0,\n }\n : null;\n })\n .filter((item) => item !== null);\n }\n\n toggleSubMenu(item: any): void {\n item.expanded = !item.expanded;\n }\n\n onSearch(term: string) {\n this.searchTerm.set(term);\n }\n}\n","<div class=\"sidenav-content-wrapper\">\n <!-- Minimize Icon -->\n <button mat-icon-button (click)=\"onToggleMinimize()\" class=\"minimize-button\">\n <mat-icon class=\"minimize-icon\">\n {{ isMinimized() ? \"chevron_right\" : \"chevron_left\" }}\n </mat-icon>\n </button>\n\n <!-- Profile -->\n <div class=\"profile-section\">\n <button mat-button [matMenuTriggerFor]=\"profileMenu\" class=\"profile-button\">\n <img [src]=\"profileImage()\" [alt]=\"username()\" class=\"profile-image\" />\n @if(!isMinimized()){\n <div class=\"profile-info\">\n <p class=\"profile-name\">{{ username() }}</p>\n </div>\n }\n </button>\n\n <mat-menu #profileMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item disabled>\n <mat-icon>account_circle</mat-icon>\n <span>{{ '@profile' | translate }}</span>\n </button>\n <button mat-menu-item mat-button disabled>\n <mat-icon>swap_horiz</mat-icon>\n <span>{{ '@changeCompany' | translate }}</span>\n </button>\n <button mat-menu-item mat-button (click)=\"logout()\">\n <mat-icon>logout</mat-icon>\n <span>{{ '@logout' | translate }}</span>\n </button>\n </mat-menu>\n </div>\n\n <!-- Search Input -->\n @if (!isMinimized()){\n <ntyui-search-input\n class=\"search-input\"\n [label]=\"'@search' | translate\"\n [placeholder]=\"'@placeholderSearch' | translate\"\n [appearance]=\"'outline'\"\n (search)=\"onSearch($event)\"\n >\n </ntyui-search-input>\n }\n\n <!-- Menu -->\n @if (!isMinimized()) {\n <mat-nav-list>\n <div class=\"sidebar\">\n <ul>\n <!-- Recursive menu render -->\n @let items = filteredMenuItems(); @let level = 0;\n <ng-container\n [ngTemplateOutlet]=\"menuItemsTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: items, level: level }\"\n ></ng-container>\n </ul>\n </div>\n </mat-nav-list>\n }\n\n <!-- Footer -->\n <div class=\"sidenav-footer\">\n <button mat-button [matMenuTriggerFor]=\"footerMenu\" class=\"footer-button\">\n @if (!isMinimized()) {\n <div class=\"footer-text\">\n <div class=\"company-name\">\n <p>© 2025 AXIS</p>\n </div>\n </div>\n }\n </button>\n <div class=\"version\">\n <span class=\"version\">v{{version}}</span>\n </div>\n </div>\n\n <mat-menu #footerMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item disabled>\n <mat-icon>swap_horiz</mat-icon>\n {{ '@changeCompany' | translate }}\n </button>\n <button mat-menu-item mat-button (click)=\"logout()\">\n <mat-icon>logout</mat-icon>\n <span>{{ '@logout' | translate }}</span>\n </button>\n </mat-menu>\n</div>\n\n<!-- Recursive Menu Template -->\n<ng-template #menuItemsTemplate let-items let-level=\"level\">\n @for (item of items; track item.name) {\n <li [class]=\"'menu-level-' + level\">\n <!-- Leaf node (no children) -->\n @if (!item.children || item.children.length === 0) {\n <a\n [routerLink]=\"item.link\"\n routerLinkActive=\"active\"\n [class]=\"'menu-link level-' + level\"\n >\n <mat-icon>{{ item.icon }}</mat-icon>\n <span>{{ item.name }}</span>\n </a>\n }\n\n <!-- Parent node with children -->\n @if (item.children && item.children.length > 0) {\n <a\n (click)=\"toggleSubMenu(item)\"\n [class.expanded]=\"item.expanded\"\n [class]=\"'menu-link has-children level-' + level\"\n >\n <mat-icon>{{ item.icon }}</mat-icon>\n <span>{{ item.name }}</span>\n <mat-icon [class.rotated]=\"item.expanded\" class=\"expand-icon\">\n {{ item.expanded ? 'expand_less' : 'expand_more' }}\n </mat-icon>\n </a>\n }\n\n <!-- Recursive submenu -->\n @if (item.children && item.children.length > 0 && item.expanded) {\n <ul [class]=\"'submenu level-' + (level + 1)\">\n <ng-container\n *ngTemplateOutlet=\"menuItemsTemplate; context: { $implicit: item.children, level: level + 1 }\"\n ></ng-container>\n </ul>\n }\n </li>\n }\n</ng-template>\n","import { computed, effect, Injectable, signal } from '@angular/core';\n\nexport interface AppTheme {\n name: 'light' | 'dark';\n icon: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Theme {\n private readonly THEME_STORAGE_KEY = 'app-theme';\n\n private appTheme = signal<'light' | 'dark'>('light');\n private themes: AppTheme[] = [\n { name: 'light', icon: 'light_mode' },\n { name: 'dark', icon: 'dark_mode' },\n ];\n\n selectedTheme = computed(() =>\n this.themes.find((theme) => theme.name === this.appTheme())\n );\n\n constructor() {\n const savedTheme = this.getSavedTheme();\n if (savedTheme) {\n this.appTheme.set(savedTheme);\n }\n\n effect(() => {\n const appTheme = this.appTheme();\n document.body.style.setProperty('color-scheme', appTheme);\n document.body.setAttribute('data-ag-theme-mode', appTheme);\n });\n }\n\n getThemes() {\n return this.themes;\n }\n\n setTheme(theme: 'light' | 'dark') {\n this.appTheme.set(theme);\n this.saveTheme(theme);\n }\n\n private getSavedTheme(): 'light' | 'dark' | null {\n if (typeof window !== 'undefined' && window.localStorage) {\n const saved = localStorage.getItem(this.THEME_STORAGE_KEY);\n return saved === 'light' || saved === 'dark' ? saved : null;\n }\n return null;\n }\n\n private saveTheme(theme: 'light' | 'dark'): void {\n if (typeof window !== 'undefined' && window.localStorage) {\n localStorage.setItem(this.THEME_STORAGE_KEY, theme);\n }\n }\n}\n","import { effect, Injectable, signal } from '@angular/core';\n\nexport interface ColorTheme {\n id: string;\n primary: string;\n secondary?: string;\n displayName: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ColorPalette {\n private readonly THEME_STORAGE_KEY = 'selected-theme';\n\n private themes: ColorTheme[] = [];\n currentTheme = signal<ColorTheme | null>(null);\n\n setThemes(customThemes: ColorTheme[]): void {\n this.themes = customThemes;\n\n const savedThemeId = this.getSavedTheme();\n const themeToSet = savedThemeId\n ? this.themes.find((t) => t.id === savedThemeId)\n : this.themes[0];\n\n if (themeToSet) {\n this.currentTheme.set(themeToSet);\n } else if (this.themes.length > 0) {\n this.currentTheme.set(this.themes[0]);\n }\n }\n\n getThemes(): ColorTheme[] {\n return this.themes;\n }\n\n setTheme(themeId: string): void {\n const theme = this.themes.find((t) => t.id === themeId);\n if (theme) {\n this.currentTheme.set(theme);\n this.saveTheme(themeId);\n }\n }\n\n private getSavedTheme(): string | null {\n if (typeof window !== 'undefined' && window.localStorage) {\n return localStorage.getItem(this.THEME_STORAGE_KEY);\n }\n return null;\n }\n\n private saveTheme(themeId: string): void {\n if (typeof window !== 'undefined' && window.localStorage) {\n localStorage.setItem(this.THEME_STORAGE_KEY, themeId);\n }\n }\n\n updateThemeClass = effect(() => {\n const theme = this.currentTheme();\n if (theme) {\n document.body.classList.remove(\n ...this.themes.map((t) => `${t.id}-theme`)\n );\n document.body.classList.add(`${theme.id}-theme`);\n }\n });\n}\n","import { Component, inject, model, output } from '@angular/core';\nimport { CommonModule, TitleCasePipe } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { Theme } from '../../themes/services/theme';\nimport { ColorPalette } from '../../themes/services/color-palette';\nimport { I18nService } from '@nettyapps/ntyi18n';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'ntybase-toolbar',\n imports: [\n MatIconModule,\n MatMenuModule,\n MatToolbarModule,\n CommonModule,\n TitleCasePipe,\n TranslateModule,\n ],\n templateUrl: './toolbar.html',\n styleUrl: './toolbar.scss',\n})\nexport class Toolbar {\n protected themeService = inject(Theme);\n protected colorPaletteService = inject(ColorPalette);\n private i18nService = inject(I18nService);\n private router = inject(Router);\n toggleSidenav = output<void>();\n\n onToggleSidenav() {\n this.toggleSidenav.emit();\n }\n\n // Language\n icon = model(false);\n\n get currentLanguage(): string {\n return this.i18nService.language;\n }\n\n get languages(): string[] {\n return this.i18nService.supportedLanguages;\n }\n\n setLanguage(language: string) {\n this.i18nService.language = language;\n\n setTimeout(() => {\n window.location.reload();\n }, 100);\n }\n\n getCurrentLanguageIcon(): string {\n switch (this.i18nService.language) {\n case 'Türkçe':\n return 'fi fi-tr';\n case 'English':\n return 'fi fi-us';\n default:\n return 'fi fi-tr';\n }\n }\n\n getLanguageIcon(language: string): string {\n switch (language) {\n case 'Türkçe':\n return 'fi fi-tr';\n case 'English':\n return 'fi fi-us';\n default:\n return 'fi fi-tr';\n }\n }\n}\n","<mat-toolbar class=\"sidenav-header\">\n <div class=\"left-section\">\n <button mat-icon-button (click)=\"onToggleSidenav()\" class=\"menu-button\">\n <mat-icon>menu</mat-icon>\n </button>\n <span>{{'app_name' | translate }}</span>\n\n <!-- Language Selection -->\n <div class=\"language-toggle\">\n @if (icon()) {\n <button mat-icon-button [matMenuTriggerFor]=\"languageMenu\">\n <span class=\"{{ getCurrentLanguageIcon() }}\"></span>\n </button>\n } @else {\n <button\n mat-raised-button\n color=\"primary\"\n [matMenuTriggerFor]=\"languageMenu\"\n >\n {{ currentLanguage }}\n </button>\n }\n </div>\n\n <!-- Language Menu -->\n <mat-menu #languageMenu=\"matMenu\">\n @for (language of languages; track language) {\n <button mat-menu-item (click)=\"setLanguage(language)\">\n <span class=\"{{ getLanguageIcon(language) }}\"></span>\n {{ language }}\n </button>\n }\n </mat-menu>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"flex-stretch\"></div>\n <button\n mat-icon-button\n [mat-menu-trigger-for]=\"themeMenu\"\n class=\"theme-button\"\n >\n <mat-icon>{{ themeService.selectedTheme()?.icon }}</mat-icon>\n </button>\n <mat-menu #themeMenu=\"matMenu\">\n @for (theme of themeService.getThemes(); track theme.name) {\n <button\n [class.selected-theme]=\"themeService.selectedTheme()?.name === theme.name\"\n mat-menu-item\n (click)=\"themeService.setTheme(theme.name)\"\n >\n <mat-icon>{{ theme.icon }}</mat-icon>\n <span>{{ theme.name | titlecase }}</span>\n </button>\n }\n </mat-menu>\n <button\n mat-icon-button\n [matMenuTriggerFor]=\"customThemeMenu\"\n class=\"custom-theme-button\"\n >\n <mat-icon>format_color_fill</mat-icon>\n </button>\n <mat-menu #customThemeMenu=\"matMenu\">\n @for (customTheme of colorPaletteService.getThemes(); track customTheme.id)\n {\n <button\n mat-menu-item\n (click)=\"colorPaletteService.setTheme(customTheme.id)\"\n >\n <div class=\"theme-menu-item\">\n <div\n class=\"color-preview\"\n [style.background-color]=\"customTheme.primary\"\n ></div>\n <span>{{ customTheme.displayName }}</span>\n </div>\n </button>\n }\n </mat-menu>\n</mat-toolbar>\n","/*\n * Public API Surface of ntyux\n */\n\nexport * from './lib/ntyux';\nexport * from './lib/ntyux-module';\nexport * from './lib/auto-complete/auto-complete';\nexport * from './lib/auto-complete/models/guid';\nexport * from './lib/auto-complete/models/filter';\nexport * from './lib/auto-complete/models/auto-complete-filter';\nexport * from './lib/auto-complete/models/auto-complete-filter-fields';\nexport * from './lib/value-unit-input/value-unit-input';\nexport * from './lib/components/http-error403/http-error403';\nexport * from './lib/components/http-error404/http-error404';\nexport * from './lib/components/left-sidenav/left-sidenav';\nexport * from './lib/components/toolbar/toolbar';\nexport * from './lib/themes/services/color-palette';\nexport * from './lib/themes/services/theme';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i5","i1","i6","i4"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nettyapps/ntyux",
|
|
3
|
-
"version": "21.0.
|
|
3
|
+
"version": "21.0.2",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
4
7
|
"peerDependencies": {
|
|
5
8
|
"@angular/common": "^21.0.3",
|
|
6
9
|
"@angular/core": "^21.0.3"
|
|
@@ -9,9 +12,16 @@
|
|
|
9
12
|
"tslib": "^2.3.0"
|
|
10
13
|
},
|
|
11
14
|
"sideEffects": false,
|
|
12
|
-
"module": "fesm2022/nettyapps-ntyux.mjs",
|
|
13
|
-
"typings": "types/nettyapps-ntyux.d.ts",
|
|
14
15
|
"exports": {
|
|
16
|
+
"./themes/themes.css": {
|
|
17
|
+
"default": "./themes/themes.css"
|
|
18
|
+
},
|
|
19
|
+
"./themes/*": {
|
|
20
|
+
"default": "./themes/*"
|
|
21
|
+
},
|
|
22
|
+
"./styles/*": {
|
|
23
|
+
"default": "./styles/*"
|
|
24
|
+
},
|
|
15
25
|
"./package.json": {
|
|
16
26
|
"default": "./package.json"
|
|
17
27
|
},
|
|
@@ -19,5 +29,7 @@
|
|
|
19
29
|
"types": "./types/nettyapps-ntyux.d.ts",
|
|
20
30
|
"default": "./fesm2022/nettyapps-ntyux.mjs"
|
|
21
31
|
}
|
|
22
|
-
}
|
|
32
|
+
},
|
|
33
|
+
"module": "fesm2022/nettyapps-ntyux.mjs",
|
|
34
|
+
"typings": "types/nettyapps-ntyux.d.ts"
|
|
23
35
|
}
|