sn-button-x 0.0.1002 → 0.0.1004
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/README.md +48 -2
- package/ng-package.json +7 -0
- package/package.json +14 -23
- package/src/lib/sn-button-x.component.spec.ts +23 -0
- package/src/lib/sn-button-x.component.ts +77 -0
- package/src/lib/sn-button-x.html +10 -0
- package/src/lib/sn-button-x.scss +93 -0
- package/src/lib/sn-button-x.service.spec.ts +16 -0
- package/src/lib/sn-button-x.service.ts +34 -0
- package/src/public-api.ts +6 -0
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/esm2022/lib/sn-button.component.mjs +0 -74
- package/esm2022/lib/sn-button.service.mjs +0 -32
- package/esm2022/public-api.mjs +0 -6
- package/esm2022/sn-button-x.mjs +0 -5
- package/fesm2022/sn-button-x.mjs +0 -114
- package/fesm2022/sn-button-x.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/sn-button.component.d.ts +0 -29
- package/lib/sn-button.service.d.ts +0 -9
- package/public-api.d.ts +0 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SnButton
|
|
2
2
|
|
|
3
|
-
Angular
|
|
3
|
+
Angular v21 standalone button component easy to use. It is a part of SnUI Library.
|
|
4
4
|
|
|
5
5
|
## Importing to Project
|
|
6
6
|
|
|
@@ -17,7 +17,7 @@ Angular v17 standalone button component easy to use. It is a part of SnUI Librar
|
|
|
17
17
|
})
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
- use `<sn-button>Submit</sn-button>` element to render a button
|
|
20
|
+
- use `<sn-button-x>Submit</sn-button-x>` element to render a button
|
|
21
21
|
|
|
22
22
|
## Supported properties
|
|
23
23
|
|
|
@@ -34,6 +34,52 @@ Angular v17 standalone button component easy to use. It is a part of SnUI Librar
|
|
|
34
34
|
based on `scheme` , `rounded`,`filled` and `raised` attribute respective button styles are rendered
|
|
35
35
|
`icon` attribute supports font awesome icons
|
|
36
36
|
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
#### Text
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<sn-button-x>Default</sn-button-x>
|
|
43
|
+
<sn-button-x scheme="primary" icon="coffee">Primary</sn-button-x>
|
|
44
|
+
<sn-button-x scheme="warn" icon="viruscovid">Warn</sn-button-x>
|
|
45
|
+
<sn-button-x scheme="danger" icon="bugs">Danger</sn-button-x>
|
|
46
|
+
<sn-button-x scheme="success">Success</sn-button-x>
|
|
47
|
+
<sn-button-x disabled>Default Disabled</sn-button-x>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### Text Rounded
|
|
51
|
+
|
|
52
|
+
```html
|
|
53
|
+
<sn-button-x rounded>Default</sn-button-x>
|
|
54
|
+
<sn-button-x scheme="primary" rounded>Primary</sn-button-x>
|
|
55
|
+
<sn-button-x scheme="warn" rounded>Warn</sn-button-x>
|
|
56
|
+
<sn-button-x scheme="danger" rounded>Danger</sn-button-x>
|
|
57
|
+
<sn-button-x scheme="success" rounded>Success</sn-button-x>
|
|
58
|
+
<sn-button-x disabled rounded>Default Disabled</sn-button-x>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
#### Text Filled
|
|
62
|
+
|
|
63
|
+
```html
|
|
64
|
+
<sn-button-x filled>Default</sn-button-x>
|
|
65
|
+
<sn-button-x scheme="primary" filled>Primary</sn-button-x>
|
|
66
|
+
<sn-button-x scheme="warn" filled>Warn</sn-button-x>
|
|
67
|
+
<sn-button-x scheme="danger" filled>Danger</sn-button-x>
|
|
68
|
+
<sn-button-x scheme="success" filled>Success</sn-button-x>
|
|
69
|
+
<sn-button-x disabled filled>Default Disabled</sn-button-x>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### Outlined
|
|
73
|
+
|
|
74
|
+
```html
|
|
75
|
+
<sn-button-x scheme="default-outlined">Default</sn-button-x>
|
|
76
|
+
<sn-button-x scheme="primary-outlined">Primary outlined</sn-button-x>
|
|
77
|
+
<sn-button-x scheme="warn-outlined">Warn</sn-button-x>
|
|
78
|
+
<sn-button-x scheme="danger-outlined">Danger</sn-button-x>
|
|
79
|
+
<sn-button-x scheme="success-outlined">Success</sn-button-x>
|
|
80
|
+
<sn-button-x scheme="default-outlined" disabled>Default Outlined Disabled</sn-button-x>
|
|
81
|
+
```
|
|
82
|
+
|
|
37
83
|
## Further help
|
|
38
84
|
|
|
39
85
|
Get in touch with me email: nakate.swapnil7@gmail.com | twitter: @SwapnilNakate7
|
package/ng-package.json
ADDED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sn-button-x",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "SnButton is an Angular
|
|
3
|
+
"version": "0.0.1004",
|
|
4
|
+
"description": "SnButton is an Angular 21 standalone component ",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Swapnil Nakate",
|
|
7
7
|
"email": "nakate.swapnil7@gmail.com",
|
|
@@ -11,15 +11,19 @@
|
|
|
11
11
|
"sn-button",
|
|
12
12
|
"sn-button-x",
|
|
13
13
|
"angular button",
|
|
14
|
-
"
|
|
15
|
-
"
|
|
14
|
+
"ng21",
|
|
15
|
+
"angular21",
|
|
16
|
+
"tailwindcss"
|
|
16
17
|
],
|
|
17
18
|
"peerDependencies": {
|
|
18
|
-
"@angular/common": "^
|
|
19
|
-
"@angular/core": "^
|
|
20
|
-
"@fortawesome/angular-fontawesome": "^0.
|
|
19
|
+
"@angular/common": "^21.0.0",
|
|
20
|
+
"@angular/core": "^21.0.0",
|
|
21
|
+
"@fortawesome/angular-fontawesome": "^4.0.0",
|
|
22
|
+
"@fortawesome/free-solid-svg-icons": "^6.7.1",
|
|
21
23
|
"@fortawesome/fontawesome-svg-core": "^6.4.2",
|
|
22
|
-
"
|
|
24
|
+
"autoprefixer": "^10.4.19",
|
|
25
|
+
"postcss": "^8.4.40",
|
|
26
|
+
"tailwindcss": "^3.4.7"
|
|
23
27
|
},
|
|
24
28
|
"dependencies": {
|
|
25
29
|
"tslib": "^2.3.0"
|
|
@@ -33,18 +37,5 @@
|
|
|
33
37
|
"url": "https://github.com/swapnilnakate7/sn-ui",
|
|
34
38
|
"type": "git"
|
|
35
39
|
},
|
|
36
|
-
"license": "MIT"
|
|
37
|
-
|
|
38
|
-
"typings": "index.d.ts",
|
|
39
|
-
"exports": {
|
|
40
|
-
"./package.json": {
|
|
41
|
-
"default": "./package.json"
|
|
42
|
-
},
|
|
43
|
-
".": {
|
|
44
|
-
"types": "./index.d.ts",
|
|
45
|
-
"esm2022": "./esm2022/sn-button-x.mjs",
|
|
46
|
-
"esm": "./esm2022/sn-button-x.mjs",
|
|
47
|
-
"default": "./fesm2022/sn-button-x.mjs"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
40
|
+
"license": "MIT"
|
|
41
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
});
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { Component, Input, booleanAttribute, inject, } from '@angular/core';
|
|
2
|
-
import { CommonModule, NgClass, TitleCasePipe } from '@angular/common';
|
|
3
|
-
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
|
4
|
-
import { fa0, faCoffee, } from '@fortawesome/free-solid-svg-icons';
|
|
5
|
-
import { SnButtonService } from './sn-button.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
export class SnButtonComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.type = 'submit';
|
|
11
|
-
this.text = 'Default';
|
|
12
|
-
this.disabled = false;
|
|
13
|
-
this.rounded = false;
|
|
14
|
-
this.filled = false;
|
|
15
|
-
this.raised = false;
|
|
16
|
-
this.icon = '';
|
|
17
|
-
this.scheme = 'default';
|
|
18
|
-
this.titleCase = new TitleCasePipe();
|
|
19
|
-
this.currentClasses = {};
|
|
20
|
-
this.faCoffee = faCoffee;
|
|
21
|
-
this.currentIcon = fa0;
|
|
22
|
-
this.service = inject(SnButtonService);
|
|
23
|
-
this._styles = {
|
|
24
|
-
primary: 'primary',
|
|
25
|
-
warn: 'warn',
|
|
26
|
-
danger: 'danger',
|
|
27
|
-
success: 'success',
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
this.setCurrentClasses();
|
|
32
|
-
this.currentIcon = this.service.getCurrentIcon(this.titleCase.transform(this.icon));
|
|
33
|
-
if (this.icon === 'coffee') {
|
|
34
|
-
console.log(this.currentIcon);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
setCurrentClasses() {
|
|
38
|
-
const scheme = this.scheme;
|
|
39
|
-
this.currentClasses = {
|
|
40
|
-
'sn-button': true,
|
|
41
|
-
rounded: this.rounded,
|
|
42
|
-
filled: this.filled,
|
|
43
|
-
raised: this.raised,
|
|
44
|
-
};
|
|
45
|
-
this.currentClasses[scheme] = true;
|
|
46
|
-
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SnButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: SnButtonComponent, isStandalone: true, selector: "sn-button", 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" }, providers: [SnButtonService], ngImport: i0, template: "<button [type]=\"type\" [disabled]=\"disabled\" [ngClass]=\"currentClasses\">\n @if(icon){\n <span class=\"icon\">\n <fa-icon [icon]=\"currentIcon\"></fa-icon>\n </span>\n }\u00A0\n <ng-content></ng-content>\n</button>\n", styles: [".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:#fff;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:#fff}.sn-button.default:hover:not(:disabled){background-color:#212121}.sn-button.default:hover:enabled{color:#fff}.sn-button.primary:not(:disabled){color:#0078d7}.sn-button.primary.filled:not(:disabled){color:#fff;background-color:#0078d7}.sn-button.primary-outlined:not([disabled]){color:#0078d7;background-color:transparent;border:1px solid #0078d7}.sn-button.primary-outlined:not([disabled]):hover:not(:disabled){background-color:#0078d7;color:#fff}.sn-button.primary:hover:not(:disabled){background-color:#0078d7}.sn-button.primary:hover:enabled{color:#fff}.sn-button.warn:not(:disabled){color:#ffb900}.sn-button.warn.filled:not(:disabled){color:#fff;background-color:#ffb900}.sn-button.warn-outlined:not([disabled]){color:#ffb900;background-color:transparent;border:1px solid #ffb900}.sn-button.warn-outlined:not([disabled]):hover:not(:disabled){background-color:#ffb900;color:#fff}.sn-button.warn:hover:not(:disabled){background-color:#ffb900}.sn-button.warn:hover:enabled{color:#fff}.sn-button.danger:not(:disabled){color:#e81123}.sn-button.danger.filled:not(:disabled){color:#fff;background-color:#e81123}.sn-button.danger-outlined:not([disabled]){color:#e81123;background-color:transparent;border:1px solid #e81123}.sn-button.danger-outlined:not([disabled]):hover:not(:disabled){background-color:#e81123;color:#fff}.sn-button.danger:hover:not(:disabled){background-color:#e81123}.sn-button.danger:hover:enabled{color:#fff}.sn-button.success:not(:disabled){color:#00cc6a}.sn-button.success.filled:not(:disabled){color:#fff;background-color:#00cc6a}.sn-button.success-outlined:not([disabled]){color:#00cc6a;background-color:transparent;border:1px solid #00cc6a}.sn-button.success-outlined:not([disabled]):hover:not(:disabled){background-color:#00cc6a;color:#fff}.sn-button.success:hover:not(:disabled){background-color:#00cc6a}.sn-button.success:hover:enabled{color:#fff}.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", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
|
|
49
|
-
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SnButtonComponent, decorators: [{
|
|
51
|
-
type: Component,
|
|
52
|
-
args: [{ selector: 'sn-button', standalone: true, imports: [CommonModule, NgClass, FaIconComponent], providers: [SnButtonService], template: "<button [type]=\"type\" [disabled]=\"disabled\" [ngClass]=\"currentClasses\">\n @if(icon){\n <span class=\"icon\">\n <fa-icon [icon]=\"currentIcon\"></fa-icon>\n </span>\n }\u00A0\n <ng-content></ng-content>\n</button>\n", styles: [".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:#fff;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:#fff}.sn-button.default:hover:not(:disabled){background-color:#212121}.sn-button.default:hover:enabled{color:#fff}.sn-button.primary:not(:disabled){color:#0078d7}.sn-button.primary.filled:not(:disabled){color:#fff;background-color:#0078d7}.sn-button.primary-outlined:not([disabled]){color:#0078d7;background-color:transparent;border:1px solid #0078d7}.sn-button.primary-outlined:not([disabled]):hover:not(:disabled){background-color:#0078d7;color:#fff}.sn-button.primary:hover:not(:disabled){background-color:#0078d7}.sn-button.primary:hover:enabled{color:#fff}.sn-button.warn:not(:disabled){color:#ffb900}.sn-button.warn.filled:not(:disabled){color:#fff;background-color:#ffb900}.sn-button.warn-outlined:not([disabled]){color:#ffb900;background-color:transparent;border:1px solid #ffb900}.sn-button.warn-outlined:not([disabled]):hover:not(:disabled){background-color:#ffb900;color:#fff}.sn-button.warn:hover:not(:disabled){background-color:#ffb900}.sn-button.warn:hover:enabled{color:#fff}.sn-button.danger:not(:disabled){color:#e81123}.sn-button.danger.filled:not(:disabled){color:#fff;background-color:#e81123}.sn-button.danger-outlined:not([disabled]){color:#e81123;background-color:transparent;border:1px solid #e81123}.sn-button.danger-outlined:not([disabled]):hover:not(:disabled){background-color:#e81123;color:#fff}.sn-button.danger:hover:not(:disabled){background-color:#e81123}.sn-button.danger:hover:enabled{color:#fff}.sn-button.success:not(:disabled){color:#00cc6a}.sn-button.success.filled:not(:disabled){color:#fff;background-color:#00cc6a}.sn-button.success-outlined:not([disabled]){color:#00cc6a;background-color:transparent;border:1px solid #00cc6a}.sn-button.success-outlined:not([disabled]):hover:not(:disabled){background-color:#00cc6a;color:#fff}.sn-button.success:hover:not(:disabled){background-color:#00cc6a}.sn-button.success:hover:enabled{color:#fff}.icon{margin:0 .325rem 0 0}\n"] }]
|
|
53
|
-
}], propDecorators: { type: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], text: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], disabled: [{
|
|
58
|
-
type: Input,
|
|
59
|
-
args: [{ transform: booleanAttribute }]
|
|
60
|
-
}], rounded: [{
|
|
61
|
-
type: Input,
|
|
62
|
-
args: [{ transform: booleanAttribute }]
|
|
63
|
-
}], filled: [{
|
|
64
|
-
type: Input,
|
|
65
|
-
args: [{ transform: booleanAttribute }]
|
|
66
|
-
}], raised: [{
|
|
67
|
-
type: Input,
|
|
68
|
-
args: [{ transform: booleanAttribute }]
|
|
69
|
-
}], icon: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], scheme: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}] } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NuLWJ1dHRvbi9zcmMvbGliL3NuLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zbi1idXR0b24vc3JjL2xpYi9zbi1idXR0b24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBRUwsR0FBRyxFQUNILFFBQVEsR0FDVCxNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBVXRELE1BQU0sT0FBTyxpQkFBaUI7SUFSOUI7UUFTVyxTQUFJLEdBQVcsUUFBUSxDQUFDO1FBQ3hCLFNBQUksR0FBVyxTQUFTLENBQUM7UUFDTSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3ZELFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbEIsV0FBTSxHQUFXLFNBQVMsQ0FBQztRQUVwQyxjQUFTLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7UUFFL0MsbUJBQWMsR0FBNEIsRUFBRSxDQUFDO1FBQzdDLGFBQVEsR0FBRyxRQUFRLENBQUM7UUFDcEIsZ0JBQVcsR0FBbUIsR0FBRyxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEMsWUFBTyxHQUFRO1lBQ2IsT0FBTyxFQUFFLFNBQVM7WUFDbEIsSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUUsUUFBUTtZQUNoQixPQUFPLEVBQUUsU0FBUztTQUNuQixDQUFDO0tBcUJIO0lBbkJDLFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ3BDLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUNELGlCQUFpQjtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNwQixXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQzs4R0EzQ1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsc0hBR1IsZ0JBQWdCLG1DQUNoQixnQkFBZ0IsZ0NBQ2hCLGdCQUFnQixnQ0FDaEIsZ0JBQWdCLGdEQVZ6QixDQUFDLGVBQWUsQ0FBQywwQkNwQjlCLHNPQVFBLDJtRkRXWSxZQUFZLDZIQUFXLGVBQWU7OzJGQUtyQyxpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDLGFBQ3RDLENBQUMsZUFBZSxDQUFDOzhCQUtuQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsTUFBTTtzQkFBN0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxNQUFNO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0NsYXNzLCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZhSWNvbkNvbXBvbmVudCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7XG4gIEljb25EZWZpbml0aW9uLFxuICBmYTAsXG4gIGZhQ29mZmVlLFxufSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgU25CdXR0b25TZXJ2aWNlIH0gZnJvbSAnLi9zbi1idXR0b24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NuLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nQ2xhc3MsIEZhSWNvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1NuQnV0dG9uU2VydmljZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbi1idXR0b24uaHRtbCcsXG4gIHN0eWxlVXJsOiAnc24tYnV0dG9uLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBTbkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZyA9ICdzdWJtaXQnO1xuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmcgPSAnRGVmYXVsdCc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcm91bmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZmlsbGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByYWlzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgc2NoZW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG5cbiAgdGl0bGVDYXNlOiBUaXRsZUNhc2VQaXBlID0gbmV3IFRpdGxlQ2FzZVBpcGUoKTtcblxuICBjdXJyZW50Q2xhc3NlczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgZmFDb2ZmZWUgPSBmYUNvZmZlZTtcbiAgY3VycmVudEljb246IEljb25EZWZpbml0aW9uID0gZmEwO1xuICBzZXJ2aWNlID0gaW5qZWN0KFNuQnV0dG9uU2VydmljZSk7XG5cbiAgX3N0eWxlczogYW55ID0ge1xuICAgIHByaW1hcnk6ICdwcmltYXJ5JyxcbiAgICB3YXJuOiAnd2FybicsXG4gICAgZGFuZ2VyOiAnZGFuZ2VyJyxcbiAgICBzdWNjZXNzOiAnc3VjY2VzcycsXG4gIH07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDdXJyZW50Q2xhc3NlcygpO1xuICAgIHRoaXMuY3VycmVudEljb24gPSB0aGlzLnNlcnZpY2UuZ2V0Q3VycmVudEljb24oXG4gICAgICB0aGlzLnRpdGxlQ2FzZS50cmFuc2Zvcm0odGhpcy5pY29uKVxuICAgICk7XG4gICAgaWYgKHRoaXMuaWNvbiA9PT0gJ2NvZmZlZScpIHtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY3VycmVudEljb24pO1xuICAgIH1cbiAgfVxuICBzZXRDdXJyZW50Q2xhc3NlcygpIHtcbiAgICBjb25zdCBzY2hlbWUgPSB0aGlzLnNjaGVtZTtcbiAgICB0aGlzLmN1cnJlbnRDbGFzc2VzID0ge1xuICAgICAgJ3NuLWJ1dHRvbic6IHRydWUsXG4gICAgICByb3VuZGVkOiB0aGlzLnJvdW5kZWQsXG4gICAgICBmaWxsZWQ6IHRoaXMuZmlsbGVkLFxuICAgICAgcmFpc2VkOiB0aGlzLnJhaXNlZCxcbiAgICB9O1xuICAgIHRoaXMuY3VycmVudENsYXNzZXNbc2NoZW1lXSA9IHRydWU7XG4gIH1cbn1cbiIsIjxidXR0b24gW3R5cGVdPVwidHlwZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtuZ0NsYXNzXT1cImN1cnJlbnRDbGFzc2VzXCI+XG4gIEBpZihpY29uKXtcbiAgPHNwYW4gY2xhc3M9XCJpY29uXCI+XG4gICAgPGZhLWljb24gW2ljb25dPVwiY3VycmVudEljb25cIj48L2ZhLWljb24+XG4gIDwvc3Bhbj5cbiAgfcKgXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvYnV0dG9uPlxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as allIcons from '@fortawesome/free-solid-svg-icons';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class SnButtonService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.iconDefinitions = new Map();
|
|
7
|
-
let all = { ...allIcons };
|
|
8
|
-
let key;
|
|
9
|
-
for (key in all) {
|
|
10
|
-
this.iconDefinitions.set(key.substring(2).toLowerCase(), all[key]);
|
|
11
|
-
}
|
|
12
|
-
//console.log(all);
|
|
13
|
-
// this.iconDefinitions.set('coffee', faCoffee);
|
|
14
|
-
// this.iconDefinitions.set('info', faInfo);
|
|
15
|
-
}
|
|
16
|
-
getCurrentIcon(iconName) {
|
|
17
|
-
let icon = allIcons.faInfo;
|
|
18
|
-
if (this.iconDefinitions.has(iconName.toLowerCase())) {
|
|
19
|
-
icon = this.iconDefinitions.get(iconName.toLowerCase()) || icon;
|
|
20
|
-
}
|
|
21
|
-
return icon;
|
|
22
|
-
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SnButtonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SnButtonService, providedIn: 'root' }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SnButtonService, decorators: [{
|
|
27
|
-
type: Injectable,
|
|
28
|
-
args: [{
|
|
29
|
-
providedIn: 'root',
|
|
30
|
-
}]
|
|
31
|
-
}], ctorParameters: () => [] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic24tYnV0dG9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zbi1idXR0b24vc3JjL2xpYi9zbi1idXR0b24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUNBQW1DLENBQUM7O0FBSzlELE1BQU0sT0FBTyxlQUFlO0lBRzFCO1FBRkEsb0JBQWUsR0FDYixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVYsSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksR0FBMEIsQ0FBQztRQUMvQixLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsbUJBQW1CO1FBQ25CLGdEQUFnRDtRQUNoRCw0Q0FBNEM7SUFDOUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFnQjtRQUM3QixJQUFJLElBQUksR0FBMkMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNuRSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO1lBQ3BELElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDakU7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBckJVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSWNvbkRlZmluaXRpb24sXG4gIEljb25QYWNrLFxuICBJY29uUHJlZml4LFxufSBmcm9tICdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnO1xuaW1wb3J0ICogYXMgYWxsSWNvbnMgZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNuQnV0dG9uU2VydmljZSB7XG4gIGljb25EZWZpbml0aW9uczogTWFwPHN0cmluZywgSWNvbkRlZmluaXRpb24gfCBJY29uUGFjayB8IEljb25QcmVmaXg+ID1cbiAgICBuZXcgTWFwKCk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGxldCBhbGwgPSB7IC4uLmFsbEljb25zIH07XG4gICAgbGV0IGtleToga2V5b2YgdHlwZW9mIGFsbEljb25zO1xuICAgIGZvciAoa2V5IGluIGFsbCkge1xuICAgICAgdGhpcy5pY29uRGVmaW5pdGlvbnMuc2V0KGtleS5zdWJzdHJpbmcoMikudG9Mb3dlckNhc2UoKSwgYWxsW2tleV0pO1xuICAgIH1cblxuICAgIC8vY29uc29sZS5sb2coYWxsKTtcbiAgICAvLyB0aGlzLmljb25EZWZpbml0aW9ucy5zZXQoJ2NvZmZlZScsIGZhQ29mZmVlKTtcbiAgICAvLyB0aGlzLmljb25EZWZpbml0aW9ucy5zZXQoJ2luZm8nLCBmYUluZm8pO1xuICB9XG5cbiAgZ2V0Q3VycmVudEljb24oaWNvbk5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgbGV0IGljb246IEljb25EZWZpbml0aW9uIHwgSWNvblBhY2sgfCBJY29uUHJlZml4ID0gYWxsSWNvbnMuZmFJbmZvO1xuICAgIGlmICh0aGlzLmljb25EZWZpbml0aW9ucy5oYXMoaWNvbk5hbWUudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgIGljb24gPSB0aGlzLmljb25EZWZpbml0aW9ucy5nZXQoaWNvbk5hbWUudG9Mb3dlckNhc2UoKSkgfHwgaWNvbjtcbiAgICB9XG4gICAgcmV0dXJuIGljb247XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of sn-button
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/sn-button.service';
|
|
5
|
-
export * from './lib/sn-button.component';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NuLWJ1dHRvbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc24tYnV0dG9uXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc24tYnV0dG9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc24tYnV0dG9uLmNvbXBvbmVudCc7XG4iXX0=
|
package/esm2022/sn-button-x.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic24tYnV0dG9uLXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9zbi1idXR0b24vc3JjL3NuLWJ1dHRvbi14LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
package/fesm2022/sn-button-x.mjs
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, inject, booleanAttribute, Component, Input } 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: "17.0.2", ngImport: i0, type: SnButtonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SnButtonService, providedIn: 'root' }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", 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.scheme = 'default';
|
|
48
|
-
this.titleCase = new TitleCasePipe();
|
|
49
|
-
this.currentClasses = {};
|
|
50
|
-
this.faCoffee = faCoffee;
|
|
51
|
-
this.currentIcon = fa0;
|
|
52
|
-
this.service = inject(SnButtonService);
|
|
53
|
-
this._styles = {
|
|
54
|
-
primary: 'primary',
|
|
55
|
-
warn: 'warn',
|
|
56
|
-
danger: 'danger',
|
|
57
|
-
success: 'success',
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
ngOnInit() {
|
|
61
|
-
this.setCurrentClasses();
|
|
62
|
-
this.currentIcon = this.service.getCurrentIcon(this.titleCase.transform(this.icon));
|
|
63
|
-
if (this.icon === 'coffee') {
|
|
64
|
-
console.log(this.currentIcon);
|
|
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
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SnButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.2", type: SnButtonComponent, isStandalone: true, selector: "sn-button", 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" }, providers: [SnButtonService], ngImport: i0, template: "<button [type]=\"type\" [disabled]=\"disabled\" [ngClass]=\"currentClasses\">\n @if(icon){\n <span class=\"icon\">\n <fa-icon [icon]=\"currentIcon\"></fa-icon>\n </span>\n }\u00A0\n <ng-content></ng-content>\n</button>\n", styles: [".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:#fff;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:#fff}.sn-button.default:hover:not(:disabled){background-color:#212121}.sn-button.default:hover:enabled{color:#fff}.sn-button.primary:not(:disabled){color:#0078d7}.sn-button.primary.filled:not(:disabled){color:#fff;background-color:#0078d7}.sn-button.primary-outlined:not([disabled]){color:#0078d7;background-color:transparent;border:1px solid #0078d7}.sn-button.primary-outlined:not([disabled]):hover:not(:disabled){background-color:#0078d7;color:#fff}.sn-button.primary:hover:not(:disabled){background-color:#0078d7}.sn-button.primary:hover:enabled{color:#fff}.sn-button.warn:not(:disabled){color:#ffb900}.sn-button.warn.filled:not(:disabled){color:#fff;background-color:#ffb900}.sn-button.warn-outlined:not([disabled]){color:#ffb900;background-color:transparent;border:1px solid #ffb900}.sn-button.warn-outlined:not([disabled]):hover:not(:disabled){background-color:#ffb900;color:#fff}.sn-button.warn:hover:not(:disabled){background-color:#ffb900}.sn-button.warn:hover:enabled{color:#fff}.sn-button.danger:not(:disabled){color:#e81123}.sn-button.danger.filled:not(:disabled){color:#fff;background-color:#e81123}.sn-button.danger-outlined:not([disabled]){color:#e81123;background-color:transparent;border:1px solid #e81123}.sn-button.danger-outlined:not([disabled]):hover:not(:disabled){background-color:#e81123;color:#fff}.sn-button.danger:hover:not(:disabled){background-color:#e81123}.sn-button.danger:hover:enabled{color:#fff}.sn-button.success:not(:disabled){color:#00cc6a}.sn-button.success.filled:not(:disabled){color:#fff;background-color:#00cc6a}.sn-button.success-outlined:not([disabled]){color:#00cc6a;background-color:transparent;border:1px solid #00cc6a}.sn-button.success-outlined:not([disabled]):hover:not(:disabled){background-color:#00cc6a;color:#fff}.sn-button.success:hover:not(:disabled){background-color:#00cc6a}.sn-button.success:hover:enabled{color:#fff}.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", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
|
|
79
|
-
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: SnButtonComponent, decorators: [{
|
|
81
|
-
type: Component,
|
|
82
|
-
args: [{ selector: 'sn-button', standalone: true, imports: [CommonModule, NgClass, FaIconComponent], providers: [SnButtonService], template: "<button [type]=\"type\" [disabled]=\"disabled\" [ngClass]=\"currentClasses\">\n @if(icon){\n <span class=\"icon\">\n <fa-icon [icon]=\"currentIcon\"></fa-icon>\n </span>\n }\u00A0\n <ng-content></ng-content>\n</button>\n", styles: [".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:#fff;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:#fff}.sn-button.default:hover:not(:disabled){background-color:#212121}.sn-button.default:hover:enabled{color:#fff}.sn-button.primary:not(:disabled){color:#0078d7}.sn-button.primary.filled:not(:disabled){color:#fff;background-color:#0078d7}.sn-button.primary-outlined:not([disabled]){color:#0078d7;background-color:transparent;border:1px solid #0078d7}.sn-button.primary-outlined:not([disabled]):hover:not(:disabled){background-color:#0078d7;color:#fff}.sn-button.primary:hover:not(:disabled){background-color:#0078d7}.sn-button.primary:hover:enabled{color:#fff}.sn-button.warn:not(:disabled){color:#ffb900}.sn-button.warn.filled:not(:disabled){color:#fff;background-color:#ffb900}.sn-button.warn-outlined:not([disabled]){color:#ffb900;background-color:transparent;border:1px solid #ffb900}.sn-button.warn-outlined:not([disabled]):hover:not(:disabled){background-color:#ffb900;color:#fff}.sn-button.warn:hover:not(:disabled){background-color:#ffb900}.sn-button.warn:hover:enabled{color:#fff}.sn-button.danger:not(:disabled){color:#e81123}.sn-button.danger.filled:not(:disabled){color:#fff;background-color:#e81123}.sn-button.danger-outlined:not([disabled]){color:#e81123;background-color:transparent;border:1px solid #e81123}.sn-button.danger-outlined:not([disabled]):hover:not(:disabled){background-color:#e81123;color:#fff}.sn-button.danger:hover:not(:disabled){background-color:#e81123}.sn-button.danger:hover:enabled{color:#fff}.sn-button.success:not(:disabled){color:#00cc6a}.sn-button.success.filled:not(:disabled){color:#fff;background-color:#00cc6a}.sn-button.success-outlined:not([disabled]){color:#00cc6a;background-color:transparent;border:1px solid #00cc6a}.sn-button.success-outlined:not([disabled]):hover:not(:disabled){background-color:#00cc6a;color:#fff}.sn-button.success:hover:not(:disabled){background-color:#00cc6a}.sn-button.success:hover:enabled{color:#fff}.icon{margin:0 .325rem 0 0}\n"] }]
|
|
83
|
-
}], propDecorators: { type: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], text: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], disabled: [{
|
|
88
|
-
type: Input,
|
|
89
|
-
args: [{ transform: booleanAttribute }]
|
|
90
|
-
}], rounded: [{
|
|
91
|
-
type: Input,
|
|
92
|
-
args: [{ transform: booleanAttribute }]
|
|
93
|
-
}], filled: [{
|
|
94
|
-
type: Input,
|
|
95
|
-
args: [{ transform: booleanAttribute }]
|
|
96
|
-
}], raised: [{
|
|
97
|
-
type: Input,
|
|
98
|
-
args: [{ transform: booleanAttribute }]
|
|
99
|
-
}], icon: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], scheme: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}] } });
|
|
104
|
-
|
|
105
|
-
/*
|
|
106
|
-
* Public API Surface of sn-button
|
|
107
|
-
*/
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Generated bundle index. Do not edit.
|
|
111
|
-
*/
|
|
112
|
-
|
|
113
|
-
export { SnButtonComponent, SnButtonService };
|
|
114
|
-
//# sourceMappingURL=sn-button-x.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sn-button-x.mjs","sources":["../../../projects/sn-button/src/lib/sn-button.service.ts","../../../projects/sn-button/src/lib/sn-button.component.ts","../../../projects/sn-button/src/lib/sn-button.html","../../../projects/sn-button/src/public-api.ts","../../../projects/sn-button/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 Input,\n OnInit,\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.service';\n\n@Component({\n selector: 'sn-button',\n standalone: true,\n imports: [CommonModule, NgClass, FaIconComponent],\n providers: [SnButtonService],\n templateUrl: './sn-button.html',\n styleUrl: 'sn-button.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\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 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 @if(icon){\n <span class=\"icon\">\n <fa-icon [icon]=\"currentIcon\"></fa-icon>\n </span>\n } \n <ng-content></ng-content>\n</button>\n","/*\n * Public API Surface of sn-button\n */\n\nexport * from './lib/sn-button.service';\nexport * from './lib/sn-button.component';\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
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { TitleCasePipe } from '@angular/common';
|
|
3
|
-
import { IconDefinition } from '@fortawesome/free-solid-svg-icons';
|
|
4
|
-
import { SnButtonService } from './sn-button.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class SnButtonComponent implements OnInit {
|
|
7
|
-
type: string;
|
|
8
|
-
text: string;
|
|
9
|
-
disabled: boolean;
|
|
10
|
-
rounded: boolean;
|
|
11
|
-
filled: boolean;
|
|
12
|
-
raised: boolean;
|
|
13
|
-
icon: string;
|
|
14
|
-
scheme: string;
|
|
15
|
-
titleCase: TitleCasePipe;
|
|
16
|
-
currentClasses: Record<string, boolean>;
|
|
17
|
-
faCoffee: IconDefinition;
|
|
18
|
-
currentIcon: IconDefinition;
|
|
19
|
-
service: SnButtonService;
|
|
20
|
-
_styles: any;
|
|
21
|
-
ngOnInit(): void;
|
|
22
|
-
setCurrentClasses(): void;
|
|
23
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SnButtonComponent, never>;
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SnButtonComponent, "sn-button", 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; }; }, {}, never, ["*"], true, never>;
|
|
25
|
-
static ngAcceptInputType_disabled: unknown;
|
|
26
|
-
static ngAcceptInputType_rounded: unknown;
|
|
27
|
-
static ngAcceptInputType_filled: unknown;
|
|
28
|
-
static ngAcceptInputType_raised: unknown;
|
|
29
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IconDefinition, IconPack, IconPrefix } from '@fortawesome/fontawesome-svg-core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class SnButtonService {
|
|
4
|
-
iconDefinitions: Map<string, IconDefinition | IconPack | IconPrefix>;
|
|
5
|
-
constructor();
|
|
6
|
-
getCurrentIcon(iconName: string): any;
|
|
7
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SnButtonService, never>;
|
|
8
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SnButtonService>;
|
|
9
|
-
}
|
package/public-api.d.ts
DELETED