ngwr 1.3.0 → 2.0.0

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.
Files changed (84) hide show
  1. package/LICENSE +3 -3
  2. package/_grid.scss +2 -0
  3. package/_index.scss +1 -1
  4. package/button/{button.d.ts → button.component.d.ts} +7 -2
  5. package/button/button.module.d.ts +7 -0
  6. package/button/button.scss +75 -75
  7. package/button/index.d.ts +2 -2
  8. package/checkbox/{checkbox.d.ts → checkbox.component.d.ts} +2 -2
  9. package/checkbox/checkbox.module.d.ts +7 -0
  10. package/checkbox/index.d.ts +2 -2
  11. package/divider/{divider.d.ts → divider.component.d.ts} +2 -2
  12. package/divider/{divider-module.d.ts → divider.module.d.ts} +2 -2
  13. package/divider/divider.scss +8 -4
  14. package/divider/index.d.ts +2 -2
  15. package/esm2022/button/button.component.mjs +202 -0
  16. package/esm2022/button/button.module.mjs +16 -0
  17. package/esm2022/button/index.mjs +3 -3
  18. package/esm2022/checkbox/checkbox.component.mjs +154 -0
  19. package/esm2022/checkbox/checkbox.module.mjs +16 -0
  20. package/esm2022/checkbox/index.mjs +3 -3
  21. package/esm2022/core/abstract/base.mjs +3 -3
  22. package/esm2022/core/overlay/connected-overlay-directive.mjs +5 -5
  23. package/esm2022/core/overlay/overlay-module.mjs +4 -4
  24. package/esm2022/dialog/dialog-base.mjs +4 -4
  25. package/esm2022/dialog/dialog-container.mjs +5 -5
  26. package/esm2022/dialog/dialog-content-directives.mjs +16 -16
  27. package/esm2022/dialog/dialog-module.mjs +4 -4
  28. package/esm2022/dialog/dialog-service.mjs +5 -5
  29. package/esm2022/divider/divider.component.mjs +101 -0
  30. package/esm2022/divider/divider.module.mjs +16 -0
  31. package/esm2022/divider/index.mjs +3 -3
  32. package/esm2022/form/form-error.mjs +3 -3
  33. package/esm2022/form/form-item.mjs +5 -5
  34. package/esm2022/form/form-module.mjs +4 -4
  35. package/esm2022/icon/icon-module.mjs +4 -4
  36. package/esm2022/icon/icon-service.mjs +3 -3
  37. package/esm2022/icon/icon.mjs +6 -6
  38. package/esm2022/input/input-module.mjs +4 -4
  39. package/esm2022/input/input.mjs +5 -5
  40. package/esm2022/qrcode/qrcode-module.mjs +4 -4
  41. package/esm2022/qrcode/qrcode.mjs +6 -6
  42. package/esm2022/skeleton/skeleton-module.mjs +4 -4
  43. package/esm2022/skeleton/skeleton.mjs +3 -3
  44. package/esm2022/spinner/spinner-module.mjs +4 -4
  45. package/esm2022/spinner/spinner.mjs +3 -3
  46. package/esm2022/tag/tag-module.mjs +4 -4
  47. package/esm2022/tag/tag.mjs +3 -3
  48. package/esm2022/tooltip/tooltip-component.mjs +5 -5
  49. package/esm2022/tooltip/tooltip-directive.mjs +5 -5
  50. package/esm2022/tooltip/tooltip-module.mjs +4 -4
  51. package/fesm2022/ngwr-button.mjs +41 -30
  52. package/fesm2022/ngwr-button.mjs.map +1 -1
  53. package/fesm2022/ngwr-checkbox.mjs +14 -17
  54. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  55. package/fesm2022/ngwr-core-abstract.mjs +3 -3
  56. package/fesm2022/ngwr-core-overlay.mjs +8 -8
  57. package/fesm2022/ngwr-core-overlay.mjs.map +1 -1
  58. package/fesm2022/ngwr-dialog.mjs +33 -33
  59. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  60. package/fesm2022/ngwr-divider.mjs +11 -10
  61. package/fesm2022/ngwr-divider.mjs.map +1 -1
  62. package/fesm2022/ngwr-form.mjs +11 -11
  63. package/fesm2022/ngwr-form.mjs.map +1 -1
  64. package/fesm2022/ngwr-icon.mjs +12 -12
  65. package/fesm2022/ngwr-icon.mjs.map +1 -1
  66. package/fesm2022/ngwr-input.mjs +8 -8
  67. package/fesm2022/ngwr-input.mjs.map +1 -1
  68. package/fesm2022/ngwr-qrcode.mjs +9 -9
  69. package/fesm2022/ngwr-qrcode.mjs.map +1 -1
  70. package/fesm2022/ngwr-skeleton.mjs +7 -7
  71. package/fesm2022/ngwr-spinner.mjs +7 -7
  72. package/fesm2022/ngwr-tag.mjs +7 -7
  73. package/fesm2022/ngwr-tooltip.mjs +12 -12
  74. package/fesm2022/ngwr-tooltip.mjs.map +1 -1
  75. package/package.json +36 -33
  76. package/styles/root.scss +19 -10
  77. package/button/button-module.d.ts +0 -10
  78. package/checkbox/checkbox-module.d.ts +0 -10
  79. package/esm2022/button/button-module.mjs +0 -20
  80. package/esm2022/button/button.mjs +0 -187
  81. package/esm2022/checkbox/checkbox-module.mjs +0 -20
  82. package/esm2022/checkbox/checkbox.mjs +0 -154
  83. package/esm2022/divider/divider-module.mjs +0 -16
  84. package/esm2022/divider/divider.mjs +0 -100
package/LICENSE CHANGED
@@ -1,8 +1,8 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2022 Roman Khegay
4
- Copyright (c) 2022 Garuna, LLP
5
- Copyright (c) 2022 Stingray Technologies, LLP
3
+ Copyright (c) 2022-2024 Roman Khegay
4
+ Copyright (c) 2022-2024 Garuna, LLP
5
+ Copyright (c) 2022-2024 Stingray Technologies, LLP
6
6
 
7
7
  Permission is hereby granted, free of charge, to any person obtaining a copy
8
8
  of this software and associated documentation files (the "Software"), to deal
package/_grid.scss ADDED
@@ -0,0 +1,2 @@
1
+ @forward './styles/maps';
2
+ @forward './styles/grid' show media-up, media-down;
package/_index.scss CHANGED
@@ -7,7 +7,7 @@
7
7
  * https://github.com/thekhegay/ngwr
8
8
  */
9
9
 
10
- @forward 'styles/maps';
10
+ @forward './styles/maps';
11
11
 
12
12
  @forward './styles/root';
13
13
  @forward './styles/reset';
@@ -26,9 +26,14 @@ export declare class WrButton extends WrAbstractBase implements OnInit, OnDestro
26
26
  set rounded(value: BooleanInput);
27
27
  private _rounded;
28
28
  /** Set fullwidth state of `wr-btn`; */
29
+ get fullWidth(): boolean;
30
+ set fullWidth(value: BooleanInput);
31
+ /**
32
+ * @deprecated use fullWidth instead
33
+ */
29
34
  get fullwidth(): boolean;
30
35
  set fullwidth(value: BooleanInput);
31
- private _fullwidth;
36
+ private _fullWidth;
32
37
  /** Set loading state of `wr-btn`; */
33
38
  get loading(): boolean;
34
39
  set loading(value: BooleanInput);
@@ -54,5 +59,5 @@ export declare class WrButton extends WrAbstractBase implements OnInit, OnDestro
54
59
  ngOnDestroy(): void;
55
60
  private preventEventsWhenDisabled;
56
61
  static ɵfac: i0.ɵɵFactoryDeclaration<WrButton, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<WrButton, "wr-btn, button[wr-btn], a[wr-btn]", ["wrBtn"], { "color": { "alias": "color"; "required": false; }; "size": { "alias": "size"; "required": false; }; "outlined": { "alias": "outlined"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "fullwidth": { "alias": "fullwidth"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; }, {}, never, ["*"], false, never>;
62
+ static ɵcmp: i0.ɵɵComponentDeclaration<WrButton, "wr-btn, button[wr-btn], a[wr-btn]", ["wrBtn"], { "color": { "alias": "color"; "required": false; }; "size": { "alias": "size"; "required": false; }; "outlined": { "alias": "outlined"; "required": false; }; "rounded": { "alias": "rounded"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "fullwidth": { "alias": "fullwidth"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconPosition": { "alias": "iconPosition"; "required": false; }; }, {}, never, ["*"], true, never>;
58
63
  }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./button.component";
3
+ export declare class WrButtonModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrButtonModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<WrButtonModule, never, [typeof i1.WrButton], [typeof i1.WrButton]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<WrButtonModule>;
7
+ }
@@ -1,14 +1,30 @@
1
1
  @use '../styles/maps' as maps;
2
2
 
3
3
  .wr-btn {
4
+ --wr-btn-bg: var(--wr-color-primary);
5
+ --wr-btn-bg-rgb: var(--wr-color-primary-rgb);
6
+ --wr-btn-text-color: var(--wr-color-primary-contrast);
7
+ --wr-btn-shade: var(--wr-color-primary-shade);
8
+
9
+ --wr-btn-font-size: var(--wr-btn-font-size-base);
10
+ --wr-btn-line-height: var(--wr-btn-line-height-base);
11
+
12
+ --wr-btn-border-radius: var(--wr-btn-border-radius-base);
13
+
14
+ --wr-btn-padding-y: var(--wr-btn-padding-y-base);
15
+ --wr-btn-padding-x: var(--wr-btn-padding-x-base);
16
+
17
+ --wr-btn-icon-size: var(--wr-btn-icon-size-base);
18
+ --wr-btn-icon-margin: var(--wr-btn-icon-margin-base);
19
+
4
20
  display: inline-block;
5
21
 
6
- padding: var(--wr-btn-padding-y-base) var(--wr-btn-padding-x-base);
22
+ padding: var(--wr-btn-padding-y) var(--wr-btn-padding-x);
7
23
 
8
24
  font-family: var(--wr-btn-font-family-base);
9
- font-size: var(--wr-btn-font-size-base);
25
+ font-size: var(--wr-btn-font-size);
10
26
  font-weight: var(--wr-btn-font-weight-base);
11
- line-height: var(--wr-btn-line-height-base);
27
+ line-height: var(--wr-btn-line-height);
12
28
 
13
29
  text-align: center;
14
30
  text-decoration: none;
@@ -18,20 +34,50 @@
18
34
  user-select: none;
19
35
 
20
36
  border: none;
21
- border-radius: var(--wr-btn-border-radius-base);
37
+ border-radius: var(--wr-btn-border-radius);
22
38
 
23
39
  transition: var(--wr-transition-short);
24
40
 
25
41
  position: relative;
26
42
 
43
+ color: var(--wr-btn-text-color);
44
+ background-color: var(--wr-btn-bg);
45
+
27
46
  &:hover {
28
47
  text-decoration: none;
48
+ background-color: var(--wr-btn-shade);
49
+ }
50
+
51
+ &--outlined {
52
+ color: var(--wr-btn-bg);
53
+ background-color: transparent;
54
+ box-shadow: inset 0 0 0 var(--wr-btn-border-width) rgba(var(--wr-btn-bg-rgb), 0.375);
55
+
56
+ &:hover {
57
+ color: var(--wr-btn-text-color);
58
+ background-color: var(--wr-btn-bg);
59
+ box-shadow: none;
60
+ }
61
+ }
62
+
63
+ &--rounded {
64
+ --wr-btn-border-radius: var(--wr-btn-rounded-border-radius);
65
+ --wr-btn-padding-x: var(--wr-btn-rounded-padding-x);
66
+ --wr-btn-padding-y: var(--wr-btn-rounded-padding-y);
67
+ }
68
+
69
+ &--size {
70
+ &-small {
71
+ --wr-btn-font-size: var(--wr-btn-font-size-small);
72
+ --wr-btn-padding-x: var(--wr-btn-padding-x-small);
73
+ --wr-btn-padding-y: var(--wr-btn-padding-y-small);
74
+ --wr-btn-icon-size: var(--wr-btn-font-size-small);
75
+ }
29
76
  }
30
77
 
31
78
  &[disabled],
32
79
  &:disabled,
33
- &.disabled,
34
- fieldset:disabled & {
80
+ &.disabled {
35
81
  color: var(--wr-color-medium) !important;
36
82
  background-color: var(--wr-color-light) !important;
37
83
  background-image: none;
@@ -51,7 +97,7 @@
51
97
  font-size: inherit;
52
98
  font-weight: inherit;
53
99
  line-height: inherit;
54
- word-break: break-all;
100
+ word-break: break-word;
55
101
  padding: 0;
56
102
  transition: var(--wr-transition-base);
57
103
  }
@@ -61,28 +107,30 @@
61
107
  z-index: 3;
62
108
  left: 50%;
63
109
  top: 50%;
64
- transform: translate(-50%,-50%);
110
+ transform: translate(-50%, -50%);
65
111
  }
66
112
 
67
113
  &__icon {
68
- width: 1rem !important;
69
- height: 1rem !important;
70
- min-width: 1rem !important;
71
- min-height: 1rem !important;
72
- transition: var(--wr-transition-base);
114
+ width: var(--wr-btn-icon-size) !important;
115
+ height: var(--wr-btn-icon-size) !important;
116
+ min-width: var(--wr-btn-icon-size) !important;
117
+ min-height: var(--wr-btn-icon-size) !important;
118
+ transition: var(--wr-transition-base) !important;
73
119
  }
74
120
 
75
- &--icon-start {
76
- padding-left: calc(var(--wr-btn-padding-x-base) - 0.0825rem);
121
+ &--icon {
122
+ &-start {
123
+ padding-left: calc(var(--wr-btn-padding-x) - 0.0825rem);
77
124
 
78
- .wr-btn__icon {
79
- margin-right: 0.375rem;
125
+ .wr-btn__icon {
126
+ margin-right: var(--wr-btn-icon-margin);
127
+ }
80
128
  }
81
- }
82
129
 
83
- &--icon-end {
84
- .wr-btn__icon {
85
- margin-left: 0.25rem;
130
+ &-end {
131
+ .wr-btn__icon {
132
+ margin-left: var(--wr-btn-icon-margin);
133
+ }
86
134
  }
87
135
  }
88
136
 
@@ -95,66 +143,18 @@
95
143
  }
96
144
  }
97
145
 
98
- &--rounded {
99
- border-radius: var(--wr-btn-rounded-border-radius);
100
- padding: var(--wr-btn-rounded-padding-y) var(--wr-btn-rounded-padding-x);
101
- }
102
-
103
- &--small {
104
- padding: var(--wr-btn-padding-y-small) var(--wr-btn-padding-x-small);
105
- border-radius: var(--wr-btn-border-radius-small);
106
- font-size: var(--wr-btn-font-size-small);
107
- line-height: var(--wr-btn-line-height-small);
108
-
109
- .wr-btn {
110
- &__icon,
111
- &__spin {
112
- height: var(--wr-btn-font-size-small) !important;
113
- width: var(--wr-btn-font-size-small) !important;;
114
- min-height: var(--wr-btn-font-size-small) !important;;
115
- min-width: var(--wr-btn-font-size-small) !important;;
116
- }
117
-
118
- &--icon-start {
119
- .wr-btn__icon {
120
- margin-right: 0.2rem !important;
121
- }
122
- }
123
146
 
124
- &--icon-end {
125
- .wr-btn__icon {
126
- margin-left: 0.2rem !important;
127
- }
128
- }
129
- }
130
- }
131
-
132
- &--full {
147
+ &--full-width {
133
148
  display: block;
134
149
  width: 100%;
135
150
  }
136
151
  }
137
152
 
138
153
  @each $color in maps.$theme-colors-map {
139
- .wr-btn--#{$color} {
140
- color: var(--wr-color-#{$color}-contrast);
141
- background-color: var(--wr-color-#{$color});
142
-
143
- &:hover {
144
- color: var(--wr-color-#{$color}-contrast);
145
- background-color: var(--wr-color-#{$color}-shade);
146
- }
147
-
148
- &.wr-btn--outlined {
149
- color: var(--wr-color-#{$color});
150
- background-color: transparent;
151
- box-shadow: inset 0 0 0 1.25px rgba(var(--wr-color-#{$color}-rgb), 0.375);
152
-
153
- &:hover {
154
- color: var(--wr-color-#{$color}-contrast);
155
- background-color: var(--wr-color-#{$color});
156
- box-shadow: none;
157
- }
158
- }
154
+ .wr-btn--color-#{$color} {
155
+ --wr-btn-bg: var(--wr-color-#{$color});
156
+ --wr-btn-bg-rgb: var(--wr-color-#{$color}-rgb);
157
+ --wr-btn-text-color: var(--wr-color-#{$color}-contrast);
158
+ --wr-btn-shade: var(--wr-color-#{$color}-shade);
159
159
  }
160
160
  }
package/button/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { WrButton } from './button';
2
- export { WrButtonModule } from './button-module';
1
+ export { WrButton } from './button.component';
2
+ export { WrButtonModule } from './button.module';
@@ -29,7 +29,7 @@ export declare class WrCheckbox extends WrAbstractBase implements ControlValueAc
29
29
  private onTouched;
30
30
  /** Set element classes */
31
31
  get elClasses(): SafeAny;
32
- constructor(cdr: ChangeDetectorRef, elRef: ElementRef<HTMLElement>, focusMonitor: FocusMonitor, ngZone: NgZone);
32
+ constructor(cdr: ChangeDetectorRef, elRef: ElementRef<HTMLElement | HTMLInputElement>, focusMonitor: FocusMonitor, ngZone: NgZone);
33
33
  ngOnInit(): void;
34
34
  ngAfterViewInit(): void;
35
35
  ngOnDestroy(): void;
@@ -45,5 +45,5 @@ export declare class WrCheckbox extends WrAbstractBase implements ControlValueAc
45
45
  */
46
46
  private preventEventsWhenDisabled;
47
47
  static ɵfac: i0.ɵɵFactoryDeclaration<WrCheckbox, never>;
48
- static ɵcmp: i0.ɵɵComponentDeclaration<WrCheckbox, "wr-checkbox", ["wrCheckbox"], { "autofocus": { "alias": "autofocus"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], false, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<WrCheckbox, "wr-checkbox", ["wrCheckbox"], { "autofocus": { "alias": "autofocus"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
49
49
  }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./checkbox.component";
3
+ export declare class WrCheckboxModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrCheckboxModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<WrCheckboxModule, never, [typeof i1.WrCheckbox], [typeof i1.WrCheckbox]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<WrCheckboxModule>;
7
+ }
@@ -1,2 +1,2 @@
1
- export { WrCheckbox } from './checkbox';
2
- export { WrCheckboxModule } from './checkbox-module';
1
+ export { WrCheckbox } from './checkbox.component';
2
+ export { WrCheckboxModule } from './checkbox.module';
@@ -23,7 +23,7 @@ export declare class WrDivider {
23
23
  /**
24
24
  * Set width of `wr-divider`
25
25
  *
26
- * @default 1px;
26
+ * @default var(--wr-divider-width-base): 1px;
27
27
  */
28
28
  get width(): string;
29
29
  set width(value: string);
@@ -36,5 +36,5 @@ export declare class WrDivider {
36
36
  role: string;
37
37
  constructor(cdr: ChangeDetectorRef);
38
38
  static ɵfac: i0.ɵɵFactoryDeclaration<WrDivider, never>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<WrDivider, "wr-divider", ["wrDivider"], { "color": { "alias": "color"; "required": false; }; "type": { "alias": "type"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, never, false, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<WrDivider, "wr-divider", ["wrDivider"], { "color": { "alias": "color"; "required": false; }; "type": { "alias": "type"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, never, true, never>;
40
40
  }
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./divider";
2
+ import * as i1 from "./divider.component";
3
3
  export declare class WrDividerModule {
4
4
  static ɵfac: i0.ɵɵFactoryDeclaration<WrDividerModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<WrDividerModule, [typeof i1.WrDivider], never, [typeof i1.WrDivider]>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<WrDividerModule, never, [typeof i1.WrDivider], [typeof i1.WrDivider]>;
6
6
  static ɵinj: i0.ɵɵInjectorDeclaration<WrDividerModule>;
7
7
  }
@@ -1,15 +1,19 @@
1
1
  @use '../styles/maps' as maps;
2
2
 
3
3
  .wr-divider {
4
- --wr-divider-width: 1px;
4
+ --wr-divider-width: var(--wr-divider-width-base);
5
+ --wr-divider-color: var(--wr-divider-color-base);
6
+ --wr-divider-margin-top: var(--wr-divider-margin-top-base);
7
+ --wr-divider-margin-bottom: var(--wr-divider-margin-bottom-base);
5
8
 
6
9
  display: block;
7
10
 
8
11
  width: 100%;
9
12
  border-bottom-width: var(--wr-divider-width);
13
+ border-bottom-color: var(--wr-divider-color);
10
14
 
11
- margin-top: 0.5rem;
12
- margin-bottom: 0.5rem;
15
+ margin-top: var(--wr-divider-margin-top);
16
+ margin-bottom: var(--wr-divider-margin-bottom);
13
17
 
14
18
  user-select: none;
15
19
  pointer-events: none;
@@ -29,6 +33,6 @@
29
33
 
30
34
  @each $color, $value in maps.$theme-colors-map {
31
35
  .wr-divider--#{$color} {
32
- border-bottom-color: var(--wr-color-#{$color});
36
+ --wr-divider-color: var(--wr-color-#{$color});
33
37
  }
34
38
  }
@@ -1,2 +1,2 @@
1
- export { WrDivider } from './divider';
2
- export { WrDividerModule } from './divider-module';
1
+ export { WrDivider } from './divider.component';
2
+ export { WrDividerModule } from './divider.module';
@@ -0,0 +1,202 @@
1
+ import { __decorate } from "tslib";
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, } from '@angular/core';
4
+ import { WrAbstractBase } from 'ngwr/core/abstract';
5
+ import { isThemeColor } from 'ngwr/core/color';
6
+ import { InputBoolean } from 'ngwr/core/decorators';
7
+ import { WrIconModule } from 'ngwr/icon';
8
+ import { WrSpinnerModule } from 'ngwr/spinner';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "ngwr/icon";
11
+ import * as i2 from "ngwr/spinner";
12
+ export class WrButton extends WrAbstractBase {
13
+ /** Set color of `wr-btn`; */
14
+ get color() {
15
+ return this._color;
16
+ }
17
+ set color(value) {
18
+ this._color = isThemeColor(value) ? value : 'primary';
19
+ this.cdr.markForCheck();
20
+ }
21
+ /** Set size of `wr-btn`; */
22
+ get size() {
23
+ return this._size;
24
+ }
25
+ set size(value) {
26
+ this._size = value;
27
+ this.cdr.markForCheck();
28
+ }
29
+ /** Set outlined state of `wr-btn`; */
30
+ get outlined() {
31
+ return this._outlined;
32
+ }
33
+ set outlined(value) {
34
+ this._outlined = coerceBooleanProperty(value);
35
+ this.cdr.markForCheck();
36
+ }
37
+ /** Set rounded state of `wr-btn`; */
38
+ get rounded() {
39
+ return this._rounded;
40
+ }
41
+ set rounded(value) {
42
+ this._rounded = coerceBooleanProperty(value);
43
+ this.cdr.markForCheck();
44
+ }
45
+ /** Set fullwidth state of `wr-btn`; */
46
+ get fullWidth() {
47
+ return this._fullWidth;
48
+ }
49
+ set fullWidth(value) {
50
+ this._fullWidth = coerceBooleanProperty(value);
51
+ this.cdr.markForCheck();
52
+ }
53
+ /**
54
+ * @deprecated use fullWidth instead
55
+ */
56
+ get fullwidth() {
57
+ return this._fullWidth;
58
+ }
59
+ set fullwidth(value) {
60
+ this._fullWidth = coerceBooleanProperty(value);
61
+ this.cdr.markForCheck();
62
+ }
63
+ /** Set loading state of `wr-btn`; */
64
+ get loading() {
65
+ return this._loading;
66
+ }
67
+ set loading(value) {
68
+ this._loading = coerceBooleanProperty(value);
69
+ this.cdr.markForCheck();
70
+ }
71
+ /** Set disabled state of `wr-btn`; */
72
+ get disabled() {
73
+ return this._disabled;
74
+ }
75
+ set disabled(value) {
76
+ this._disabled = coerceBooleanProperty(value);
77
+ this.cdr.markForCheck();
78
+ }
79
+ /** Set icon of `wr-btn`; */
80
+ get icon() {
81
+ return this._icon;
82
+ }
83
+ set icon(value) {
84
+ this._icon = value;
85
+ this.cdr.markForCheck();
86
+ }
87
+ /** Set icon position of `wr-btn`; */
88
+ get iconPosition() {
89
+ return this._iconPosition;
90
+ }
91
+ set iconPosition(value) {
92
+ this._iconPosition = value;
93
+ this.cdr.markForCheck();
94
+ }
95
+ /** Set element disabled attribute */
96
+ get nativeDisabled() {
97
+ return this._disabled ? '' : null;
98
+ }
99
+ /** Set element classes */
100
+ get elClasses() {
101
+ return {
102
+ 'wr-btn': true,
103
+ 'wr-btn--color-primary': this.color === 'primary',
104
+ 'wr-btn--color-secondary': this.color === 'secondary',
105
+ 'wr-btn--color-success': this.color === 'success',
106
+ 'wr-btn--color-warning': this.color === 'warning',
107
+ 'wr-btn--color-danger': this.color === 'danger',
108
+ 'wr-btn--color-light': this.color === 'light',
109
+ 'wr-btn--color-medium': this.color === 'medium',
110
+ 'wr-btn--color-dark': this.color === 'dark',
111
+ 'wr-btn--size-small': this.size === 'small',
112
+ 'wr-btn--rounded': this.rounded,
113
+ 'wr-btn--icon-start': this.icon && this.iconPosition === 'start',
114
+ 'wr-btn--icon-end': this.icon && this.iconPosition === 'end',
115
+ 'wr-btn--outlined': this.outlined,
116
+ 'wr-btn--loading': this.loading,
117
+ 'wr-btn--full-width': this.fullWidth,
118
+ };
119
+ }
120
+ constructor(cdr, elRef, ngZone) {
121
+ super();
122
+ this.cdr = cdr;
123
+ this.elRef = elRef;
124
+ this.ngZone = ngZone;
125
+ this._color = 'primary';
126
+ this._size = 'default';
127
+ this._outlined = false;
128
+ this._rounded = false;
129
+ this._fullWidth = false;
130
+ this._loading = false;
131
+ this._disabled = false;
132
+ this._icon = null;
133
+ this._iconPosition = 'start';
134
+ /* A disabled button shouldn't apply any actions */
135
+ this.preventEventsWhenDisabled = (event) => {
136
+ if (this.disabled) {
137
+ event.preventDefault();
138
+ event.stopImmediatePropagation();
139
+ }
140
+ };
141
+ }
142
+ ngOnInit() {
143
+ this.ngZone.runOutsideAngular(() => {
144
+ this.elRef.nativeElement.addEventListener('click', this.preventEventsWhenDisabled);
145
+ });
146
+ }
147
+ ngOnDestroy() {
148
+ super.ngOnDestroy();
149
+ this.elRef.nativeElement.removeEventListener('click', this.preventEventsWhenDisabled);
150
+ }
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: WrButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.9", type: WrButton, isStandalone: true, selector: "wr-btn, button[wr-btn], a[wr-btn]", inputs: { color: "color", size: "size", outlined: "outlined", rounded: "rounded", fullWidth: "fullWidth", fullwidth: "fullwidth", loading: "loading", disabled: "disabled", icon: "icon", iconPosition: "iconPosition" }, host: { properties: { "attr.disabled": "this.nativeDisabled", "class": "this.elClasses" } }, exportAs: ["wrBtn"], usesInheritance: true, ngImport: i0, template: "@if (loading) {\n <wr-spin class=\"wr-btn__spin\"></wr-spin>\n}\n@if (icon && iconPosition === 'start') {\n <wr-icon class=\"wr-btn__icon\" [name]=\"icon\"></wr-icon>\n}\n<span class=\"wr-btn__text\"><ng-content></ng-content></span>\n@if (icon && iconPosition === 'end') {\n <wr-icon class=\"wr-btn__icon\" [name]=\"icon\"></wr-icon>\n}\n", dependencies: [{ kind: "ngmodule", type: WrIconModule }, { kind: "directive", type: i1.WrIcon, selector: "wr-icon[name]", inputs: ["name"], exportAs: ["wrIcon"] }, { kind: "ngmodule", type: WrSpinnerModule }, { kind: "component", type: i2.WrSpinner, selector: "wr-spin", exportAs: ["wrSpin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
153
+ }
154
+ __decorate([
155
+ InputBoolean()
156
+ ], WrButton.prototype, "outlined", null);
157
+ __decorate([
158
+ InputBoolean()
159
+ ], WrButton.prototype, "rounded", null);
160
+ __decorate([
161
+ InputBoolean()
162
+ ], WrButton.prototype, "fullWidth", null);
163
+ __decorate([
164
+ InputBoolean()
165
+ ], WrButton.prototype, "fullwidth", null);
166
+ __decorate([
167
+ InputBoolean()
168
+ ], WrButton.prototype, "loading", null);
169
+ __decorate([
170
+ InputBoolean()
171
+ ], WrButton.prototype, "disabled", null);
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: WrButton, decorators: [{
173
+ type: Component,
174
+ args: [{ selector: 'wr-btn, button[wr-btn], a[wr-btn]', exportAs: 'wrBtn', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [WrIconModule, WrSpinnerModule], template: "@if (loading) {\n <wr-spin class=\"wr-btn__spin\"></wr-spin>\n}\n@if (icon && iconPosition === 'start') {\n <wr-icon class=\"wr-btn__icon\" [name]=\"icon\"></wr-icon>\n}\n<span class=\"wr-btn__text\"><ng-content></ng-content></span>\n@if (icon && iconPosition === 'end') {\n <wr-icon class=\"wr-btn__icon\" [name]=\"icon\"></wr-icon>\n}\n" }]
175
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { color: [{
176
+ type: Input
177
+ }], size: [{
178
+ type: Input
179
+ }], outlined: [{
180
+ type: Input
181
+ }], rounded: [{
182
+ type: Input
183
+ }], fullWidth: [{
184
+ type: Input
185
+ }], fullwidth: [{
186
+ type: Input
187
+ }], loading: [{
188
+ type: Input
189
+ }], disabled: [{
190
+ type: Input
191
+ }], icon: [{
192
+ type: Input
193
+ }], iconPosition: [{
194
+ type: Input
195
+ }], nativeDisabled: [{
196
+ type: HostBinding,
197
+ args: ['attr.disabled']
198
+ }], elClasses: [{
199
+ type: HostBinding,
200
+ args: ['class']
201
+ }] } });
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi9idXR0b24vYnV0dG9uLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBYyxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBVy9DLE1BQU0sT0FBTyxRQUFTLFNBQVEsY0FBYztJQUMxQyw2QkFBNkI7SUFDN0IsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFtQjtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBR0QsNEJBQTRCO0lBQzVCLElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxJ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QVE7a0JBVHBCLFNBQVM7K0JBQ0UsbUNBQW1DLFlBQ25DLE9BQU8sbUJBRUEsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO29JQUtwQyxLQUFLO3NCQURSLEtBQUs7Z0JBWUYsSUFBSTtzQkFEUCxLQUFLO2dCQWFGLFFBQVE7c0JBRlgsS0FBSztnQkFjRixPQUFPO3NCQUZWLEtBQUs7Z0JBY0YsU0FBUztzQkFGWixLQUFLO2dCQWVGLFNBQVM7c0JBRlosS0FBSztnQkFlRixPQUFPO3NCQUZWLEtBQUs7Z0JBY0YsUUFBUTtzQkFGWCxLQUFLO2dCQWFGLElBQUk7c0JBRFAsS0FBSztnQkFZRixZQUFZO3NCQURmLEtBQUs7Z0JBWUYsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxlQUFlO2dCQU94QixTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgV3JBYnN0cmFjdEJhc2UgfSBmcm9tICduZ3dyL2NvcmUvYWJzdHJhY3QnO1xuaW1wb3J0IHsgaXNUaGVtZUNvbG9yLCBXclRoZW1lQ29sb3IgfSBmcm9tICduZ3dyL2NvcmUvY29sb3InO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd3ci9jb3JlL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgU2FmZUFueSB9IGZyb20gJ25nd3IvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBXckljb25Nb2R1bGUsIHdySWNvbk5hbWUgfSBmcm9tICduZ3dyL2ljb24nO1xuaW1wb3J0IHsgV3JTcGlubmVyTW9kdWxlIH0gZnJvbSAnbmd3ci9zcGlubmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3ItYnRuLCBidXR0b25bd3ItYnRuXSwgYVt3ci1idG5dJyxcbiAgZXhwb3J0QXM6ICd3ckJ0bicsXG4gIHRlbXBsYXRlVXJsOiAnYnV0dG9uLnRlbXBsYXRlLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1dySWNvbk1vZHVsZSwgV3JTcGlubmVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgV3JCdXR0b24gZXh0ZW5kcyBXckFic3RyYWN0QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqIFNldCBjb2xvciBvZiBgd3ItYnRuYDsgKi9cbiAgQElucHV0KClcbiAgZ2V0IGNvbG9yKCk6IFdyVGhlbWVDb2xvciB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICB9XG4gIHNldCBjb2xvcih2YWx1ZTogV3JUaGVtZUNvbG9yKSB7XG4gICAgdGhpcy5fY29sb3IgPSBpc1RoZW1lQ29sb3IodmFsdWUpID8gdmFsdWUgOiAncHJpbWFyeSc7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHJpdmF0ZSBfY29sb3I6IFdyVGhlbWVDb2xvciA9ICdwcmltYXJ5JztcblxuICAvKiogU2V0IHNpemUgb2YgYHdyLWJ0bmA7ICovXG4gIEBJbnB1dCgpXG4gIGdldCBzaXplKCk6ICdkZWZhdWx0JyB8ICdzbWFsbCcge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG4gIHNldCBzaXplKHZhbHVlOiAnZGVmYXVsdCcgfCAnc21hbGwnKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIHByaXZhdGUgX3NpemU6ICdkZWZhdWx0JyB8ICdzbWFsbCcgPSAnZGVmYXVsdCc7XG5cbiAgLyoqIFNldCBvdXRsaW5lZCBzdGF0ZSBvZiBgd3ItYnRuYDsgKi9cbiAgQElucHV0KClcbiAgQElucHV0Qm9vbGVhbigpXG4gIGdldCBvdXRsaW5lZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3V0bGluZWQ7XG4gIH1cbiAgc2V0IG91dGxpbmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9vdXRsaW5lZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHJpdmF0ZSBfb3V0bGluZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2V0IHJvdW5kZWQgc3RhdGUgb2YgYHdyLWJ0bmA7ICovXG4gIEBJbnB1dCgpXG4gIEBJbnB1dEJvb2xlYW4oKVxuICBnZXQgcm91bmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcm91bmRlZDtcbiAgfVxuICBzZXQgcm91bmRlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcm91bmRlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHJpdmF0ZSBfcm91bmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTZXQgZnVsbHdpZHRoIHN0YXRlIG9mIGB3ci1idG5gOyAqL1xuICBASW5wdXQoKVxuICBASW5wdXRCb29sZWFuKClcbiAgZ2V0IGZ1bGxXaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZnVsbFdpZHRoO1xuICB9XG4gIHNldCBmdWxsV2lkdGgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2Z1bGxXaWR0aCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGZ1bGxXaWR0aCBpbnN0ZWFkXG4gICAqL1xuICBASW5wdXQoKVxuICBASW5wdXRCb29sZWFuKClcbiAgZ2V0IGZ1bGx3aWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZnVsbFdpZHRoO1xuICB9XG4gIHNldCBmdWxsd2lkdGgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2Z1bGxXaWR0aCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9mdWxsV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2V0IGxvYWRpbmcgc3RhdGUgb2YgYHdyLWJ0bmA7ICovXG4gIEBJbnB1dCgpXG4gIEBJbnB1dEJvb2xlYW4oKVxuICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuICBzZXQgbG9hZGluZyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fbG9hZGluZyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHJpdmF0ZSBfbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTZXQgZGlzYWJsZWQgc3RhdGUgb2YgYHdyLWJ0bmA7ICovXG4gIEBJbnB1dCgpXG4gIEBJbnB1dEJvb2xlYW4oKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFNldCBpY29uIG9mIGB3ci1idG5gOyAqL1xuICBASW5wdXQoKVxuICBnZXQgaWNvbigpOiB3ckljb25OYW1lIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb247XG4gIH1cbiAgc2V0IGljb24odmFsdWU6IHdySWNvbk5hbWUgfCBudWxsKSB7XG4gICAgdGhpcy5faWNvbiA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIHByaXZhdGUgX2ljb246IHdySWNvbk5hbWUgfCBudWxsID0gbnVsbDtcblxuICAvKiogU2V0IGljb24gcG9zaXRpb24gb2YgYHdyLWJ0bmA7ICovXG4gIEBJbnB1dCgpXG4gIGdldCBpY29uUG9zaXRpb24oKTogJ3N0YXJ0JyB8ICdlbmQnIHtcbiAgICByZXR1cm4gdGhpcy5faWNvblBvc2l0aW9uO1xuICB9XG4gIHNldCBpY29uUG9zaXRpb24odmFsdWU6ICdzdGFydCcgfCAnZW5kJykge1xuICAgIHRoaXMuX2ljb25Qb3NpdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIHByaXZhdGUgX2ljb25Qb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAvKiogU2V0IGVsZW1lbnQgZGlzYWJsZWQgYXR0cmlidXRlICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gIGdldCBuYXRpdmVEaXNhYmxlZCgpOiAnJyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCA/ICcnIDogbnVsbDtcbiAgfVxuXG4gIC8qKiBTZXQgZWxlbWVudCBjbGFzc2VzICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgZWxDbGFzc2VzKCk6IFNhZmVBbnkge1xuICAgIHJldHVybiB7XG4gICAgICAnd3ItYnRuJzogdHJ1ZSxcbiAgICAgICd3ci1idG4tLWNvbG9yLXByaW1hcnknOiB0aGlzLmNvbG9yID09PSAncHJpbWFyeScsXG4gICAgICAnd3ItYnRuLS1jb2xvci1zZWNvbmRhcnknOiB0aGlzLmNvbG9yID09PSAnc2Vjb25kYXJ5JyxcbiAgICAgICd3ci1idG4tLWNvbG9yLXN1Y2Nlc3MnOiB0aGlzLmNvbG9yID09PSAnc3VjY2VzcycsXG4gICAgICAnd3ItYnRuLS1jb2xvci13YXJuaW5nJzogdGhpcy5jb2xvciA9PT0gJ3dhcm5pbmcnLFxuICAgICAgJ3dyLWJ0bi0tY29sb3ItZGFuZ2VyJzogdGhpcy5jb2xvciA9PT0gJ2RhbmdlcicsXG4gICAgICAnd3ItYnRuLS1jb2xvci1saWdodCc6IHRoaXMuY29sb3IgPT09ICdsaWdodCcsXG4gICAgICAnd3ItYnRuLS1jb2xvci1tZWRpdW0nOiB0aGlzLmNvbG9yID09PSAnbWVkaXVtJyxcbiAgICAgICd3ci1idG4tLWNvbG9yLWRhcmsnOiB0aGlzLmNvbG9yID09PSAnZGFyaycsXG4gICAgICAnd3ItYnRuLS1zaXplLXNtYWxsJzogdGhpcy5zaXplID09PSAnc21hbGwnLFxuICAgICAgJ3dyLWJ0bi0tcm91bmRlZCc6IHRoaXMucm91bmRlZCxcbiAgICAgICd3ci1idG4tLWljb24tc3RhcnQnOiB0aGlzLmljb24gJiYgdGhpcy5pY29uUG9zaXRpb24gPT09ICdzdGFydCcsXG4gICAgICAnd3ItYnRuLS1pY29uLWVuZCc6IHRoaXMuaWNvbiAmJiB0aGlzLmljb25Qb3NpdGlvbiA9PT0gJ2VuZCcsXG4gICAgICAnd3ItYnRuLS1vdXRsaW5lZCc6IHRoaXMub3V0bGluZWQsXG4gICAgICAnd3ItYnRuLS1sb2FkaW5nJzogdGhpcy5sb2FkaW5nLFxuICAgICAgJ3dyLWJ0bi0tZnVsbC13aWR0aCc6IHRoaXMuZnVsbFdpZHRoLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudCB8IEhUTUxMaW5rRWxlbWVudCB8IEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMucHJldmVudEV2ZW50c1doZW5EaXNhYmxlZCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMucHJldmVudEV2ZW50c1doZW5EaXNhYmxlZCk7XG4gIH1cblxuICAvKiBBIGRpc2FibGVkIGJ1dHRvbiBzaG91bGRuJ3QgYXBwbHkgYW55IGFjdGlvbnMgKi9cbiAgcHJpdmF0ZSBwcmV2ZW50RXZlbnRzV2hlbkRpc2FibGVkID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9O1xufVxuIiwiQGlmIChsb2FkaW5nKSB7XG4gIDx3ci1zcGluIGNsYXNzPVwid3ItYnRuX19zcGluXCI+PC93ci1zcGluPlxufVxuQGlmIChpY29uICYmIGljb25Qb3NpdGlvbiA9PT0gJ3N0YXJ0Jykge1xuICA8d3ItaWNvbiBjbGFzcz1cIndyLWJ0bl9faWNvblwiIFtuYW1lXT1cImljb25cIj48L3dyLWljb24+XG59XG48c3BhbiBjbGFzcz1cIndyLWJ0bl9fdGV4dFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG5AaWYgKGljb24gJiYgaWNvblBvc2l0aW9uID09PSAnZW5kJykge1xuICA8d3ItaWNvbiBjbGFzcz1cIndyLWJ0bl9faWNvblwiIFtuYW1lXT1cImljb25cIj48L3dyLWljb24+XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { WrButton } from './button.component';
3
+ import * as i0 from "@angular/core";
4
+ export class WrButtonModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: WrButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.9", ngImport: i0, type: WrButtonModule, imports: [WrButton], exports: [WrButton] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: WrButtonModule, imports: [WrButton] }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: WrButtonModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [WrButton],
13
+ exports: [WrButton],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi9idXR0b24vYnV0dG9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFNOUMsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLFlBSGYsUUFBUSxhQUNSLFFBQVE7K0dBRVAsY0FBYyxZQUhmLFFBQVE7OzJGQUdQLGNBQWM7a0JBSjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgV3JCdXR0b24gfSBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbV3JCdXR0b25dLFxuICBleHBvcnRzOiBbV3JCdXR0b25dLFxufSlcbmV4cG9ydCBjbGFzcyBXckJ1dHRvbk1vZHVsZSB7fVxuIl19
@@ -1,3 +1,3 @@
1
- export { WrButton } from './button';
2
- export { WrButtonModule } from './button-module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saWIvYnV0dG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgV3JCdXR0b24gfSBmcm9tICcuL2J1dHRvbic7XG5leHBvcnQgeyBXckJ1dHRvbk1vZHVsZSB9IGZyb20gJy4vYnV0dG9uLW1vZHVsZSc7XG4iXX0=
1
+ export { WrButton } from './button.component';
2
+ export { WrButtonModule } from './button.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saWIvYnV0dG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBXckJ1dHRvbiB9IGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBXckJ1dHRvbk1vZHVsZSB9IGZyb20gJy4vYnV0dG9uLm1vZHVsZSc7XG4iXX0=