sn-button-x 0.0.1004 → 0.0.1005

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.
@@ -0,0 +1,120 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, EventEmitter, inject, booleanAttribute, Input, Output, Component } from '@angular/core';
3
+ import * as allIcons from '@fortawesome/free-solid-svg-icons';
4
+ import { faCoffee, fa0 } from '@fortawesome/free-solid-svg-icons';
5
+ import * as i1 from '@angular/common';
6
+ import { TitleCasePipe, CommonModule, NgClass } from '@angular/common';
7
+ import { FaIconComponent } from '@fortawesome/angular-fontawesome';
8
+
9
+ class SnButtonService {
10
+ constructor() {
11
+ this.iconDefinitions = new Map();
12
+ let all = { ...allIcons };
13
+ let key;
14
+ for (key in all) {
15
+ this.iconDefinitions.set(key.substring(2).toLowerCase(), all[key]);
16
+ }
17
+ //console.log(all);
18
+ // this.iconDefinitions.set('coffee', faCoffee);
19
+ // this.iconDefinitions.set('info', faInfo);
20
+ }
21
+ getCurrentIcon(iconName) {
22
+ let icon = allIcons.faInfo;
23
+ if (this.iconDefinitions.has(iconName.toLowerCase())) {
24
+ icon = this.iconDefinitions.get(iconName.toLowerCase()) || icon;
25
+ }
26
+ return icon;
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SnButtonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SnButtonService, providedIn: 'root' }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SnButtonService, decorators: [{
32
+ type: Injectable,
33
+ args: [{
34
+ providedIn: 'root',
35
+ }]
36
+ }], ctorParameters: () => [] });
37
+
38
+ class SnButtonComponent {
39
+ constructor() {
40
+ this.type = 'submit';
41
+ this.text = 'Default';
42
+ this.disabled = false;
43
+ this.rounded = false;
44
+ this.filled = false;
45
+ this.raised = false;
46
+ this.icon = '';
47
+ this.clickBtn = new EventEmitter();
48
+ this.scheme = 'default';
49
+ this.titleCase = new TitleCasePipe();
50
+ this.currentClasses = {};
51
+ this.faCoffee = faCoffee;
52
+ this.currentIcon = fa0;
53
+ this.service = inject(SnButtonService);
54
+ this._styles = {
55
+ primary: 'primary',
56
+ warn: 'warn',
57
+ danger: 'danger',
58
+ success: 'success',
59
+ };
60
+ }
61
+ ngOnInit() {
62
+ this.setCurrentClasses();
63
+ this.currentIcon = this.service.getCurrentIcon(this.titleCase.transform(this.icon));
64
+ if (this.icon === 'coffee') {
65
+ console.log(this.currentIcon);
66
+ }
67
+ }
68
+ onClickBtn(clickEvent) {
69
+ this.clickBtn?.emit([clickEvent]);
70
+ }
71
+ setCurrentClasses() {
72
+ const scheme = this.scheme;
73
+ this.currentClasses = {
74
+ 'sn-button': true,
75
+ rounded: this.rounded,
76
+ filled: this.filled,
77
+ raised: this.raised,
78
+ };
79
+ this.currentClasses[scheme] = true;
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SnButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SnButtonComponent, isStandalone: true, selector: "sn-button-x", inputs: { type: "type", text: "text", disabled: ["disabled", "disabled", booleanAttribute], rounded: ["rounded", "rounded", booleanAttribute], filled: ["filled", "filled", booleanAttribute], raised: ["raised", "raised", booleanAttribute], icon: "icon", scheme: "scheme" }, outputs: { clickBtn: "clickBtn" }, providers: [SnButtonService], ngImport: i0, template: "<button [type]=\"type\" [disabled]=\"disabled\" [ngClass]=\"currentClasses\"\n(click)=\"onClickBtn($event)\"\n>\n @if(icon){\n <span class=\"icon\">\n <fa-icon [icon]=\"currentIcon\"></fa-icon>\n </span>\n }\n <ng-content></ng-content>\n</button>", styles: [":root{--background-color: #ffffff;--primary-color: #0078d7;--warn-color: #ffb900;--danger-color: #e81123;--success-color: #00cc6a;--light-grey-color: #ececec;--grey-1: #9e9e9e;--label-color: #4c4a48;--black-color: #000000;--black-1: #212121}@tailwind base;@tailwind components;@tailwind utilities;.sn-button{border-width:0;border:none;border:1px solid var(#ececec);background-color:#fff;border-radius:.225rem;font-size:small;padding:.625rem;transition:1.2s background-color}.sn-button:hover:not(:disabled){background-color:#fff;color:#fff}.sn-button.rounded{border-radius:2rem}.sn-button.raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.sn-button.default:not(:disabled){color:#212121}.sn-button.default.filled:not(:disabled){color:var(--background-color);background-color:#212121}.sn-button.default-outlined:not([disabled]){color:#212121;background-color:transparent;border:1px solid #212121}.sn-button.default-outlined:not([disabled]):hover:not(:disabled){background-color:#212121;color:var(--background-color)}.sn-button.default:hover:not(:disabled){background-color:#212121}.sn-button.default:hover:enabled{color:var(--background-color)}.sn-button.primary:not(:disabled){color:var(--primary-color)}.sn-button.primary.filled:not(:disabled){color:var(--background-color);background-color:var(--primary-color)}.sn-button.primary-outlined:not([disabled]){color:var(--primary-color);background-color:transparent;border:1px solid var(--primary-color)}.sn-button.primary-outlined:not([disabled]):hover:not(:disabled){background-color:var(--primary-color);color:var(--background-color)}.sn-button.primary:hover:not(:disabled){background-color:var(--primary-color)}.sn-button.primary:hover:enabled{color:var(--background-color)}.sn-button.warn:not(:disabled){color:var(--warn-color)}.sn-button.warn.filled:not(:disabled){color:var(--background-color);background-color:var(--warn-color)}.sn-button.warn-outlined:not([disabled]){color:var(--warn-color);background-color:transparent;border:1px solid var(--warn-color)}.sn-button.warn-outlined:not([disabled]):hover:not(:disabled){background-color:var(--warn-color);color:var(--background-color)}.sn-button.warn:hover:not(:disabled){background-color:var(--warn-color)}.sn-button.warn:hover:enabled{color:var(--background-color)}.sn-button.danger:not(:disabled){color:var(--danger-color)}.sn-button.danger.filled:not(:disabled){color:var(--background-color);background-color:var(--danger-color)}.sn-button.danger-outlined:not([disabled]){color:var(--danger-color);background-color:transparent;border:1px solid var(--danger-color)}.sn-button.danger-outlined:not([disabled]):hover:not(:disabled){background-color:var(--danger-color);color:var(--background-color)}.sn-button.danger:hover:not(:disabled){background-color:var(--danger-color)}.sn-button.danger:hover:enabled{color:var(--background-color)}.sn-button.success:not(:disabled){color:var(--success-color)}.sn-button.success.filled:not(:disabled){color:var(--background-color);background-color:var(--success-color)}.sn-button.success-outlined:not([disabled]){color:var(--success-color);background-color:transparent;border:1px solid var(--success-color)}.sn-button.success-outlined:not([disabled]):hover:not(:disabled){background-color:var(--success-color);color:var(--background-color)}.sn-button.success:hover:not(:disabled){background-color:var(--success-color)}.sn-button.success:hover:enabled{color:var(--background-color)}.icon{margin:0 .325rem 0 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }] }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SnButtonComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'sn-button-x', standalone: true, imports: [CommonModule, NgClass, FaIconComponent], providers: [SnButtonService], template: "<button [type]=\"type\" [disabled]=\"disabled\" [ngClass]=\"currentClasses\"\n(click)=\"onClickBtn($event)\"\n>\n @if(icon){\n <span class=\"icon\">\n <fa-icon [icon]=\"currentIcon\"></fa-icon>\n </span>\n }\n <ng-content></ng-content>\n</button>", styles: [":root{--background-color: #ffffff;--primary-color: #0078d7;--warn-color: #ffb900;--danger-color: #e81123;--success-color: #00cc6a;--light-grey-color: #ececec;--grey-1: #9e9e9e;--label-color: #4c4a48;--black-color: #000000;--black-1: #212121}@tailwind base;@tailwind components;@tailwind utilities;.sn-button{border-width:0;border:none;border:1px solid var(#ececec);background-color:#fff;border-radius:.225rem;font-size:small;padding:.625rem;transition:1.2s background-color}.sn-button:hover:not(:disabled){background-color:#fff;color:#fff}.sn-button.rounded{border-radius:2rem}.sn-button.raised{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.sn-button.default:not(:disabled){color:#212121}.sn-button.default.filled:not(:disabled){color:var(--background-color);background-color:#212121}.sn-button.default-outlined:not([disabled]){color:#212121;background-color:transparent;border:1px solid #212121}.sn-button.default-outlined:not([disabled]):hover:not(:disabled){background-color:#212121;color:var(--background-color)}.sn-button.default:hover:not(:disabled){background-color:#212121}.sn-button.default:hover:enabled{color:var(--background-color)}.sn-button.primary:not(:disabled){color:var(--primary-color)}.sn-button.primary.filled:not(:disabled){color:var(--background-color);background-color:var(--primary-color)}.sn-button.primary-outlined:not([disabled]){color:var(--primary-color);background-color:transparent;border:1px solid var(--primary-color)}.sn-button.primary-outlined:not([disabled]):hover:not(:disabled){background-color:var(--primary-color);color:var(--background-color)}.sn-button.primary:hover:not(:disabled){background-color:var(--primary-color)}.sn-button.primary:hover:enabled{color:var(--background-color)}.sn-button.warn:not(:disabled){color:var(--warn-color)}.sn-button.warn.filled:not(:disabled){color:var(--background-color);background-color:var(--warn-color)}.sn-button.warn-outlined:not([disabled]){color:var(--warn-color);background-color:transparent;border:1px solid var(--warn-color)}.sn-button.warn-outlined:not([disabled]):hover:not(:disabled){background-color:var(--warn-color);color:var(--background-color)}.sn-button.warn:hover:not(:disabled){background-color:var(--warn-color)}.sn-button.warn:hover:enabled{color:var(--background-color)}.sn-button.danger:not(:disabled){color:var(--danger-color)}.sn-button.danger.filled:not(:disabled){color:var(--background-color);background-color:var(--danger-color)}.sn-button.danger-outlined:not([disabled]){color:var(--danger-color);background-color:transparent;border:1px solid var(--danger-color)}.sn-button.danger-outlined:not([disabled]):hover:not(:disabled){background-color:var(--danger-color);color:var(--background-color)}.sn-button.danger:hover:not(:disabled){background-color:var(--danger-color)}.sn-button.danger:hover:enabled{color:var(--background-color)}.sn-button.success:not(:disabled){color:var(--success-color)}.sn-button.success.filled:not(:disabled){color:var(--background-color);background-color:var(--success-color)}.sn-button.success-outlined:not([disabled]){color:var(--success-color);background-color:transparent;border:1px solid var(--success-color)}.sn-button.success-outlined:not([disabled]):hover:not(:disabled){background-color:var(--success-color);color:var(--background-color)}.sn-button.success:hover:not(:disabled){background-color:var(--success-color)}.sn-button.success:hover:enabled{color:var(--background-color)}.icon{margin:0 .325rem 0 0}\n"] }]
87
+ }], propDecorators: { type: [{
88
+ type: Input
89
+ }], text: [{
90
+ type: Input
91
+ }], disabled: [{
92
+ type: Input,
93
+ args: [{ transform: booleanAttribute }]
94
+ }], rounded: [{
95
+ type: Input,
96
+ args: [{ transform: booleanAttribute }]
97
+ }], filled: [{
98
+ type: Input,
99
+ args: [{ transform: booleanAttribute }]
100
+ }], raised: [{
101
+ type: Input,
102
+ args: [{ transform: booleanAttribute }]
103
+ }], icon: [{
104
+ type: Input
105
+ }], clickBtn: [{
106
+ type: Output
107
+ }], scheme: [{
108
+ type: Input
109
+ }] } });
110
+
111
+ /*
112
+ * Public API Surface of sn-button
113
+ */
114
+
115
+ /**
116
+ * Generated bundle index. Do not edit.
117
+ */
118
+
119
+ export { SnButtonComponent, SnButtonService };
120
+ //# sourceMappingURL=sn-button-x.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sn-button-x.mjs","sources":["../../../projects/sn-button-x/src/lib/sn-button-x.service.ts","../../../projects/sn-button-x/src/lib/sn-button-x.component.ts","../../../projects/sn-button-x/src/lib/sn-button-x.html","../../../projects/sn-button-x/src/public-api.ts","../../../projects/sn-button-x/src/sn-button-x.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n IconDefinition,\n IconPack,\n IconPrefix,\n} from '@fortawesome/fontawesome-svg-core';\nimport * as allIcons from '@fortawesome/free-solid-svg-icons';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SnButtonService {\n iconDefinitions: Map<string, IconDefinition | IconPack | IconPrefix> =\n new Map();\n constructor() {\n let all = { ...allIcons };\n let key: keyof typeof allIcons;\n for (key in all) {\n this.iconDefinitions.set(key.substring(2).toLowerCase(), all[key]);\n }\n\n //console.log(all);\n // this.iconDefinitions.set('coffee', faCoffee);\n // this.iconDefinitions.set('info', faInfo);\n }\n\n getCurrentIcon(iconName: string): any {\n let icon: IconDefinition | IconPack | IconPrefix = allIcons.faInfo;\n if (this.iconDefinitions.has(iconName.toLowerCase())) {\n icon = this.iconDefinitions.get(iconName.toLowerCase()) || icon;\n }\n return icon;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { CommonModule, NgClass, TitleCasePipe } from '@angular/common';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport {\n IconDefinition,\n fa0,\n faCoffee,\n} from '@fortawesome/free-solid-svg-icons';\nimport { SnButtonService } from './sn-button-x.service';\n\n@Component({\n selector: 'sn-button-x',\n standalone: true,\n imports: [CommonModule, NgClass, FaIconComponent],\n providers: [SnButtonService],\n templateUrl: './sn-button-x.html',\n styleUrl: 'sn-button-x.scss',\n})\nexport class SnButtonComponent implements OnInit {\n @Input() type: string = 'submit';\n @Input() text: string = 'Default';\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n @Input({ transform: booleanAttribute }) rounded: boolean = false;\n @Input({ transform: booleanAttribute }) filled: boolean = false;\n @Input({ transform: booleanAttribute }) raised: boolean = false;\n @Input() icon: string = '';\n @Output() clickBtn:EventEmitter<any>= new EventEmitter(); \n\n @Input() scheme: string = 'default';\n\n titleCase: TitleCasePipe = new TitleCasePipe();\n\n currentClasses: Record<string, boolean> = {};\n faCoffee = faCoffee;\n currentIcon: IconDefinition = fa0;\n service = inject(SnButtonService);\n\n _styles: any = {\n primary: 'primary',\n warn: 'warn',\n danger: 'danger',\n success: 'success',\n };\n\n ngOnInit(): void {\n this.setCurrentClasses();\n this.currentIcon = this.service.getCurrentIcon(\n this.titleCase.transform(this.icon)\n );\n if (this.icon === 'coffee') {\n console.log(this.currentIcon);\n }\n }\n\n onClickBtn(clickEvent:any){\n this.clickBtn?.emit([clickEvent]);\n }\n\n setCurrentClasses() {\n const scheme = this.scheme;\n this.currentClasses = {\n 'sn-button': true,\n rounded: this.rounded,\n filled: this.filled,\n raised: this.raised,\n };\n this.currentClasses[scheme] = true;\n }\n}\n","<button [type]=\"type\" [disabled]=\"disabled\" [ngClass]=\"currentClasses\"\n(click)=\"onClickBtn($event)\"\n>\n @if(icon){\n <span class=\"icon\">\n <fa-icon [icon]=\"currentIcon\"></fa-icon>\n </span>\n }\n <ng-content></ng-content>\n</button>","/*\n * Public API Surface of sn-button\n */\n\nexport * from './lib/sn-button-x.service';\nexport * from './lib/sn-button-x.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sn-button-x",
3
- "version": "0.0.1004",
3
+ "version": "0.0.1005",
4
4
  "description": "SnButton is an Angular 21 standalone component ",
5
5
  "author": {
6
6
  "name": "Swapnil Nakate",
@@ -37,5 +37,16 @@
37
37
  "url": "https://github.com/swapnilnakate7/sn-ui",
38
38
  "type": "git"
39
39
  },
40
- "license": "MIT"
41
- }
40
+ "license": "MIT",
41
+ "module": "fesm2022/sn-button-x.mjs",
42
+ "typings": "types/sn-button-x.d.ts",
43
+ "exports": {
44
+ "./package.json": {
45
+ "default": "./package.json"
46
+ },
47
+ ".": {
48
+ "types": "./types/sn-button-x.d.ts",
49
+ "default": "./fesm2022/sn-button-x.mjs"
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,42 @@
1
+ import { IconDefinition, IconPack, IconPrefix } from '@fortawesome/fontawesome-svg-core';
2
+ import * as i0 from '@angular/core';
3
+ import { OnInit, EventEmitter } from '@angular/core';
4
+ import { TitleCasePipe } from '@angular/common';
5
+ import { IconDefinition as IconDefinition$1 } from '@fortawesome/free-solid-svg-icons';
6
+
7
+ declare class SnButtonService {
8
+ iconDefinitions: Map<string, IconDefinition | IconPack | IconPrefix>;
9
+ constructor();
10
+ getCurrentIcon(iconName: string): any;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnButtonService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<SnButtonService>;
13
+ }
14
+
15
+ declare class SnButtonComponent implements OnInit {
16
+ type: string;
17
+ text: string;
18
+ disabled: boolean;
19
+ rounded: boolean;
20
+ filled: boolean;
21
+ raised: boolean;
22
+ icon: string;
23
+ clickBtn: EventEmitter<any>;
24
+ scheme: string;
25
+ titleCase: TitleCasePipe;
26
+ currentClasses: Record<string, boolean>;
27
+ faCoffee: IconDefinition$1;
28
+ currentIcon: IconDefinition$1;
29
+ service: SnButtonService;
30
+ _styles: any;
31
+ ngOnInit(): void;
32
+ onClickBtn(clickEvent: any): void;
33
+ setCurrentClasses(): void;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<SnButtonComponent, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<SnButtonComponent, "sn-button-x", never, { "type": { "alias": "type"; "required": false; }; "text": { "alias": "text"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "filled": { "alias": "filled"; "required": false; }; "raised": { "alias": "raised"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "scheme": { "alias": "scheme"; "required": false; }; }, { "clickBtn": "clickBtn"; }, never, ["*"], true, never>;
36
+ static ngAcceptInputType_disabled: unknown;
37
+ static ngAcceptInputType_rounded: unknown;
38
+ static ngAcceptInputType_filled: unknown;
39
+ static ngAcceptInputType_raised: unknown;
40
+ }
41
+
42
+ export { SnButtonComponent, SnButtonService };
package/ng-package.json DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
- "dest": "../../dist/sn-button-x",
4
- "lib": {
5
- "entryFile": "src/public-api.ts"
6
- }
7
- }
@@ -1,23 +0,0 @@
1
- import { ComponentFixture, TestBed } from '@angular/core/testing';
2
-
3
- import { SnButtonComponent } from './sn-button-x.component';
4
-
5
- describe('SnButtonComponent', () => {
6
- let component: SnButtonComponent;
7
- let fixture: ComponentFixture<SnButtonComponent>;
8
-
9
- beforeEach(async () => {
10
- await TestBed.configureTestingModule({
11
- imports: [SnButtonComponent]
12
- })
13
- .compileComponents();
14
-
15
- fixture = TestBed.createComponent(SnButtonComponent);
16
- component = fixture.componentInstance;
17
- fixture.detectChanges();
18
- });
19
-
20
- it('should create', () => {
21
- expect(component).toBeTruthy();
22
- });
23
- });
@@ -1,77 +0,0 @@
1
- import {
2
- Component,
3
- EventEmitter,
4
- Input,
5
- OnInit,
6
- Output,
7
- booleanAttribute,
8
- inject,
9
- } from '@angular/core';
10
- import { CommonModule, NgClass, TitleCasePipe } from '@angular/common';
11
- import { FaIconComponent } from '@fortawesome/angular-fontawesome';
12
- import {
13
- IconDefinition,
14
- fa0,
15
- faCoffee,
16
- } from '@fortawesome/free-solid-svg-icons';
17
- import { SnButtonService } from './sn-button-x.service';
18
-
19
- @Component({
20
- selector: 'sn-button-x',
21
- standalone: true,
22
- imports: [CommonModule, NgClass, FaIconComponent],
23
- providers: [SnButtonService],
24
- templateUrl: './sn-button-x.html',
25
- styleUrl: 'sn-button-x.scss',
26
- })
27
- export class SnButtonComponent implements OnInit {
28
- @Input() type: string = 'submit';
29
- @Input() text: string = 'Default';
30
- @Input({ transform: booleanAttribute }) disabled: boolean = false;
31
- @Input({ transform: booleanAttribute }) rounded: boolean = false;
32
- @Input({ transform: booleanAttribute }) filled: boolean = false;
33
- @Input({ transform: booleanAttribute }) raised: boolean = false;
34
- @Input() icon: string = '';
35
- @Output() clickBtn:EventEmitter<any>= new EventEmitter();
36
-
37
- @Input() scheme: string = 'default';
38
-
39
- titleCase: TitleCasePipe = new TitleCasePipe();
40
-
41
- currentClasses: Record<string, boolean> = {};
42
- faCoffee = faCoffee;
43
- currentIcon: IconDefinition = fa0;
44
- service = inject(SnButtonService);
45
-
46
- _styles: any = {
47
- primary: 'primary',
48
- warn: 'warn',
49
- danger: 'danger',
50
- success: 'success',
51
- };
52
-
53
- ngOnInit(): void {
54
- this.setCurrentClasses();
55
- this.currentIcon = this.service.getCurrentIcon(
56
- this.titleCase.transform(this.icon)
57
- );
58
- if (this.icon === 'coffee') {
59
- console.log(this.currentIcon);
60
- }
61
- }
62
-
63
- onClickBtn(clickEvent:any){
64
- this.clickBtn?.emit([clickEvent]);
65
- }
66
-
67
- setCurrentClasses() {
68
- const scheme = this.scheme;
69
- this.currentClasses = {
70
- 'sn-button': true,
71
- rounded: this.rounded,
72
- filled: this.filled,
73
- raised: this.raised,
74
- };
75
- this.currentClasses[scheme] = true;
76
- }
77
- }
@@ -1,10 +0,0 @@
1
- <button [type]="type" [disabled]="disabled" [ngClass]="currentClasses"
2
- (click)="onClickBtn($event)"
3
- >
4
- @if(icon){
5
- <span class="icon">
6
- <fa-icon [icon]="currentIcon"></fa-icon>
7
- </span>
8
- }
9
- <ng-content></ng-content>
10
- </button>
@@ -1,93 +0,0 @@
1
- // $primaryColor: #0078d7;
2
- // $warnColor: #ffb900;
3
- // $dangerColor: #e81123;
4
- // $successColor: #00cc6a;
5
- // $backgroundColor: #ffffff;
6
- // $black: #212121;
7
- // $lightaGreyColor: #ececec;
8
- // $grey1: #9e9e9e;
9
- // $labelColor: #4c4a48;
10
- // $blackColor: #000000;
11
- // $black1: #212121;
12
-
13
- @use '../../../../src/scss/colors';
14
- @use '../../../../src/scss/_mixins';
15
- @tailwind base;
16
- @tailwind components;
17
- @tailwind utilities;
18
-
19
- // @mixin generateStyle($color, $bgColor: $backgroundColor) {
20
- // &:not(:disabled) {
21
- // color: $color;
22
- // }
23
-
24
- // &.filled:not(:disabled) {
25
- // color: $bgColor;
26
- // background-color: $color;
27
- // }
28
-
29
- // &-outlined:not([disabled]) {
30
- // color: $color;
31
- // background-color: transparent;
32
- // border: 1px solid $color;
33
- // &:hover:not(:disabled) {
34
- // background-color: $color;
35
- // color: $bgColor;
36
- // }
37
- // }
38
- // &:hover:not(:disabled) {
39
- // background-color: $color;
40
- // }
41
- // &:hover:enabled {
42
- // color: $bgColor;
43
- // }
44
- // }
45
-
46
- .sn-button {
47
- border-width: 0;
48
- border: none;
49
- border: 1px solid var(colors.$lightaGreyColor);
50
- background-color: colors.$backgroundColor;
51
- border-radius: 0.225rem;
52
- font-size: small;
53
- padding: 0.625rem;
54
- transition: 1.2s background-color;
55
-
56
- &:hover:not(:disabled) {
57
- background-color: colors.$backgroundColor;
58
- color: colors.$backgroundColor;
59
- }
60
-
61
- &.rounded {
62
- border-radius: 2rem;
63
- }
64
-
65
- &.raised {
66
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2),
67
- 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
68
- }
69
-
70
- &.default {
71
- @include mixins.generateStyle(colors.$black);
72
- }
73
-
74
- &.primary {
75
- @include mixins.generateStyle(colors.$primaryColor);
76
- }
77
-
78
- &.warn {
79
- @include mixins.generateStyle(colors.$warnColor);
80
- }
81
-
82
- &.danger {
83
- @include mixins.generateStyle(colors.$dangerColor);
84
- }
85
-
86
- &.success {
87
- @include mixins.generateStyle(colors.$successColor);
88
- }
89
- }
90
-
91
- .icon {
92
- margin: 0 0.325rem 0 0;
93
- }
@@ -1,16 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
-
3
- import { SnButtonService } from './sn-button-x.service';
4
-
5
- describe('SnButtonService', () => {
6
- let service: SnButtonService;
7
-
8
- beforeEach(() => {
9
- TestBed.configureTestingModule({});
10
- service = TestBed.inject(SnButtonService);
11
- });
12
-
13
- it('should be created', () => {
14
- expect(service).toBeTruthy();
15
- });
16
- });
@@ -1,34 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import {
3
- IconDefinition,
4
- IconPack,
5
- IconPrefix,
6
- } from '@fortawesome/fontawesome-svg-core';
7
- import * as allIcons from '@fortawesome/free-solid-svg-icons';
8
-
9
- @Injectable({
10
- providedIn: 'root',
11
- })
12
- export class SnButtonService {
13
- iconDefinitions: Map<string, IconDefinition | IconPack | IconPrefix> =
14
- new Map();
15
- constructor() {
16
- let all = { ...allIcons };
17
- let key: keyof typeof allIcons;
18
- for (key in all) {
19
- this.iconDefinitions.set(key.substring(2).toLowerCase(), all[key]);
20
- }
21
-
22
- //console.log(all);
23
- // this.iconDefinitions.set('coffee', faCoffee);
24
- // this.iconDefinitions.set('info', faInfo);
25
- }
26
-
27
- getCurrentIcon(iconName: string): any {
28
- let icon: IconDefinition | IconPack | IconPrefix = allIcons.faInfo;
29
- if (this.iconDefinitions.has(iconName.toLowerCase())) {
30
- icon = this.iconDefinitions.get(iconName.toLowerCase()) || icon;
31
- }
32
- return icon;
33
- }
34
- }
package/src/public-api.ts DELETED
@@ -1,6 +0,0 @@
1
- /*
2
- * Public API Surface of sn-button
3
- */
4
-
5
- export * from './lib/sn-button-x.service';
6
- export * from './lib/sn-button-x.component';
package/tsconfig.lib.json DELETED
@@ -1,14 +0,0 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
- {
3
- "extends": "../../tsconfig.json",
4
- "compilerOptions": {
5
- "outDir": "../../out-tsc/lib",
6
- "declaration": true,
7
- "declarationMap": true,
8
- "inlineSources": true,
9
- "types": []
10
- },
11
- "exclude": [
12
- "**/*.spec.ts"
13
- ]
14
- }
@@ -1,10 +0,0 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
- {
3
- "extends": "./tsconfig.lib.json",
4
- "compilerOptions": {
5
- "declarationMap": false
6
- },
7
- "angularCompilerOptions": {
8
- "compilationMode": "partial"
9
- }
10
- }
@@ -1,14 +0,0 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
- {
3
- "extends": "../../tsconfig.json",
4
- "compilerOptions": {
5
- "outDir": "../../out-tsc/spec",
6
- "types": [
7
- "jasmine"
8
- ]
9
- },
10
- "include": [
11
- "**/*.spec.ts",
12
- "**/*.d.ts"
13
- ]
14
- }