bromcom-ui 2.3.54 → 2.3.58

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 (212) hide show
  1. package/dist/bromcom-ui/bromcom-ui.css +0 -0
  2. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  3. package/dist/bromcom-ui/index.esm.js +0 -0
  4. package/dist/bromcom-ui/p-12493dbc.entry.js +1 -0
  5. package/dist/bromcom-ui/{p-a18a0cc4.entry.js → p-13d038f5.entry.js} +1 -1
  6. package/dist/bromcom-ui/p-1429a2b4.js +1 -0
  7. package/dist/bromcom-ui/{p-4b7f14ed.entry.js → p-20d03fa1.entry.js} +1 -1
  8. package/dist/bromcom-ui/{p-774ff4d9.entry.js → p-30c1cd7f.entry.js} +1 -1
  9. package/dist/bromcom-ui/p-37750343.entry.js +1 -0
  10. package/dist/bromcom-ui/p-3f797656.entry.js +1 -0
  11. package/dist/bromcom-ui/{p-4396ee3b.entry.js → p-4092f5f1.entry.js} +1 -1
  12. package/dist/bromcom-ui/p-4a41ef80.entry.js +1 -0
  13. package/dist/bromcom-ui/p-4cb268d2.js +1 -0
  14. package/dist/bromcom-ui/p-53e9b679.entry.js +1 -0
  15. package/dist/bromcom-ui/{p-09753e05.js → p-554d326a.js} +1 -1
  16. package/dist/bromcom-ui/p-68ff64de.js +1 -0
  17. package/dist/bromcom-ui/p-7238d22f.entry.js +1 -0
  18. package/dist/bromcom-ui/p-7f1cd976.entry.js +1 -0
  19. package/dist/bromcom-ui/p-811c24d7.entry.js +1 -0
  20. package/dist/bromcom-ui/p-8851e01e.entry.js +1 -0
  21. package/dist/bromcom-ui/{p-1a2724a0.entry.js → p-92e3e240.entry.js} +1 -1
  22. package/dist/bromcom-ui/p-9ffff762.entry.js +1 -0
  23. package/dist/bromcom-ui/p-a6ef098a.entry.js +1 -0
  24. package/dist/bromcom-ui/p-af7e4741.entry.js +1 -0
  25. package/dist/bromcom-ui/{p-0d336381.entry.js → p-afb68492.entry.js} +1 -1
  26. package/dist/bromcom-ui/p-bbf99620.entry.js +1 -0
  27. package/dist/bromcom-ui/p-bc50aa86.entry.js +1 -0
  28. package/dist/bromcom-ui/p-e21a8f2d.entry.js +1 -0
  29. package/dist/bromcom-ui/p-e450ebda.entry.js +1 -0
  30. package/dist/bromcom-ui/p-e8307da9.entry.js +1 -0
  31. package/dist/bromcom-ui/{p-26b3d5d0.entry.js → p-e8771d32.entry.js} +1 -1
  32. package/dist/bromcom-ui/p-f067821e.entry.js +1 -0
  33. package/dist/bromcom-ui/p-f12743d8.entry.js +1 -0
  34. package/dist/bromcom-ui/p-ff5e57d3.entry.js +1 -0
  35. package/dist/cjs/bcm-alert.cjs.entry.js +7 -26
  36. package/dist/cjs/bcm-badge.cjs.entry.js +50 -0
  37. package/dist/cjs/{bcm-badge_20.cjs.entry.js → bcm-button_11.cjs.entry.js} +1209 -2835
  38. package/dist/cjs/bcm-checkbox-lite_4.cjs.entry.js +291 -0
  39. package/dist/cjs/bcm-colorpicker.cjs.entry.js +3 -3
  40. package/dist/cjs/{bcm-datetime-picker_2.cjs.entry.js → bcm-datetime-picker.cjs.entry.js} +3 -137
  41. package/dist/cjs/bcm-dropdown.cjs.entry.js +1 -1
  42. package/dist/cjs/bcm-list-item_2.cjs.entry.js +197 -0
  43. package/dist/cjs/bcm-list-select.cjs.entry.js +658 -0
  44. package/dist/cjs/bcm-list.cjs.entry.js +1204 -0
  45. package/dist/cjs/{bcm-empty_6.cjs.entry.js → bcm-listbox_5.cjs.entry.js} +10 -77
  46. package/dist/cjs/bcm-modal.cjs.entry.js +197 -0
  47. package/dist/cjs/bcm-popconfirm-box.cjs.entry.js +1 -1
  48. package/dist/cjs/bcm-popconfirm.cjs.entry.js +2 -2
  49. package/dist/cjs/bcm-popover-box.cjs.entry.js +1 -1
  50. package/dist/cjs/bcm-popover.cjs.entry.js +2 -2
  51. package/dist/cjs/bcm-pulldown-group_2.cjs.entry.js +1 -1
  52. package/dist/cjs/bcm-pulldown.cjs.entry.js +1 -1
  53. package/dist/cjs/bcm-radio-group.cjs.entry.js +124 -0
  54. package/dist/cjs/bcm-radio.cjs.entry.js +104 -0
  55. package/dist/cjs/bcm-select.cjs.entry.js +68 -8
  56. package/dist/cjs/bcm-tab-pane.cjs.entry.js +51 -0
  57. package/dist/cjs/bcm-tab.cjs.entry.js +72 -0
  58. package/dist/cjs/bcm-tabs-content.cjs.entry.js +43 -0
  59. package/dist/cjs/bcm-tabs.cjs.entry.js +361 -0
  60. package/dist/cjs/bcm-text.cjs.entry.js +28 -0
  61. package/dist/cjs/bcm-upload.cjs.entry.js +1 -1
  62. package/dist/cjs/bromcom-ui.cjs.js +1 -1
  63. package/dist/cjs/{element-dragger-36fcb296.js → element-dragger-4a91c708.js} +1 -1
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/cjs/types-37c8ced6.js +16 -0
  66. package/dist/cjs/types-f53bc841.js +19 -0
  67. package/dist/cjs/{utils-43fda566.js → utils-60414768.js} +25 -0
  68. package/dist/collection/collection-manifest.json +1 -0
  69. package/dist/collection/components/atoms/label/label.css +70 -0
  70. package/dist/collection/components/atoms/label/label.js +203 -0
  71. package/dist/collection/components/molecules/checkbox/group.js +19 -6
  72. package/dist/collection/components/molecules/input/input.js +39 -7
  73. package/dist/collection/components/molecules/list/list-item.css +1 -0
  74. package/dist/collection/components/molecules/list/list-select.css +10 -5
  75. package/dist/collection/components/molecules/list/list-select.js +232 -34
  76. package/dist/collection/components/molecules/list/list.css +24 -2
  77. package/dist/collection/components/molecules/list/list.js +391 -119
  78. package/dist/collection/components/molecules/popconfirm/popconfirm-box.css +1 -0
  79. package/dist/collection/components/molecules/popconfirm/popconfirm.css +1 -0
  80. package/dist/collection/components/molecules/popover/popover-box.css +1 -0
  81. package/dist/collection/components/molecules/popover/popover.css +1 -0
  82. package/dist/collection/components/molecules/radio/group.js +19 -6
  83. package/dist/collection/components/molecules/search/search.js +2 -2
  84. package/dist/collection/components/molecules/select/select.js +85 -12
  85. package/dist/collection/components/molecules/switch/switch.css +0 -1
  86. package/dist/collection/components/molecules/switch/switch.js +20 -7
  87. package/dist/collection/components/molecules/textarea/textarea.css +4 -1
  88. package/dist/collection/components/molecules/textarea/textarea.js +33 -17
  89. package/dist/collection/components/molecules/tooltip/tooltip-box.css +1 -0
  90. package/dist/collection/components/molecules/tooltip/tooltip.css +1 -0
  91. package/dist/collection/components/organism/colorpicker/colorpicker.js +19 -6
  92. package/dist/collection/components/organism/datetime-picker/datetime-picker.js +1 -1
  93. package/dist/collection/components/organism/form/form.js +5 -4
  94. package/dist/collection/components/organism/listbox/listbox.js +27 -17
  95. package/dist/collection/helper/color-helper.js +33 -0
  96. package/dist/collection/helper/generate.js +47 -0
  97. package/dist/collection/helper/number-helper.js +10 -0
  98. package/dist/collection/helper/string-helper.js +21 -0
  99. package/dist/collection/helper/validators.js +21 -0
  100. package/dist/collection/models/bcm-types.js +1 -0
  101. package/dist/collection/models/bcm.js +451 -0
  102. package/dist/collection/templates/caption-template.js +22 -0
  103. package/dist/collection/templates/label-template.js +16 -0
  104. package/dist/collection/templates/slot-template.js +6 -0
  105. package/dist/collection/utils/utils.js +24 -0
  106. package/dist/esm/bcm-alert.entry.js +1 -20
  107. package/dist/esm/bcm-badge.entry.js +46 -0
  108. package/dist/esm/{bcm-badge_20.entry.js → bcm-button_11.entry.js} +1204 -2821
  109. package/dist/esm/bcm-checkbox-lite_4.entry.js +284 -0
  110. package/dist/esm/bcm-colorpicker.entry.js +3 -3
  111. package/dist/esm/{bcm-datetime-picker_2.entry.js → bcm-datetime-picker.entry.js} +4 -137
  112. package/dist/esm/bcm-dropdown.entry.js +1 -1
  113. package/dist/esm/bcm-list-item_2.entry.js +192 -0
  114. package/dist/esm/bcm-list-select.entry.js +654 -0
  115. package/dist/esm/bcm-list.entry.js +1200 -0
  116. package/dist/esm/{bcm-empty_6.entry.js → bcm-listbox_5.entry.js} +12 -78
  117. package/dist/esm/bcm-modal.entry.js +193 -0
  118. package/dist/esm/bcm-popconfirm-box.entry.js +1 -1
  119. package/dist/esm/bcm-popconfirm.entry.js +2 -2
  120. package/dist/esm/bcm-popover-box.entry.js +1 -1
  121. package/dist/esm/bcm-popover.entry.js +2 -2
  122. package/dist/esm/bcm-pulldown-group_2.entry.js +1 -1
  123. package/dist/esm/bcm-pulldown.entry.js +1 -1
  124. package/dist/esm/bcm-radio-group.entry.js +120 -0
  125. package/dist/esm/bcm-radio.entry.js +100 -0
  126. package/dist/esm/bcm-select.entry.js +68 -8
  127. package/dist/esm/bcm-tab-pane.entry.js +47 -0
  128. package/dist/esm/bcm-tab.entry.js +68 -0
  129. package/dist/esm/bcm-tabs-content.entry.js +39 -0
  130. package/dist/esm/bcm-tabs.entry.js +357 -0
  131. package/dist/esm/bcm-text.entry.js +24 -0
  132. package/dist/esm/bcm-upload.entry.js +1 -1
  133. package/dist/esm/bromcom-ui.js +1 -1
  134. package/dist/esm/{element-dragger-03ac2a5e.js → element-dragger-97a8f373.js} +1 -1
  135. package/dist/esm/loader.js +1 -1
  136. package/dist/esm/polyfills/css-shim.js +0 -0
  137. package/dist/esm/types-4b11eac9.js +28 -0
  138. package/dist/esm/types-911a8837.js +21 -0
  139. package/dist/esm/{utils-b7fba7c4.js → utils-de9aee67.js} +25 -1
  140. package/dist/types/assets/icons/index.d.ts +0 -0
  141. package/dist/types/assets/icons/index.example.d.ts +0 -0
  142. package/dist/types/components/atoms/avatar/avatar.d.ts +0 -0
  143. package/dist/types/components/atoms/badge/badge.d.ts +0 -0
  144. package/dist/types/components/atoms/button/button.d.ts +0 -0
  145. package/dist/types/components/atoms/divider/divider.d.ts +0 -0
  146. package/dist/types/components/atoms/icon/icon.d.ts +0 -0
  147. package/dist/types/components/atoms/icon/types.d.ts +0 -0
  148. package/dist/types/components/atoms/label/label.d.ts +16 -0
  149. package/dist/types/components/atoms/tag/tag.d.ts +0 -0
  150. package/dist/types/components/atoms/text/text.d.ts +0 -0
  151. package/dist/types/components/molecules/card/card-footer.d.ts +0 -0
  152. package/dist/types/components/molecules/card/card-header.d.ts +0 -0
  153. package/dist/types/components/molecules/card/card.d.ts +0 -0
  154. package/dist/types/components/molecules/checkbox/checkbox.d.ts +0 -0
  155. package/dist/types/components/molecules/checkbox/group.d.ts +1 -0
  156. package/dist/types/components/molecules/input/input.d.ts +2 -0
  157. package/dist/types/components/molecules/list/list-select.d.ts +24 -4
  158. package/dist/types/components/molecules/list/list.d.ts +13 -3
  159. package/dist/types/components/molecules/radio/group.d.ts +1 -0
  160. package/dist/types/components/molecules/radio/radio.d.ts +0 -0
  161. package/dist/types/components/molecules/select/group.d.ts +0 -0
  162. package/dist/types/components/molecules/select/option.d.ts +0 -0
  163. package/dist/types/components/molecules/select/select.d.ts +1 -0
  164. package/dist/types/components/molecules/switch/switch.d.ts +1 -0
  165. package/dist/types/components/molecules/textarea/textarea.d.ts +3 -2
  166. package/dist/types/components/organism/colorpicker/colorpicker.d.ts +1 -0
  167. package/dist/types/components/organism/listbox/listbox.d.ts +1 -0
  168. package/dist/types/components.d.ts +95 -12
  169. package/dist/types/global/variables/colors.d.ts +0 -0
  170. package/dist/types/helper/color-helper.d.ts +9 -0
  171. package/dist/types/helper/generate.d.ts +10 -0
  172. package/dist/types/helper/number-helper.d.ts +9 -0
  173. package/dist/types/helper/string-helper.d.ts +20 -0
  174. package/dist/types/helper/validators.d.ts +8 -0
  175. package/dist/types/index.d.ts +0 -0
  176. package/dist/types/models/bcm-types.d.ts +19 -0
  177. package/dist/types/models/bcm.d.ts +447 -0
  178. package/dist/types/stencil-public-runtime.d.ts +0 -0
  179. package/dist/types/templates/caption-template.d.ts +12 -0
  180. package/dist/types/templates/label-template.d.ts +12 -0
  181. package/dist/types/templates/slot-template.d.ts +8 -0
  182. package/dist/types/utils/utils.d.ts +1 -0
  183. package/loader/cdn.js +0 -0
  184. package/loader/index.cjs.js +0 -0
  185. package/loader/index.d.ts +0 -0
  186. package/loader/index.es2017.js +0 -0
  187. package/loader/index.js +0 -0
  188. package/loader/package.json +0 -0
  189. package/package.json +1 -1
  190. package/dist/bromcom-ui/p-013b6f5d.entry.js +0 -1
  191. package/dist/bromcom-ui/p-0532e299.entry.js +0 -1
  192. package/dist/bromcom-ui/p-0aa53bdb.entry.js +0 -1
  193. package/dist/bromcom-ui/p-2c1ee381.entry.js +0 -1
  194. package/dist/bromcom-ui/p-607bc9b3.entry.js +0 -1
  195. package/dist/bromcom-ui/p-6355c903.entry.js +0 -1
  196. package/dist/bromcom-ui/p-6bd805f1.entry.js +0 -1
  197. package/dist/bromcom-ui/p-77a480ff.entry.js +0 -1
  198. package/dist/bromcom-ui/p-a88256f2.entry.js +0 -1
  199. package/dist/bromcom-ui/p-b92324e7.js +0 -1
  200. package/dist/bromcom-ui/p-ba219861.entry.js +0 -1
  201. package/dist/bromcom-ui/p-cdfd9ba0.entry.js +0 -1
  202. package/dist/bromcom-ui/p-cf6b0656.entry.js +0 -1
  203. package/dist/cjs/bcm-checkbox-group.cjs.entry.js +0 -273
  204. package/dist/cjs/bcm-checkbox.cjs.entry.js +0 -143
  205. package/dist/cjs/bcm-switch.cjs.entry.js +0 -86
  206. package/dist/cjs/bcm-textarea.cjs.entry.js +0 -136
  207. package/dist/cjs/bcm-tooltip-box.cjs.entry.js +0 -36
  208. package/dist/esm/bcm-checkbox-group.entry.js +0 -269
  209. package/dist/esm/bcm-checkbox.entry.js +0 -139
  210. package/dist/esm/bcm-switch.entry.js +0 -82
  211. package/dist/esm/bcm-textarea.entry.js +0 -132
  212. package/dist/esm/bcm-tooltip-box.entry.js +0 -32
@@ -25,6 +25,7 @@ export class BcmInput {
25
25
  this.disabled = false;
26
26
  this.readonly = false;
27
27
  this.clearable = false;
28
+ this._internal_id = (Math.random() * 4).toString(16).replace('.', '');
28
29
  this.unit = null;
29
30
  this.unitPrefix = null;
30
31
  this.min = null;
@@ -103,7 +104,7 @@ export class BcmInput {
103
104
  this.value = '';
104
105
  this.inputElement.focus();
105
106
  this.change.emit(this.value);
106
- this.clear.emit();
107
+ this.clear.emit(e);
107
108
  e.stopPropagation();
108
109
  }
109
110
  changePasswordVisibility() {
@@ -354,12 +355,8 @@ export class BcmInput {
354
355
  const hostClasses = cs(this.hidden ? 'hidden' : null, this.noMargin ? 'no-margin' : null);
355
356
  return (h(Host, { class: hostClasses },
356
357
  h("div", { class: containerClasses },
357
- label && h("label", { htmlFor: this.inputId, class: "label size-1" },
358
- " ",
359
- label,
360
- " ",
361
- required && ('*'),
362
- " "),
358
+ label && h("div", null,
359
+ h("bcm-label", { tooltip: this.tooltip, type: captionType, value: label, required: required, htmlFor: this.inputId })),
363
360
  h("div", { class: baseClasses },
364
361
  h("span", { class: "input-prefix" },
365
362
  h("slot", { name: "prefix" }),
@@ -699,6 +696,24 @@ export class BcmInput {
699
696
  "attribute": "id",
700
697
  "reflect": true
701
698
  },
699
+ "_internal_id": {
700
+ "type": "string",
701
+ "mutable": false,
702
+ "complexType": {
703
+ "original": "string",
704
+ "resolved": "string",
705
+ "references": {}
706
+ },
707
+ "required": false,
708
+ "optional": false,
709
+ "docs": {
710
+ "tags": [],
711
+ "text": ""
712
+ },
713
+ "attribute": "_internal_id",
714
+ "reflect": false,
715
+ "defaultValue": "(Math.random() * 4).toString(16).replace('.', '')"
716
+ },
702
717
  "name": {
703
718
  "type": "string",
704
719
  "mutable": false,
@@ -894,6 +909,23 @@ export class BcmInput {
894
909
  "attribute": "max-length",
895
910
  "reflect": false,
896
911
  "defaultValue": "null"
912
+ },
913
+ "tooltip": {
914
+ "type": "string",
915
+ "mutable": false,
916
+ "complexType": {
917
+ "original": "string",
918
+ "resolved": "string",
919
+ "references": {}
920
+ },
921
+ "required": false,
922
+ "optional": false,
923
+ "docs": {
924
+ "tags": [],
925
+ "text": ""
926
+ },
927
+ "attribute": "tooltip",
928
+ "reflect": false
897
929
  }
898
930
  }; }
899
931
  static get states() { return {
@@ -90,6 +90,7 @@
90
90
  align-items: center;
91
91
  flex-direction: row;
92
92
  white-space: break-spaces;
93
+ margin: 0 8px;
93
94
  }
94
95
  .list-item .check {
95
96
  display: none;
@@ -202,6 +202,13 @@
202
202
  -webkit-line-clamp: 1;
203
203
  -webkit-box-orient: vertical;
204
204
  }
205
+ .selected .selected-text .text-content.autocomplete {
206
+ position: absolute;
207
+ z-index: 1;
208
+ padding-left: 7px;
209
+ background-color: #ffffff;
210
+ margin-left: 2px;
211
+ }
205
212
  .selected .selected-tags {
206
213
  padding: 0 4px;
207
214
  height: 100%;
@@ -427,12 +434,10 @@
427
434
  .tag.dissmisable .close-button {
428
435
  width: 14px;
429
436
  cursor: pointer;
437
+ fill: var(--bcm-color-grey-7);
430
438
  }
431
- .tag.dissmisable .close-button bcm-icon, .tag.dissmisable .close-button .icon * {
432
- color: var(--bcm-color-grey-7);
433
- }
434
- .tag.dissmisable .close-button:hover bcm-icon, .tag.dissmisable .close-button:hover .icon * {
435
- color: var(--bcm-color-grey-10);
439
+ .tag.dissmisable .close-button:hover {
440
+ fill: var(--bcm-color-grey-10);
436
441
  }
437
442
  .tag span {
438
443
  display: inline-flex;
@@ -1,6 +1,6 @@
1
- import { Component, h, Element, Prop, Host, Event, State, Method, Listen } from '@stencil/core';
1
+ import { Component, h, Element, Prop, Host, Event, State, Method, Listen, Watch } from '@stencil/core';
2
2
  import cs from 'classnames';
3
- import { delay } from '../../../utils/utils';
3
+ import { delay, pluralize } from '../../../utils/utils';
4
4
  export class BcmListSelect {
5
5
  constructor() {
6
6
  this.objectMapping = {
@@ -14,6 +14,7 @@ export class BcmListSelect {
14
14
  this.value = null;
15
15
  this._internal_id = (Math.random() * 4).toString(16).replace('.', '');
16
16
  this.type = 'default';
17
+ this.variableText = 'item';
17
18
  this.size = 'medium';
18
19
  this.placeholder = "Choose an option";
19
20
  this.noCaption = false;
@@ -21,6 +22,7 @@ export class BcmListSelect {
21
22
  this.fullWidth = false;
22
23
  this.required = false;
23
24
  this.multiSelect = false;
25
+ // search variables
24
26
  this.searchData = null;
25
27
  this.searchPlaceholder = "Search";
26
28
  this.searchFields = ['text'];
@@ -30,12 +32,14 @@ export class BcmListSelect {
30
32
  this.captionCache = null;
31
33
  this.captionTypeCache = null;
32
34
  this.isOpen = false;
35
+ this.firstRun = true;
33
36
  this.selectArea = null;
34
37
  this.selectAreaWidth = 0;
35
38
  this.selectHiddenData = [];
36
39
  this.otherList = [];
37
40
  this.selectText = null;
38
41
  this.selectData = [];
42
+ this.focusInput = false;
39
43
  }
40
44
  connectedCallback() { }
41
45
  disconnectedCallback() { }
@@ -71,7 +75,8 @@ export class BcmListSelect {
71
75
  /**
72
76
  * @descc
73
77
  */
74
- handleBlur() {
78
+ handleBlur(type = "host") {
79
+ type === "input" && (this.focusInput = false);
75
80
  this.blur.emit();
76
81
  }
77
82
  /**
@@ -82,6 +87,14 @@ export class BcmListSelect {
82
87
  this.captionType = this.captionTypeCache;
83
88
  this.captionError = null;
84
89
  }
90
+ /**
91
+ * @desc
92
+ */
93
+ async setClear() {
94
+ this.selectText = null;
95
+ this.value = null;
96
+ this.selectData = [];
97
+ }
85
98
  /**
86
99
  * @descc
87
100
  */
@@ -106,6 +119,25 @@ export class BcmListSelect {
106
119
  element.show();
107
120
  }
108
121
  }
122
+ // if ( this.type === "autocomplete" ) {
123
+ // const autocompleteInput:any = this.el.shadowRoot.querySelector("#autocomplete")
124
+ // if ( autocompleteInput ) {
125
+ // // var inputValue = await autocompleteInput.getValue()
126
+ // // if ( inputValue && inputValue.length > 0 ) {
127
+ // if ( element != null ){
128
+ // // this.setClear()
129
+ // // autocompleteInput.setFocus()
130
+ // // await delay(100)
131
+ // autocompleteInput.select()
132
+ // // if( element.classList.contains("show") === true ) {
133
+ // // this.setClear()
134
+ // // autocompleteInput.setFocus()
135
+ // // autocompleteInput.select()
136
+ // // }
137
+ // }
138
+ // // }
139
+ // }
140
+ // }
109
141
  }
110
142
  /**
111
143
  * @desc
@@ -156,8 +188,40 @@ export class BcmListSelect {
156
188
  /**
157
189
  * @descc
158
190
  */
159
- clickClear(e) {
160
- e.stopPropagation();
191
+ handleChange(event) {
192
+ var path = event.path || (event.composedPath && event.composedPath());
193
+ if (path
194
+ && path.filter((input) => input['_internal_id'] == this._internal_id)[0]
195
+ && path.filter((input) => input['id'] == "autocomplete") != undefined) {
196
+ event.stopPropagation();
197
+ event.preventDefault();
198
+ }
199
+ }
200
+ /**
201
+ * @descc
202
+ */
203
+ handleClear(event) {
204
+ var path = event.path || (event.composedPath && event.composedPath());
205
+ if (path
206
+ && path.filter((input) => input['_internal_id'] == this._internal_id)[0]
207
+ && path.filter((input) => input['id'] == "autocomplete") != undefined) {
208
+ event.stopPropagation();
209
+ event.preventDefault();
210
+ this.clickClear();
211
+ }
212
+ }
213
+ /**
214
+ * @descc
215
+ */
216
+ clickClear(event = null) {
217
+ const element = document.querySelector("#" + this._list_id);
218
+ if (element) {
219
+ element.setClear(false);
220
+ }
221
+ if (event) {
222
+ event.stopPropagation();
223
+ event.preventDefault();
224
+ }
161
225
  }
162
226
  /**
163
227
  * @desc
@@ -200,14 +264,36 @@ export class BcmListSelect {
200
264
  * @descc
201
265
  */
202
266
  async setValue(value, _id = "id", _text = "text") {
267
+ // debugger;
268
+ // if ( !value || value.length == 0 ) {
269
+ // this.selectText = null;
270
+ // this.value = null;
271
+ // this.selectData = []
272
+ // this.otherList = []
273
+ // return false;
274
+ // }
275
+ let val = "";
276
+ if (this.multiSelect === false) {
277
+ if (value && value.length > 0) {
278
+ val = value[0][_text];
279
+ }
280
+ value = val;
281
+ }
203
282
  var newValue = value;
283
+ const autocompleteInput = this.el.shadowRoot.querySelector("#autocomplete");
284
+ if (autocompleteInput) {
285
+ autocompleteInput.setValue(value);
286
+ this.searchText = value;
287
+ this.search("", false);
288
+ }
289
+ // this.selectText = newValue
204
290
  // this.searchData = JSON.parse(value as string)
205
291
  this.handleLoading(true);
206
292
  this.selectData = [];
207
293
  this.otherList = [];
208
294
  if (typeof value == 'string') {
209
295
  if (this.value !== value) {
210
- this.selectText = String(value);
296
+ this.selectText = String(val);
211
297
  this.value = this.selectText;
212
298
  }
213
299
  this.handleLoading(false);
@@ -248,10 +334,10 @@ export class BcmListSelect {
248
334
  newTag.setAttribute("_internal_id", this._internal_id);
249
335
  newTag.innerHTML = '<span class="value"> ' + item["text"] + ' </span>'
250
336
  + '<span id="close-button" ' + '_internal_id="' + this._internal_id + '" class="right close-button"> '
251
- + '<svg class="icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> '
337
+ + '<svg class="icon" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> '
252
338
  + '<g id="icon/outlined/suggested/close">'
253
- + '<path id="Vector" d="M18.9275 4.07814L19.9219 5.07251C20.0103 5.1609 20.0103 5.24928 19.9219 5.33767L5.3378 19.9218C5.24941 20.0101 5.16102 20.0101 5.07263 19.9218L4.07826 18.9274C3.98987 18.839 3.98987 18.7506 4.07826 18.6622L18.6623 4.07814C18.7507 3.98975 18.8391 3.98975 18.9275 4.07814Z" fill="black"/>'
254
- + '<path id="Vector_2" d="M5.33766 4.07814L19.9217 18.6622C20.0101 18.7506 20.0101 18.839 19.9217 18.9274L18.9274 19.9218C18.839 20.0101 18.7506 20.0101 18.6622 19.9218L4.07813 5.33767C3.98974 5.24928 3.98974 5.1609 4.07813 5.07251L5.0725 4.07814C5.16088 3.98975 5.24927 3.98975 5.33766 4.07814Z" fill="black"/>'
339
+ + '<path id="Vector" d="M18.9275 4.07814L19.9219 5.07251C20.0103 5.1609 20.0103 5.24928 19.9219 5.33767L5.3378 19.9218C5.24941 20.0101 5.16102 20.0101 5.07263 19.9218L4.07826 18.9274C3.98987 18.839 3.98987 18.7506 4.07826 18.6622L18.6623 4.07814C18.7507 3.98975 18.8391 3.98975 18.9275 4.07814Z" />'
340
+ + '<path id="Vector_2" d="M5.33766 4.07814L19.9217 18.6622C20.0101 18.7506 20.0101 18.839 19.9217 18.9274L18.9274 19.9218C18.839 20.0101 18.7506 20.0101 18.6622 19.9218L4.07813 5.33767C3.98974 5.24928 3.98974 5.1609 4.07813 5.07251L5.0725 4.07814C5.16088 3.98975 5.24927 3.98975 5.33766 4.07814Z" />'
255
341
  + '</g>'
256
342
  + '</svg>'
257
343
  + '</span>';
@@ -263,6 +349,14 @@ export class BcmListSelect {
263
349
  }
264
350
  // console.log('this.otherList: ', this.otherList)
265
351
  // this.resetCaption()
352
+ // console.log('this.value: ', this.value)
353
+ // if ( this.type === "autocomplete" ) {
354
+ // const autocompleteInput:any = this.el.shadowRoot.querySelector("#autocomplete")
355
+ // if ( autocompleteInput ) {
356
+ // autocompleteInput.setValue(this.value)
357
+ // // autocompleteInput.select()
358
+ // }
359
+ // }
266
360
  return this.value;
267
361
  }
268
362
  /**
@@ -344,12 +438,21 @@ export class BcmListSelect {
344
438
  Array.from(tags).filter(e => e["hidden"] === false).forEach(element => {
345
439
  this.selectHiddenData = this.selectHiddenData.filter(e => String(e[this.objectMapping['id']]) !== String(element.id));
346
440
  });
347
- otherTag.setAttribute("value", this.selectHiddenData.length + " item" + (this.selectHiddenData.length > 1 ? 's' : '') + " selected");
441
+ otherTag.setAttribute("value", this.selectHiddenData.length + " " + pluralize(this.variableText, this.selectHiddenData.length) + " selected");
348
442
  var result = Object.keys(this.selectHiddenData).map((key) => (this.selectHiddenData[key][this.objectMapping['text']]).substring(0, 15) + "...").slice(0, 10) + "\r\n...";
349
443
  const hiddenTagsString = result.toString().split(',').join("\r\n");
350
444
  otherTag.setAttribute("title", hiddenTagsString);
351
445
  }
352
446
  }
447
+ const cloneList = this.listIsInitialize();
448
+ if (cloneList) {
449
+ if (sessionStorage.getItem(this._internal_id + "-config")) {
450
+ cloneList.config(JSON.parse(sessionStorage.getItem(this._internal_id + "-config")));
451
+ }
452
+ // console.log('selectHiddenData: ', this.selectHiddenData )
453
+ cloneList.setDataOther(this.selectHiddenData);
454
+ // cloneList.show()
455
+ }
353
456
  }
354
457
  else {
355
458
  if (otherTagcontainer) {
@@ -358,18 +461,17 @@ export class BcmListSelect {
358
461
  }
359
462
  }
360
463
  else { }
361
- const cloneList = this.listIsInitialize();
362
- if (cloneList) {
363
- if (sessionStorage.getItem(this._internal_id + "-config")) {
364
- cloneList.config(JSON.parse(sessionStorage.getItem(this._internal_id + "-config")));
365
- }
366
- // console.log('selectHiddenData: ', this.selectHiddenData )
367
- cloneList.setDataOther(this.selectHiddenData);
368
- // cloneList.show()
369
- }
370
464
  // await delay(100)
371
465
  this.handleLoading(false);
372
466
  }
467
+ /**
468
+ * @desc
469
+ */
470
+ valueWatch(newValue) {
471
+ if (Array.isArray(newValue) && newValue.length == 0) {
472
+ this.value = "";
473
+ }
474
+ }
373
475
  /**
374
476
  * @desc
375
477
  */
@@ -408,13 +510,26 @@ export class BcmListSelect {
408
510
  * @descc
409
511
  */
410
512
  inputChange(e) {
411
- this.search(e);
513
+ if (this.searchText !== e) {
514
+ this.searchText = e;
515
+ this.search(e);
516
+ }
412
517
  }
413
- search(value) {
518
+ search(value, show = true) {
414
519
  const element = document.getElementById(this._list_id);
415
520
  if (element != null) {
416
521
  element.setSearch(value);
522
+ if (show) {
523
+ this.show();
524
+ }
417
525
  }
526
+ // if ( this.type === "autocomplete" ) {
527
+ // const autocompleteInput:any = this.el.shadowRoot.querySelector("#autocomplete")
528
+ // if ( autocompleteInput ) {
529
+ // autocompleteInput.setFocus()
530
+ // // autocompleteInput.select()
531
+ // }
532
+ // }
418
533
  }
419
534
  /**
420
535
  * @desc
@@ -462,6 +577,25 @@ export class BcmListSelect {
462
577
  }
463
578
  }
464
579
  }
580
+ if (this.type === "autocomplete") {
581
+ if (path.filter((input) => input['id'] == this._id)[0] !== undefined) {
582
+ // if ( path.filter((input: HTMLElement) => input['id'] == "autocomplete")[0]
583
+ // || path.filter((input: HTMLElement) => input['id'] == "autocomplete-text")[0] ) {
584
+ const autocompleteInput = this.el.shadowRoot.querySelector("#autocomplete");
585
+ if (autocompleteInput) {
586
+ // autocompleteInput.setClear()
587
+ // if ( element ) {
588
+ // element.setClear()
589
+ // }
590
+ // this.setClear()
591
+ // await delay(100)
592
+ // autocompleteInput.setFocus()
593
+ await delay(100);
594
+ autocompleteInput.select();
595
+ // this.focusInput = true
596
+ }
597
+ }
598
+ }
465
599
  }
466
600
  }
467
601
  render() {
@@ -504,12 +638,8 @@ export class BcmListSelect {
504
638
  // </Host>
505
639
  h(Host, { class: hostClasses, onFocus: () => this.handleFocus(), onBlur: () => this.handleBlur() },
506
640
  h("div", { class: container },
507
- label && h("label", { class: "label size-1", onClick: () => this.handleOpen() },
508
- " ",
509
- label,
510
- " ",
511
- required === true && ('*'),
512
- " "),
641
+ label && h("div", null,
642
+ h("bcm-label", { onClick: () => this.handleOpen(), tooltip: this.tooltip, type: captionType, value: label, required: required })),
513
643
  h("div", { id: "selected-container", class: selected, onClick: () => this.handleOpen(), tabIndex: -1 },
514
644
  h("span", { class: selectedText, title: selectText !== null && (selectText) },
515
645
  h("div", { class: "spinner first-run" }),
@@ -521,9 +651,9 @@ export class BcmListSelect {
521
651
  " ",
522
652
  placeholder,
523
653
  " "))),
524
- this.type === 'autocomplete' && (h("bcm-input", { "on-bcm-change": e => this.inputChange(e.detail), "full-width": true, placeholder: this.searchPlaceholder, id: "autocomplete", value: this.searchText, "no-caption": true, "no-margin": true, type: "search", clearable: true }))),
654
+ this.type === 'autocomplete' && (h("bcm-input", { _internal_id: this._internal_id, onFocus: () => this.handleFocus(), onBlur: () => this.handleBlur("input"), "on-bcm-change": e => this.inputChange(e.detail), "full-width": true, placeholder: this.searchPlaceholder, id: "autocomplete", "no-caption": true, "no-margin": true, type: "search", clearable: true }))),
525
655
  this.type === 'select' && (h("div", { class: "buttons" },
526
- clearable && value && (h("button", { class: "select-clear-button", onClick: (e) => this.clickClear(e) },
656
+ clearable && value && (h("button", { id: "clear-button", class: "select-clear-button", onClick: (e) => this.clickClear(e) },
527
657
  h("bcm-icon", { icon: "close-circle", type: "fill", size: 18, color: "grey-7" }))),
528
658
  h("span", { class: isOpen ? 'open' : 'close' },
529
659
  h("bcm-icon", { icon: "caret-up", type: "outlined", size: 18, color: "grey-6" }))))),
@@ -659,6 +789,24 @@ export class BcmListSelect {
659
789
  "reflect": false,
660
790
  "defaultValue": "'default'"
661
791
  },
792
+ "variableText": {
793
+ "type": "string",
794
+ "mutable": false,
795
+ "complexType": {
796
+ "original": "string",
797
+ "resolved": "string",
798
+ "references": {}
799
+ },
800
+ "required": false,
801
+ "optional": false,
802
+ "docs": {
803
+ "tags": [],
804
+ "text": ""
805
+ },
806
+ "attribute": "variable-text",
807
+ "reflect": false,
808
+ "defaultValue": "'item'"
809
+ },
662
810
  "size": {
663
811
  "type": "string",
664
812
  "mutable": false,
@@ -897,6 +1045,23 @@ export class BcmListSelect {
897
1045
  "reflect": false,
898
1046
  "defaultValue": "false"
899
1047
  },
1048
+ "tooltip": {
1049
+ "type": "string",
1050
+ "mutable": false,
1051
+ "complexType": {
1052
+ "original": "string",
1053
+ "resolved": "string",
1054
+ "references": {}
1055
+ },
1056
+ "required": false,
1057
+ "optional": false,
1058
+ "docs": {
1059
+ "tags": [],
1060
+ "text": ""
1061
+ },
1062
+ "attribute": "tooltip",
1063
+ "reflect": false
1064
+ },
900
1065
  "searchData": {
901
1066
  "type": "any",
902
1067
  "mutable": false,
@@ -918,7 +1083,8 @@ export class BcmListSelect {
918
1083
  }; }
919
1084
  static get states() { return {
920
1085
  "selectText": {},
921
- "selectData": {}
1086
+ "selectData": {},
1087
+ "focusInput": {}
922
1088
  }; }
923
1089
  static get events() { return [{
924
1090
  "method": "change",
@@ -1001,6 +1167,25 @@ export class BcmListSelect {
1001
1167
  }]
1002
1168
  }
1003
1169
  },
1170
+ "setClear": {
1171
+ "complexType": {
1172
+ "signature": "() => Promise<void>",
1173
+ "parameters": [],
1174
+ "references": {
1175
+ "Promise": {
1176
+ "location": "global"
1177
+ }
1178
+ },
1179
+ "return": "Promise<void>"
1180
+ },
1181
+ "docs": {
1182
+ "text": "",
1183
+ "tags": [{
1184
+ "name": "desc",
1185
+ "text": undefined
1186
+ }]
1187
+ }
1188
+ },
1004
1189
  "hide": {
1005
1190
  "complexType": {
1006
1191
  "signature": "(list?: \"default\" | \"other\") => Promise<void>",
@@ -1094,7 +1279,7 @@ export class BcmListSelect {
1094
1279
  },
1095
1280
  "setValue": {
1096
1281
  "complexType": {
1097
- "signature": "(value: Array<string> | string, _id?: string, _text?: string) => Promise<any>",
1282
+ "signature": "(value: any, _id?: string, _text?: string) => Promise<any>",
1098
1283
  "parameters": [{
1099
1284
  "tags": [],
1100
1285
  "text": ""
@@ -1108,9 +1293,6 @@ export class BcmListSelect {
1108
1293
  "references": {
1109
1294
  "Promise": {
1110
1295
  "location": "global"
1111
- },
1112
- "Array": {
1113
- "location": "global"
1114
1296
  }
1115
1297
  },
1116
1298
  "return": "Promise<any>"
@@ -1125,7 +1307,23 @@ export class BcmListSelect {
1125
1307
  }
1126
1308
  }; }
1127
1309
  static get elementRef() { return "el"; }
1310
+ static get watchers() { return [{
1311
+ "propName": "value",
1312
+ "methodName": "valueWatch"
1313
+ }]; }
1128
1314
  static get listeners() { return [{
1315
+ "name": "bcm-change",
1316
+ "method": "handleChange",
1317
+ "target": undefined,
1318
+ "capture": false,
1319
+ "passive": false
1320
+ }, {
1321
+ "name": "bcm-clear",
1322
+ "method": "handleClear",
1323
+ "target": undefined,
1324
+ "capture": false,
1325
+ "passive": false
1326
+ }, {
1129
1327
  "name": "resize",
1130
1328
  "method": "resizeEvent",
1131
1329
  "target": "window",
@@ -59,7 +59,8 @@
59
59
  display: block;
60
60
  position: relative;
61
61
  user-select: none;
62
- width: 256px;
62
+ width: fit-content;
63
+ height: fit-content;
63
64
  }
64
65
  :host main {
65
66
  width: 256px;
@@ -71,7 +72,7 @@
71
72
  display: flex;
72
73
  flex-direction: column;
73
74
  position: relative;
74
- padding: 8px;
75
+ padding-top: 8px;
75
76
  }
76
77
 
77
78
  :host(.full-width) {
@@ -87,11 +88,13 @@
87
88
  opacity: 0;
88
89
  top: -10000;
89
90
  left: -10000;
91
+ visibility: hidden !important;
90
92
  box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.15);
91
93
  }
92
94
 
93
95
  :host(.linked.show) {
94
96
  opacity: 1;
97
+ visibility: visible !important;
95
98
  z-index: 100000;
96
99
  }
97
100
 
@@ -176,6 +179,24 @@
176
179
  grid-gap: 4px;
177
180
  }
178
181
 
182
+ .check-container {
183
+ display: block;
184
+ }
185
+ .check-container.hidden {
186
+ display: none;
187
+ }
188
+
189
+ .empty {
190
+ display: none;
191
+ align-items: center;
192
+ justify-content: center;
193
+ flex: 1;
194
+ height: 100%;
195
+ }
196
+ .empty.show {
197
+ display: flex;
198
+ }
199
+
179
200
  .spinner {
180
201
  position: absolute;
181
202
  z-index: 1;
@@ -209,6 +230,7 @@
209
230
  justify-content: flex-start;
210
231
  align-items: center;
211
232
  flex-direction: row;
233
+ margin: 0 8px;
212
234
  }
213
235
  .list-item:hover:not(.disabled), .list-item:active:not(.disabled) {
214
236
  color: var(--bcm-color-prime-blue-6);