@updevs/components 1.0.0-alpha.1 → 1.0.0-alpha.100

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 (198) hide show
  1. package/README.md +1 -24
  2. package/assets/styles/_bootstrap-components.scss +55 -0
  3. package/assets/styles/_bootstrap-config.scss +7 -0
  4. package/assets/styles/_bootstrap-override.scss +78 -0
  5. package/assets/styles/_config.scss +9 -0
  6. package/assets/styles/_core.scss +80 -0
  7. package/assets/styles/_debug.scss +49 -0
  8. package/assets/styles/_mixins.scss +2 -0
  9. package/assets/styles/_props.scss +91 -0
  10. package/assets/styles/_seven-columns.scss +73 -0
  11. package/assets/styles/_updevs.scss +25 -0
  12. package/assets/styles/_utilities-marketing.scss +209 -0
  13. package/assets/styles/_utilities.scss +133 -0
  14. package/assets/styles/_variables-dark.scss +19 -0
  15. package/assets/styles/_variables.scss +1003 -0
  16. package/assets/styles/fonts/_webfonts.scss +15 -0
  17. package/assets/styles/helpers/_index.scss +143 -0
  18. package/assets/styles/layout/_animations.scss +62 -0
  19. package/assets/styles/layout/_core.scss +62 -0
  20. package/assets/styles/layout/_dark.scss +77 -0
  21. package/assets/styles/layout/_footer.scss +12 -0
  22. package/assets/styles/layout/_navbar.scss +392 -0
  23. package/assets/styles/layout/_page.scss +170 -0
  24. package/assets/styles/layout/_root.scss +64 -0
  25. package/assets/styles/marketing/_browser.scss +67 -0
  26. package/assets/styles/marketing/_core.scss +8 -0
  27. package/assets/styles/marketing/_filters.scss +0 -0
  28. package/assets/styles/marketing/_hero.scss +70 -0
  29. package/assets/styles/marketing/_pricing.scss +111 -0
  30. package/assets/styles/marketing/_sections.scss +124 -0
  31. package/assets/styles/marketing/_shape.scss +31 -0
  32. package/assets/styles/mixins/_functions.scss +96 -0
  33. package/assets/styles/mixins/_mixins.scss +68 -0
  34. package/assets/styles/ui/_accordion.scss +178 -0
  35. package/assets/styles/ui/_alerts.scss +101 -0
  36. package/assets/styles/ui/_avatars.scss +145 -0
  37. package/assets/styles/ui/_badges.scss +113 -0
  38. package/assets/styles/ui/_breadcrumbs.scss +50 -0
  39. package/assets/styles/ui/_button-group.scss +16 -0
  40. package/assets/styles/ui/_buttons.scss +261 -0
  41. package/assets/styles/ui/_calendars.scss +104 -0
  42. package/assets/styles/ui/_cards.scss +595 -0
  43. package/assets/styles/ui/_carousel.scss +68 -0
  44. package/assets/styles/ui/_charts.scss +61 -0
  45. package/assets/styles/ui/_chat.scss +38 -0
  46. package/assets/styles/ui/_chips.scss +0 -0
  47. package/assets/styles/ui/_close.scss +60 -0
  48. package/assets/styles/ui/_datagrid.scss +17 -0
  49. package/assets/styles/ui/_dropdowns.scss +120 -0
  50. package/assets/styles/ui/_empty.scss +60 -0
  51. package/assets/styles/ui/_flags.scss +31 -0
  52. package/assets/styles/ui/_forms.scss +250 -0
  53. package/assets/styles/ui/_grid.scss +115 -0
  54. package/assets/styles/ui/_icons.scss +72 -0
  55. package/assets/styles/ui/_images.scss +19 -0
  56. package/assets/styles/ui/_legend.scss +12 -0
  57. package/assets/styles/ui/_lists.scss +123 -0
  58. package/assets/styles/ui/_loaders.scss +72 -0
  59. package/assets/styles/ui/_login.scss +3 -0
  60. package/assets/styles/ui/_markdown.scss +53 -0
  61. package/assets/styles/ui/_modals.scss +67 -0
  62. package/assets/styles/ui/_nav.scss +106 -0
  63. package/assets/styles/ui/_offcanvas.scss +17 -0
  64. package/assets/styles/ui/_pagination.scss +58 -0
  65. package/assets/styles/ui/_payments.scss +28 -0
  66. package/assets/styles/ui/_placeholder.scss +9 -0
  67. package/assets/styles/ui/_popovers.scss +2 -0
  68. package/assets/styles/ui/_progress.scss +107 -0
  69. package/assets/styles/ui/_ribbons.scss +157 -0
  70. package/assets/styles/ui/_segmented.scss +101 -0
  71. package/assets/styles/ui/_signature.scss +15 -0
  72. package/assets/styles/ui/_social.scss +52 -0
  73. package/assets/styles/ui/_stars.scss +13 -0
  74. package/assets/styles/ui/_status.scss +163 -0
  75. package/assets/styles/ui/_steps.scss +156 -0
  76. package/assets/styles/ui/_switch-icon.scss +211 -0
  77. package/assets/styles/ui/_tables.scss +176 -0
  78. package/assets/styles/ui/_tags.scss +57 -0
  79. package/assets/styles/ui/_timeline.scss +61 -0
  80. package/assets/styles/ui/_toasts.scss +18 -0
  81. package/assets/styles/ui/_toolbar.scss +10 -0
  82. package/assets/styles/ui/_tracking.scss +29 -0
  83. package/assets/styles/ui/_type.scss +330 -0
  84. package/assets/styles/ui/forms/_form-check.scss +91 -0
  85. package/assets/styles/ui/forms/_form-colorinput.scss +54 -0
  86. package/assets/styles/ui/forms/_form-custom.scss +28 -0
  87. package/assets/styles/ui/forms/_form-icon.scss +35 -0
  88. package/assets/styles/ui/forms/_form-imagecheck.scss +105 -0
  89. package/assets/styles/ui/forms/_form-selectgroup.scss +153 -0
  90. package/assets/styles/ui/forms/_validation.scss +13 -0
  91. package/assets/styles/ui/typo/_hr.scss +76 -0
  92. package/assets/styles/utils/_background.scss +15 -0
  93. package/assets/styles/utils/_colors.scss +101 -0
  94. package/assets/styles/utils/_opacity.scss +7 -0
  95. package/assets/styles/utils/_scroll.scss +45 -0
  96. package/assets/styles/utils/_shadow.scss +17 -0
  97. package/assets/styles/utils/_sizing.scss +10 -0
  98. package/assets/styles/utils/_text.scss +14 -0
  99. package/assets/styles/vendor/_apexcharts.scss +52 -0
  100. package/assets/styles/vendor/_coloris.scss +72 -0
  101. package/assets/styles/vendor/_dropzone.scss +27 -0
  102. package/assets/styles/vendor/_fslightbox.scss +13 -0
  103. package/assets/styles/vendor/_jsvectormap.scss +47 -0
  104. package/assets/styles/vendor/_litepicker.scss +69 -0
  105. package/assets/styles/vendor/_nouislider.scss +49 -0
  106. package/assets/styles/vendor/_plyr.scss +3 -0
  107. package/assets/styles/vendor/_stars-rating.scss +22 -0
  108. package/assets/styles/vendor/_tom-select.scss +81 -0
  109. package/assets/styles/vendor/_turbo.scss +3 -0
  110. package/assets/styles/vendor/_typed.scss +4 -0
  111. package/assets/styles/vendor/_wysiwyg.scss +46 -0
  112. package/fesm2022/updevs-components-badge.mjs +89 -0
  113. package/fesm2022/updevs-components-badge.mjs.map +1 -0
  114. package/fesm2022/updevs-components-button.mjs +193 -0
  115. package/fesm2022/updevs-components-button.mjs.map +1 -0
  116. package/fesm2022/updevs-components-calendar.mjs +582 -0
  117. package/fesm2022/updevs-components-calendar.mjs.map +1 -0
  118. package/fesm2022/updevs-components-card.mjs +242 -0
  119. package/fesm2022/updevs-components-card.mjs.map +1 -0
  120. package/fesm2022/updevs-components-drag-and-drop.mjs +185 -0
  121. package/fesm2022/updevs-components-drag-and-drop.mjs.map +1 -0
  122. package/fesm2022/updevs-components-dropdown.mjs +247 -0
  123. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  124. package/fesm2022/updevs-components-form-controls-abstractions.mjs +106 -0
  125. package/fesm2022/updevs-components-form-controls-abstractions.mjs.map +1 -0
  126. package/fesm2022/updevs-components-form-controls-checkbox.mjs +99 -0
  127. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  128. package/fesm2022/updevs-components-form-controls-date-picker.mjs +175 -0
  129. package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -0
  130. package/fesm2022/updevs-components-form-controls-file-upload.mjs +272 -0
  131. package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -0
  132. package/fesm2022/updevs-components-form-controls-input.mjs +281 -0
  133. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  134. package/fesm2022/updevs-components-form-controls-radio.mjs +98 -0
  135. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  136. package/fesm2022/updevs-components-form-controls-select.mjs +600 -0
  137. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  138. package/fesm2022/updevs-components-form-controls-textarea.mjs +79 -0
  139. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  140. package/fesm2022/updevs-components-form-controls-time-picker.mjs +345 -0
  141. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  142. package/fesm2022/updevs-components-form.mjs +562 -0
  143. package/fesm2022/updevs-components-form.mjs.map +1 -0
  144. package/fesm2022/updevs-components-layout.mjs +1054 -0
  145. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  146. package/fesm2022/updevs-components-link.mjs +79 -0
  147. package/fesm2022/updevs-components-link.mjs.map +1 -0
  148. package/fesm2022/updevs-components-list.mjs +215 -0
  149. package/fesm2022/updevs-components-list.mjs.map +1 -0
  150. package/fesm2022/updevs-components-modal.mjs +505 -0
  151. package/fesm2022/updevs-components-modal.mjs.map +1 -0
  152. package/fesm2022/updevs-components-paginator.mjs +160 -0
  153. package/fesm2022/updevs-components-paginator.mjs.map +1 -0
  154. package/fesm2022/updevs-components-popover.mjs +215 -0
  155. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  156. package/fesm2022/updevs-components-pricing.mjs +130 -0
  157. package/fesm2022/updevs-components-pricing.mjs.map +1 -0
  158. package/fesm2022/updevs-components-table.mjs +2060 -0
  159. package/fesm2022/updevs-components-table.mjs.map +1 -0
  160. package/fesm2022/updevs-components.mjs +33 -0
  161. package/fesm2022/updevs-components.mjs.map +1 -0
  162. package/package.json +127 -14
  163. package/types/updevs-components-badge.d.ts +44 -0
  164. package/types/updevs-components-button.d.ts +75 -0
  165. package/types/updevs-components-calendar.d.ts +175 -0
  166. package/types/updevs-components-card.d.ts +92 -0
  167. package/types/updevs-components-drag-and-drop.d.ts +74 -0
  168. package/types/updevs-components-dropdown.d.ts +124 -0
  169. package/types/updevs-components-form-controls-abstractions.d.ts +49 -0
  170. package/types/updevs-components-form-controls-checkbox.d.ts +33 -0
  171. package/types/updevs-components-form-controls-date-picker.d.ts +80 -0
  172. package/types/updevs-components-form-controls-file-upload.d.ts +69 -0
  173. package/types/updevs-components-form-controls-input.d.ts +95 -0
  174. package/types/updevs-components-form-controls-radio.d.ts +32 -0
  175. package/types/updevs-components-form-controls-select.d.ts +200 -0
  176. package/types/updevs-components-form-controls-textarea.d.ts +31 -0
  177. package/types/updevs-components-form-controls-time-picker.d.ts +164 -0
  178. package/types/updevs-components-form.d.ts +356 -0
  179. package/types/updevs-components-layout.d.ts +490 -0
  180. package/types/updevs-components-link.d.ts +34 -0
  181. package/types/updevs-components-list.d.ts +107 -0
  182. package/types/updevs-components-modal.d.ts +155 -0
  183. package/types/updevs-components-paginator.d.ts +58 -0
  184. package/types/updevs-components-popover.d.ts +63 -0
  185. package/types/updevs-components-pricing.d.ts +91 -0
  186. package/types/updevs-components-table.d.ts +619 -0
  187. package/types/updevs-components.d.ts +44 -0
  188. package/CHANGELOG.md +0 -8
  189. package/ng-package.json +0 -7
  190. package/src/lib/components.component.spec.ts +0 -23
  191. package/src/lib/components.component.ts +0 -14
  192. package/src/lib/components.module.ts +0 -17
  193. package/src/lib/components.service.spec.ts +0 -16
  194. package/src/lib/components.service.ts +0 -9
  195. package/src/public-api.ts +0 -7
  196. package/tsconfig.lib.json +0 -14
  197. package/tsconfig.lib.prod.json +0 -10
  198. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,193 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, input, computed, inject, HostListener, Output, HostBinding, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from '@updevs/icons';
6
+ import { UpdIconsModule } from '@updevs/icons';
7
+ import * as i3 from '@updevs/components/badge';
8
+ import { UpdBadgeModule } from '@updevs/components/badge';
9
+ import { TextService } from '@updevs/sdk';
10
+
11
+ class ButtonComponent {
12
+ constructor() {
13
+ /**
14
+ * Emitted when the button is clicked.
15
+ * **NOTE:** The name of the event can not be 'click'. It would generate a conflict with the HTML event of same name.
16
+ * That would cause strange behaviors like preventing `isDisabled` from working correctly.
17
+ */
18
+ this.clicked = new EventEmitter();
19
+ this.model = input(...(ngDevMode ? [undefined, { debugName: "model" }] : []));
20
+ this.text = input(...(ngDevMode ? [undefined, { debugName: "text" }] : []));
21
+ this.brandColorStyle = input(...(ngDevMode ? [undefined, { debugName: "brandColorStyle" }] : []));
22
+ this.customClasses = input(...(ngDevMode ? [undefined, { debugName: "customClasses" }] : []));
23
+ this.isOutline = input(false, ...(ngDevMode ? [{ debugName: "isOutline" }] : []));
24
+ this.isGhost = input(false, ...(ngDevMode ? [{ debugName: "isGhost" }] : []));
25
+ this.isSquare = input(false, ...(ngDevMode ? [{ debugName: "isSquare" }] : []));
26
+ this.isPill = input(false, ...(ngDevMode ? [{ debugName: "isPill" }] : []));
27
+ this.isIcon = input(false, ...(ngDevMode ? [{ debugName: "isIcon" }] : []));
28
+ this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
29
+ /**
30
+ * Whether the button should act as a list (top-bottom alignment instead of left-right related to neighbors).
31
+ */
32
+ this.isList = input(false, ...(ngDevMode ? [{ debugName: "isList" }] : []));
33
+ /**
34
+ * Whether the button should be floating in the bottom right corner.
35
+ */
36
+ this.isFloating = input(false, ...(ngDevMode ? [{ debugName: "isFloating" }] : []));
37
+ this.isAction = input(false, ...(ngDevMode ? [{ debugName: "isAction" }] : []));
38
+ this.isNavigationLink = input(false, ...(ngDevMode ? [{ debugName: "isNavigationLink" }] : []));
39
+ this.isLink = input(false, ...(ngDevMode ? [{ debugName: "isLink" }] : []));
40
+ this.shouldIgnoreBtnClass = input(false, ...(ngDevMode ? [{ debugName: "shouldIgnoreBtnClass" }] : []));
41
+ this.iconModel = input(...(ngDevMode ? [undefined, { debugName: "iconModel" }] : []));
42
+ this.iconPosition = input('left', ...(ngDevMode ? [{ debugName: "iconPosition" }] : []));
43
+ this.isDisabled = input(false, ...(ngDevMode ? [{ debugName: "isDisabled" }] : []));
44
+ this.isActive = input(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
45
+ this.badgeConfig = input(...(ngDevMode ? [undefined, { debugName: "badgeConfig" }] : []));
46
+ this.colorStyle = input(...(ngDevMode ? [undefined, { debugName: "colorStyle" }] : []));
47
+ this.size = input('regular', ...(ngDevMode ? [{ debugName: "size" }] : []));
48
+ this.title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
49
+ this.stopPropagation = input(false, ...(ngDevMode ? [{ debugName: "stopPropagation" }] : []));
50
+ this._size = computed(() => !!this.model() ? this.model().size() : this.size(), ...(ngDevMode ? [{ debugName: "_size" }] : []));
51
+ this._title = computed(() => !!this.model() && !!this.model()?.title ? this.model().title() : this.title(), ...(ngDevMode ? [{ debugName: "_title" }] : []));
52
+ this._colorStyle = computed(() => !!this.model() && !!this.model()?.colorStyle ? this.model().colorStyle() : this.colorStyle(), ...(ngDevMode ? [{ debugName: "_colorStyle" }] : []));
53
+ this._brandColorStyle = computed(() => !!this.model() && !!this.model()?.brandColorStyle ? this.model().brandColorStyle() : this.brandColorStyle(), ...(ngDevMode ? [{ debugName: "_brandColorStyle" }] : []));
54
+ this.buttonClasses = computed(() => {
55
+ const isLink = this.model()?.isLink() || this.isLink();
56
+ const outlineCls = this.model()?.isOutline() || this.isOutline() ? 'outline-' : '';
57
+ const ghostCls = this.model()?.isGhost() || this.isGhost() ? 'ghost-' : '';
58
+ const lClasses = this.model()?.shouldIgnoreBtnClass() || this.shouldIgnoreBtnClass() ? [] : ['btn'];
59
+ const customClasses = this.model()?.customClasses?.().split(' ') || this.customClasses()?.split(' ') || [];
60
+ if (!isLink && (!!outlineCls || !!ghostCls || !!this._colorStyle() || !!this._brandColorStyle())) {
61
+ lClasses.push(`btn-${outlineCls || ghostCls}${this._colorStyle() || this._brandColorStyle()}`);
62
+ }
63
+ else if (!!this._colorStyle() || !!this._brandColorStyle()) {
64
+ lClasses.push(`link-${this._colorStyle() || this._brandColorStyle()}`);
65
+ }
66
+ if (this.model()?.isSquare() || this.isSquare()) {
67
+ lClasses.push('btn-square');
68
+ }
69
+ if (this.model()?.isPill() || this.isPill()) {
70
+ lClasses.push('btn-pill');
71
+ }
72
+ if (this._isIcon) {
73
+ lClasses.push('btn-icon');
74
+ }
75
+ if (this.model()?.isLoading() || this.isLoading()) {
76
+ lClasses.push('btn-loading');
77
+ }
78
+ if (this.model()?.isList() || this.isList()) {
79
+ lClasses.push('btn-list');
80
+ }
81
+ if (this.model()?.isFloating() || this.isFloating()) {
82
+ lClasses.push('btn-floating');
83
+ }
84
+ if (this.model()?.isAction() || this.isAction()) {
85
+ lClasses.push('btn-action');
86
+ }
87
+ if (this.model()?.isNavigationLink() || this.isNavigationLink()) {
88
+ lClasses.push('nav-link');
89
+ }
90
+ if (isLink) {
91
+ lClasses.push('btn-link');
92
+ }
93
+ if (this.model()?.isActive() || this.isActive()) {
94
+ lClasses.push('active');
95
+ }
96
+ if (this.model()?.isDisabled() || this.isDisabled()) {
97
+ lClasses.push('disabled');
98
+ }
99
+ if (!!this.badgeConfig() && (this.badgeConfig().isBlinking || this.badgeConfig().isNotification)) {
100
+ lClasses.push('position-relative');
101
+ }
102
+ lClasses.push(this.sizeClass);
103
+ return [...lClasses, ...customClasses];
104
+ }, ...(ngDevMode ? [{ debugName: "buttonClasses" }] : []));
105
+ this.textService = inject(TextService);
106
+ }
107
+ get classes() {
108
+ return this.buttonClasses();
109
+ }
110
+ get titleAttr() {
111
+ return this.textService.getText(this._title());
112
+ }
113
+ get mainText() {
114
+ return this.textService.getText(this.model()?.text?.() || this.text());
115
+ }
116
+ get _iconModel() {
117
+ return this.model()?.iconModel?.() || this.iconModel();
118
+ }
119
+ get _iconPosition() {
120
+ return this.model()?.iconPosition() || this.iconPosition();
121
+ }
122
+ get _isIcon() {
123
+ return this.model()?.isIcon() || this.isIcon();
124
+ }
125
+ get sizeClass() {
126
+ switch (this._size()) {
127
+ case 'large':
128
+ return 'btn-lg';
129
+ case 'small':
130
+ return 'btn-sm';
131
+ default:
132
+ return '';
133
+ }
134
+ }
135
+ onClick(event) {
136
+ if (!!this.model() && !!this.model()?.clickFunction) {
137
+ this.model().clickFunction({ event, data: this });
138
+ }
139
+ else {
140
+ this.clicked.emit(event);
141
+ }
142
+ }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: ButtonComponent, isStandalone: false, selector: "upd-button", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, brandColorStyle: { classPropertyName: "brandColorStyle", publicName: "brandColorStyle", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, isOutline: { classPropertyName: "isOutline", publicName: "isOutline", isSignal: true, isRequired: false, transformFunction: null }, isGhost: { classPropertyName: "isGhost", publicName: "isGhost", isSignal: true, isRequired: false, transformFunction: null }, isSquare: { classPropertyName: "isSquare", publicName: "isSquare", isSignal: true, isRequired: false, transformFunction: null }, isPill: { classPropertyName: "isPill", publicName: "isPill", isSignal: true, isRequired: false, transformFunction: null }, isIcon: { classPropertyName: "isIcon", publicName: "isIcon", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isList: { classPropertyName: "isList", publicName: "isList", isSignal: true, isRequired: false, transformFunction: null }, isFloating: { classPropertyName: "isFloating", publicName: "isFloating", isSignal: true, isRequired: false, transformFunction: null }, isAction: { classPropertyName: "isAction", publicName: "isAction", isSignal: true, isRequired: false, transformFunction: null }, isNavigationLink: { classPropertyName: "isNavigationLink", publicName: "isNavigationLink", isSignal: true, isRequired: false, transformFunction: null }, isLink: { classPropertyName: "isLink", publicName: "isLink", isSignal: true, isRequired: false, transformFunction: null }, shouldIgnoreBtnClass: { classPropertyName: "shouldIgnoreBtnClass", publicName: "shouldIgnoreBtnClass", isSignal: true, isRequired: false, transformFunction: null }, iconModel: { classPropertyName: "iconModel", publicName: "iconModel", isSignal: true, isRequired: false, transformFunction: null }, iconPosition: { classPropertyName: "iconPosition", publicName: "iconPosition", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, badgeConfig: { classPropertyName: "badgeConfig", publicName: "badgeConfig", isSignal: true, isRequired: false, transformFunction: null }, colorStyle: { classPropertyName: "colorStyle", publicName: "colorStyle", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, stopPropagation: { classPropertyName: "stopPropagation", publicName: "stopPropagation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.classes", "title": "this.titleAttr" } }, ngImport: i0, template: "<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n", styles: [".btn-icon .icon{margin:0 calc(-1 * var(--upd-btn-padding-x)) 0 calc(-1 * var(--upd-btn-padding-x))!important}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.BadgeComponent, selector: "upd-badge", inputs: ["config", "bgColor", "textColor", "text", "isOutline", "isPill", "isNotification", "isBlinking", "customClasses"] }], encapsulation: i0.ViewEncapsulation.None }); }
145
+ }
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: ButtonComponent, decorators: [{
147
+ type: Component,
148
+ args: [{ standalone: false, selector: 'upd-button', encapsulation: ViewEncapsulation.None, template: "<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n", styles: [".btn-icon .icon{margin:0 calc(-1 * var(--upd-btn-padding-x)) 0 calc(-1 * var(--upd-btn-padding-x))!important}\n"] }]
149
+ }], propDecorators: { classes: [{
150
+ type: HostBinding,
151
+ args: ['class']
152
+ }], titleAttr: [{
153
+ type: HostBinding,
154
+ args: ['title']
155
+ }], clicked: [{
156
+ type: Output
157
+ }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }], text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }], brandColorStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "brandColorStyle", required: false }] }], customClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "customClasses", required: false }] }], isOutline: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOutline", required: false }] }], isGhost: [{ type: i0.Input, args: [{ isSignal: true, alias: "isGhost", required: false }] }], isSquare: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSquare", required: false }] }], isPill: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPill", required: false }] }], isIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "isIcon", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], isList: [{ type: i0.Input, args: [{ isSignal: true, alias: "isList", required: false }] }], isFloating: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFloating", required: false }] }], isAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAction", required: false }] }], isNavigationLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "isNavigationLink", required: false }] }], isLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLink", required: false }] }], shouldIgnoreBtnClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "shouldIgnoreBtnClass", required: false }] }], iconModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconModel", required: false }] }], iconPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconPosition", required: false }] }], isDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDisabled", required: false }] }], isActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "isActive", required: false }] }], badgeConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "badgeConfig", required: false }] }], colorStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorStyle", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], stopPropagation: [{ type: i0.Input, args: [{ isSignal: true, alias: "stopPropagation", required: false }] }], onClick: [{
158
+ type: HostListener,
159
+ args: ['click', ['$event']]
160
+ }] } });
161
+
162
+ class UpdButtonModule {
163
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: UpdButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
164
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.4", ngImport: i0, type: UpdButtonModule, declarations: [ButtonComponent], imports: [CommonModule,
165
+ UpdIconsModule,
166
+ UpdBadgeModule], exports: [ButtonComponent] }); }
167
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: UpdButtonModule, imports: [CommonModule,
168
+ UpdIconsModule,
169
+ UpdBadgeModule] }); }
170
+ }
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: UpdButtonModule, decorators: [{
172
+ type: NgModule,
173
+ args: [{
174
+ imports: [
175
+ CommonModule,
176
+ UpdIconsModule,
177
+ UpdBadgeModule
178
+ ],
179
+ declarations: [
180
+ ButtonComponent
181
+ ],
182
+ exports: [
183
+ ButtonComponent
184
+ ]
185
+ }]
186
+ }] });
187
+
188
+ /**
189
+ * Generated bundle index. Do not edit.
190
+ */
191
+
192
+ export { ButtonComponent, UpdButtonModule };
193
+ //# sourceMappingURL=updevs-components-button.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updevs-components-button.mjs","sources":["../../../../libs/components/button/src/button.component.ts","../../../../libs/components/button/src/button.component.html","../../../../libs/components/button/src/upd-button.module.ts","../../../../libs/components/button/src/updevs-components-button.ts"],"sourcesContent":["import {\n Component,\n ViewEncapsulation,\n Output,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n input,\n computed\n} from '@angular/core';\nimport { IconModel } from '@updevs/icons';\nimport { TextModel, TextService } from '@updevs/sdk';\nimport { ButtonModel } from '@updevs/sdk/layout';\nimport { LeftRightType, OptionalType, BrandType, BgColorStyleType, ButtonSizeType } from '@updevs/sdk/types';\nimport { BadgeConfig } from '@updevs/components/badge';\n\n@Component({\n standalone: false,\n selector: 'upd-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ButtonComponent {\n @HostBinding('class') get classes(): string[] {\n return this.buttonClasses();\n }\n\n @HostBinding('title') get titleAttr(): OptionalType<string> {\n return this.textService.getText(this._title());\n }\n\n /**\n * Emitted when the button is clicked.\n * **NOTE:** The name of the event can not be 'click'. It would generate a conflict with the HTML event of same name.\n * That would cause strange behaviors like preventing `isDisabled` from working correctly.\n */\n @Output() readonly clicked = new EventEmitter<any>();\n\n model = input<ButtonModel>();\n text = input<TextModel>();\n brandColorStyle = input<BrandType>();\n customClasses = input<string>();\n isOutline = input(false);\n isGhost = input(false);\n isSquare = input(false);\n isPill = input(false);\n isIcon = input(false);\n isLoading = input(false);\n /**\n * Whether the button should act as a list (top-bottom alignment instead of left-right related to neighbors).\n */\n isList = input(false);\n /**\n * Whether the button should be floating in the bottom right corner.\n */\n isFloating = input(false);\n isAction = input(false);\n isNavigationLink = input(false);\n isLink = input(false);\n shouldIgnoreBtnClass = input(false);\n iconModel = input<IconModel>();\n iconPosition = input<LeftRightType>('left');\n isDisabled = input(false);\n isActive = input(false);\n badgeConfig = input<BadgeConfig>();\n colorStyle = input<BgColorStyleType>();\n size = input<ButtonSizeType>('regular');\n title = input<TextModel>();\n stopPropagation = input(false);\n\n get mainText(): string {\n return this.textService.getText(this.model()?.text?.() || this.text());\n }\n\n get _iconModel(): OptionalType<IconModel> {\n return this.model()?.iconModel?.() || this.iconModel();\n }\n\n get _iconPosition(): LeftRightType {\n return this.model()?.iconPosition() || this.iconPosition();\n }\n\n get _isIcon(): boolean {\n return this.model()?.isIcon() || this.isIcon();\n }\n\n private get sizeClass(): string {\n switch (this._size()) {\n case 'large':\n return 'btn-lg';\n case 'small':\n return 'btn-sm';\n default:\n return '';\n }\n }\n\n private _size = computed(() => !!this.model() ? this.model()!.size() : this.size());\n private _title = computed(() => !!this.model() && !!this.model()?.title ? this.model()!.title!() : this.title());\n private _colorStyle = computed(() => !!this.model() && !!this.model()?.colorStyle ? this.model()!.colorStyle!() : this.colorStyle());\n private _brandColorStyle = computed(() =>\n !!this.model() && !!this.model()?.brandColorStyle ? this.model()!.brandColorStyle!() : this.brandColorStyle()\n );\n private buttonClasses = computed(() => {\n const isLink = this.model()?.isLink() || this.isLink();\n const outlineCls = this.model()?.isOutline() || this.isOutline() ? 'outline-' : '';\n const ghostCls = this.model()?.isGhost() || this.isGhost() ? 'ghost-' : '';\n const lClasses: string[] = this.model()?.shouldIgnoreBtnClass() || this.shouldIgnoreBtnClass() ? [] : ['btn'];\n const customClasses = this.model()?.customClasses?.().split(' ') || this.customClasses()?.split(' ') || [];\n\n if (!isLink && (!!outlineCls || !!ghostCls || !!this._colorStyle() || !!this._brandColorStyle())) {\n lClasses.push(`btn-${outlineCls || ghostCls}${this._colorStyle() || this._brandColorStyle()}`);\n } else if (!!this._colorStyle() || !!this._brandColorStyle()) {\n lClasses.push(`link-${this._colorStyle() || this._brandColorStyle()}`);\n }\n\n if (this.model()?.isSquare() || this.isSquare()) {\n lClasses.push('btn-square');\n }\n\n if (this.model()?.isPill() || this.isPill()) {\n lClasses.push('btn-pill');\n }\n\n if (this._isIcon) {\n lClasses.push('btn-icon');\n }\n\n if (this.model()?.isLoading() || this.isLoading()) {\n lClasses.push('btn-loading');\n }\n\n if (this.model()?.isList() || this.isList()) {\n lClasses.push('btn-list');\n }\n\n if (this.model()?.isFloating() || this.isFloating()) {\n lClasses.push('btn-floating');\n }\n\n if (this.model()?.isAction() || this.isAction()) {\n lClasses.push('btn-action');\n }\n\n if (this.model()?.isNavigationLink() || this.isNavigationLink()) {\n lClasses.push('nav-link');\n }\n\n if (isLink) {\n lClasses.push('btn-link');\n }\n\n if (this.model()?.isActive() || this.isActive()) {\n lClasses.push('active');\n }\n\n if (this.model()?.isDisabled() || this.isDisabled()) {\n lClasses.push('disabled');\n }\n\n if (!!this.badgeConfig() && (this.badgeConfig()!.isBlinking || this.badgeConfig()!.isNotification)) {\n lClasses.push('position-relative');\n }\n\n lClasses.push(this.sizeClass);\n\n return [...lClasses, ...customClasses];\n });\n private readonly textService = inject(TextService);\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (!!this.model() && !!this.model()?.clickFunction) {\n this.model()!.clickFunction!({ event, data: this });\n } else {\n this.clicked.emit(event);\n }\n }\n}\n","<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdBadgeModule } from '@updevs/components/badge';\n\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdIconsModule,\n UpdBadgeModule\n ],\n declarations: [\n ButtonComponent\n ],\n exports: [\n ButtonComponent\n ]\n})\nexport class UpdButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}