@winexist/ngp 0.4.0 → 0.4.1
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/winexist-ngp.mjs +21 -16
- package/fesm2022/winexist-ngp.mjs.map +1 -1
- package/index.d.ts +5 -0
- package/package.json +1 -1
|
@@ -287,6 +287,7 @@ class FgAddressComponent {
|
|
|
287
287
|
isDisabled = signal(false, ...(ngDevMode ? [{ debugName: "isDisabled" }] : []));
|
|
288
288
|
pendingAddress = null;
|
|
289
289
|
isInitializing = false;
|
|
290
|
+
detectedEditMode = false;
|
|
290
291
|
onChange = () => { };
|
|
291
292
|
onTouched = () => { };
|
|
292
293
|
addressService = inject(AddressService);
|
|
@@ -340,9 +341,7 @@ class FgAddressComponent {
|
|
|
340
341
|
this.addressForm.get(fieldName)?.setValue(null, { emitEvent: false });
|
|
341
342
|
}
|
|
342
343
|
loadProvince() {
|
|
343
|
-
this.provHttp$ = this.addressService
|
|
344
|
-
.getProvinces()
|
|
345
|
-
.subscribe((res) => {
|
|
344
|
+
this.provHttp$ = this.addressService.getProvinces().subscribe((res) => {
|
|
346
345
|
this.provinceOptions = res;
|
|
347
346
|
// If we have a pending address to load, process it now
|
|
348
347
|
if (this.pendingAddress) {
|
|
@@ -351,9 +350,7 @@ class FgAddressComponent {
|
|
|
351
350
|
});
|
|
352
351
|
}
|
|
353
352
|
loadCityByProvinceId(id) {
|
|
354
|
-
this.cityHttp$ = this.addressService
|
|
355
|
-
.getMunicipalities(id)
|
|
356
|
-
.subscribe((res) => {
|
|
353
|
+
this.cityHttp$ = this.addressService.getMunicipalities(id).subscribe((res) => {
|
|
357
354
|
this.cityOptions = res;
|
|
358
355
|
// Continue initialization if needed
|
|
359
356
|
if (this.isInitializing && this.pendingAddress) {
|
|
@@ -362,9 +359,7 @@ class FgAddressComponent {
|
|
|
362
359
|
});
|
|
363
360
|
}
|
|
364
361
|
loadBarangayByCityId(id) {
|
|
365
|
-
this.barangayHttp$ = this.addressService
|
|
366
|
-
.getBarangays(id)
|
|
367
|
-
.subscribe((res) => {
|
|
362
|
+
this.barangayHttp$ = this.addressService.getBarangays(id).subscribe((res) => {
|
|
368
363
|
this.barangayOptions = res;
|
|
369
364
|
// Continue initialization if needed
|
|
370
365
|
if (this.isInitializing && this.pendingAddress) {
|
|
@@ -372,6 +367,16 @@ class FgAddressComponent {
|
|
|
372
367
|
}
|
|
373
368
|
});
|
|
374
369
|
}
|
|
370
|
+
/**
|
|
371
|
+
* Detects if the address contains data that requires edit mode initialization
|
|
372
|
+
*/
|
|
373
|
+
isEditModeAddress(address) {
|
|
374
|
+
// Check if any cascading field (province, city, barangay) is a string (name)
|
|
375
|
+
// This indicates data from backend that needs to be matched with dropdown options
|
|
376
|
+
return ((typeof address.province === 'string' && address.province !== '') ||
|
|
377
|
+
(typeof address.city === 'string' && address.city !== '') ||
|
|
378
|
+
(typeof address.barangay === 'string' && address.barangay !== ''));
|
|
379
|
+
}
|
|
375
380
|
initializeEditMode(address) {
|
|
376
381
|
this.isInitializing = true;
|
|
377
382
|
// Set non-cascading fields first
|
|
@@ -384,7 +389,7 @@ class FgAddressComponent {
|
|
|
384
389
|
}, { emitEvent: false });
|
|
385
390
|
// Find and set province
|
|
386
391
|
if (address.province && typeof address.province === 'string') {
|
|
387
|
-
const provinceItem = this.provinceOptions.find(p => p.name.toLowerCase() === address.province?.toLowerCase());
|
|
392
|
+
const provinceItem = this.provinceOptions.find((p) => p.name.toLowerCase() === address.province?.toLowerCase());
|
|
388
393
|
if (provinceItem) {
|
|
389
394
|
this.addressForm.get('province')?.setValue(provinceItem, { emitEvent: false });
|
|
390
395
|
this.loadCityByProvinceId(provinceItem.id);
|
|
@@ -402,7 +407,7 @@ class FgAddressComponent {
|
|
|
402
407
|
this.completeInitialization();
|
|
403
408
|
return;
|
|
404
409
|
}
|
|
405
|
-
const cityItem = this.cityOptions.find(c => c.name.toLowerCase() === this.pendingAddress.city?.toLowerCase());
|
|
410
|
+
const cityItem = this.cityOptions.find((c) => c.name.toLowerCase() === this.pendingAddress.city?.toLowerCase());
|
|
406
411
|
if (cityItem) {
|
|
407
412
|
this.addressForm.get('city')?.setValue(cityItem, { emitEvent: false });
|
|
408
413
|
this.loadBarangayByCityId(cityItem.id);
|
|
@@ -416,7 +421,7 @@ class FgAddressComponent {
|
|
|
416
421
|
this.completeInitialization();
|
|
417
422
|
return;
|
|
418
423
|
}
|
|
419
|
-
const barangayItem = this.barangayOptions.find(b => b.name.toLowerCase() === this.pendingAddress.barangay?.toLowerCase());
|
|
424
|
+
const barangayItem = this.barangayOptions.find((b) => b.name.toLowerCase() === this.pendingAddress.barangay?.toLowerCase());
|
|
420
425
|
if (barangayItem) {
|
|
421
426
|
this.addressForm.get('barangay')?.setValue(barangayItem, { emitEvent: false });
|
|
422
427
|
}
|
|
@@ -429,10 +434,10 @@ class FgAddressComponent {
|
|
|
429
434
|
// ControlValueAccessor methods
|
|
430
435
|
writeValue(value) {
|
|
431
436
|
if (value) {
|
|
432
|
-
//
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
437
|
+
// Auto-detect if this is edit mode based on the address data structure
|
|
438
|
+
this.detectedEditMode = this.isEditModeAddress(value);
|
|
439
|
+
if (this.detectedEditMode) {
|
|
440
|
+
// Address contains string values (names) - needs initialization
|
|
436
441
|
this.pendingAddress = value;
|
|
437
442
|
// If provinces are already loaded, start initialization
|
|
438
443
|
if (this.provinceOptions.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"winexist-ngp.mjs","sources":["../../../packages/src/lib/components/empty/empty.component.ts","../../../packages/src/lib/components/empty/empty.component.html","../../../packages/src/lib/components/file-upload/file-upload.component.ts","../../../packages/src/lib/components/file-upload/file-upload.component.html","../../../packages/src/lib/components/form-field-wrapper/form-field-wrapper.component.ts","../../../packages/src/lib/components/form-field-wrapper/form-field-wrapper.component.html","../../../packages/src/lib/components/select/ng-select/basic/basic-ng-select.component.ts","../../../packages/src/lib/components/select/ng-select/basic/basic-ng-select.component.html","../../../packages/src/lib/services/address/address.service.ts","../../../packages/src/lib/components/fg-address/fg-address.component.ts","../../../packages/src/lib/components/fg-address/fg-address.component.html","../../../packages/src/index.ts","../../../packages/src/winexist-ngp.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\n\n@Component({\n\tselector: 'ngp-empty',\n\timports: [],\n\ttemplateUrl: './empty.component.html',\n\tstyleUrl: './empty.component.css'\n})\nexport class EmptyComponent {\n\ttitle = input<string>('Section is empty.');\n\tmessage = input<string>('No data available.');\n\timgSrc = input<string>();\n\n}\n","<div class=\"w-full flex justify-center items-center p-5 h-full\">\n <div class=\"flex items-center gap-3\">\n @if (imgSrc()) {\n <img alt=\"Empty\" [src]=\"imgSrc()\" class=\"w-[80px]\" />\n } @else {\n <div class=\"!rounded-md p-5 !bg-slate-100 mb-6\">\n <span class=\"material-icons !text-gray-400 !text-7xl\"> search_off </span>\n </div>\n }\n\n <div class=\"flex flex-col\">\n <span class=\"!text-gray-900 !text-2xl !font-bold\">{{ title() }}</span>\n @if (message()) {\n <span class=\"!text-gray-400 !text-base\">{{ message() }}</span>\n }\n </div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, effect, ElementRef, input, output, signal, ViewChild } from '@angular/core';\nimport { FileSelectEvent, FileUploadModule } from 'primeng/fileupload';\n\n// Add interface for typed files\ninterface TypedFile extends File {\n\tfileType?: 'image' | 'pdf' | 'other';\n}\n\n@Component({\n\tselector: 'ngp-file-upload',\n\timports: [FileUploadModule, CommonModule],\n\ttemplateUrl: './file-upload.component.html',\n\tstyleUrl: './file-upload.component.css',\n})\nexport class FileUploadComponent {\n\t@ViewChild('fileUploader') fileUploader!: ElementRef;\n\n\t// Signal-based inputs with defaults\n\tfiles = input<File[]>([]);\n\tmultiple = input(true);\n\taccept = input('.pdf,.png,.jpg,.jpeg,.doc,.docx,.csv,.xls,.xlsx');\n\tmaxFileSize = input(2097152); // 2MB in bytes\n\tplaceholder = input('Drag and drop new files here to upload.');\n\tshowUploadButton = input<boolean>(false);\n\tcancelLabel = input('Clear');\n\n\t// Signal-based outputs\n\tfilesSelected = output<File[]>();\n\tfilesCleared = output<void>();\n\n\t// Internal state\n\tuploadedFiles = signal<TypedFile[]>([]);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst _files = this.files();\n\t\t\tif (_files.length) {\n\t\t\t\tthis.uploadedFiles.set(_files.map((file) => this.addFileType(file)));\n\t\t\t}\n\t\t});\n\t}\n\n\tonFileSelect(event: FileSelectEvent) {\n\t\tconst validFiles = event.currentFiles.filter(\n\t\t\t(file) => file.size <= this.maxFileSize() && this.isValidFileType(file)\n\t\t);\n\n\t\tif (validFiles.length) {\n\t\t\t// Add type to files before adding to uploadedFiles\n\t\t\tconst typedFiles = validFiles.map((file) => this.addFileType(file));\n\n\t\t\tif (this.multiple()) {\n\t\t\t\tthis.uploadedFiles.update((files) => Array.from(new Set([...files, ...typedFiles])));\n\t\t\t} else {\n\t\t\t\tthis.uploadedFiles.set(typedFiles);\n\t\t\t}\n\t\t\tthis.filesSelected.emit(typedFiles);\n\t\t}\n\t}\n\n\tonClear() {\n\t\tthis.uploadedFiles.set([]);\n\t\tthis.filesCleared.emit();\n\t}\n\n\tremoveFile(index: number) {\n\t\tthis.uploadedFiles.update((files) => files.filter((_, i) => i !== index));\n\t\tthis.filesSelected.emit(this.uploadedFiles());\n\t}\n\n\tisValidFileType(file: File): boolean {\n\t\tconst acceptedTypes = this.accept().split(',');\n\t\treturn acceptedTypes.some((type) =>\n\t\t\tfile.name.toLowerCase().endsWith(type.trim().toLowerCase())\n\t\t);\n\t}\n\n\tformatFileSize(bytes: number): string {\n\t\tif (bytes === 0) return '0 Bytes';\n\t\tconst k = 1024;\n\t\tconst sizes = ['Bytes', 'KB', 'MB', 'GB'];\n\t\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\t\treturn parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n\t}\n\n\tclear() {\n\t\tthis.uploadedFiles.set([]);\n\t\tif (this.fileUploader?.nativeElement?.clear) {\n\t\t\tthis.fileUploader.nativeElement.clear();\n\t\t}\n\t}\n\n\t// Function to determine file type based on extension\n\tgetFileTypeByExtension(file: File): 'image' | 'pdf' | 'other' {\n\t\tconst fileName = file.name.toLowerCase();\n\t\tconst imageExtensions = ['.png', '.jpg', '.jpeg', '.gif', '.bmp', '.svg', '.webp'];\n\t\tconst pdfExtension = '.pdf';\n\n\t\tif (imageExtensions.some((ext) => fileName.endsWith(ext))) {\n\t\t\treturn 'image';\n\t\t} else if (fileName.endsWith(pdfExtension)) {\n\t\t\treturn 'pdf';\n\t\t} else {\n\t\t\treturn 'other';\n\t\t}\n\t}\n\n\t// Function to add type property to file\n\taddFileType(file: File): TypedFile {\n\t\tconst typedFile = file as TypedFile;\n\t\ttypedFile.fileType = this.getFileTypeByExtension(file);\n\t\treturn typedFile;\n\t}\n}\n","<p-fileupload #fileUploader [multiple]=\"multiple()\" [showUploadButton]=\"showUploadButton()\"\n [cancelLabel]=\"cancelLabel()\" [accept]=\"accept()\" auto=\"false\" [maxFileSize]=\"maxFileSize()\" mode=\"advanced\"\n [customUpload]=\"true\" styleClass=\"!bg-gray-50\" (onSelect)=\"onFileSelect($event)\" (onClear)=\"onClear()\">\n <ng-template #content>\n @if (uploadedFiles().length) {\n <ul class=\"space-y-2\">\n @for (file of uploadedFiles(); track $index) {\n <li class=\"flex justify-between gap-4 p-2 bg-gray-100 rounded\">\n <div class=\"flex gap-2\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: file.fileType }\"></ng-container>\n <span class=\"text-sm\"> {{ file.name }} - {{ formatFileSize(file.size) }} </span>\n </div>\n <button type=\"button\" (click)=\"removeFile($index)\" class=\"text-red-500 hover:text-red-700 text-sm\">\n <span class=\"material-icons !text-base\"> cancel </span>\n </button>\n </li>\n }\n </ul>\n } @else {\n <div class=\"flex flex-col items-center gap-3\">\n <img src=\"assets/images/file-upload.svg\" alt=\"File Upload\" class=\"w-28 mx-auto\" />\n <span class=\"font-semibold text-center text-gray-400 text-sm\">\n Drag & drop or<br />\n click the \"Choose\" button to add new files\n </span>\n </div>\n }\n </ng-template>\n <ng-template #file></ng-template>\n</p-fileupload>\n\n<ng-template #iconTemplate let-type>\n @if (type === 'image') {\n <span class=\"material-icons\"> image </span>\n } @else if (type === 'pdf') {\n <span class=\"material-icons\"> picture_as_pdf </span>\n } @else {\n <span class=\"material-icons\"> insert_drive_file </span>\n }\n</ng-template>","// form-field-wrapper.component.ts\nimport { CommonModule } from '@angular/common';\nimport { Component, ContentChild, Input, AfterContentInit, OnDestroy } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { MessageModule } from 'primeng/message';\n\n@Component({\n\tselector: 'ngp-form-field-wrapper',\n\tstandalone: true,\n\timports: [CommonModule, MessageModule],\n\ttemplateUrl: './form-field-wrapper.component.html',\n\tstyleUrls: ['./form-field-wrapper.component.scss']\n})\nexport class FormFieldWrapperComponent implements AfterContentInit, OnDestroy {\n\t@Input() validationMessages: { [key: string]: string } = {\n\t\trequired: 'This field is required',\n\t\temail: 'Please enter a valid email',\n\t\tminlength: 'Input does not meet minimum length',\n\t\tmaxlength: 'Input exceeds maximum length',\n\t\tpattern: 'Input format is invalid',\n\t\tendTimeBeforeStartTime: 'End time must not be before start time',\n\t\tbreakStartBeforeEarliestStart: 'Break start time cannot be before the earliest start time'\n\t};\n\n\t@ContentChild(NgControl) control?: NgControl;\n\n\tprivate subscription?: Subscription;\n\n\tngAfterContentInit(): void {\n\t\tif (this.control) {\n\t\t\tthis.subscription = this.control.statusChanges?.subscribe(() => { });\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscription?.unsubscribe();\n\t}\n\n\tshouldShowError(): boolean {\n\t\treturn (\n\t\t\t!!this.control &&\n\t\t\tthis.control.invalid === true &&\n\t\t\t(this.control.dirty === true || this.control.touched === true)\n\t\t);\n\t}\n\n\tgetErrorMessage(): string {\n\t\tif (!this.control?.errors) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst firstErrorKey = Object.keys(this.control.errors)[0];\n\t\tconst error = this.control.errors[firstErrorKey];\n\n\t\tif (this.control.errors['message']) {\n\t\t\treturn this.control.errors['message'];\n\t\t}\n\t\tif (error?.message) {\n\t\t\treturn error.message;\n\t\t}\n\n\t\treturn this.validationMessages[firstErrorKey] || `Invalid input: ${firstErrorKey}`;\n\t}\n}\n","<div class=\"form-field-container\">\n <ng-content></ng-content>\n @if (shouldShowError()) {\n <p-message severity=\"error\" variant=\"simple\" size=\"small\" [text]=\"getErrorMessage()\">\n </p-message>\n }\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormFieldWrapperComponent } from '../../../form-field-wrapper/form-field-wrapper.component';\nimport { FloatLabelModule } from 'primeng/floatlabel'\nimport { ProgressSpinnerModule } from 'primeng/progressspinner'\n\ntype SelectValue<T> = T | T[];\ntype SelectValueOrNull<T> = SelectValue<T> | null;\n\n@Component({\n\tselector: 'ngp-basic-select',\n\timports: [NgSelectModule, FormsModule, CommonModule, FormFieldWrapperComponent, FloatLabelModule, ProgressSpinnerModule],\n\ttemplateUrl: './basic-ng-select.component.html',\n\tstyleUrl: './basic-ng-select.component.scss',\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => BasicNgSelectComponent),\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class BasicNgSelectComponent<T = any> implements ControlValueAccessor {\n\toptions = input<T[]>([]);\n\tbindLabel = input<string>('');\n\tbindValue = input<string>('');\n\tplaceholder = input<string>('Select an option');\n\tclearable = input<boolean>(true);\n\tsearchable = input<boolean>(true);\n\tloading = input<boolean>(false);\n\tlabel = input<string | null>(null);\n\trequired = input<boolean>(true);\n\n\t// Internal state\n\tvalue: SelectValueOrNull<T> = null;\n\tdisabled = false;\n\n\t// ControlValueAccessor callbacks\n\tprivate onChange: (value: SelectValueOrNull<T>) => void = () => { };\n\tonTouched: () => void = () => { };\n\n\t// Handle value changes from ng-select\n\tonValueChange(value: SelectValueOrNull<T>): void {\n\t\tthis.value = value;\n\t\tthis.onChange(value);\n\t}\n\n\twriteValue(val: SelectValueOrNull<T>): void {\n\t\tthis.value = val;\n\t}\n\n\tregisterOnChange(fn: (val: SelectValueOrNull<T>) => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t// Compare function for ng-select\n\tcompareWith = (item: any, selected: any) => {\n\t\tconst bindValueKey = this.bindValue();\n\n\t\t// If no bindValue is set, compare entire objects\n\t\tif (!bindValueKey) {\n\t\t\treturn item === selected;\n\t\t}\n\n\t\t// Handle null/undefined cases\n\t\tif (!item || !selected) {\n\t\t\treturn item === selected;\n\t\t}\n\n\t\t// If selected is a primitive (just the id), compare with item's property\n\t\tif (typeof selected !== 'object') {\n\t\t\treturn item[bindValueKey] === selected;\n\t\t}\n\n\t\t// If both are objects, compare the bindValue property\n\t\treturn item[bindValueKey] === selected[bindValueKey];\n\t};\n}\n","<ngp-form-field-wrapper>\n <p-floatlabel variant=\"in\">\n <ng-select [(ngModel)]=\"value\" [bindLabel]=\"bindLabel()\" [bindValue]=\"bindValue()\" [items]=\"options()\"\n [compareWith]=\"compareWith\" [clearable]=\"clearable()\" (change)=\"onValueChange($event)\">\n <ng-template ng-loadingspinner-tmp>\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </ng-template>\n </ng-select>\n\n @if (label()) {\n <label class=\"block mb-2\" [ngClass]=\"{'required-label': required() }\">{{ label() }}</label>\n }\n </p-floatlabel>\n</ngp-form-field-wrapper>\n\n<ng-template #spinner>\n <p-progress-spinner ariaLabel=\"loading\" styleClass=\"text-gray-400\" />\n</ng-template>","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IdName } from '../../models/common.model';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class AddressService {\n\turl = `/api/v1/records/address`;\n\thttp = inject(HttpClient);\n\n\tgetProvinces(): Observable<IdName[]> {\n\t\treturn this.http.get<IdName[]>(`${this.url}/provinces`);\n\t}\n\n\tgetMunicipalities(provinceId: number): Observable<any> {\n\t\treturn this.http.get<any>(`${this.url}/municipalities/${provinceId}`);\n\t}\n\n\tgetBarangays(muncipalityId: any, params?: any): Observable<any> {\n\t\treturn this.http.get<any>(`${this.url}/barangay/${muncipalityId}`, { params });\n\t}\n}\n","import { Component, effect, forwardRef, inject, input, signal } from '@angular/core';\nimport {\n\tAbstractControl,\n\tControlValueAccessor,\n\tFormBuilder,\n\tFormGroup,\n\tNG_VALIDATORS,\n\tNG_VALUE_ACCESSOR,\n\tReactiveFormsModule,\n\tValidationErrors,\n\tValidator\n} from '@angular/forms';\nimport { RxwebValidators } from '@rxweb/reactive-form-validators';\nimport { IdName } from '../../models/common.model';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { FormFieldWrapperComponent } from '../form-field-wrapper/form-field-wrapper.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Address, Barangay, City } from '../../models/address.model';\nimport { AddressService } from '../../services/address/address.service';\n\n@Component({\n\tselector: 'ngp-fg-address',\n\timports: [\n\t\tInputTextModule,\n\t\tInputNumberModule,\n\t\tFloatLabelModule,\n\t\tCommonModule,\n\t\tReactiveFormsModule,\n\t\tFormFieldWrapperComponent,\n\t\tNgSelectModule\n\t],\n\ttemplateUrl: './fg-address.component.html',\n\tstyleUrl: './fg-address.component.scss',\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => FgAddressComponent),\n\t\t\tmulti: true\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: forwardRef(() => FgAddressComponent),\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class FgAddressComponent implements ControlValueAccessor, Validator {\n\tshowHeader = input<boolean>(true);\n\tisCreateMode = input<boolean>(true);\n\n\taddressForm!: FormGroup;\n\tprovHttp$!: Subscription;\n\tcityHttp$!: Subscription;\n\tbarangayHttp$!: Subscription;\n\tprovinceOptions: IdName[] = [];\n\tcityOptions: City[] = [];\n\tbarangayOptions: Barangay[] = [];\n\n\tisDisabled = signal<boolean>(false);\n\tprivate pendingAddress: Address | null = null;\n\tprivate isInitializing = false;\n\n\tprivate onChange: (value: Address | null) => void = () => {};\n\tprivate onTouched: () => void = () => {};\n\n\tprivate readonly addressService = inject(AddressService);\n\tprivate readonly fb = inject(FormBuilder);\n\n\tconstructor() {\n\t\tthis.addressForm = this.fb.group({\n\t\t\tline1: [null, RxwebValidators.required()],\n\t\t\tline2: [null],\n\t\t\tbarangay: [null, RxwebValidators.required()],\n\t\t\tcity: [null, RxwebValidators.required()],\n\t\t\tprovince: [null, RxwebValidators.required()],\n\t\t\tcountry: ['Philippines', RxwebValidators.required()],\n\t\t\tzipCode: [null, RxwebValidators.required()],\n\t\t\tlandmark: [null, RxwebValidators.required()]\n\t\t});\n\n\t\t// Use effect to watch for form value changes\n\t\teffect(() => {\n\t\t\tif (this.isDisabled()) {\n\t\t\t\tthis.addressForm.disable({ emitEvent: false });\n\t\t\t} else {\n\t\t\t\tthis.addressForm.enable({ emitEvent: false });\n\t\t\t}\n\t\t});\n\n\t\t// Subscribe to form changes\n\t\tthis.addressForm.valueChanges.subscribe((value) => {\n\t\t\tthis.onChange(value);\n\t\t\tthis.onTouched();\n\t\t});\n\n\t\tthis.loadProvince();\n\n\t\t// Handle province changes - works for both create and edit mode\n\t\tthis.addressForm.get('province')?.valueChanges.subscribe((prov) => {\n\t\t\tif (prov && !this.isInitializing) {\n\t\t\t\tthis.clearFieldByName('city');\n\t\t\t\tthis.clearFieldByName('barangay');\n\t\t\t\tthis.cityOptions = [];\n\t\t\t\tthis.barangayOptions = [];\n\t\t\t\tthis.loadCityByProvinceId(prov.id);\n\t\t\t}\n\t\t});\n\n\t\t// Handle city changes - works for both create and edit mode\n\t\tthis.addressForm.get('city')?.valueChanges.subscribe((city) => {\n\t\t\tif (city && !this.isInitializing) {\n\t\t\t\tthis.clearFieldByName('barangay');\n\t\t\t\tthis.barangayOptions = [];\n\t\t\t\tthis.loadBarangayByCityId(city.id);\n\t\t\t}\n\t\t});\n\t}\n\n\tclearFieldByName(fieldName: string): void {\n\t\tthis.addressForm.get(fieldName)?.setValue(null, { emitEvent: false });\n\t}\n\n\tloadProvince(): void {\n\t\tthis.provHttp$ = this.addressService\n\t\t\t.getProvinces()\n\t\t\t.subscribe((res) => {\n\t\t\t\tthis.provinceOptions = res;\n\t\t\t\t\n\t\t\t\t// If we have a pending address to load, process it now\n\t\t\t\tif (this.pendingAddress) {\n\t\t\t\t\tthis.initializeEditMode(this.pendingAddress);\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tloadCityByProvinceId(id: number): void {\n\t\tthis.cityHttp$ = this.addressService\n\t\t\t.getMunicipalities(id)\n\t\t\t.subscribe((res) => {\n\t\t\t\tthis.cityOptions = res;\n\t\t\t\t\n\t\t\t\t// Continue initialization if needed\n\t\t\t\tif (this.isInitializing && this.pendingAddress) {\n\t\t\t\t\tthis.setCityFromPending();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tloadBarangayByCityId(id: number): void {\n\t\tthis.barangayHttp$ = this.addressService\n\t\t\t.getBarangays(id)\n\t\t\t.subscribe((res) => {\n\t\t\t\tthis.barangayOptions = res;\n\t\t\t\t\n\t\t\t\t// Continue initialization if needed\n\t\t\t\tif (this.isInitializing && this.pendingAddress) {\n\t\t\t\t\tthis.setBarangayFromPending();\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tprivate initializeEditMode(address: Address): void {\n\t\tthis.isInitializing = true;\n\t\t\n\t\t// Set non-cascading fields first\n\t\tthis.addressForm.patchValue({\n\t\t\tline1: address.line1,\n\t\t\tline2: address.line2,\n\t\t\tcountry: address.country || 'Philippines',\n\t\t\tzipCode: address.zipCode,\n\t\t\tlandmark: address.landmark\n\t\t}, { emitEvent: false });\n\n\t\t// Find and set province\n\t\tif (address.province && typeof address.province === 'string') {\n\t\t\tconst provinceItem = this.provinceOptions.find(\n\t\t\t\tp => p.name.toLowerCase() === address.province?.toLowerCase()\n\t\t\t);\n\t\t\t\n\t\t\tif (provinceItem) {\n\t\t\t\tthis.addressForm.get('province')?.setValue(provinceItem, { emitEvent: false });\n\t\t\t\tthis.loadCityByProvinceId(provinceItem.id);\n\t\t\t} else {\n\t\t\t\tthis.completeInitialization();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.completeInitialization();\n\t\t}\n\t}\n\n\tprivate setCityFromPending(): void {\n\t\tif (!this.pendingAddress?.city || typeof this.pendingAddress.city !== 'string') {\n\t\t\tthis.completeInitialization();\n\t\t\treturn;\n\t\t}\n\n\t\tconst cityItem = this.cityOptions.find(\n\t\t\tc => c.name.toLowerCase() === this.pendingAddress!.city?.toLowerCase()\n\t\t);\n\t\t\n\t\tif (cityItem) {\n\t\t\tthis.addressForm.get('city')?.setValue(cityItem, { emitEvent: false });\n\t\t\tthis.loadBarangayByCityId(cityItem.id);\n\t\t} else {\n\t\t\tthis.completeInitialization();\n\t\t}\n\t}\n\n\tprivate setBarangayFromPending(): void {\n\t\tif (!this.pendingAddress?.barangay || typeof this.pendingAddress.barangay !== 'string') {\n\t\t\tthis.completeInitialization();\n\t\t\treturn;\n\t\t}\n\n\t\tconst barangayItem = this.barangayOptions.find(\n\t\t\tb => b.name.toLowerCase() === this.pendingAddress!.barangay?.toLowerCase()\n\t\t);\n\t\t\n\t\tif (barangayItem) {\n\t\t\tthis.addressForm.get('barangay')?.setValue(barangayItem, { emitEvent: false });\n\t\t}\n\t\t\n\t\tthis.completeInitialization();\n\t}\n\n\tprivate completeInitialization(): void {\n\t\tthis.isInitializing = false;\n\t\tthis.pendingAddress = null;\n\t}\n\n\t// ControlValueAccessor methods\n\twriteValue(value: Address | null): void {\n\t\tif (value) {\n\t\t\t// Check if this is edit mode with string values (names instead of objects)\n\t\t\tconst isEditModeWithNames = !this.isCreateMode() && \n\t\t\t\ttypeof value.province === 'string';\n\n\t\t\tif (isEditModeWithNames) {\n\t\t\t\tthis.pendingAddress = value;\n\t\t\t\t\n\t\t\t\t// If provinces are already loaded, start initialization\n\t\t\t\tif (this.provinceOptions.length > 0) {\n\t\t\t\t\tthis.initializeEditMode(value);\n\t\t\t\t}\n\t\t\t\t// Otherwise, it will be triggered when provinces load\n\t\t\t} else {\n\t\t\t\t// Create mode or already has proper objects\n\t\t\t\tthis.addressForm.patchValue(value, { emitEvent: false });\n\t\t\t\t\n\t\t\t\t// Load cascading data if IDs are present\n\t\t\t\tconst province = value.province;\n\t\t\t\tif (province && typeof province === 'object' && 'id' in province) {\n\t\t\t\t\tthis.loadCityByProvinceId((province as any).id);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst city = value.city;\n\t\t\t\tif (city && typeof city === 'object' && 'id' in city) {\n\t\t\t\t\tthis.loadBarangayByCityId((city as any).id);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.addressForm.reset({ country: 'Philippines' }, { emitEvent: false });\n\t\t}\n\t}\n\n\tregisterOnChange(fn: (value: Address | null) => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.isDisabled?.set(isDisabled);\n\t\tif (isDisabled) {\n\t\t\tthis.addressForm.disable();\n\t\t} else {\n\t\t\tthis.addressForm.enable();\n\t\t}\n\t}\n\n\tvalidate(control: AbstractControl): ValidationErrors | null {\n\t\treturn this.addressForm?.valid ? null : { invalidAddress: true };\n\t}\n}","@if (showHeader()) {\n\t<h2 class=\"text-xl font-semibold mb-4\">Address</h2>\n}\n<form [formGroup]=\"addressForm\">\n\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<input pInputText trim=\"blur\" id=\"country\" formControlName=\"country\" class=\"w-full\" />\n\t\t\t\t\t<label for=\"country\" class=\"block mb-2 required-label\">Country</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<ng-select\n\t\t\t\t\t\tformControlName=\"province\"\n\t\t\t\t\t\t[items]=\"provinceOptions\"\n\t\t\t\t\t\t[loading]=\"provHttp$ && !provHttp$.closed\"\n\t\t\t\t\t\tbindLabel=\"name\" />\n\t\t\t\t\t<label for=\"province\" class=\"block mb-2 required-label\">Province</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t</div>\n\n\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<ng-select\n\t\t\t\t\t\tformControlName=\"city\"\n\t\t\t\t\t\t[items]=\"cityOptions\"\n\t\t\t\t\t\t[loading]=\"cityHttp$ && !cityHttp$.closed\"\n\t\t\t\t\t\tbindLabel=\"name\" />\n\t\t\t\t\t<label for=\"city\" class=\"block mb-2 required-label\">City/Municipality</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<ng-select\n\t\t\t\t\t\tformControlName=\"barangay\"\n\t\t\t\t\t\t[items]=\"barangayOptions\"\n\t\t\t\t\t\t[loading]=\"barangayHttp$ && !barangayHttp$.closed\"\n\t\t\t\t\t\tbindLabel=\"name\" />\n\n\t\t\t\t\t<label for=\"barangay\" class=\"block mb-2 required-label\">Barangay</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t</div>\n\n\t<div>\n\t\t<ngp-form-field-wrapper>\n\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t<label for=\"line1\" class=\"block mb-2 required-label\">Line 1</label>\n\t\t\t\t<input pInputText trim=\"blur\" id=\"line1\" formControlName=\"line1\" class=\"w-full\" />\n\t\t\t</p-floatlabel>\n\t\t</ngp-form-field-wrapper>\n\t</div>\n\n\t<div>\n\t\t<ngp-form-field-wrapper>\n\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t<label for=\"line2\" class=\"block mb-2\">Line 2</label>\n\t\t\t\t<input pInputText trim=\"blur\" id=\"line2\" formControlName=\"line2\" class=\"w-full\" />\n\t\t\t</p-floatlabel>\n\t\t</ngp-form-field-wrapper>\n\t</div>\n\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<p-inputnumber\n\t\t\t\t\t\t[inputId]=\"'zipCode'\"\n\t\t\t\t\t\tformControlName=\"zipCode\"\n\t\t\t\t\t\tstyleClass=\"w-full\"\n\t\t\t\t\t\t[useGrouping]=\"false\" />\n\t\t\t\t\t<label for=\"zipCode\" class=\"block mb-2 required-label\">Zip Code</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<label for=\"landmark\" class=\"block mb-2 required-label\">Nearest Landmark</label>\n\t\t\t\t\t<input pInputText trim=\"blur\" id=\"landmark\" formControlName=\"landmark\" class=\"w-full\" />\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t</div>\n</form>\n","// export * from './lib/components/components';\nexport * from './lib/components/empty/empty.component'\nexport * from './lib/components/file-upload/file-upload.component'\nexport * from './lib/components/form-field-wrapper/form-field-wrapper.component'\nexport * from './lib/components/select/ng-select/basic/basic-ng-select.component'\nexport * from './lib/components/fg-address/fg-address.component'\n\n// Models\nexport * from './lib/models/common.model'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i4","i3","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"winexist-ngp.mjs","sources":["../../../packages/src/lib/components/empty/empty.component.ts","../../../packages/src/lib/components/empty/empty.component.html","../../../packages/src/lib/components/file-upload/file-upload.component.ts","../../../packages/src/lib/components/file-upload/file-upload.component.html","../../../packages/src/lib/components/form-field-wrapper/form-field-wrapper.component.ts","../../../packages/src/lib/components/form-field-wrapper/form-field-wrapper.component.html","../../../packages/src/lib/components/select/ng-select/basic/basic-ng-select.component.ts","../../../packages/src/lib/components/select/ng-select/basic/basic-ng-select.component.html","../../../packages/src/lib/services/address/address.service.ts","../../../packages/src/lib/components/fg-address/fg-address.component.ts","../../../packages/src/lib/components/fg-address/fg-address.component.html","../../../packages/src/index.ts","../../../packages/src/winexist-ngp.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\n\n@Component({\n\tselector: 'ngp-empty',\n\timports: [],\n\ttemplateUrl: './empty.component.html',\n\tstyleUrl: './empty.component.css'\n})\nexport class EmptyComponent {\n\ttitle = input<string>('Section is empty.');\n\tmessage = input<string>('No data available.');\n\timgSrc = input<string>();\n\n}\n","<div class=\"w-full flex justify-center items-center p-5 h-full\">\n <div class=\"flex items-center gap-3\">\n @if (imgSrc()) {\n <img alt=\"Empty\" [src]=\"imgSrc()\" class=\"w-[80px]\" />\n } @else {\n <div class=\"!rounded-md p-5 !bg-slate-100 mb-6\">\n <span class=\"material-icons !text-gray-400 !text-7xl\"> search_off </span>\n </div>\n }\n\n <div class=\"flex flex-col\">\n <span class=\"!text-gray-900 !text-2xl !font-bold\">{{ title() }}</span>\n @if (message()) {\n <span class=\"!text-gray-400 !text-base\">{{ message() }}</span>\n }\n </div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, effect, ElementRef, input, output, signal, ViewChild } from '@angular/core';\nimport { FileSelectEvent, FileUploadModule } from 'primeng/fileupload';\n\n// Add interface for typed files\ninterface TypedFile extends File {\n\tfileType?: 'image' | 'pdf' | 'other';\n}\n\n@Component({\n\tselector: 'ngp-file-upload',\n\timports: [FileUploadModule, CommonModule],\n\ttemplateUrl: './file-upload.component.html',\n\tstyleUrl: './file-upload.component.css',\n})\nexport class FileUploadComponent {\n\t@ViewChild('fileUploader') fileUploader!: ElementRef;\n\n\t// Signal-based inputs with defaults\n\tfiles = input<File[]>([]);\n\tmultiple = input(true);\n\taccept = input('.pdf,.png,.jpg,.jpeg,.doc,.docx,.csv,.xls,.xlsx');\n\tmaxFileSize = input(2097152); // 2MB in bytes\n\tplaceholder = input('Drag and drop new files here to upload.');\n\tshowUploadButton = input<boolean>(false);\n\tcancelLabel = input('Clear');\n\n\t// Signal-based outputs\n\tfilesSelected = output<File[]>();\n\tfilesCleared = output<void>();\n\n\t// Internal state\n\tuploadedFiles = signal<TypedFile[]>([]);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst _files = this.files();\n\t\t\tif (_files.length) {\n\t\t\t\tthis.uploadedFiles.set(_files.map((file) => this.addFileType(file)));\n\t\t\t}\n\t\t});\n\t}\n\n\tonFileSelect(event: FileSelectEvent) {\n\t\tconst validFiles = event.currentFiles.filter(\n\t\t\t(file) => file.size <= this.maxFileSize() && this.isValidFileType(file)\n\t\t);\n\n\t\tif (validFiles.length) {\n\t\t\t// Add type to files before adding to uploadedFiles\n\t\t\tconst typedFiles = validFiles.map((file) => this.addFileType(file));\n\n\t\t\tif (this.multiple()) {\n\t\t\t\tthis.uploadedFiles.update((files) => Array.from(new Set([...files, ...typedFiles])));\n\t\t\t} else {\n\t\t\t\tthis.uploadedFiles.set(typedFiles);\n\t\t\t}\n\t\t\tthis.filesSelected.emit(typedFiles);\n\t\t}\n\t}\n\n\tonClear() {\n\t\tthis.uploadedFiles.set([]);\n\t\tthis.filesCleared.emit();\n\t}\n\n\tremoveFile(index: number) {\n\t\tthis.uploadedFiles.update((files) => files.filter((_, i) => i !== index));\n\t\tthis.filesSelected.emit(this.uploadedFiles());\n\t}\n\n\tisValidFileType(file: File): boolean {\n\t\tconst acceptedTypes = this.accept().split(',');\n\t\treturn acceptedTypes.some((type) =>\n\t\t\tfile.name.toLowerCase().endsWith(type.trim().toLowerCase())\n\t\t);\n\t}\n\n\tformatFileSize(bytes: number): string {\n\t\tif (bytes === 0) return '0 Bytes';\n\t\tconst k = 1024;\n\t\tconst sizes = ['Bytes', 'KB', 'MB', 'GB'];\n\t\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\t\treturn parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n\t}\n\n\tclear() {\n\t\tthis.uploadedFiles.set([]);\n\t\tif (this.fileUploader?.nativeElement?.clear) {\n\t\t\tthis.fileUploader.nativeElement.clear();\n\t\t}\n\t}\n\n\t// Function to determine file type based on extension\n\tgetFileTypeByExtension(file: File): 'image' | 'pdf' | 'other' {\n\t\tconst fileName = file.name.toLowerCase();\n\t\tconst imageExtensions = ['.png', '.jpg', '.jpeg', '.gif', '.bmp', '.svg', '.webp'];\n\t\tconst pdfExtension = '.pdf';\n\n\t\tif (imageExtensions.some((ext) => fileName.endsWith(ext))) {\n\t\t\treturn 'image';\n\t\t} else if (fileName.endsWith(pdfExtension)) {\n\t\t\treturn 'pdf';\n\t\t} else {\n\t\t\treturn 'other';\n\t\t}\n\t}\n\n\t// Function to add type property to file\n\taddFileType(file: File): TypedFile {\n\t\tconst typedFile = file as TypedFile;\n\t\ttypedFile.fileType = this.getFileTypeByExtension(file);\n\t\treturn typedFile;\n\t}\n}\n","<p-fileupload #fileUploader [multiple]=\"multiple()\" [showUploadButton]=\"showUploadButton()\"\n [cancelLabel]=\"cancelLabel()\" [accept]=\"accept()\" auto=\"false\" [maxFileSize]=\"maxFileSize()\" mode=\"advanced\"\n [customUpload]=\"true\" styleClass=\"!bg-gray-50\" (onSelect)=\"onFileSelect($event)\" (onClear)=\"onClear()\">\n <ng-template #content>\n @if (uploadedFiles().length) {\n <ul class=\"space-y-2\">\n @for (file of uploadedFiles(); track $index) {\n <li class=\"flex justify-between gap-4 p-2 bg-gray-100 rounded\">\n <div class=\"flex gap-2\">\n <ng-container [ngTemplateOutlet]=\"iconTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: file.fileType }\"></ng-container>\n <span class=\"text-sm\"> {{ file.name }} - {{ formatFileSize(file.size) }} </span>\n </div>\n <button type=\"button\" (click)=\"removeFile($index)\" class=\"text-red-500 hover:text-red-700 text-sm\">\n <span class=\"material-icons !text-base\"> cancel </span>\n </button>\n </li>\n }\n </ul>\n } @else {\n <div class=\"flex flex-col items-center gap-3\">\n <img src=\"assets/images/file-upload.svg\" alt=\"File Upload\" class=\"w-28 mx-auto\" />\n <span class=\"font-semibold text-center text-gray-400 text-sm\">\n Drag & drop or<br />\n click the \"Choose\" button to add new files\n </span>\n </div>\n }\n </ng-template>\n <ng-template #file></ng-template>\n</p-fileupload>\n\n<ng-template #iconTemplate let-type>\n @if (type === 'image') {\n <span class=\"material-icons\"> image </span>\n } @else if (type === 'pdf') {\n <span class=\"material-icons\"> picture_as_pdf </span>\n } @else {\n <span class=\"material-icons\"> insert_drive_file </span>\n }\n</ng-template>","// form-field-wrapper.component.ts\nimport { CommonModule } from '@angular/common';\nimport { Component, ContentChild, Input, AfterContentInit, OnDestroy } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { MessageModule } from 'primeng/message';\n\n@Component({\n\tselector: 'ngp-form-field-wrapper',\n\tstandalone: true,\n\timports: [CommonModule, MessageModule],\n\ttemplateUrl: './form-field-wrapper.component.html',\n\tstyleUrls: ['./form-field-wrapper.component.scss']\n})\nexport class FormFieldWrapperComponent implements AfterContentInit, OnDestroy {\n\t@Input() validationMessages: { [key: string]: string } = {\n\t\trequired: 'This field is required',\n\t\temail: 'Please enter a valid email',\n\t\tminlength: 'Input does not meet minimum length',\n\t\tmaxlength: 'Input exceeds maximum length',\n\t\tpattern: 'Input format is invalid',\n\t\tendTimeBeforeStartTime: 'End time must not be before start time',\n\t\tbreakStartBeforeEarliestStart: 'Break start time cannot be before the earliest start time'\n\t};\n\n\t@ContentChild(NgControl) control?: NgControl;\n\n\tprivate subscription?: Subscription;\n\n\tngAfterContentInit(): void {\n\t\tif (this.control) {\n\t\t\tthis.subscription = this.control.statusChanges?.subscribe(() => { });\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscription?.unsubscribe();\n\t}\n\n\tshouldShowError(): boolean {\n\t\treturn (\n\t\t\t!!this.control &&\n\t\t\tthis.control.invalid === true &&\n\t\t\t(this.control.dirty === true || this.control.touched === true)\n\t\t);\n\t}\n\n\tgetErrorMessage(): string {\n\t\tif (!this.control?.errors) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst firstErrorKey = Object.keys(this.control.errors)[0];\n\t\tconst error = this.control.errors[firstErrorKey];\n\n\t\tif (this.control.errors['message']) {\n\t\t\treturn this.control.errors['message'];\n\t\t}\n\t\tif (error?.message) {\n\t\t\treturn error.message;\n\t\t}\n\n\t\treturn this.validationMessages[firstErrorKey] || `Invalid input: ${firstErrorKey}`;\n\t}\n}\n","<div class=\"form-field-container\">\n <ng-content></ng-content>\n @if (shouldShowError()) {\n <p-message severity=\"error\" variant=\"simple\" size=\"small\" [text]=\"getErrorMessage()\">\n </p-message>\n }\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormFieldWrapperComponent } from '../../../form-field-wrapper/form-field-wrapper.component';\nimport { FloatLabelModule } from 'primeng/floatlabel'\nimport { ProgressSpinnerModule } from 'primeng/progressspinner'\n\ntype SelectValue<T> = T | T[];\ntype SelectValueOrNull<T> = SelectValue<T> | null;\n\n@Component({\n\tselector: 'ngp-basic-select',\n\timports: [NgSelectModule, FormsModule, CommonModule, FormFieldWrapperComponent, FloatLabelModule, ProgressSpinnerModule],\n\ttemplateUrl: './basic-ng-select.component.html',\n\tstyleUrl: './basic-ng-select.component.scss',\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => BasicNgSelectComponent),\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class BasicNgSelectComponent<T = any> implements ControlValueAccessor {\n\toptions = input<T[]>([]);\n\tbindLabel = input<string>('');\n\tbindValue = input<string>('');\n\tplaceholder = input<string>('Select an option');\n\tclearable = input<boolean>(true);\n\tsearchable = input<boolean>(true);\n\tloading = input<boolean>(false);\n\tlabel = input<string | null>(null);\n\trequired = input<boolean>(true);\n\n\t// Internal state\n\tvalue: SelectValueOrNull<T> = null;\n\tdisabled = false;\n\n\t// ControlValueAccessor callbacks\n\tprivate onChange: (value: SelectValueOrNull<T>) => void = () => { };\n\tonTouched: () => void = () => { };\n\n\t// Handle value changes from ng-select\n\tonValueChange(value: SelectValueOrNull<T>): void {\n\t\tthis.value = value;\n\t\tthis.onChange(value);\n\t}\n\n\twriteValue(val: SelectValueOrNull<T>): void {\n\t\tthis.value = val;\n\t}\n\n\tregisterOnChange(fn: (val: SelectValueOrNull<T>) => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\t// Compare function for ng-select\n\tcompareWith = (item: any, selected: any) => {\n\t\tconst bindValueKey = this.bindValue();\n\n\t\t// If no bindValue is set, compare entire objects\n\t\tif (!bindValueKey) {\n\t\t\treturn item === selected;\n\t\t}\n\n\t\t// Handle null/undefined cases\n\t\tif (!item || !selected) {\n\t\t\treturn item === selected;\n\t\t}\n\n\t\t// If selected is a primitive (just the id), compare with item's property\n\t\tif (typeof selected !== 'object') {\n\t\t\treturn item[bindValueKey] === selected;\n\t\t}\n\n\t\t// If both are objects, compare the bindValue property\n\t\treturn item[bindValueKey] === selected[bindValueKey];\n\t};\n}\n","<ngp-form-field-wrapper>\n <p-floatlabel variant=\"in\">\n <ng-select [(ngModel)]=\"value\" [bindLabel]=\"bindLabel()\" [bindValue]=\"bindValue()\" [items]=\"options()\"\n [compareWith]=\"compareWith\" [clearable]=\"clearable()\" (change)=\"onValueChange($event)\">\n <ng-template ng-loadingspinner-tmp>\n <ng-container [ngTemplateOutlet]=\"spinner\" />\n </ng-template>\n </ng-select>\n\n @if (label()) {\n <label class=\"block mb-2\" [ngClass]=\"{'required-label': required() }\">{{ label() }}</label>\n }\n </p-floatlabel>\n</ngp-form-field-wrapper>\n\n<ng-template #spinner>\n <p-progress-spinner ariaLabel=\"loading\" styleClass=\"text-gray-400\" />\n</ng-template>","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IdName } from '../../models/common.model';\n\n@Injectable({\n\tprovidedIn: 'root'\n})\nexport class AddressService {\n\turl = `/api/v1/records/address`;\n\thttp = inject(HttpClient);\n\n\tgetProvinces(): Observable<IdName[]> {\n\t\treturn this.http.get<IdName[]>(`${this.url}/provinces`);\n\t}\n\n\tgetMunicipalities(provinceId: number): Observable<any> {\n\t\treturn this.http.get<any>(`${this.url}/municipalities/${provinceId}`);\n\t}\n\n\tgetBarangays(muncipalityId: any, params?: any): Observable<any> {\n\t\treturn this.http.get<any>(`${this.url}/barangay/${muncipalityId}`, { params });\n\t}\n}\n","import { Component, effect, forwardRef, inject, input, signal } from '@angular/core';\nimport {\n\tAbstractControl,\n\tControlValueAccessor,\n\tFormBuilder,\n\tFormGroup,\n\tNG_VALIDATORS,\n\tNG_VALUE_ACCESSOR,\n\tReactiveFormsModule,\n\tValidationErrors,\n\tValidator\n} from '@angular/forms';\nimport { RxwebValidators } from '@rxweb/reactive-form-validators';\nimport { IdName } from '../../models/common.model';\nimport { Subscription } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { FormFieldWrapperComponent } from '../form-field-wrapper/form-field-wrapper.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { FloatLabelModule } from 'primeng/floatlabel';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Address, Barangay, City } from '../../models/address.model';\nimport { AddressService } from '../../services/address/address.service';\n\n@Component({\n\tselector: 'ngp-fg-address',\n\timports: [\n\t\tInputTextModule,\n\t\tInputNumberModule,\n\t\tFloatLabelModule,\n\t\tCommonModule,\n\t\tReactiveFormsModule,\n\t\tFormFieldWrapperComponent,\n\t\tNgSelectModule\n\t],\n\ttemplateUrl: './fg-address.component.html',\n\tstyleUrl: './fg-address.component.scss',\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => FgAddressComponent),\n\t\t\tmulti: true\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: forwardRef(() => FgAddressComponent),\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class FgAddressComponent implements ControlValueAccessor, Validator {\n\tshowHeader = input<boolean>(true);\n\tisCreateMode = input<boolean>(true);\n\n\taddressForm!: FormGroup;\n\tprovHttp$!: Subscription;\n\tcityHttp$!: Subscription;\n\tbarangayHttp$!: Subscription;\n\tprovinceOptions: IdName[] = [];\n\tcityOptions: City[] = [];\n\tbarangayOptions: Barangay[] = [];\n\n\tisDisabled = signal<boolean>(false);\n\tprivate pendingAddress: Address | null = null;\n\tprivate isInitializing = false;\n\tprivate detectedEditMode = false;\n\n\tprivate onChange: (value: Address | null) => void = () => {};\n\tprivate onTouched: () => void = () => {};\n\n\tprivate readonly addressService = inject(AddressService);\n\tprivate readonly fb = inject(FormBuilder);\n\n\tconstructor() {\n\t\tthis.addressForm = this.fb.group({\n\t\t\tline1: [null, RxwebValidators.required()],\n\t\t\tline2: [null],\n\t\t\tbarangay: [null, RxwebValidators.required()],\n\t\t\tcity: [null, RxwebValidators.required()],\n\t\t\tprovince: [null, RxwebValidators.required()],\n\t\t\tcountry: ['Philippines', RxwebValidators.required()],\n\t\t\tzipCode: [null, RxwebValidators.required()],\n\t\t\tlandmark: [null, RxwebValidators.required()]\n\t\t});\n\n\t\t// Use effect to watch for form value changes\n\t\teffect(() => {\n\t\t\tif (this.isDisabled()) {\n\t\t\t\tthis.addressForm.disable({ emitEvent: false });\n\t\t\t} else {\n\t\t\t\tthis.addressForm.enable({ emitEvent: false });\n\t\t\t}\n\t\t});\n\n\t\t// Subscribe to form changes\n\t\tthis.addressForm.valueChanges.subscribe((value) => {\n\t\t\tthis.onChange(value);\n\t\t\tthis.onTouched();\n\t\t});\n\n\t\tthis.loadProvince();\n\n\t\t// Handle province changes - works for both create and edit mode\n\t\tthis.addressForm.get('province')?.valueChanges.subscribe((prov) => {\n\t\t\tif (prov && !this.isInitializing) {\n\t\t\t\tthis.clearFieldByName('city');\n\t\t\t\tthis.clearFieldByName('barangay');\n\t\t\t\tthis.cityOptions = [];\n\t\t\t\tthis.barangayOptions = [];\n\t\t\t\tthis.loadCityByProvinceId(prov.id);\n\t\t\t}\n\t\t});\n\n\t\t// Handle city changes - works for both create and edit mode\n\t\tthis.addressForm.get('city')?.valueChanges.subscribe((city) => {\n\t\t\tif (city && !this.isInitializing) {\n\t\t\t\tthis.clearFieldByName('barangay');\n\t\t\t\tthis.barangayOptions = [];\n\t\t\t\tthis.loadBarangayByCityId(city.id);\n\t\t\t}\n\t\t});\n\t}\n\n\tclearFieldByName(fieldName: string): void {\n\t\tthis.addressForm.get(fieldName)?.setValue(null, { emitEvent: false });\n\t}\n\n\tloadProvince(): void {\n\t\tthis.provHttp$ = this.addressService.getProvinces().subscribe((res) => {\n\t\t\tthis.provinceOptions = res;\n\n\t\t\t// If we have a pending address to load, process it now\n\t\t\tif (this.pendingAddress) {\n\t\t\t\tthis.initializeEditMode(this.pendingAddress);\n\t\t\t}\n\t\t});\n\t}\n\n\tloadCityByProvinceId(id: number): void {\n\t\tthis.cityHttp$ = this.addressService.getMunicipalities(id).subscribe((res) => {\n\t\t\tthis.cityOptions = res;\n\n\t\t\t// Continue initialization if needed\n\t\t\tif (this.isInitializing && this.pendingAddress) {\n\t\t\t\tthis.setCityFromPending();\n\t\t\t}\n\t\t});\n\t}\n\n\tloadBarangayByCityId(id: number): void {\n\t\tthis.barangayHttp$ = this.addressService.getBarangays(id).subscribe((res) => {\n\t\t\tthis.barangayOptions = res;\n\n\t\t\t// Continue initialization if needed\n\t\t\tif (this.isInitializing && this.pendingAddress) {\n\t\t\t\tthis.setBarangayFromPending();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Detects if the address contains data that requires edit mode initialization\n\t */\n\tprivate isEditModeAddress(address: Address): boolean {\n\t\t// Check if any cascading field (province, city, barangay) is a string (name)\n\t\t// This indicates data from backend that needs to be matched with dropdown options\n\t\treturn (\n\t\t\t(typeof address.province === 'string' && address.province !== '') ||\n\t\t\t(typeof address.city === 'string' && address.city !== '') ||\n\t\t\t(typeof address.barangay === 'string' && address.barangay !== '')\n\t\t);\n\t}\n\n\tprivate initializeEditMode(address: Address): void {\n\t\tthis.isInitializing = true;\n\n\t\t// Set non-cascading fields first\n\t\tthis.addressForm.patchValue(\n\t\t\t{\n\t\t\t\tline1: address.line1,\n\t\t\t\tline2: address.line2,\n\t\t\t\tcountry: address.country || 'Philippines',\n\t\t\t\tzipCode: address.zipCode,\n\t\t\t\tlandmark: address.landmark\n\t\t\t},\n\t\t\t{ emitEvent: false }\n\t\t);\n\n\t\t// Find and set province\n\t\tif (address.province && typeof address.province === 'string') {\n\t\t\tconst provinceItem = this.provinceOptions.find(\n\t\t\t\t(p) => p.name.toLowerCase() === address.province?.toLowerCase()\n\t\t\t);\n\n\t\t\tif (provinceItem) {\n\t\t\t\tthis.addressForm.get('province')?.setValue(provinceItem, { emitEvent: false });\n\t\t\t\tthis.loadCityByProvinceId(provinceItem.id);\n\t\t\t} else {\n\t\t\t\tthis.completeInitialization();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.completeInitialization();\n\t\t}\n\t}\n\n\tprivate setCityFromPending(): void {\n\t\tif (!this.pendingAddress?.city || typeof this.pendingAddress.city !== 'string') {\n\t\t\tthis.completeInitialization();\n\t\t\treturn;\n\t\t}\n\n\t\tconst cityItem = this.cityOptions.find(\n\t\t\t(c) => c.name.toLowerCase() === this.pendingAddress!.city?.toLowerCase()\n\t\t);\n\n\t\tif (cityItem) {\n\t\t\tthis.addressForm.get('city')?.setValue(cityItem, { emitEvent: false });\n\t\t\tthis.loadBarangayByCityId(cityItem.id);\n\t\t} else {\n\t\t\tthis.completeInitialization();\n\t\t}\n\t}\n\n\tprivate setBarangayFromPending(): void {\n\t\tif (!this.pendingAddress?.barangay || typeof this.pendingAddress.barangay !== 'string') {\n\t\t\tthis.completeInitialization();\n\t\t\treturn;\n\t\t}\n\n\t\tconst barangayItem = this.barangayOptions.find(\n\t\t\t(b) => b.name.toLowerCase() === this.pendingAddress!.barangay?.toLowerCase()\n\t\t);\n\n\t\tif (barangayItem) {\n\t\t\tthis.addressForm.get('barangay')?.setValue(barangayItem, { emitEvent: false });\n\t\t}\n\n\t\tthis.completeInitialization();\n\t}\n\n\tprivate completeInitialization(): void {\n\t\tthis.isInitializing = false;\n\t\tthis.pendingAddress = null;\n\t}\n\n\t// ControlValueAccessor methods\n\twriteValue(value: Address | null): void {\n\t\tif (value) {\n\t\t\t// Auto-detect if this is edit mode based on the address data structure\n\t\t\tthis.detectedEditMode = this.isEditModeAddress(value);\n\n\t\t\tif (this.detectedEditMode) {\n\t\t\t\t// Address contains string values (names) - needs initialization\n\t\t\t\tthis.pendingAddress = value;\n\n\t\t\t\t// If provinces are already loaded, start initialization\n\t\t\t\tif (this.provinceOptions.length > 0) {\n\t\t\t\t\tthis.initializeEditMode(value);\n\t\t\t\t}\n\t\t\t\t// Otherwise, it will be triggered when provinces load\n\t\t\t} else {\n\t\t\t\t// Create mode or already has proper objects\n\t\t\t\tthis.addressForm.patchValue(value, { emitEvent: false });\n\n\t\t\t\t// Load cascading data if IDs are present\n\t\t\t\tconst province = value.province;\n\t\t\t\tif (province && typeof province === 'object' && 'id' in province) {\n\t\t\t\t\tthis.loadCityByProvinceId((province as any).id);\n\t\t\t\t}\n\n\t\t\t\tconst city = value.city;\n\t\t\t\tif (city && typeof city === 'object' && 'id' in city) {\n\t\t\t\t\tthis.loadBarangayByCityId((city as any).id);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.addressForm.reset({ country: 'Philippines' }, { emitEvent: false });\n\t\t}\n\t}\n\n\tregisterOnChange(fn: (value: Address | null) => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.isDisabled?.set(isDisabled);\n\t\tif (isDisabled) {\n\t\t\tthis.addressForm.disable();\n\t\t} else {\n\t\t\tthis.addressForm.enable();\n\t\t}\n\t}\n\n\tvalidate(control: AbstractControl): ValidationErrors | null {\n\t\treturn this.addressForm?.valid ? null : { invalidAddress: true };\n\t}\n}\n","@if (showHeader()) {\n\t<h2 class=\"text-xl font-semibold mb-4\">Address</h2>\n}\n<form [formGroup]=\"addressForm\">\n\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<input pInputText trim=\"blur\" id=\"country\" formControlName=\"country\" class=\"w-full\" />\n\t\t\t\t\t<label for=\"country\" class=\"block mb-2 required-label\">Country</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<ng-select\n\t\t\t\t\t\tformControlName=\"province\"\n\t\t\t\t\t\t[items]=\"provinceOptions\"\n\t\t\t\t\t\t[loading]=\"provHttp$ && !provHttp$.closed\"\n\t\t\t\t\t\tbindLabel=\"name\" />\n\t\t\t\t\t<label for=\"province\" class=\"block mb-2 required-label\">Province</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t</div>\n\n\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<ng-select\n\t\t\t\t\t\tformControlName=\"city\"\n\t\t\t\t\t\t[items]=\"cityOptions\"\n\t\t\t\t\t\t[loading]=\"cityHttp$ && !cityHttp$.closed\"\n\t\t\t\t\t\tbindLabel=\"name\" />\n\t\t\t\t\t<label for=\"city\" class=\"block mb-2 required-label\">City/Municipality</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<ng-select\n\t\t\t\t\t\tformControlName=\"barangay\"\n\t\t\t\t\t\t[items]=\"barangayOptions\"\n\t\t\t\t\t\t[loading]=\"barangayHttp$ && !barangayHttp$.closed\"\n\t\t\t\t\t\tbindLabel=\"name\" />\n\n\t\t\t\t\t<label for=\"barangay\" class=\"block mb-2 required-label\">Barangay</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t</div>\n\n\t<div>\n\t\t<ngp-form-field-wrapper>\n\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t<label for=\"line1\" class=\"block mb-2 required-label\">Line 1</label>\n\t\t\t\t<input pInputText trim=\"blur\" id=\"line1\" formControlName=\"line1\" class=\"w-full\" />\n\t\t\t</p-floatlabel>\n\t\t</ngp-form-field-wrapper>\n\t</div>\n\n\t<div>\n\t\t<ngp-form-field-wrapper>\n\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t<label for=\"line2\" class=\"block mb-2\">Line 2</label>\n\t\t\t\t<input pInputText trim=\"blur\" id=\"line2\" formControlName=\"line2\" class=\"w-full\" />\n\t\t\t</p-floatlabel>\n\t\t</ngp-form-field-wrapper>\n\t</div>\n\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<p-inputnumber\n\t\t\t\t\t\t[inputId]=\"'zipCode'\"\n\t\t\t\t\t\tformControlName=\"zipCode\"\n\t\t\t\t\t\tstyleClass=\"w-full\"\n\t\t\t\t\t\t[useGrouping]=\"false\" />\n\t\t\t\t\t<label for=\"zipCode\" class=\"block mb-2 required-label\">Zip Code</label>\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t\t<div>\n\t\t\t<ngp-form-field-wrapper>\n\t\t\t\t<p-floatlabel variant=\"in\">\n\t\t\t\t\t<label for=\"landmark\" class=\"block mb-2 required-label\">Nearest Landmark</label>\n\t\t\t\t\t<input pInputText trim=\"blur\" id=\"landmark\" formControlName=\"landmark\" class=\"w-full\" />\n\t\t\t\t</p-floatlabel>\n\t\t\t</ngp-form-field-wrapper>\n\t\t</div>\n\t</div>\n</form>\n","// export * from './lib/components/components';\nexport * from './lib/components/empty/empty.component'\nexport * from './lib/components/file-upload/file-upload.component'\nexport * from './lib/components/form-field-wrapper/form-field-wrapper.component'\nexport * from './lib/components/select/ng-select/basic/basic-ng-select.component'\nexport * from './lib/components/fg-address/fg-address.component'\n\n// Models\nexport * from './lib/models/common.model'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i4","i3","i5"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -115,6 +115,7 @@ declare class FgAddressComponent implements ControlValueAccessor, Validator {
|
|
|
115
115
|
isDisabled: _angular_core.WritableSignal<boolean>;
|
|
116
116
|
private pendingAddress;
|
|
117
117
|
private isInitializing;
|
|
118
|
+
private detectedEditMode;
|
|
118
119
|
private onChange;
|
|
119
120
|
private onTouched;
|
|
120
121
|
private readonly addressService;
|
|
@@ -124,6 +125,10 @@ declare class FgAddressComponent implements ControlValueAccessor, Validator {
|
|
|
124
125
|
loadProvince(): void;
|
|
125
126
|
loadCityByProvinceId(id: number): void;
|
|
126
127
|
loadBarangayByCityId(id: number): void;
|
|
128
|
+
/**
|
|
129
|
+
* Detects if the address contains data that requires edit mode initialization
|
|
130
|
+
*/
|
|
131
|
+
private isEditModeAddress;
|
|
127
132
|
private initializeEditMode;
|
|
128
133
|
private setCityFromPending;
|
|
129
134
|
private setBarangayFromPending;
|