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,510 @@
1
+ /*!
2
+ * Built with Stencil
3
+ * Copyright (c) Bromcom.
4
+ */
5
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
6
+ import { c as classnames } from './index2.js';
7
+ import { I as IsLoad } from './is-load-decorator.js';
8
+ import { S as StringHelper } from './string-helper.js';
9
+ import { d as delay, g as getChildElements } from './utils.js';
10
+
11
+ // /**
12
+ // *
13
+ // * @param type
14
+ // */
15
+ // export const required = (value:any) => {
16
+ // if ( value || value != null ) {
17
+ // return true
18
+ // } else {
19
+ // return true
20
+ // }
21
+ // }
22
+ class rules {
23
+ constructor() { }
24
+ response(status, message) {
25
+ return Object.assign(Object.assign({ valid: status }, (message && { message })), (!status && { type: 'error' }));
26
+ }
27
+ required(value, componentValidation) {
28
+ let validation = this.response(true);
29
+ if (value == '' || value == "" || value == undefined || value == null || value === false) {
30
+ validation = this.response(false, 'This field is required.');
31
+ }
32
+ if (componentValidation) {
33
+ if (!componentValidation.valid) {
34
+ validation = this.response(false, componentValidation.errorText);
35
+ }
36
+ if (value instanceof Object) {
37
+ if (value.isValid) {
38
+ if (value.isValid == false)
39
+ validation = this.response(false, 'This field is required.');
40
+ }
41
+ }
42
+ }
43
+ return validation;
44
+ }
45
+ selfValidation(input) {
46
+ let validation = this.response(true);
47
+ if (input.captionError != null || input.captionType == 'error') {
48
+ validation = this.response(false, input.captionError);
49
+ }
50
+ return validation;
51
+ }
52
+ }
53
+ const validate = new rules;
54
+
55
+ const formCss = "@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;margin-bottom:8px}:host(.hidden){display:none}";
56
+
57
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
58
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
59
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
60
+ r = Reflect.decorate(decorators, target, key, desc);
61
+ else
62
+ for (var i = decorators.length - 1; i >= 0; i--)
63
+ if (d = decorators[i])
64
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
65
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
66
+ };
67
+ const BcmForm$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
68
+ constructor() {
69
+ super();
70
+ this.__registerHost();
71
+ this.bcmForm = createEvent(this, "bcm-form", 7);
72
+ this.formData = {};
73
+ this.inputs = [];
74
+ this.duplicateInput = [];
75
+ this.isValid = true;
76
+ this.returnCaption = [];
77
+ this.Bromcom = {
78
+ errors: {
79
+ targetFormNotExist: 'target form is not exist --> ',
80
+ },
81
+ inputComponents: {
82
+ // Birbirinin aynısı
83
+ INPUT: 'input',
84
+ TEXTAREA: 'textarea',
85
+ //çok benzer
86
+ SWITCH: 'switch',
87
+ CHECKBOX: 'checkbox',
88
+ RADIO_GROUP: 'radio-group',
89
+ CHECKBOX_GROUP: 'checkbox-group',
90
+ RANGE: 'range',
91
+ // sadece value fırlatıyor
92
+ FORM: 'form',
93
+ FORM_GROUP: 'form-group',
94
+ // *En vakit alacak => içinde select, autocomplete, listbox, treeview özellikleri var
95
+ LIST: 'list',
96
+ //
97
+ COLORPICKER: 'colorpicker',
98
+ // picker aslında tek komponent hepsi datetimepicker
99
+ DATE_PICKER: 'date-picker',
100
+ TIME_PICKER: 'time-picker',
101
+ DATETIME_PICKER: 'datetime-picker',
102
+ // silinecek komponentler
103
+ SELECT: 'select',
104
+ LISTBOX: 'listbox'
105
+ },
106
+ helpers: {
107
+ randomId: function () {
108
+ return Math.random().toString(16).slice(2, -1);
109
+ },
110
+ },
111
+ };
112
+ this._id = (Math.random() * 4).toString(16).replace('.', '');
113
+ this.hidden = false;
114
+ this.validation = false;
115
+ this.name = "";
116
+ this.autocomplete = false;
117
+ }
118
+ handleSubmit() {
119
+ // if (lowercase(e.target.nodeName) === 'bcm-button') {
120
+ // if (e.target.type === 'submit') {
121
+ // this.submitFunction()
122
+ // }
123
+ // }
124
+ }
125
+ async submitFunction() {
126
+ this.formData = {};
127
+ this.inputs = [];
128
+ this.selector = this.el;
129
+ await this.getInputs();
130
+ await delay(10);
131
+ const usrFrmData = await this.userFormData();
132
+ var formData = { isValid: true, formData: usrFrmData };
133
+ if (this.name) {
134
+ formData = Object.assign(Object.assign({}, formData), { formName: this.name });
135
+ }
136
+ if (this.isValid) {
137
+ this.bcmForm.emit(formData);
138
+ return formData;
139
+ }
140
+ else {
141
+ this.returnCaption = { isValid: false, 'message': 'Please fill in all inputs', 'errorDetails': this.returnCaption, formData: usrFrmData };
142
+ if (this.name) {
143
+ this.returnCaption = Object.assign(Object.assign({}, this.returnCaption), { formName: this.name });
144
+ }
145
+ this.bcmForm.emit(this.returnCaption);
146
+ return this.returnCaption;
147
+ }
148
+ }
149
+ async submit() {
150
+ return Promise.resolve(this.submitFunction());
151
+ }
152
+ async set(data) {
153
+ var _a;
154
+ const validate = this.validation;
155
+ this.validation = false;
156
+ // debugger
157
+ this.selector = this.el;
158
+ await this.getInputs();
159
+ if (data && ((_a = this.inputs) === null || _a === void 0 ? void 0 : _a.length) > 0) {
160
+ for (const key of Object.keys(data)) {
161
+ const item = this.inputs.find(item => item.name === key);
162
+ if (item) {
163
+ try {
164
+ await item.set(data[key]);
165
+ }
166
+ catch (error) {
167
+ console.log(item.nodeName, "set", error);
168
+ }
169
+ }
170
+ }
171
+ }
172
+ this.validation = validate;
173
+ }
174
+ async get() {
175
+ var _a;
176
+ let formData = {};
177
+ this.selector = this.el;
178
+ const inputsCache = this.inputs;
179
+ await this.getInputs();
180
+ ((_a = this.inputs) === null || _a === void 0 ? void 0 : _a.length) > 0 && this.inputs.forEach(async (item) => {
181
+ try {
182
+ const value = await item.get();
183
+ formData = Object.assign(Object.assign({}, formData), { [item.name]: value });
184
+ }
185
+ catch (error) {
186
+ console.log(`${item.nodeName} get error`);
187
+ }
188
+ });
189
+ this.inputs = inputsCache;
190
+ await delay(10);
191
+ return Promise.resolve(formData);
192
+ }
193
+ async setClear() {
194
+ this.formData = {};
195
+ this.inputs = [];
196
+ this.selector = this.el;
197
+ let clear = [];
198
+ await this.getInputs();
199
+ this.inputs.forEach(async (item) => {
200
+ try {
201
+ clear.push(await item.setClear());
202
+ }
203
+ catch (error) {
204
+ console.log(error);
205
+ }
206
+ });
207
+ await Promise.all(clear).then(() => {
208
+ this.formData = {};
209
+ this.inputs = [];
210
+ this.duplicateInput = [];
211
+ this.isValid = true;
212
+ this.returnCaption = [];
213
+ });
214
+ await delay(10);
215
+ return Promise.resolve(true);
216
+ }
217
+ async resetCaption() {
218
+ await delay(10);
219
+ this.formData = {};
220
+ this.inputs = [];
221
+ this.selector = this.el;
222
+ await this.getInputs();
223
+ for (const item of this.inputs) {
224
+ try {
225
+ await item.resetCaption();
226
+ }
227
+ catch (error) {
228
+ console.log(item.nodeName, "rc p");
229
+ }
230
+ }
231
+ await delay(10);
232
+ return Promise.resolve();
233
+ }
234
+ async config(_config) {
235
+ if (_config['validation']) {
236
+ typeof _config['validation'] == 'boolean'
237
+ ? this.validation = _config['validation']
238
+ : this.validation = false;
239
+ }
240
+ return true;
241
+ }
242
+ async getInputs() {
243
+ var form = this.selector;
244
+ if (!form) {
245
+ console.warn(this.Bromcom.errors.targetFormNotExist + this.selector);
246
+ return;
247
+ }
248
+ const inputs = Array.from(form.querySelectorAll('bcm-' + Object.values(this.Bromcom.inputComponents).join(',bcm-')));
249
+ this.duplicateInput = [];
250
+ // s-hn: Stencil private flag that contains host web component
251
+ // https://github.com/ionic-team/stencil/blob/45388e95edb46ef357eb9ae37cd32bbb5bc1ed23/src/runtime/vdom/vdom-render.ts#L116
252
+ const rootInputs = inputs.filter((input) => { var _a; return !input['s-hn'] || ((_a = input['s-hn']) === null || _a === void 0 ? void 0 : _a.nodeName) !== 'BcmForm'; });
253
+ // debugger;
254
+ for (const item of rootInputs) {
255
+ if (StringHelper.lowercase(item.nodeName) == "bcm-checkbox-group") {
256
+ let checkboxs = item.querySelectorAll("bcm-checkbox");
257
+ if (checkboxs) {
258
+ for (const checkbox of checkboxs) {
259
+ this.duplicateInput.push(checkbox.name);
260
+ }
261
+ }
262
+ }
263
+ if (StringHelper.lowercase(item.nodeName) == "bcm-form") {
264
+ const groupInputs = Array.from(item.querySelectorAll('bcm-' + Object.values(this.Bromcom.inputComponents).join(',bcm-')));
265
+ let itemObject = {};
266
+ for (const element of groupInputs) {
267
+ var name = element.name;
268
+ var value = element.value;
269
+ itemObject = Object.assign(Object.assign({}, itemObject), { [name]: value });
270
+ this.duplicateInput.push(element.name);
271
+ }
272
+ item.value = itemObject;
273
+ let checkboxs = item.querySelectorAll("bcm-checkbox");
274
+ if (checkboxs) {
275
+ for (const checkbox of checkboxs) {
276
+ this.duplicateInput.push(checkbox.name);
277
+ }
278
+ }
279
+ }
280
+ }
281
+ await delay(10);
282
+ this.inputs = rootInputs;
283
+ }
284
+ getItemValue(item) {
285
+ const tagName = item.tagName.toLowerCase().replace('bcm-', '');
286
+ switch (tagName) {
287
+ /* case 'date-picker':
288
+ case 'datetime-picker':
289
+ return item.value.timestamp
290
+ case 'time-picker':
291
+ return item.value.time */
292
+ default:
293
+ return item.value;
294
+ }
295
+ }
296
+ isWrapperComponent(item) {
297
+ return ['bcm-datetime-picker', 'bcm-date-picker', 'bcm-time-picker'].includes(item.toLowerCase());
298
+ }
299
+ isGroupComponent(item) {
300
+ return ['bcm-checkbox-group'].includes(item.toLowerCase());
301
+ }
302
+ isListComponent(item) {
303
+ return ['bcm-list'].includes(item.toLowerCase());
304
+ }
305
+ async userFormData() {
306
+ this.formData = {};
307
+ this.isValid = true;
308
+ this.returnCaption = [];
309
+ for (const item of this.inputs) {
310
+ // const isListComponent = this.isListComponent(item.tagName);
311
+ const isGroupComponent = this.isGroupComponent(item.tagName);
312
+ const isWrapperComponent = this.isWrapperComponent(item.tagName);
313
+ const wrapperComponent = isWrapperComponent && item;
314
+ const input = isWrapperComponent
315
+ ? await item.getInput() && item
316
+ : item;
317
+ // input.caption = ''
318
+ // input.captionType = ''
319
+ if (this.validation) {
320
+ let valid = null;
321
+ // if (isListComponent) {
322
+ // valid = !(input.value && input.value.length > 0) && validate.required(input.value)
323
+ // } else
324
+ if (isWrapperComponent) {
325
+ const isPickerValid = await wrapperComponent.isValid();
326
+ valid = validate.required(input.value, isPickerValid);
327
+ if (valid) {
328
+ if (input.value instanceof Object) {
329
+ if (input.value["isValid"] == false) {
330
+ valid = validate.required("", isPickerValid);
331
+ }
332
+ }
333
+ else {
334
+ valid = validate.required(input.value, isPickerValid);
335
+ }
336
+ }
337
+ }
338
+ else if (isGroupComponent) {
339
+ const childsCheckbox = getChildElements(input, 'bcm-checkbox:not(#bcm-indeterminate-element)');
340
+ if (childsCheckbox && childsCheckbox.length > 0) {
341
+ for (const element of childsCheckbox) {
342
+ if (element && element.required === true) {
343
+ valid = validate.required(element.checked);
344
+ if (!valid['valid']) {
345
+ element.noCaption = false;
346
+ element.captionError = valid['message'];
347
+ element.captionType = valid['type'];
348
+ }
349
+ else {
350
+ element.noCaption = input.noCaption;
351
+ element.captionError = null;
352
+ element.captionType = "default";
353
+ }
354
+ }
355
+ }
356
+ }
357
+ }
358
+ else {
359
+ valid = validate.required(input.value);
360
+ }
361
+ if (input.required) {
362
+ if (!valid['valid']) {
363
+ input.captionError = valid['message'];
364
+ input.captionType = valid['type'];
365
+ }
366
+ else {
367
+ input.captionError = null;
368
+ input.captionType = "default";
369
+ }
370
+ await delay(10);
371
+ const selfValidation = validate.selfValidation(input);
372
+ if (valid['valid']) {
373
+ if (!selfValidation['valid']) {
374
+ input.captionError = selfValidation['message'];
375
+ input.captionType = selfValidation['type'];
376
+ }
377
+ }
378
+ }
379
+ let name = input.name;
380
+ let value = input.captionError;
381
+ !input.hidden && input.captionType == 'error' && (this.returnCaption = [...Array.from(this.returnCaption), { [name]: value }],
382
+ this.isValid = false);
383
+ }
384
+ if (input.name && !this.duplicateInput.includes(input.name)) {
385
+ var itemValue = this.getItemValue(input);
386
+ if (!itemValue || itemValue == undefined || itemValue == null) {
387
+ itemValue = null;
388
+ }
389
+ this.formData[input.name] = itemValue;
390
+ }
391
+ }
392
+ return this.formData;
393
+ }
394
+ async handleChange(e) {
395
+ const isWrapperComponent = this.isWrapperComponent(e.target.tagName);
396
+ const isGroupComponent = this.isGroupComponent(e.target.tagName);
397
+ let target;
398
+ if (isWrapperComponent) {
399
+ target = e.target.getInput && await e.target.getInput() || e.target;
400
+ }
401
+ else if (isGroupComponent) {
402
+ let req = false;
403
+ const childsCheckbox = getChildElements(e.target, 'bcm-checkbox:not(#bcm-indeterminate-element)');
404
+ childsCheckbox.length > 0 && (childsCheckbox.forEach((element) => {
405
+ if (element && element.required === true) {
406
+ req = true;
407
+ }
408
+ }));
409
+ target = Object.assign(Object.assign({}, e.target), { required: req });
410
+ }
411
+ else {
412
+ target = e.target;
413
+ }
414
+ const value = e.target.value;
415
+ const wrapperComponent = isWrapperComponent && e.target;
416
+ var isPickerValid;
417
+ if (isWrapperComponent) {
418
+ isPickerValid = await wrapperComponent.isValid();
419
+ }
420
+ const tick = setTimeout(() => {
421
+ if (target.required) {
422
+ let valid = null;
423
+ if (isWrapperComponent) {
424
+ valid = validate.required(value, isPickerValid);
425
+ if (valid) {
426
+ if (value instanceof Object) {
427
+ if (value["isValid"] == false) {
428
+ valid = validate.required("", isPickerValid);
429
+ }
430
+ }
431
+ else {
432
+ valid = validate.required(value, isPickerValid);
433
+ }
434
+ }
435
+ }
436
+ else if (isGroupComponent) {
437
+ const childsCheckbox = getChildElements(e.target, 'bcm-checkbox:not(#bcm-indeterminate-element)');
438
+ childsCheckbox.length > 0 && (childsCheckbox.forEach((element) => {
439
+ if (element && element.required === true) {
440
+ valid = validate.required(element.checked);
441
+ if (!valid['valid']) {
442
+ element.noCaption = false;
443
+ element.captionError = valid['message'];
444
+ element.captionType = valid['type'];
445
+ }
446
+ else {
447
+ element.noCaption = e.target.noCaption;
448
+ element.captionError = null;
449
+ element.captionType = "default";
450
+ }
451
+ }
452
+ }));
453
+ }
454
+ else {
455
+ valid = validate.required(value);
456
+ }
457
+ if (valid['valid']) {
458
+ target.captionError = null;
459
+ target.captionType = null;
460
+ }
461
+ else {
462
+ target.captionError = valid['message'];
463
+ target.captionType = valid['type'];
464
+ }
465
+ }
466
+ clearTimeout(tick);
467
+ });
468
+ this.value = await this.userFormData();
469
+ }
470
+ render() {
471
+ const hostClasses = classnames(this.hidden ? 'hidden' : null);
472
+ return (h(Host, { class: hostClasses, tabindex: "-1" }, h("form", { class: "bcm-form", autocomplete: this.autocomplete ? "on" : "off", tabindex: "-1" }, h("slot", null))));
473
+ }
474
+ get el() { return this; }
475
+ static get style() { return formCss; }
476
+ }, [4, "bcm-form", {
477
+ "_id": [1537, "id"],
478
+ "hidden": [1028],
479
+ "validation": [1028],
480
+ "name": [1025],
481
+ "value": [1032],
482
+ "autocomplete": [1028],
483
+ "submit": [64],
484
+ "set": [64],
485
+ "get": [64],
486
+ "setClear": [64],
487
+ "resetCaption": [64],
488
+ "config": [64]
489
+ }, [[0, "click", "handleSubmit"], [0, "bcm-change", "handleChange"]]]);
490
+ __decorate([
491
+ IsLoad()
492
+ ], BcmForm$1.prototype, "el", void 0);
493
+ function defineCustomElement$1() {
494
+ if (typeof customElements === "undefined") {
495
+ return;
496
+ }
497
+ const components = ["bcm-form"];
498
+ components.forEach(tagName => { switch (tagName) {
499
+ case "bcm-form":
500
+ if (!customElements.get(tagName)) {
501
+ customElements.define(tagName, BcmForm$1);
502
+ }
503
+ break;
504
+ } });
505
+ }
506
+
507
+ const BcmForm = BcmForm$1;
508
+ const defineCustomElement = defineCustomElement$1;
509
+
510
+ export { BcmForm, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface BcmIcon extends Components.BcmIcon, HTMLElement {}
4
+ export const BcmIcon: {
5
+ prototype: BcmIcon;
6
+ new (): BcmIcon;
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 BcmIcon$1, d as defineCustomElement$1 } from './icon.js';
6
+
7
+ const BcmIcon = BcmIcon$1;
8
+ const defineCustomElement = defineCustomElement$1;
9
+
10
+ export { BcmIcon, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface BcmInput extends Components.BcmInput, HTMLElement {}
4
+ export const BcmInput: {
5
+ prototype: BcmInput;
6
+ new (): BcmInput;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;