@pridheep16/ng-fb 1.0.2 → 1.0.4

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.
@@ -1,81 +1,92 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Output, Input, Component } from '@angular/core';
3
- import * as i2 from '@angular/common';
2
+ import { Input, Optional, Component } from '@angular/core';
3
+ import * as i3 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import * as i3 from '@angular/forms';
5
+ import * as i2 from '@angular/forms';
6
6
  import { FormsModule } from '@angular/forms';
7
- import { Observable } from 'rxjs';
8
7
  import * as i1 from '@angular/common/http';
9
8
 
10
9
  class Fb {
11
10
  http;
12
11
  name = 'Pridheep';
13
- apiUrl = '';
14
- nameChange = new EventEmitter();
15
- dataLoaded = new EventEmitter();
12
+ orgId = null;
13
+ questionnaireId = null;
14
+ token = '';
16
15
  apiData = null;
17
16
  isLoading = false;
18
17
  error = null;
18
+ baseUrl = 'https://slqy53w3xc.execute-api.ap-south-1.amazonaws.com/core-service/api/v1/';
19
19
  constructor(http) {
20
20
  this.http = http;
21
- this.nameChange.emit(this.name);
21
+ // this.nameChange.emit(this.name);
22
22
  }
23
23
  ngOnInit() {
24
- if (this.apiUrl) {
24
+ if (this.orgId && this.questionnaireId && this.token) {
25
25
  this.fetchData();
26
26
  }
27
27
  }
28
28
  changeName(name) {
29
29
  this.name = name;
30
- this.nameChange.emit(name);
31
30
  }
32
31
  fetchData() {
33
- if (!this.apiUrl) {
32
+ if (!this.orgId || !this.questionnaireId || !this.token) {
34
33
  console.warn('API URL is not provided');
35
34
  return;
36
35
  }
36
+ if (!this.http) {
37
+ this.error = 'HttpClient is not available. Please import HttpClientModule in your application.';
38
+ console.error('HttpClient is not available');
39
+ return;
40
+ }
37
41
  this.isLoading = true;
38
42
  this.error = null;
39
43
  this.apiData = null;
40
- this.http.get(this.apiUrl).subscribe({
44
+ this.http.get(this.baseUrl + '/' + this.orgId + '/' + this.questionnaireId + '/' + this.token).subscribe({
41
45
  next: (data) => {
42
46
  this.apiData = data;
43
47
  this.isLoading = false;
44
- this.dataLoaded.emit(data);
45
48
  },
46
49
  error: (error) => {
47
50
  this.isLoading = false;
48
51
  this.error = error.message || 'Failed to fetch data from API';
49
52
  console.error('Error fetching data from API:', error);
50
- this.dataLoaded.emit(null);
51
53
  }
52
54
  });
53
55
  }
54
- getData(apiUrl) {
55
- const url = apiUrl || this.apiUrl;
56
- if (!url) {
57
- console.warn('API URL is not provided');
58
- return new Observable(observer => observer.complete());
59
- }
60
- return this.http.get(url);
61
- }
56
+ // getData(): Observable<any> {
57
+ // const url = this.baseUrl + '/' + this.orgId + '/' + this.questionnaireId + '/' + this.token;
58
+ // if (!url) {
59
+ // console.warn('API URL is not provided');
60
+ // return new Observable(observer => observer.complete());
61
+ // }
62
+ // if (!this.http) {
63
+ // console.error('HttpClient is not available');
64
+ // return new Observable(observer => {
65
+ // observer.error('HttpClient is not available');
66
+ // observer.complete();
67
+ // });
68
+ // }
69
+ // return this.http.get<any>(url);
70
+ // }
62
71
  refreshData() {
63
72
  this.fetchData();
64
73
  }
65
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Fb, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
66
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: Fb, isStandalone: true, selector: "lib-fb", inputs: { name: "name", apiUrl: "apiUrl" }, outputs: { nameChange: "nameChange", dataLoaded: "dataLoaded" }, ngImport: i0, template: "<div class=\"fb-container\">\n <div class=\"fb-header\">\n <h2>Welcome, {{ name }}!</h2>\n <div class=\"name-input-section\">\n <input \n type=\"text\" \n [(ngModel)]=\"name\" \n (ngModelChange)=\"changeName(name)\"\n placeholder=\"Enter your name\"\n class=\"name-input\"\n />\n </div>\n </div>\n\n <div class=\"api-section\" *ngIf=\"apiUrl\">\n <div class=\"api-controls\">\n <button (click)=\"refreshData()\" [disabled]=\"isLoading\" class=\"refresh-btn\">\n {{ isLoading ? 'Loading...' : 'Refresh Data' }}\n </button>\n </div>\n\n <div class=\"loading\" *ngIf=\"isLoading\">\n <p>Loading data from API...</p>\n </div>\n\n <div class=\"error\" *ngIf=\"error && !isLoading\">\n <p><strong>Error:</strong> {{ error }}</p>\n </div>\n\n <div class=\"api-data\" *ngIf=\"apiData && !isLoading && !error\">\n <h3>API Response Data:</h3>\n <div class=\"data-display\">\n <pre>{{ apiData | json }}</pre>\n </div>\n </div>\n </div>\n\n <div class=\"no-api-url\" *ngIf=\"!apiUrl\">\n <p>No API URL provided. Please set the apiUrl input to fetch data.</p>\n </div>\n</div>\n\n", styles: [".fb-container{padding:20px;max-width:800px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.fb-header{margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e0e0e0}.fb-header h2{margin:0 0 15px;color:#333;font-size:24px}.name-input-section{margin-top:15px}.name-input{width:100%;max-width:300px;padding:10px 15px;font-size:16px;border:2px solid #ddd;border-radius:4px;transition:border-color .3s ease}.name-input:focus{outline:none;border-color:#007bff}.api-section{margin-top:30px}.api-controls{margin-bottom:20px}.refresh-btn{padding:10px 20px;font-size:16px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease}.refresh-btn:hover:not(:disabled){background-color:#0056b3}.refresh-btn:disabled{background-color:#ccc;cursor:not-allowed}.loading{padding:20px;text-align:center;color:#666;background-color:#f8f9fa;border-radius:4px;margin:20px 0}.error{padding:15px;background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;margin:20px 0}.error p{margin:0}.api-data{margin-top:20px}.api-data h3{margin:0 0 15px;color:#333;font-size:20px}.data-display{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:15px;overflow-x:auto}.data-display pre{margin:0;font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.5;color:#333;white-space:pre-wrap;word-wrap:break-word}.no-api-url{padding:20px;text-align:center;color:#666;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-top:20px}.no-api-url p{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.JsonPipe, name: "json" }] });
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Fb, deps: [{ token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Component });
75
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: Fb, isStandalone: true, selector: "lib-fb", inputs: { name: "name", orgId: "orgId", questionnaireId: "questionnaireId", token: "token" }, ngImport: i0, template: "<div class=\"fb-container\">\n <div class=\"fb-header\">\n <h2>Welcome, {{ name }}!</h2>\n <div class=\"name-input-section\">\n <input \n type=\"text\" \n [(ngModel)]=\"name\" \n (ngModelChange)=\"changeName(name)\"\n placeholder=\"Enter your name\"\n class=\"name-input\"\n />\n </div>\n </div>\n\n @if (orgId && questionnaireId && token; as isDataAvailable) {\n <div class=\"api-section\">\n <div class=\"api-controls\">\n <button (click)=\"refreshData()\" [disabled]=\"isLoading\" class=\"refresh-btn\">\n {{ isLoading ? 'Loading...' : 'Refresh Data' }}\n </button>\n </div>\n\n @if (isLoading) {\n <div class=\"loading\">\n <p>Loading data from API...</p>\n </div>\n }\n @if (error && !isLoading) {\n <div class=\"error\">\n <p><strong>Error:</strong> {{ error }}</p>\n </div>\n }\n @if (apiData && !isLoading && !error) {\n <div class=\"api-data\">\n <h3>API Response Data:</h3>\n <div class=\"data-display\">\n <pre>{{ apiData | json }}</pre>\n </div>\n </div>\n }\n </div>\n }\n\n @else {\n <div class=\"no-api-url\">\n <p>No data available. Please set the orgId, questionnaireId, and token inputs to fetch data.</p>\n </div>\n }\n</div>\n\n", styles: [".fb-container{padding:20px;max-width:800px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.fb-header{margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e0e0e0}.fb-header h2{margin:0 0 15px;color:#333;font-size:24px}.name-input-section{margin-top:15px}.name-input{width:100%;max-width:300px;padding:10px 15px;font-size:16px;border:2px solid #ddd;border-radius:4px;transition:border-color .3s ease}.name-input:focus{outline:none;border-color:#007bff}.api-section{margin-top:30px}.api-controls{margin-bottom:20px}.refresh-btn{padding:10px 20px;font-size:16px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease}.refresh-btn:hover:not(:disabled){background-color:#0056b3}.refresh-btn:disabled{background-color:#ccc;cursor:not-allowed}.loading{padding:20px;text-align:center;color:#666;background-color:#f8f9fa;border-radius:4px;margin:20px 0}.error{padding:15px;background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;margin:20px 0}.error p{margin:0}.api-data{margin-top:20px}.api-data h3{margin:0 0 15px;color:#333;font-size:20px}.data-display{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:15px;overflow-x:auto}.data-display pre{margin:0;font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.5;color:#333;white-space:pre-wrap;word-wrap:break-word}.no-api-url{padding:20px;text-align:center;color:#666;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-top:20px}.no-api-url p{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.JsonPipe, name: "json" }] });
67
76
  }
68
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: Fb, decorators: [{
69
78
  type: Component,
70
- args: [{ selector: 'lib-fb', imports: [CommonModule, FormsModule], template: "<div class=\"fb-container\">\n <div class=\"fb-header\">\n <h2>Welcome, {{ name }}!</h2>\n <div class=\"name-input-section\">\n <input \n type=\"text\" \n [(ngModel)]=\"name\" \n (ngModelChange)=\"changeName(name)\"\n placeholder=\"Enter your name\"\n class=\"name-input\"\n />\n </div>\n </div>\n\n <div class=\"api-section\" *ngIf=\"apiUrl\">\n <div class=\"api-controls\">\n <button (click)=\"refreshData()\" [disabled]=\"isLoading\" class=\"refresh-btn\">\n {{ isLoading ? 'Loading...' : 'Refresh Data' }}\n </button>\n </div>\n\n <div class=\"loading\" *ngIf=\"isLoading\">\n <p>Loading data from API...</p>\n </div>\n\n <div class=\"error\" *ngIf=\"error && !isLoading\">\n <p><strong>Error:</strong> {{ error }}</p>\n </div>\n\n <div class=\"api-data\" *ngIf=\"apiData && !isLoading && !error\">\n <h3>API Response Data:</h3>\n <div class=\"data-display\">\n <pre>{{ apiData | json }}</pre>\n </div>\n </div>\n </div>\n\n <div class=\"no-api-url\" *ngIf=\"!apiUrl\">\n <p>No API URL provided. Please set the apiUrl input to fetch data.</p>\n </div>\n</div>\n\n", styles: [".fb-container{padding:20px;max-width:800px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.fb-header{margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e0e0e0}.fb-header h2{margin:0 0 15px;color:#333;font-size:24px}.name-input-section{margin-top:15px}.name-input{width:100%;max-width:300px;padding:10px 15px;font-size:16px;border:2px solid #ddd;border-radius:4px;transition:border-color .3s ease}.name-input:focus{outline:none;border-color:#007bff}.api-section{margin-top:30px}.api-controls{margin-bottom:20px}.refresh-btn{padding:10px 20px;font-size:16px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease}.refresh-btn:hover:not(:disabled){background-color:#0056b3}.refresh-btn:disabled{background-color:#ccc;cursor:not-allowed}.loading{padding:20px;text-align:center;color:#666;background-color:#f8f9fa;border-radius:4px;margin:20px 0}.error{padding:15px;background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;margin:20px 0}.error p{margin:0}.api-data{margin-top:20px}.api-data h3{margin:0 0 15px;color:#333;font-size:20px}.data-display{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:15px;overflow-x:auto}.data-display pre{margin:0;font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.5;color:#333;white-space:pre-wrap;word-wrap:break-word}.no-api-url{padding:20px;text-align:center;color:#666;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-top:20px}.no-api-url p{margin:0}\n"] }]
71
- }], ctorParameters: () => [{ type: i1.HttpClient }], propDecorators: { name: [{
79
+ args: [{ selector: 'lib-fb', standalone: true, imports: [CommonModule, FormsModule], template: "<div class=\"fb-container\">\n <div class=\"fb-header\">\n <h2>Welcome, {{ name }}!</h2>\n <div class=\"name-input-section\">\n <input \n type=\"text\" \n [(ngModel)]=\"name\" \n (ngModelChange)=\"changeName(name)\"\n placeholder=\"Enter your name\"\n class=\"name-input\"\n />\n </div>\n </div>\n\n @if (orgId && questionnaireId && token; as isDataAvailable) {\n <div class=\"api-section\">\n <div class=\"api-controls\">\n <button (click)=\"refreshData()\" [disabled]=\"isLoading\" class=\"refresh-btn\">\n {{ isLoading ? 'Loading...' : 'Refresh Data' }}\n </button>\n </div>\n\n @if (isLoading) {\n <div class=\"loading\">\n <p>Loading data from API...</p>\n </div>\n }\n @if (error && !isLoading) {\n <div class=\"error\">\n <p><strong>Error:</strong> {{ error }}</p>\n </div>\n }\n @if (apiData && !isLoading && !error) {\n <div class=\"api-data\">\n <h3>API Response Data:</h3>\n <div class=\"data-display\">\n <pre>{{ apiData | json }}</pre>\n </div>\n </div>\n }\n </div>\n }\n\n @else {\n <div class=\"no-api-url\">\n <p>No data available. Please set the orgId, questionnaireId, and token inputs to fetch data.</p>\n </div>\n }\n</div>\n\n", styles: [".fb-container{padding:20px;max-width:800px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.fb-header{margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #e0e0e0}.fb-header h2{margin:0 0 15px;color:#333;font-size:24px}.name-input-section{margin-top:15px}.name-input{width:100%;max-width:300px;padding:10px 15px;font-size:16px;border:2px solid #ddd;border-radius:4px;transition:border-color .3s ease}.name-input:focus{outline:none;border-color:#007bff}.api-section{margin-top:30px}.api-controls{margin-bottom:20px}.refresh-btn{padding:10px 20px;font-size:16px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease}.refresh-btn:hover:not(:disabled){background-color:#0056b3}.refresh-btn:disabled{background-color:#ccc;cursor:not-allowed}.loading{padding:20px;text-align:center;color:#666;background-color:#f8f9fa;border-radius:4px;margin:20px 0}.error{padding:15px;background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;margin:20px 0}.error p{margin:0}.api-data{margin-top:20px}.api-data h3{margin:0 0 15px;color:#333;font-size:20px}.data-display{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:15px;overflow-x:auto}.data-display pre{margin:0;font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.5;color:#333;white-space:pre-wrap;word-wrap:break-word}.no-api-url{padding:20px;text-align:center;color:#666;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-top:20px}.no-api-url p{margin:0}\n"] }]
80
+ }], ctorParameters: () => [{ type: i1.HttpClient, decorators: [{
81
+ type: Optional
82
+ }] }], propDecorators: { name: [{
83
+ type: Input
84
+ }], orgId: [{
85
+ type: Input
86
+ }], questionnaireId: [{
72
87
  type: Input
73
- }], apiUrl: [{
88
+ }], token: [{
74
89
  type: Input
75
- }], nameChange: [{
76
- type: Output
77
- }], dataLoaded: [{
78
- type: Output
79
90
  }] } });
80
91
 
81
92
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"pridheep16-ng-fb.mjs","sources":["../../../projects/fb/src/lib/fb.ts","../../../projects/fb/src/lib/fb.html","../../../projects/fb/src/public-api.ts","../../../projects/fb/src/pridheep16-ng-fb.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'lib-fb',\n imports: [CommonModule, FormsModule],\n templateUrl: './fb.html',\n styleUrls: ['./fb.scss'],\n})\nexport class Fb implements OnInit {\n @Input() name: string = 'Pridheep';\n @Input() apiUrl: string = '';\n @Output() nameChange = new EventEmitter<string>();\n @Output() dataLoaded = new EventEmitter<any>();\n\n apiData: any = null;\n isLoading: boolean = false;\n error: string | null = null;\n\n constructor(private http: HttpClient) {\n this.nameChange.emit(this.name);\n }\n\n ngOnInit() {\n if (this.apiUrl) {\n this.fetchData();\n }\n }\n\n changeName(name: string) {\n this.name = name;\n this.nameChange.emit(name);\n }\n\n fetchData(): void {\n if (!this.apiUrl) {\n console.warn('API URL is not provided');\n return;\n }\n \n this.isLoading = true;\n this.error = null;\n this.apiData = null;\n \n this.http.get<any>(this.apiUrl).subscribe({\n next: (data) => {\n this.apiData = data;\n this.isLoading = false;\n this.dataLoaded.emit(data);\n },\n error: (error) => {\n this.isLoading = false;\n this.error = error.message || 'Failed to fetch data from API';\n console.error('Error fetching data from API:', error);\n this.dataLoaded.emit(null);\n }\n });\n }\n\n getData(apiUrl?: string): Observable<any> {\n const url = apiUrl || this.apiUrl;\n if (!url) {\n console.warn('API URL is not provided');\n return new Observable(observer => observer.complete());\n }\n return this.http.get<any>(url);\n }\n\n refreshData(): void {\n this.fetchData();\n }\n}\n","<div class=\"fb-container\">\n <div class=\"fb-header\">\n <h2>Welcome, {{ name }}!</h2>\n <div class=\"name-input-section\">\n <input \n type=\"text\" \n [(ngModel)]=\"name\" \n (ngModelChange)=\"changeName(name)\"\n placeholder=\"Enter your name\"\n class=\"name-input\"\n />\n </div>\n </div>\n\n <div class=\"api-section\" *ngIf=\"apiUrl\">\n <div class=\"api-controls\">\n <button (click)=\"refreshData()\" [disabled]=\"isLoading\" class=\"refresh-btn\">\n {{ isLoading ? 'Loading...' : 'Refresh Data' }}\n </button>\n </div>\n\n <div class=\"loading\" *ngIf=\"isLoading\">\n <p>Loading data from API...</p>\n </div>\n\n <div class=\"error\" *ngIf=\"error && !isLoading\">\n <p><strong>Error:</strong> {{ error }}</p>\n </div>\n\n <div class=\"api-data\" *ngIf=\"apiData && !isLoading && !error\">\n <h3>API Response Data:</h3>\n <div class=\"data-display\">\n <pre>{{ apiData | json }}</pre>\n </div>\n </div>\n </div>\n\n <div class=\"no-api-url\" *ngIf=\"!apiUrl\">\n <p>No API URL provided. Please set the apiUrl input to fetch data.</p>\n </div>\n</div>\n\n","/*\n * Public API Surface of fb\n */\n\nexport * from './lib/fb';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pridheep16-ng-fb.mjs","sources":["../../../projects/fb/src/lib/fb.ts","../../../projects/fb/src/lib/fb.html","../../../projects/fb/src/public-api.ts","../../../projects/fb/src/pridheep16-ng-fb.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, OnInit, Optional } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'lib-fb',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './fb.html',\n styleUrls: ['./fb.scss'],\n})\nexport class Fb implements OnInit {\n @Input() name: string = 'Pridheep';\n @Input() orgId: any = null;\n @Input() questionnaireId: any = null;\n @Input() token: string = '';\n apiData: any = null;\n isLoading: boolean = false;\n error: string | null = null;\n baseUrl: string = 'https://slqy53w3xc.execute-api.ap-south-1.amazonaws.com/core-service/api/v1/';\n\n constructor(@Optional() private http: HttpClient | null) {\n // this.nameChange.emit(this.name);\n }\n\n ngOnInit() {\n if (this.orgId && this.questionnaireId && this.token) {\n this.fetchData();\n }\n }\n\n changeName(name: string) {\n this.name = name;\n }\n\n fetchData(): void {\n if (!this.orgId || !this.questionnaireId || !this.token) {\n console.warn('API URL is not provided');\n return;\n }\n\n if (!this.http) {\n this.error = 'HttpClient is not available. Please import HttpClientModule in your application.';\n console.error('HttpClient is not available');\n return;\n }\n \n this.isLoading = true;\n this.error = null;\n this.apiData = null;\n \n this.http.get<any>(this.baseUrl + '/' + this.orgId + '/' + this.questionnaireId + '/' + this.token).subscribe({\n next: (data) => {\n this.apiData = data;\n this.isLoading = false;\n },\n error: (error) => {\n this.isLoading = false;\n this.error = error.message || 'Failed to fetch data from API';\n console.error('Error fetching data from API:', error);\n }\n });\n }\n\n // getData(): Observable<any> {\n // const url = this.baseUrl + '/' + this.orgId + '/' + this.questionnaireId + '/' + this.token;\n // if (!url) {\n // console.warn('API URL is not provided');\n // return new Observable(observer => observer.complete());\n // }\n // if (!this.http) {\n // console.error('HttpClient is not available');\n // return new Observable(observer => {\n // observer.error('HttpClient is not available');\n // observer.complete();\n // });\n // }\n // return this.http.get<any>(url);\n // }\n\n refreshData(): void {\n this.fetchData();\n }\n}\n","<div class=\"fb-container\">\n <div class=\"fb-header\">\n <h2>Welcome, {{ name }}!</h2>\n <div class=\"name-input-section\">\n <input \n type=\"text\" \n [(ngModel)]=\"name\" \n (ngModelChange)=\"changeName(name)\"\n placeholder=\"Enter your name\"\n class=\"name-input\"\n />\n </div>\n </div>\n\n @if (orgId && questionnaireId && token; as isDataAvailable) {\n <div class=\"api-section\">\n <div class=\"api-controls\">\n <button (click)=\"refreshData()\" [disabled]=\"isLoading\" class=\"refresh-btn\">\n {{ isLoading ? 'Loading...' : 'Refresh Data' }}\n </button>\n </div>\n\n @if (isLoading) {\n <div class=\"loading\">\n <p>Loading data from API...</p>\n </div>\n }\n @if (error && !isLoading) {\n <div class=\"error\">\n <p><strong>Error:</strong> {{ error }}</p>\n </div>\n }\n @if (apiData && !isLoading && !error) {\n <div class=\"api-data\">\n <h3>API Response Data:</h3>\n <div class=\"data-display\">\n <pre>{{ apiData | json }}</pre>\n </div>\n </div>\n }\n </div>\n }\n\n @else {\n <div class=\"no-api-url\">\n <p>No data available. Please set the orgId, questionnaireId, and token inputs to fetch data.</p>\n </div>\n }\n</div>\n\n","/*\n * Public API Surface of fb\n */\n\nexport * from './lib/fb';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,25 +1,24 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, EventEmitter } from '@angular/core';
2
+ import { OnInit } from '@angular/core';
3
3
  import { HttpClient } from '@angular/common/http';
4
- import { Observable } from 'rxjs';
5
4
 
6
5
  declare class Fb implements OnInit {
7
6
  private http;
8
7
  name: string;
9
- apiUrl: string;
10
- nameChange: EventEmitter<string>;
11
- dataLoaded: EventEmitter<any>;
8
+ orgId: any;
9
+ questionnaireId: any;
10
+ token: string;
12
11
  apiData: any;
13
12
  isLoading: boolean;
14
13
  error: string | null;
15
- constructor(http: HttpClient);
14
+ baseUrl: string;
15
+ constructor(http: HttpClient | null);
16
16
  ngOnInit(): void;
17
17
  changeName(name: string): void;
18
18
  fetchData(): void;
19
- getData(apiUrl?: string): Observable<any>;
20
19
  refreshData(): void;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<Fb, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<Fb, "lib-fb", never, { "name": { "alias": "name"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; }, { "nameChange": "nameChange"; "dataLoaded": "dataLoaded"; }, never, never, true, never>;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<Fb, [{ optional: true; }]>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<Fb, "lib-fb", never, { "name": { "alias": "name"; "required": false; }; "orgId": { "alias": "orgId"; "required": false; }; "questionnaireId": { "alias": "questionnaireId"; "required": false; }; "token": { "alias": "token"; "required": false; }; }, {}, never, never, true, never>;
23
22
  }
24
23
 
25
24
  export { Fb };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@pridheep16/ng-fb",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "peerDependencies": {
5
- "@angular/common": "^20.3.0",
6
- "@angular/core": "^20.3.0",
5
+ "@angular/common": "^18.0.0",
6
+ "@angular/core": "^18.0.0",
7
7
  "rxjs": "^7.8.0"
8
8
  },
9
9
  "dependencies": {