bromcom-ui 2.7.37-rc.3 → 2.7.37-rc.4-1

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 (238) hide show
  1. package/dist/collection/components/atoms/avatar/avatar.js +3 -3
  2. package/dist/collection/components/atoms/typography/typography.js +1 -1
  3. package/dist/collection/components/molecules/drawer/drawer.js +3 -3
  4. package/dist/collection/components/molecules/linked/linked.js +4 -4
  5. package/dist/collection/components/molecules/menu/menu.js +2 -2
  6. package/dist/collection/components/molecules/popover/popover.js +3 -3
  7. package/dist/collection/components/molecules/tooltip/tooltip.js +3 -3
  8. package/dist/collection/components/organism/list/list-tag-control.js +1 -1
  9. package/dist/collection/components/organism/list/list.js +5 -5
  10. package/dist/collection/components/other_deprecated/old-popover/old-popover-box.js +1 -1
  11. package/dist/collection/helper/popover-helper.js +2 -2
  12. package/dist/collection/helper/tooltip-helper.js +2 -2
  13. package/dist/collection/utils/floating-ui.js +1 -1
  14. package/dist/components/_commonjsHelpers.js +25 -0
  15. package/dist/components/avatar.js +124 -0
  16. package/dist/components/badge.js +95 -0
  17. package/dist/components/bcm-accordion.d.ts +11 -0
  18. package/dist/components/bcm-accordion.js +101 -0
  19. package/dist/components/bcm-alert.d.ts +11 -0
  20. package/dist/components/bcm-alert.js +140 -0
  21. package/dist/components/bcm-attendance.d.ts +11 -0
  22. package/dist/components/bcm-attendance.js +72 -0
  23. package/dist/components/bcm-autocomplete.d.ts +11 -0
  24. package/dist/components/bcm-autocomplete.js +293 -0
  25. package/dist/components/bcm-avatar.d.ts +11 -0
  26. package/dist/components/bcm-avatar.js +10 -0
  27. package/dist/components/bcm-badge.d.ts +11 -0
  28. package/dist/components/bcm-badge.js +10 -0
  29. package/dist/components/bcm-box.d.ts +11 -0
  30. package/dist/components/bcm-box.js +48 -0
  31. package/dist/components/bcm-breadcrumb.d.ts +11 -0
  32. package/dist/components/bcm-breadcrumb.js +96 -0
  33. package/dist/components/bcm-button-group.d.ts +11 -0
  34. package/dist/components/bcm-button-group.js +121 -0
  35. package/dist/components/bcm-button.d.ts +11 -0
  36. package/dist/components/bcm-button.js +10 -0
  37. package/dist/components/bcm-card.d.ts +11 -0
  38. package/dist/components/bcm-card.js +91 -0
  39. package/dist/components/bcm-checkbox-group.d.ts +11 -0
  40. package/dist/components/bcm-checkbox-group.js +474 -0
  41. package/dist/components/bcm-checkbox-lite.d.ts +11 -0
  42. package/dist/components/bcm-checkbox-lite.js +10 -0
  43. package/dist/components/bcm-checkbox.d.ts +11 -0
  44. package/dist/components/bcm-checkbox.js +10 -0
  45. package/dist/components/bcm-chip.d.ts +11 -0
  46. package/dist/components/bcm-chip.js +106 -0
  47. package/dist/components/bcm-collapse-group.d.ts +11 -0
  48. package/dist/components/bcm-collapse-group.js +75 -0
  49. package/dist/components/bcm-collapse.d.ts +11 -0
  50. package/dist/components/bcm-collapse.js +77 -0
  51. package/dist/components/bcm-colorpicker.d.ts +11 -0
  52. package/dist/components/bcm-colorpicker.js +491 -0
  53. package/dist/components/bcm-date-picker.d.ts +11 -0
  54. package/dist/components/bcm-date-picker.js +249 -0
  55. package/dist/components/bcm-datetime-picker.d.ts +11 -0
  56. package/dist/components/bcm-datetime-picker.js +10 -0
  57. package/dist/components/bcm-default.d.ts +11 -0
  58. package/dist/components/bcm-default.js +61 -0
  59. package/dist/components/bcm-divider.d.ts +11 -0
  60. package/dist/components/bcm-divider.js +10 -0
  61. package/dist/components/bcm-drawer.d.ts +11 -0
  62. package/dist/components/bcm-drawer.js +141 -0
  63. package/dist/components/bcm-dropdown.d.ts +11 -0
  64. package/dist/components/bcm-dropdown.js +306 -0
  65. package/dist/components/bcm-empty.d.ts +11 -0
  66. package/dist/components/bcm-empty.js +10 -0
  67. package/dist/components/bcm-error-layout.d.ts +11 -0
  68. package/dist/components/bcm-error-layout.js +98 -0
  69. package/dist/components/bcm-expansion-panel.d.ts +11 -0
  70. package/dist/components/bcm-expansion-panel.js +159 -0
  71. package/dist/components/bcm-form-2.d.ts +11 -0
  72. package/dist/components/bcm-form-2.js +226 -0
  73. package/dist/components/bcm-form-group.d.ts +11 -0
  74. package/dist/components/bcm-form-group.js +65 -0
  75. package/dist/components/bcm-form.d.ts +11 -0
  76. package/dist/components/bcm-form.js +510 -0
  77. package/dist/components/bcm-icon.d.ts +11 -0
  78. package/dist/components/bcm-icon.js +10 -0
  79. package/dist/components/bcm-input.d.ts +11 -0
  80. package/dist/components/bcm-input.js +404 -0
  81. package/dist/components/bcm-item.d.ts +11 -0
  82. package/dist/components/bcm-item.js +98 -0
  83. package/dist/components/bcm-items.d.ts +11 -0
  84. package/dist/components/bcm-items.js +74 -0
  85. package/dist/components/bcm-label.d.ts +11 -0
  86. package/dist/components/bcm-label.js +10 -0
  87. package/dist/components/bcm-link.d.ts +11 -0
  88. package/dist/components/bcm-link.js +10 -0
  89. package/dist/components/bcm-linked.d.ts +11 -0
  90. package/dist/components/bcm-linked.js +201 -0
  91. package/dist/components/bcm-list.d.ts +11 -0
  92. package/dist/components/bcm-list.js +1859 -0
  93. package/dist/components/bcm-listbox-group.d.ts +11 -0
  94. package/dist/components/bcm-listbox-group.js +10 -0
  95. package/dist/components/bcm-listbox-item.d.ts +11 -0
  96. package/dist/components/bcm-listbox-item.js +10 -0
  97. package/dist/components/bcm-listbox.d.ts +11 -0
  98. package/dist/components/bcm-listbox.js +10 -0
  99. package/dist/components/bcm-menu.d.ts +11 -0
  100. package/dist/components/bcm-menu.js +10 -0
  101. package/dist/components/bcm-message.d.ts +11 -0
  102. package/dist/components/bcm-message.js +126 -0
  103. package/dist/components/bcm-modal.d.ts +11 -0
  104. package/dist/components/bcm-modal.js +166 -0
  105. package/dist/components/bcm-notification.d.ts +11 -0
  106. package/dist/components/bcm-notification.js +136 -0
  107. package/dist/components/bcm-old-input.d.ts +11 -0
  108. package/dist/components/bcm-old-input.js +10 -0
  109. package/dist/components/bcm-old-search.d.ts +11 -0
  110. package/dist/components/bcm-old-search.js +10 -0
  111. package/dist/components/bcm-old-tag.d.ts +11 -0
  112. package/dist/components/bcm-old-tag.js +10 -0
  113. package/dist/components/bcm-popconfirm-box.d.ts +11 -0
  114. package/dist/components/bcm-popconfirm-box.js +10 -0
  115. package/dist/components/bcm-popconfirm.d.ts +11 -0
  116. package/dist/components/bcm-popconfirm.js +160 -0
  117. package/dist/components/bcm-popover.d.ts +11 -0
  118. package/dist/components/bcm-popover.js +203 -0
  119. package/dist/components/bcm-progress.d.ts +11 -0
  120. package/dist/components/bcm-progress.js +205 -0
  121. package/dist/components/bcm-radio-group.d.ts +11 -0
  122. package/dist/components/bcm-radio-group.js +334 -0
  123. package/dist/components/bcm-radio.d.ts +11 -0
  124. package/dist/components/bcm-radio.js +10 -0
  125. package/dist/components/bcm-range.d.ts +11 -0
  126. package/dist/components/bcm-range.js +220 -0
  127. package/dist/components/bcm-result.d.ts +11 -0
  128. package/dist/components/bcm-result.js +105 -0
  129. package/dist/components/bcm-search.d.ts +11 -0
  130. package/dist/components/bcm-search.js +10 -0
  131. package/dist/components/bcm-select-box.d.ts +11 -0
  132. package/dist/components/bcm-select-box.js +10 -0
  133. package/dist/components/bcm-select-group.d.ts +11 -0
  134. package/dist/components/bcm-select-group.js +48 -0
  135. package/dist/components/bcm-select-option.d.ts +11 -0
  136. package/dist/components/bcm-select-option.js +57 -0
  137. package/dist/components/bcm-select.d.ts +11 -0
  138. package/dist/components/bcm-select.js +1385 -0
  139. package/dist/components/bcm-skeleton.d.ts +11 -0
  140. package/dist/components/bcm-skeleton.js +10 -0
  141. package/dist/components/bcm-step.d.ts +11 -0
  142. package/dist/components/bcm-step.js +10 -0
  143. package/dist/components/bcm-stepper.d.ts +11 -0
  144. package/dist/components/bcm-stepper.js +249 -0
  145. package/dist/components/bcm-switch.d.ts +11 -0
  146. package/dist/components/bcm-switch.js +201 -0
  147. package/dist/components/bcm-tab-group.d.ts +11 -0
  148. package/dist/components/bcm-tab-group.js +190 -0
  149. package/dist/components/bcm-tab-pane.d.ts +11 -0
  150. package/dist/components/bcm-tab-pane.js +89 -0
  151. package/dist/components/bcm-tab.d.ts +11 -0
  152. package/dist/components/bcm-tab.js +125 -0
  153. package/dist/components/bcm-table.d.ts +11 -0
  154. package/dist/components/bcm-table.js +93 -0
  155. package/dist/components/bcm-tabs-content.d.ts +11 -0
  156. package/dist/components/bcm-tabs-content.js +80 -0
  157. package/dist/components/bcm-tabs.d.ts +11 -0
  158. package/dist/components/bcm-tabs.js +430 -0
  159. package/dist/components/bcm-tag.d.ts +11 -0
  160. package/dist/components/bcm-tag.js +132 -0
  161. package/dist/components/bcm-text.d.ts +11 -0
  162. package/dist/components/bcm-text.js +10 -0
  163. package/dist/components/bcm-textarea.d.ts +11 -0
  164. package/dist/components/bcm-textarea.js +212 -0
  165. package/dist/components/bcm-time-picker.d.ts +11 -0
  166. package/dist/components/bcm-time-picker.js +209 -0
  167. package/dist/components/bcm-timeline-item.d.ts +11 -0
  168. package/dist/components/bcm-timeline-item.js +81 -0
  169. package/dist/components/bcm-timeline.d.ts +11 -0
  170. package/dist/components/bcm-timeline.js +91 -0
  171. package/dist/components/bcm-tooltip.d.ts +11 -0
  172. package/dist/components/bcm-tooltip.js +10 -0
  173. package/dist/components/bcm-treeview-group.d.ts +11 -0
  174. package/dist/components/bcm-treeview-group.js +37 -0
  175. package/dist/components/bcm-treeview-item.d.ts +11 -0
  176. package/dist/components/bcm-treeview-item.js +10 -0
  177. package/dist/components/bcm-treeview.d.ts +11 -0
  178. package/dist/components/bcm-treeview.js +10 -0
  179. package/dist/components/bcm-typography.d.ts +11 -0
  180. package/dist/components/bcm-typography.js +10 -0
  181. package/dist/components/bcm.js +446 -0
  182. package/dist/components/button.js +403 -0
  183. package/dist/components/caption-template.js +32 -0
  184. package/dist/components/checkbox-lite.js +97 -0
  185. package/dist/components/checkbox.js +231 -0
  186. package/dist/components/color-helper.js +488 -0
  187. package/dist/components/colors.js +222 -0
  188. package/dist/components/datetime-picker.js +1509 -0
  189. package/dist/components/divider.js +59 -0
  190. package/dist/components/element-dragger.js +277 -0
  191. package/dist/components/empty.js +53 -0
  192. package/dist/components/floating-ui.js +1453 -0
  193. package/dist/components/generate.js +202 -0
  194. package/dist/components/icon.js +53 -0
  195. package/dist/components/index.d.ts +105 -0
  196. package/dist/components/index.js +99 -0
  197. package/dist/components/index2.js +62 -0
  198. package/dist/components/index3.js +191 -0
  199. package/dist/components/input-template.js +97 -0
  200. package/dist/components/is-load-decorator.js +54 -0
  201. package/dist/components/json-parse-decarator.js +38 -0
  202. package/dist/components/label-template.js +21 -0
  203. package/dist/components/label.js +83 -0
  204. package/dist/components/link.js +84 -0
  205. package/dist/components/listbox-group.js +55 -0
  206. package/dist/components/listbox-item.js +217 -0
  207. package/dist/components/listbox.js +1116 -0
  208. package/dist/components/menu.js +274 -0
  209. package/dist/components/number-helper.js +18 -0
  210. package/dist/components/old-bcm-popover-box.d.ts +11 -0
  211. package/dist/components/old-bcm-popover-box.js +10 -0
  212. package/dist/components/old-bcm-popover.d.ts +11 -0
  213. package/dist/components/old-bcm-popover.js +132 -0
  214. package/dist/components/old-input.js +470 -0
  215. package/dist/components/old-popover-box.js +184 -0
  216. package/dist/components/old-search.js +235 -0
  217. package/dist/components/old-tag.js +153 -0
  218. package/dist/components/popconfirm-box.js +160 -0
  219. package/dist/components/popover-placement.js +95 -0
  220. package/dist/components/property-decorators.js +31 -0
  221. package/dist/components/radio.js +119 -0
  222. package/dist/components/search.js +286 -0
  223. package/dist/components/select-box.js +165 -0
  224. package/dist/components/skeleton.js +69 -0
  225. package/dist/components/slot-template.js +13 -0
  226. package/dist/components/step.js +188 -0
  227. package/dist/components/string-helper.js +132 -0
  228. package/dist/components/text.js +72 -0
  229. package/dist/components/tooltip-helper.js +101 -0
  230. package/dist/components/tooltip.js +96 -0
  231. package/dist/components/treeview-item.js +419 -0
  232. package/dist/components/treeview.js +956 -0
  233. package/dist/components/types.js +32 -0
  234. package/dist/components/types2.js +32 -0
  235. package/dist/components/typography.js +45 -0
  236. package/dist/components/utils.js +123 -0
  237. package/dist/components/validators.js +35 -0
  238. package/package.json +4 -3
@@ -0,0 +1,430 @@
1
+ /*!
2
+ * Built with Stencil
3
+ * Copyright (c) Bromcom.
4
+ */
5
+ import { proxyCustomElement, HTMLElement, createEvent, forceUpdate, h, Host } from '@stencil/core/internal/client';
6
+ import { S as SizeProps, T as TypeProps, D as DirectionProps } from './types2.js';
7
+ import { d as delay, b as getChilds } from './utils.js';
8
+ import { c as classnames } from './index2.js';
9
+ import { I as IsLoad } from './is-load-decorator.js';
10
+
11
+ const tabsCss = "@import url(\"https://fonts.googleapis.com/css?family=Roboto:400,500\");.size-1{font-size:12px;line-height:20px}.size-2{font-size:14px;line-height:22px}.size-3{font-size:16px;line-height:24px}.size-4{font-size:20px;line-height:28px}.size-5{font-size:24px;line-height:32px}.size-6{font-size:30px;line-height:38px}.size-7{font-size:38px;line-height:46px}.size-8{font-size:46px;line-height:54px}.size-9{font-size:56px;line-height:64px}.weight-regular{font-weight:400}.weight-semibold{font-weight:500}.input-size-large{height:40px}.input-size-medium{height:32px}.input-size-small{height:24px}.resize-none textarea{resize:none}.resize-vertical textarea{resize:vertical}.resize-auto textarea{height:auto;resize:none}.textarea-size-large{padding:4px 0 0 4px;min-height:40px}.textarea-size-large .bcm-input-element{min-height:calc((40px - 8px) + 2px)}.textarea-size-large .input-clear-button{height:calc( 40px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-medium{padding:4px 0 0 4px;min-height:32px}.textarea-size-medium .bcm-input-element{min-height:calc((32px - 8px) + 2px)}.textarea-size-medium .input-clear-button{height:calc( 32px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-small{padding:0px 0 0 4px;min-height:24px}.textarea-size-small .bcm-input-element{min-height:calc((24px - 8px) + 2px)}.textarea-size-small .input-clear-button{height:calc( 24px - 16px );top:8px;padding:0;margin-right:8px}:host{display:block}:host(.hidden){display:none}::slotted(bcm-tab:not(:last-child)){margin-right:32px}.tabs{position:relative;display:flex;flex-wrap:wrap}.tabs.large{--bcm-tab-vertical-space:16px;--bcm-tab-font-size:16px;--bcm-tab-line-height:24px}.tabs.medium{--bcm-tab-vertical-space:11px;--bcm-tab-font-size:14px;--bcm-tab-line-height:22px}.tabs.small{--bcm-tab-vertical-space:7px;--bcm-tab-font-size:14px;--bcm-tab-line-height:22px}.tabs.pane{--bcm-tab-vertical-space:9px;--bcm-tab-font-size:14px;--bcm-tab-line-height:22px}.tabs.full-width{width:100%;display:flex;align-items:center;justify-content:center}.tabs.full-width ::slotted(bcm-tab){flex:1}.tabs.underline:after{content:\"\";margin-top:0;z-index:0;left:0;width:100%;height:2px;background-color:var(--bcm-color-grey-4)}.tabs.animatable:before{transition:all 0.4s ease}.tabs.pane ::slotted(bcm-tab:not(:last-child)){margin-right:2px}.tabs.pane:before{display:none}.tabs.vertical{flex-direction:column;width:fit-content}.tabs.vertical:before{content:\"\";position:absolute;top:var(--bcm-tabs-line-top);left:var(--bcm-tabs-line-left);right:var(--bcm-tabs-line-right);width:var(--bcm-tabs-line-width);height:var(--bcm-tabs-line-height);background-color:var(--bcm-color-prime-blue-6)}.tabs.vertical ::slotted(bcm-tab){margin-right:0}";
12
+
13
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
16
+ r = Reflect.decorate(decorators, target, key, desc);
17
+ else
18
+ for (var i = decorators.length - 1; i >= 0; i--)
19
+ if (d = decorators[i])
20
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ const BcmTabs$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
24
+ constructor() {
25
+ super();
26
+ this.__registerHost();
27
+ this.__attachShadow();
28
+ this.click = createEvent(this, "bcm-click", 7);
29
+ this.change = createEvent(this, "bcm-change", 7);
30
+ this.bcmTabsActiveItem = createEvent(this, "bcm-tabs-active-item", 7);
31
+ /**
32
+ * Component Private variables
33
+ */
34
+ this.tabs = [];
35
+ this.firstInit = true;
36
+ this.count = 0;
37
+ /**
38
+ * Component Properties
39
+ */
40
+ this.size = SizeProps.large;
41
+ this.type = TypeProps.normal;
42
+ this.direction = DirectionProps.horizontal;
43
+ this.hidden = false;
44
+ this.fullWidth = false;
45
+ this.underline = true;
46
+ /**
47
+ * Component States
48
+ */
49
+ this.activeChild = 1;
50
+ this.lineOpts = { top: '0px', left: '0px', right: '0px', width: '0px', height: '0px' };
51
+ this.prevButton = null;
52
+ this.nextButton = null;
53
+ this.completeButton = null;
54
+ this.prevButtonState = 'disabled';
55
+ this.nextButtonState = 'disabled';
56
+ this.completeButtonState = 'disabled';
57
+ }
58
+ async config(_config) {
59
+ if (_config['prevButton']) {
60
+ if (_config['prevButton']['id']) {
61
+ var prevButtonId = "#" + _config['prevButton']['id'];
62
+ this.prevButton = document.querySelector(prevButtonId);
63
+ }
64
+ if (_config['prevButton']['state']) {
65
+ this.prevButtonState = _config['prevButton']['state'];
66
+ }
67
+ }
68
+ if (_config['nextButton']) {
69
+ if (_config['nextButton']['id']) {
70
+ var nextButtonId = "#" + _config['nextButton']['id'];
71
+ this.nextButton = document.querySelector(nextButtonId);
72
+ }
73
+ if (_config['nextButton']['state']) {
74
+ this.nextButtonState = _config['nextButton']['state'];
75
+ }
76
+ }
77
+ if (_config['completeButton']) {
78
+ if (_config['completeButton']['id']) {
79
+ var completeButtonId = "#" + _config['completeButton']['id'];
80
+ this.completeButton = document.querySelector(completeButtonId);
81
+ }
82
+ if (_config['completeButton']['state']) {
83
+ this.completeButtonState = _config['completeButton']['state'];
84
+ }
85
+ }
86
+ this.buttonControl();
87
+ return true;
88
+ }
89
+ async next() {
90
+ var getFormId = "#" + this.tabs[this.getActive() - 1]["formControl"];
91
+ var getForm = document.querySelector(getFormId);
92
+ var formData = null;
93
+ if (getForm) {
94
+ formData = await getForm.submit();
95
+ }
96
+ if ((getForm && formData.isValid) || !getForm) {
97
+ this.activeChild = this.getActive() + 1;
98
+ this.active(this.tabs[this.getActive() - 1]["tabId"]);
99
+ }
100
+ return formData;
101
+ }
102
+ async prev() {
103
+ this.activeChild = this.getActive() - 1;
104
+ this.active(this.tabs[this.getActive() - 1]["tabId"]);
105
+ return this.activeChild;
106
+ }
107
+ async complete() {
108
+ const tabStatuses = [];
109
+ var isValid = true;
110
+ this.tabs.forEach(element => {
111
+ if (element['formControl']) {
112
+ const getFormId = "#" + element["formControl"];
113
+ const getForm = document.querySelector(getFormId);
114
+ if (getForm) {
115
+ tabStatuses.push(getForm.submit());
116
+ }
117
+ }
118
+ });
119
+ const allStatuses = await Promise.all(tabStatuses);
120
+ allStatuses.forEach(item => {
121
+ if (item.isValid === false) {
122
+ isValid = false;
123
+ if (item.formName) {
124
+ const formId = this.tabs.filter((input) => input['formControl'] == item.formName)[0]['tabId'];
125
+ this.active(formId);
126
+ }
127
+ }
128
+ });
129
+ return { isValid: isValid, Forms: allStatuses };
130
+ }
131
+ async active(id) {
132
+ var i = 0;
133
+ this.activeChild = -1,
134
+ await delay(100);
135
+ getChilds(this.el, 'bcm-tab').forEach(items => {
136
+ i++,
137
+ items.tabId == id && (items.disabled = false,
138
+ items.active = true,
139
+ this.bcmTabsActiveItem.emit(items.tabId),
140
+ this.activeChild = i);
141
+ items.tabId != id && (items.active = false);
142
+ });
143
+ }
144
+ async getActiveTab() {
145
+ return this.tabs[this.getActive() - 1]["tabId"];
146
+ }
147
+ async getActiveIndex() {
148
+ return this.getActive();
149
+ }
150
+ async error(id, blink = false) {
151
+ getChilds(this.el, 'bcm-tab').forEach(items => {
152
+ items.tabId == id && (items.badge = true,
153
+ items.blink = blink,
154
+ items.status = "error");
155
+ });
156
+ }
157
+ async info(id, blink = false) {
158
+ getChilds(this.el, 'bcm-tab').forEach(items => {
159
+ items.tabId == id && (items.badge = true,
160
+ items.blink = blink,
161
+ items.status = "processing");
162
+ });
163
+ }
164
+ async warning(id, blink = false) {
165
+ getChilds(this.el, 'bcm-tab').forEach(items => {
166
+ items.tabId == id && (items.badge = true,
167
+ items.blink = blink,
168
+ items.status = "warning");
169
+ });
170
+ }
171
+ async success(id, blink = false) {
172
+ getChilds(this.el, 'bcm-tab').forEach(items => {
173
+ items.tabId == id && (items.badge = true,
174
+ items.blink = blink,
175
+ items.status = "success");
176
+ });
177
+ }
178
+ async statusReset(id) {
179
+ getChilds(this.el, 'bcm-tab').forEach(items => {
180
+ items.tabId == id && (items.badge = false,
181
+ items.blink = false,
182
+ items.status = "default");
183
+ });
184
+ }
185
+ buttonControl() {
186
+ if (this.prevButton) {
187
+ if (this.activeChild == 1) {
188
+ this.prevButton.setAttribute(this.prevButtonState, "true");
189
+ }
190
+ else {
191
+ this.prevButton.removeAttribute(this.prevButtonState);
192
+ }
193
+ }
194
+ if (this.nextButton) {
195
+ if (this.getActive() == this.count) {
196
+ this.nextButton.setAttribute(this.nextButtonState, "true");
197
+ }
198
+ else {
199
+ this.nextButton.removeAttribute(this.nextButtonState);
200
+ }
201
+ }
202
+ if (this.completeButton) {
203
+ if (this.getActive() == this.count) {
204
+ this.completeButton.removeAttribute(this.completeButtonState);
205
+ }
206
+ else {
207
+ this.completeButton.setAttribute(this.completeButtonState, "true");
208
+ }
209
+ }
210
+ }
211
+ /**
212
+ * @ComponentMethod
213
+ */
214
+ componentDidRender() {
215
+ if (!this.firstInit)
216
+ return;
217
+ let slotElements;
218
+ slotElements = this.el.shadowRoot.querySelector('slot').assignedElements();
219
+ this.tabs = [];
220
+ this.activeChild = this.getActive();
221
+ var isActive = false;
222
+ var firstId = null;
223
+ var i = 0;
224
+ // Get only bcm-tab elements from
225
+ // slot childs
226
+ slotElements.map((element) => {
227
+ i++;
228
+ this.type == "stepper" && (element.disabled = true);
229
+ if (!firstId) {
230
+ firstId = element.tabId;
231
+ }
232
+ if (String(element.tagName).toLowerCase() == 'bcm-tab') {
233
+ element.type = this.type;
234
+ // Activate default tab
235
+ // #
236
+ if (this.tabs.push(element) - 1 == this.activeChild) {
237
+ this.activateChild(this.activeChild);
238
+ isActive = true;
239
+ }
240
+ }
241
+ this.count = i;
242
+ });
243
+ if (!isActive) {
244
+ this.active(firstId);
245
+ }
246
+ setTimeout(() => {
247
+ this.el.shadowRoot.querySelector('.tabs').classList.add('animatable');
248
+ }, 500);
249
+ }
250
+ componentDidLoad() {
251
+ getChilds(this.el, 'bcm-tab').forEach(items => {
252
+ items.active && (this.bcmTabsActiveItem.emit(items.tabId), items.disabled = false);
253
+ });
254
+ }
255
+ getActive() {
256
+ const childs = getChilds(this.el, 'bcm-tab');
257
+ const childIndex = childs.findIndex(child => child.active);
258
+ return childIndex >= 0 ? childIndex + 1 : 1;
259
+ }
260
+ /**
261
+ * @desc
262
+ */
263
+ getChildIdx(child) {
264
+ let i = 1;
265
+ while (child.previousElementSibling) {
266
+ child = child.previousElementSibling;
267
+ i++;
268
+ }
269
+ return i;
270
+ }
271
+ /**
272
+ * @desc
273
+ * @param idx
274
+ */
275
+ activateChild(idx) {
276
+ idx = idx - 1;
277
+ const child = this.tabs[idx];
278
+ if (child) {
279
+ this.tabs.forEach((tab) => tab.active = false);
280
+ child.active = true;
281
+ child.disabled = false;
282
+ this.transformLine(idx);
283
+ this.firstInit && forceUpdate(this.el);
284
+ this.firstInit = false;
285
+ }
286
+ }
287
+ /**
288
+ * @desc
289
+ * @param idx
290
+ */
291
+ transformLine(idx) {
292
+ const tab = this.tabs[idx];
293
+ const rect = tab.getBoundingClientRect();
294
+ const top = (rect.top + window.pageYOffset);
295
+ const left = (rect.left + window.pageXOffset);
296
+ const width = rect.width;
297
+ const height = rect.height;
298
+ if (this.direction == 'horizontal') {
299
+ // this.lineOpts.top = (tab.offsetTop + tab.offsetHeight) + 'px'
300
+ this.lineOpts.top = top + height + 'px';
301
+ // this.lineOpts.left = tab.offsetLeft + 'px'
302
+ this.lineOpts.left = left + 'px';
303
+ // this.lineOpts.width = tab.offsetWidth + 'px'
304
+ this.lineOpts.width = width + 'px';
305
+ this.lineOpts.right = 'unset';
306
+ this.lineOpts.height = '2px';
307
+ }
308
+ else {
309
+ // this.lineOpts.top = tab.offsetTop + 'px'
310
+ this.lineOpts.top = top + 'px';
311
+ this.lineOpts.left = 'unset';
312
+ this.lineOpts.right = '0';
313
+ this.lineOpts.width = '2px';
314
+ // this.lineOpts.height = tab.offsetHeight + 'px'
315
+ this.lineOpts.height = height + 'px';
316
+ }
317
+ }
318
+ /**
319
+ * @desc
320
+ */
321
+ getLineTransform() {
322
+ return {
323
+ '--bcm-tabs-line-top': this.lineOpts.top,
324
+ '--bcm-tabs-line-left': this.lineOpts.left,
325
+ '--bcm-tabs-line-width': this.lineOpts.width,
326
+ '--bcm-tabs-line-right': this.lineOpts.right,
327
+ '--bcm-tabs-line-height': this.lineOpts.height
328
+ };
329
+ }
330
+ /**
331
+ * @desc
332
+ * @param event
333
+ */
334
+ handleTabClick(event) {
335
+ const targetElement = event.target;
336
+ const childIdx = this.getChildIdx(targetElement);
337
+ this.activeChild = null;
338
+ this.activeChild = childIdx;
339
+ }
340
+ /**
341
+ * @desc
342
+ * @param event
343
+ */
344
+ handleTabClose(event) {
345
+ const targetElement = event.target;
346
+ const childIdx = this.getChildIdx(targetElement);
347
+ // Remove element
348
+ // #
349
+ targetElement.remove();
350
+ this.tabs.splice(childIdx - 1, 1);
351
+ if (childIdx === this.activeChild) {
352
+ this.activeChild = 1;
353
+ this.activateChild(1);
354
+ }
355
+ }
356
+ /**
357
+ * @desc
358
+ * @param newValue
359
+ */
360
+ activeChildChange(newValue) {
361
+ this.activateChild(newValue);
362
+ this.change.emit(newValue);
363
+ this.buttonControl();
364
+ }
365
+ /**
366
+ * @desc
367
+ */
368
+ windowResize() {
369
+ this.transformLine(this.activeChild - 1);
370
+ forceUpdate(this.el);
371
+ }
372
+ render() {
373
+ const classes = classnames('tabs', [this.direction], [this.size], [this.type], this.fullWidth ? 'full-width' : null, this.underline ? 'underline' : null);
374
+ const hostClasses = classnames(this.hidden ? 'hidden' : null);
375
+ return (h(Host, { class: hostClasses }, h("div", { class: classes, style: this.getLineTransform(), "on-bcm-click": (event) => this.handleTabClick(event), "on-bcm-close": (event) => this.handleTabClose(event) }, h("slot", null))));
376
+ }
377
+ get el() { return this; }
378
+ static get watchers() { return {
379
+ "activeChild": ["activeChildChange"]
380
+ }; }
381
+ static get style() { return tabsCss; }
382
+ }, [1, "bcm-tabs", {
383
+ "size": [1025],
384
+ "type": [1025],
385
+ "direction": [1025],
386
+ "hidden": [1028],
387
+ "fullWidth": [1028, "full-width"],
388
+ "underline": [1028],
389
+ "activeChild": [32],
390
+ "lineOpts": [32],
391
+ "prevButton": [32],
392
+ "nextButton": [32],
393
+ "completeButton": [32],
394
+ "prevButtonState": [32],
395
+ "nextButtonState": [32],
396
+ "completeButtonState": [32],
397
+ "config": [64],
398
+ "next": [64],
399
+ "prev": [64],
400
+ "complete": [64],
401
+ "active": [64],
402
+ "getActiveTab": [64],
403
+ "getActiveIndex": [64],
404
+ "error": [64],
405
+ "info": [64],
406
+ "warning": [64],
407
+ "success": [64],
408
+ "statusReset": [64]
409
+ }, [[9, "resize", "windowResize"]]]);
410
+ __decorate([
411
+ IsLoad()
412
+ ], BcmTabs$1.prototype, "el", void 0);
413
+ function defineCustomElement$1() {
414
+ if (typeof customElements === "undefined") {
415
+ return;
416
+ }
417
+ const components = ["bcm-tabs"];
418
+ components.forEach(tagName => { switch (tagName) {
419
+ case "bcm-tabs":
420
+ if (!customElements.get(tagName)) {
421
+ customElements.define(tagName, BcmTabs$1);
422
+ }
423
+ break;
424
+ } });
425
+ }
426
+
427
+ const BcmTabs = BcmTabs$1;
428
+ const defineCustomElement = defineCustomElement$1;
429
+
430
+ export { BcmTabs, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface BcmTag extends Components.BcmTag, HTMLElement {}
4
+ export const BcmTag: {
5
+ prototype: BcmTag;
6
+ new (): BcmTag;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,132 @@
1
+ /*!
2
+ * Built with Stencil
3
+ * Copyright (c) Bromcom.
4
+ */
5
+ import { h, proxyCustomElement, HTMLElement, createEvent } from '@stencil/core/internal/client';
6
+ import { I as IsLoad } from './is-load-decorator.js';
7
+ import { G as Generate } from './generate.js';
8
+ import { B as Bcm } from './bcm.js';
9
+ import { c as classnames } from './index2.js';
10
+ import { N as NumberHelper } from './number-helper.js';
11
+ import { e as extractColor } from './utils.js';
12
+ import { C as ColorPalette } from './colors.js';
13
+ import { C as ColorProps } from './types.js';
14
+ import { d as defineCustomElement$2 } from './icon.js';
15
+
16
+ const TagTemplate = ({ _id, color, customStyle, size, checked, hidden, value, type, onDismiss, onSelect }) => {
17
+ !size && (size = Bcm.FontSize['size-1']);
18
+ const getColor = (color) => {
19
+ if ((type === Bcm.TagType.basic || type == Bcm.TagType.dismissable) && ColorProps[color])
20
+ return {
21
+ color: extractColor(ColorPalette, ColorProps[color] + '-6'),
22
+ borderColor: extractColor(ColorPalette, ColorProps[color] + '-3'),
23
+ backgroundColor: extractColor(ColorPalette, ColorProps[color] + '-1')
24
+ };
25
+ };
26
+ const getSize = (size, returnNumber = false) => {
27
+ if (NumberHelper.isNumber(size)) {
28
+ size = Bcm.FontSize["size-" + size] || Bcm.FontSize["size-4"];
29
+ }
30
+ if (returnNumber) {
31
+ return +(Bcm.FontSizeValue[size] || Bcm.FontSizeValue['size-4']) + 2;
32
+ }
33
+ return size;
34
+ };
35
+ const classes = classnames(getSize(size), 'bcm-tag__content', type);
36
+ const hostClasses = classnames('bcm-tag', {
37
+ hidden
38
+ });
39
+ return (h("div", { id: _id, class: classnames(hostClasses, { checked }) },
40
+ h("span", { hidden: true },
41
+ h("slot", null)),
42
+ h("span", { class: classes, style: getColor(color), onClick: (e) => onSelect(e) },
43
+ type === Bcm.TagType.add && (h("span", { class: "left" },
44
+ h("bcm-icon", { icon: "far fa-plus" }))),
45
+ type === Bcm.TagType.checkable && h("input", { type: "checkbox", checked: checked }),
46
+ h("span", { class: "value", style: customStyle }, value),
47
+ type === Bcm.TagType.dismissable && (h("span", { class: "right close-button", onClick: (e) => onDismiss(e) },
48
+ h("bcm-icon", { icon: "fal fa-times" }))))));
49
+ };
50
+
51
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
53
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
54
+ r = Reflect.decorate(decorators, target, key, desc);
55
+ else
56
+ for (var i = decorators.length - 1; i >= 0; i--)
57
+ if (d = decorators[i])
58
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
59
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
60
+ };
61
+ const BcmTag$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
62
+ constructor() {
63
+ super();
64
+ this.__registerHost();
65
+ this.change = createEvent(this, "bcm-change", 7);
66
+ this.tagDismissable = createEvent(this, "bcm-tag-dismissable", 7);
67
+ this.bcmTagSelect = createEvent(this, "bcm-tag-select", 7);
68
+ this._id = Generate.UID();
69
+ this._internal_id = Generate.UID();
70
+ this.hidden = false;
71
+ this.value = '';
72
+ this.type = Bcm.TagType.basic;
73
+ this.checked = false;
74
+ this.size = Bcm.FontSize['size-1'];
75
+ this.closeFunc = (e) => e;
76
+ this.selectFunc = (e) => e;
77
+ }
78
+ handleClick() {
79
+ this.type === Bcm.TagType.checkable && this.handleChecked();
80
+ }
81
+ handleClose() {
82
+ this.tagDismissable.emit(this.el);
83
+ }
84
+ handleChecked() {
85
+ this.checked = !this.checked;
86
+ this.change.emit(this.checked);
87
+ }
88
+ render() {
89
+ const { type, color, value, customStyle, size, hidden, checked } = this;
90
+ return (h(TagTemplate, { size: size, hidden: hidden, color: color, customStyle: customStyle, checked: checked, value: value, type: Bcm.TagType[type], onSelect: (e) => { this.bcmTagSelect.emit(e); this.selectFunc({ event: e, id: this._id }); }, onDismiss: (e) => { this.handleClose(); this.closeFunc(e); } }));
91
+ }
92
+ get el() { return this; }
93
+ }, [4, "bcm-tag", {
94
+ "_id": [1537, "id"],
95
+ "_internal_id": [1537],
96
+ "hidden": [1540],
97
+ "value": [1025],
98
+ "type": [1025],
99
+ "checked": [1028],
100
+ "color": [1537],
101
+ "customStyle": [1032, "custom-style"],
102
+ "itemObject": [1537, "item-object"],
103
+ "size": [1032],
104
+ "closeFunc": [1040],
105
+ "selectFunc": [1040]
106
+ }, [[0, "click", "handleClick"]]]);
107
+ __decorate([
108
+ IsLoad()
109
+ ], BcmTag$1.prototype, "el", void 0);
110
+ function defineCustomElement$1() {
111
+ if (typeof customElements === "undefined") {
112
+ return;
113
+ }
114
+ const components = ["bcm-tag", "bcm-icon"];
115
+ components.forEach(tagName => { switch (tagName) {
116
+ case "bcm-tag":
117
+ if (!customElements.get(tagName)) {
118
+ customElements.define(tagName, BcmTag$1);
119
+ }
120
+ break;
121
+ case "bcm-icon":
122
+ if (!customElements.get(tagName)) {
123
+ defineCustomElement$2();
124
+ }
125
+ break;
126
+ } });
127
+ }
128
+
129
+ const BcmTag = BcmTag$1;
130
+ const defineCustomElement = defineCustomElement$1;
131
+
132
+ export { BcmTag, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface BcmText extends Components.BcmText, HTMLElement {}
4
+ export const BcmText: {
5
+ prototype: BcmText;
6
+ new (): BcmText;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * Built with Stencil
3
+ * Copyright (c) Bromcom.
4
+ */
5
+ import { B as BcmText$1, d as defineCustomElement$1 } from './text.js';
6
+
7
+ const BcmText = BcmText$1;
8
+ const defineCustomElement = defineCustomElement$1;
9
+
10
+ export { BcmText, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface BcmTextarea extends Components.BcmTextarea, HTMLElement {}
4
+ export const BcmTextarea: {
5
+ prototype: BcmTextarea;
6
+ new (): BcmTextarea;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;