bromcom-ui 2.4.12 → 2.4.15

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 (74) hide show
  1. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  2. package/dist/bromcom-ui/{p-f2e73379.entry.js → p-027c7708.entry.js} +1 -1
  3. package/dist/bromcom-ui/{p-1b314bd5.entry.js → p-1cd97811.entry.js} +1 -1
  4. package/dist/bromcom-ui/{p-d4fd1619.entry.js → p-1fc98e5a.entry.js} +1 -1
  5. package/dist/bromcom-ui/{p-5f44988e.entry.js → p-2bd4c2ba.entry.js} +1 -1
  6. package/dist/bromcom-ui/{p-59c0459d.entry.js → p-3c1b8095.entry.js} +1 -1
  7. package/dist/bromcom-ui/p-3d40f6ce.js +1 -0
  8. package/dist/bromcom-ui/p-4054d5e3.js +1 -0
  9. package/dist/bromcom-ui/{p-6f9c4492.entry.js → p-7175652d.entry.js} +1 -1
  10. package/dist/bromcom-ui/p-9f47196d.js +1 -0
  11. package/dist/bromcom-ui/{p-3d463d45.entry.js → p-af83c581.entry.js} +1 -1
  12. package/dist/bromcom-ui/{p-89aab923.js → p-b5f0649f.js} +1 -1
  13. package/dist/bromcom-ui/p-c28be553.entry.js +1 -0
  14. package/dist/bromcom-ui/p-c6e58492.js +1 -0
  15. package/dist/bromcom-ui/{p-841a7311.entry.js → p-d4d5758f.entry.js} +1 -1
  16. package/dist/bromcom-ui/p-e42b15f4.js +1 -0
  17. package/dist/bromcom-ui/{p-ac4d2284.entry.js → p-ea79fd86.entry.js} +1 -1
  18. package/dist/cjs/{bcm-6463472f.js → bcm-5dcc129b.js} +6 -0
  19. package/dist/cjs/bcm-avatar_33.cjs.entry.js +5 -5
  20. package/dist/cjs/bcm-icon-2_2.cjs.entry.js +2 -2
  21. package/dist/cjs/bcm-list.cjs.entry.js +287 -221
  22. package/dist/cjs/bcm-popconfirm-box.cjs.entry.js +4 -4
  23. package/dist/cjs/bcm-popconfirm.cjs.entry.js +2 -2
  24. package/dist/cjs/bcm-popover-box.cjs.entry.js +4 -4
  25. package/dist/cjs/bcm-popover.cjs.entry.js +2 -2
  26. package/dist/cjs/bcm-search-2.cjs.entry.js +3 -3
  27. package/dist/cjs/bcm-stepper.cjs.entry.js +3 -3
  28. package/dist/cjs/bcm-tag-2.cjs.entry.js +2 -2
  29. package/dist/cjs/bromcom-ui.cjs.js +1 -1
  30. package/dist/cjs/{generate-2330fd84.js → generate-daf8998f.js} +10 -0
  31. package/dist/cjs/{label-template-317aee92.js → label-template-39ce726c.js} +2 -2
  32. package/dist/cjs/loader.cjs.js +1 -1
  33. package/dist/cjs/{popover-placement-e5e2f665.js → popover-placement-dacc8fc9.js} +5 -6
  34. package/dist/cjs/{stepper-states-3c341aa6.js → stepper-states-56f0862b.js} +1 -1
  35. package/dist/cjs/{string-helper-acab31b6.js → string-helper-991c7e7d.js} +1 -1
  36. package/dist/collection/components/organism/list/list-key-control.js +104 -0
  37. package/dist/collection/components/organism/list/list.css +15 -6
  38. package/dist/collection/components/organism/list/list.js +211 -213
  39. package/dist/collection/helper/generate.js +10 -0
  40. package/dist/collection/models/bcm.js +6 -0
  41. package/dist/collection/templates/list-item-template.js +6 -5
  42. package/dist/collection/utils/popover-placement.js +4 -5
  43. package/dist/esm/{bcm-0d5f0281.js → bcm-1571bb45.js} +6 -0
  44. package/dist/esm/bcm-avatar_33.entry.js +5 -5
  45. package/dist/esm/bcm-icon-2_2.entry.js +2 -2
  46. package/dist/esm/bcm-list.entry.js +287 -221
  47. package/dist/esm/bcm-popconfirm-box.entry.js +4 -4
  48. package/dist/esm/bcm-popconfirm.entry.js +2 -2
  49. package/dist/esm/bcm-popover-box.entry.js +4 -4
  50. package/dist/esm/bcm-popover.entry.js +2 -2
  51. package/dist/esm/bcm-search-2.entry.js +3 -3
  52. package/dist/esm/bcm-stepper.entry.js +3 -3
  53. package/dist/esm/bcm-tag-2.entry.js +2 -2
  54. package/dist/esm/bromcom-ui.js +1 -1
  55. package/dist/esm/{generate-2ee52515.js → generate-3a3196bb.js} +10 -0
  56. package/dist/esm/{label-template-dcde83fb.js → label-template-6989c6ba.js} +2 -2
  57. package/dist/esm/loader.js +1 -1
  58. package/dist/esm/{popover-placement-0b415c4e.js → popover-placement-38aa9b63.js} +5 -6
  59. package/dist/esm/{stepper-states-8d16f3b0.js → stepper-states-b821e069.js} +1 -1
  60. package/dist/esm/{string-helper-acc53dad.js → string-helper-cfa6df93.js} +1 -1
  61. package/dist/types/components/organism/list/list-key-control.d.ts +21 -0
  62. package/dist/types/components/organism/list/list.d.ts +26 -24
  63. package/dist/types/components.d.ts +5 -3
  64. package/dist/types/models/bcm-types.d.ts +1 -0
  65. package/dist/types/models/bcm.d.ts +5 -1
  66. package/dist/types/templates/list-item-template.d.ts +1 -0
  67. package/dist/types/templates/list-template.d.ts +1 -0
  68. package/package.json +2 -2
  69. package/dist/bromcom-ui/p-18d770ad.js +0 -1
  70. package/dist/bromcom-ui/p-3cbd2cb0.js +0 -1
  71. package/dist/bromcom-ui/p-545d742a.entry.js +0 -1
  72. package/dist/bromcom-ui/p-8754d990.js +0 -1
  73. package/dist/bromcom-ui/p-93082523.js +0 -1
  74. package/dist/bromcom-ui/p-dd76fa74.js +0 -1
@@ -18,12 +18,13 @@ import { ListTemplate } from '../../../templates/list-template';
18
18
  import { getPlacement, setPosition } from '../../../utils/popover-placement';
19
19
  import { delay, pluralize } from '../../../utils/utils';
20
20
  import listState from '../states/bcm-list2.states';
21
+ import { ListKeyControl } from './list-key-control';
21
22
  export class BcmList {
22
23
  constructor() {
23
24
  this.debounce = null;
24
25
  this._id = Generate.UID();
25
26
  // All types
26
- this.type = 'listbox';
27
+ this.type = Bcm.ListType.listbox;
27
28
  this.treeview = false;
28
29
  this.checkboxes = false;
29
30
  this.searchable = false;
@@ -79,32 +80,13 @@ export class BcmList {
79
80
  this.data = [];
80
81
  this.debounceHandler = Generate.debounceInput(() => this.listenResize(), 300, false);
81
82
  }
82
- async componentDidLoad() {
83
- await this.initState();
84
- if (this.type == 'select' || this.type == 'autocomplete') {
85
- const list = this.el.querySelector(`#bcm-list-${this._id}`);
86
- if (list) {
87
- document.body.appendChild(list);
88
- }
89
- }
90
- }
91
83
  connectedCallback() {
92
84
  if (this.height != '256px') {
93
85
  this.limit = Math.floor(+(this.height.replace('px', '')) / 32);
94
86
  this.searchResultLimit = this.limit;
95
- // this.searchGetParents = 20
96
87
  this.markForCheck();
97
88
  }
98
89
  }
99
- disconnectedCallback() {
100
- listState.removeState(this._id);
101
- if (this.type == 'select' || this.type == 'autocomplete') {
102
- const list = document.querySelector(`#bcm-list-${this._id}`);
103
- if (list) {
104
- document.body.removeChild(list);
105
- }
106
- }
107
- }
108
90
  componentWillRender() {
109
91
  this.calculateLocation();
110
92
  this.updateOptions();
@@ -117,12 +99,22 @@ export class BcmList {
117
99
  this.tagControl();
118
100
  }
119
101
  }
120
- updateOptions() {
121
- listState.updateOptions(this._id, this);
102
+ async componentDidLoad() {
103
+ await this.initState();
104
+ if (this.type == 'select' || this.type == 'autocomplete' || this.linkedComponent) {
105
+ const list = this.el.querySelector(`#bcm-list-${this._id}`);
106
+ if (list) {
107
+ document.body.appendChild(list);
108
+ }
109
+ }
122
110
  }
123
- handleChange(e) {
124
- if (e.target.id == `bcm-list-input-tag-container-${this._id}-autocomplete-input`) {
125
- e.stopImmediatePropagation();
111
+ disconnectedCallback() {
112
+ listState.removeState(this._id);
113
+ if (this.type == 'select' || this.type == 'autocomplete' || this.linkedComponent) {
114
+ const list = document.querySelector(`#bcm-list-${this._id}`);
115
+ if (list) {
116
+ document.body.removeChild(list);
117
+ }
126
118
  }
127
119
  }
128
120
  handleValueChange(newVal, oldVal) {
@@ -140,9 +132,6 @@ export class BcmList {
140
132
  this.handleIndeterminate(this.value.length, this.totalData);
141
133
  }
142
134
  }
143
- handleIndeterminate(checkeds, total) {
144
- this.selectAllItem = Object.assign(Object.assign({}, this.selectAllItem), { indeterminate: this.checkboxes && checkeds > 0 ? checkeds === total ? 'check' : 'indeterminate' : 'uncheck', checked: this.checkboxes && checkeds > 0 ? checkeds === total ? true : false : false });
145
- }
146
135
  handleOtherSelected(newValue) {
147
136
  var _a;
148
137
  const tagContent = (_a = document.getElementById(`bcm-list-input-tag-${this._id}-other-tag`)) === null || _a === void 0 ? void 0 : _a.querySelector(".bcm-tag__content");
@@ -155,14 +144,28 @@ export class BcmList {
155
144
  }
156
145
  }
157
146
  }
147
+ async handleOpen() {
148
+ if (this.isOpen) {
149
+ this.onSelectSearch();
150
+ }
151
+ else {
152
+ this.unSelectOther();
153
+ }
154
+ }
155
+ async dataChanged(newValue, oldValue) {
156
+ if (!Validators.compareTwoArrayIsSame(newValue, oldValue)) {
157
+ await this.initState();
158
+ }
159
+ }
160
+ handleChange(e) {
161
+ if (e.target.id == `bcm-list-input-tag-container-${this._id}-autocomplete-input`) {
162
+ e.stopImmediatePropagation();
163
+ }
164
+ }
158
165
  handleResize() {
159
166
  this.calculateLocation();
160
167
  this.debounceHandler();
161
168
  }
162
- listenResize() {
163
- this.tagControl();
164
- this.calculateLocation();
165
- }
166
169
  handleClick(event) {
167
170
  if (this.disabled)
168
171
  return;
@@ -207,36 +210,6 @@ export class BcmList {
207
210
  }
208
211
  }
209
212
  }
210
- async handleOpen() {
211
- if (this.isOpen) {
212
- this.onSelectSearch();
213
- }
214
- else {
215
- this.unSelectOther();
216
- }
217
- }
218
- unSelectOther() {
219
- this.onClearSearch();
220
- this.isSelectedOther = false;
221
- this.returnFilterData = {};
222
- this.isOpen = false;
223
- }
224
- async onClearSearch() {
225
- const searchInput = document.getElementById(`bcm-list-${this._id}-search`);
226
- if (searchInput) {
227
- await searchInput.handleClear();
228
- }
229
- return Promise.resolve();
230
- }
231
- onSelectSearch() {
232
- const searchInput = document.getElementById(`bcm-list-${this._id}-search`);
233
- if (searchInput) {
234
- setTimeout(() => {
235
- searchInput.onBcmFocus();
236
- searchInput.onBcmSelect();
237
- }, 100);
238
- }
239
- }
240
213
  async onDismiss(event) {
241
214
  const { itemObject } = event.detail;
242
215
  const isOtherTag = Array.isArray(itemObject);
@@ -277,23 +250,6 @@ export class BcmList {
277
250
  this.onSelectSearch();
278
251
  this.markForCheck();
279
252
  }
280
- otherTagIds() {
281
- const otherTag = document.querySelector(`#bcm-list-input-tag-${this._id}-other-tag`);
282
- if (otherTag) {
283
- return otherTag.itemObject;
284
- }
285
- }
286
- async filterOtherList(itemObject) {
287
- const ids = itemObject.map(item => item.id);
288
- const checklist = (await this.getCheckedList()).nestedResult;
289
- const filter = Generate.convertIdsToNestedData(ids, checklist);
290
- this.returnFilterData = await listState.filterData(this._id, filter, null, true);
291
- this.searchFound = ids.length || 0;
292
- this.limit = 500;
293
- this.searchGetParents = null;
294
- await delay(1000);
295
- this.markForCheck();
296
- }
297
253
  bcmOnSearchClear(event) {
298
254
  var _a, _b;
299
255
  if (this.type == 'autocomplete') {
@@ -334,9 +290,43 @@ export class BcmList {
334
290
  this.markForCheck();
335
291
  }
336
292
  }
337
- async dataChanged(newValue, oldValue) {
338
- if (!Validators.compareTwoArrayIsSame(newValue, oldValue)) {
339
- await this.initState();
293
+ //keyboard navigation
294
+ handleKeyDown(ev) {
295
+ const keycode = ev.keyCode || ev.which;
296
+ if (keycode === Bcm.KeyCode.escape) {
297
+ if (this.isOpen) {
298
+ this.isOpen = false;
299
+ ev.preventDefault();
300
+ ev.stopPropagation();
301
+ ev.stopImmediatePropagation();
302
+ }
303
+ }
304
+ if (this.keyControl) {
305
+ const keyboard = new ListKeyControl(keycode, this.el);
306
+ keyboard.keydown();
307
+ }
308
+ }
309
+ handleKeyUp(ev) {
310
+ if (this.keyControl) {
311
+ const focusedList = Generate.findEventPath(ev, this.el);
312
+ if (focusedList) {
313
+ const list = document.getElementById(`bcm-list-${this._id}`);
314
+ if (list) {
315
+ const items = list.querySelectorAll('.bcm-list__item.focused');
316
+ if (items.length > 0) {
317
+ const main = list.querySelector('main');
318
+ const itemHeight = items[0].offsetHeight;
319
+ const listHeight = main.offsetHeight;
320
+ const itemTop = items[0].offsetTop;
321
+ if (itemTop > listHeight) {
322
+ main.scrollTop = itemTop - (listHeight / 2) + (itemHeight / 2);
323
+ }
324
+ if (itemTop < listHeight) {
325
+ main.scrollTop = itemTop - (listHeight / 2) - (itemHeight / 2);
326
+ }
327
+ }
328
+ }
329
+ }
340
330
  }
341
331
  }
342
332
  async getCheckedList() {
@@ -351,7 +341,7 @@ export class BcmList {
351
341
  async addChecked(ids = [], save = false) {
352
342
  if (ids && ids.length > 0) {
353
343
  if (!save) {
354
- this.setClear();
344
+ await this.setClear();
355
345
  }
356
346
  listState.addChecked(this._id, ids);
357
347
  this.value = (await this.getCheckedList()).checkedList;
@@ -387,6 +377,62 @@ export class BcmList {
387
377
  await delay(10);
388
378
  return Promise.resolve();
389
379
  }
380
+ async show() {
381
+ this.isOpen = true;
382
+ return Promise.resolve();
383
+ }
384
+ async hide() {
385
+ this.isOpen = false;
386
+ return Promise.resolve();
387
+ }
388
+ updateOptions() {
389
+ listState.updateOptions(this._id, this);
390
+ }
391
+ handleIndeterminate(checkeds, total) {
392
+ this.selectAllItem = Object.assign(Object.assign({}, this.selectAllItem), { indeterminate: this.checkboxes && checkeds > 0 ? checkeds === total ? 'check' : 'indeterminate' : 'uncheck', checked: this.checkboxes && checkeds > 0 ? checkeds === total ? true : false : false });
393
+ }
394
+ listenResize() {
395
+ this.tagControl();
396
+ this.calculateLocation();
397
+ }
398
+ async unSelectOther() {
399
+ await this.onClearSearch();
400
+ this.isSelectedOther = false;
401
+ this.returnFilterData = {};
402
+ this.isOpen = false;
403
+ }
404
+ async onClearSearch() {
405
+ const searchInput = document.getElementById(`bcm-list-${this._id}-search`);
406
+ if (searchInput) {
407
+ await searchInput.handleClear();
408
+ }
409
+ return Promise.resolve();
410
+ }
411
+ async onSelectSearch() {
412
+ const searchInput = document.getElementById(`bcm-list-${this._id}-search`);
413
+ if (searchInput) {
414
+ await delay(10);
415
+ searchInput.onBcmFocus();
416
+ searchInput.onBcmSelect();
417
+ }
418
+ }
419
+ otherTagIds() {
420
+ const otherTag = document.querySelector(`#bcm-list-input-tag-${this._id}-other-tag`);
421
+ if (otherTag) {
422
+ return otherTag.itemObject;
423
+ }
424
+ }
425
+ async filterOtherList(itemObject) {
426
+ const ids = itemObject.map(item => item.id);
427
+ const checklist = (await this.getCheckedList()).nestedResult;
428
+ const filter = Generate.convertIdsToNestedData(ids, checklist);
429
+ this.returnFilterData = await listState.filterData(this._id, filter, null, true);
430
+ this.searchFound = ids.length || 0;
431
+ this.limit = 500;
432
+ this.searchGetParents = null;
433
+ await delay(1000);
434
+ this.markForCheck();
435
+ }
390
436
  async initState() {
391
437
  await listState.setValue({
392
438
  id: this._id,
@@ -425,24 +471,21 @@ export class BcmList {
425
471
  listState.openGroup(this._id, parentId);
426
472
  this.markForCheck();
427
473
  }
428
- async checkedItem(itemId) {
429
- const isCheckSelectAll = itemId === 'select-all';
430
- if (!isCheckSelectAll) {
431
- listState.checkedItem(this._id, itemId);
432
- }
433
- else {
434
- listState.selectAll(this._id, !this.selectAllItem.checked);
474
+ focusItem(e) {
475
+ if (e.target.classList.contains('bcm-list__item')) {
476
+ const item = e.target;
477
+ const list = document.getElementById(`bcm-list-${this._id}`);
478
+ if (list) {
479
+ const items = list.querySelectorAll('.bcm-list__item');
480
+ if (items.length > 0) {
481
+ const selectedItem = list.querySelector('.bcm-list__item.focused');
482
+ if (selectedItem) {
483
+ selectedItem.classList.remove('focused');
484
+ }
485
+ item.classList.add('focused');
486
+ }
487
+ }
435
488
  }
436
- this.value = (await this.getCheckedList()).checkedList;
437
- this.changeVisibleCheckeds();
438
- this.markForCheck();
439
- }
440
- changeVisibleCheckeds() {
441
- const { visibledItems } = this.returnFilterData;
442
- this.returnFilterData = {
443
- visibledItems,
444
- checkedItems: (visibledItems && visibledItems.filter(item => item.checked)) || []
445
- };
446
489
  }
447
490
  async selectedItem(itemId) {
448
491
  this.value = listState.selectedItem(this._id, itemId);
@@ -462,6 +505,25 @@ export class BcmList {
462
505
  }
463
506
  return Promise.resolve(this.value);
464
507
  }
508
+ async checkedItem(itemId) {
509
+ const isCheckSelectAll = itemId === 'select-all';
510
+ if (!isCheckSelectAll) {
511
+ listState.checkedItem(this._id, itemId);
512
+ }
513
+ else {
514
+ listState.selectAll(this._id, !this.selectAllItem.checked);
515
+ }
516
+ this.value = (await this.getCheckedList()).checkedList;
517
+ this.changeVisibleCheckeds();
518
+ this.markForCheck();
519
+ }
520
+ changeVisibleCheckeds() {
521
+ const { visibledItems } = this.returnFilterData;
522
+ this.returnFilterData = {
523
+ visibledItems,
524
+ checkedItems: (visibledItems && visibledItems.filter(item => item.checked)) || []
525
+ };
526
+ }
465
527
  getAutoCompleteInput() {
466
528
  return document.getElementById(`bcm-list-input-tag-container-${this._id}-autocomplete-input`);
467
529
  }
@@ -484,7 +546,14 @@ export class BcmList {
484
546
  if (this.isOpen) {
485
547
  var placement = this.placement;
486
548
  const list = document.getElementById(`bcm-list-${this._id}`);
487
- const targetElement = document.getElementById(`bcm-list-input-${this._id}`);
549
+ // if (this.linkedComponent) {
550
+ // const linked = document.getElementById(this.linkedComponent)
551
+ // if (linked) {
552
+ // console.dir(linked)
553
+ // }
554
+ // }
555
+ const targetElementId = this.linkedComponent ? this.linkedComponent : `bcm-list-input-${this._id}`;
556
+ const targetElement = document.getElementById(targetElementId);
488
557
  if (list && targetElement) {
489
558
  getPlacement(list, targetElement, placement, (place) => placement = place);
490
559
  const pos = setPosition(placement, targetElement);
@@ -611,114 +680,6 @@ export class BcmList {
611
680
  }
612
681
  }
613
682
  }
614
- //keyboard navigation
615
- handleKeyDown(ev) {
616
- //esc isopen false
617
- const keycode = ev.keyCode || ev.which;
618
- if (keycode === Bcm.KeyCode.escape) {
619
- if (this.isOpen) {
620
- this.isOpen = false;
621
- ev.preventDefault();
622
- ev.stopPropagation();
623
- ev.stopImmediatePropagation();
624
- }
625
- }
626
- if (this.keyControl) {
627
- const focusedList = Generate.findEventPath(ev, this.el);
628
- if (focusedList) {
629
- if (this.type === 'select' && !this.isOpen) {
630
- if (keycode === Bcm.KeyCode.enter || keycode === Bcm.KeyCode.space) {
631
- this.isOpen = true;
632
- }
633
- }
634
- else {
635
- const list = document.getElementById(`bcm-list-${this._id}`);
636
- if (list) {
637
- const items = list.querySelectorAll('.bcm-list__item');
638
- if (items.length > 0) {
639
- const selectedItem = list.querySelector('.bcm-list__item.focused');
640
- if (selectedItem) {
641
- const selectedIndex = Array.prototype.indexOf.call(items, selectedItem);
642
- if (ev.key === 'ArrowDown') {
643
- if (selectedIndex < items.length - 1) {
644
- items[selectedIndex + 1].focus();
645
- }
646
- }
647
- else if (ev.key === 'ArrowUp') {
648
- if (selectedIndex > 0) {
649
- items[selectedIndex - 1].focus();
650
- }
651
- }
652
- else if (ev.key === 'Enter') {
653
- this.selectedItem(selectedItem);
654
- }
655
- }
656
- else {
657
- items[0].focus();
658
- }
659
- }
660
- }
661
- }
662
- }
663
- }
664
- }
665
- handleKeyUp(ev) {
666
- if (this.keyControl) {
667
- const focusedList = Generate.findEventPath(ev, this.el);
668
- if (focusedList) {
669
- const keycode = ev.keyCode || ev.which;
670
- if (keycode === Bcm.KeyCode.escape) {
671
- //unfocused element
672
- const list = document.getElementById(`bcm-list-${this._id}`);
673
- if (list) {
674
- const items = list.querySelectorAll('.bcm-list__item');
675
- if (items.length > 0) {
676
- items[0].focus();
677
- }
678
- }
679
- }
680
- const goToScroll = (item, list) => {
681
- const main = list.querySelector('main');
682
- const itemHeight = item.offsetHeight;
683
- const listHeight = main.offsetHeight;
684
- const itemTop = item.offsetTop;
685
- // console.log(item.offsetTop)
686
- const listTop = main.scrollTop;
687
- const listBottom = listTop + listHeight;
688
- if (itemTop < listTop) {
689
- main.scrollTop = itemTop;
690
- }
691
- else if (itemTop > listBottom) {
692
- main.scrollTop = itemTop - listHeight + itemHeight;
693
- }
694
- // console.log(main.scrollTop)
695
- };
696
- const list = document.getElementById(`bcm-list-${this._id}`);
697
- if (list) {
698
- const items = list.querySelectorAll('.bcm-list__item.focused');
699
- if (items.length > 0) {
700
- goToScroll(items[0], list);
701
- }
702
- }
703
- }
704
- }
705
- }
706
- focusItem(e) {
707
- if (e.target.classList.contains('bcm-list__item')) {
708
- const item = e.target;
709
- const list = document.getElementById(`bcm-list-${this._id}`);
710
- if (list) {
711
- const items = list.querySelectorAll('.bcm-list__item');
712
- if (items.length > 0) {
713
- const selectedItem = list.querySelector('.bcm-list__item.focused');
714
- if (selectedItem) {
715
- selectedItem.classList.remove('focused');
716
- }
717
- item.classList.add('focused');
718
- }
719
- }
720
- }
721
- }
722
683
  render() {
723
684
  const { checkboxes, treeview, label, size, disabled, readonly, required, hidden, fullWidth, searchable } = this.getOptions();
724
685
  const hostClasses = cs('bcm-list', `bcm-list__size-${size}`, size === 'large' ? 'size-3' : 'size-2', {
@@ -728,7 +689,7 @@ export class BcmList {
728
689
  readonly,
729
690
  disabled
730
691
  });
731
- const bcmListContainer = cs('bcm-list__container', `bcm-list__type-${this.type}`, {
692
+ const bcmListContainer = cs('bcm-list__container', this.linkedComponent ? 'bcm-list__type-linked-component' : `bcm-list__type-${this.type}`, {
732
693
  'is-open': this.isOpen,
733
694
  'error': this.captionType == Bcm.Status.error,
734
695
  'full-width': fullWidth,
@@ -783,9 +744,14 @@ export class BcmList {
783
744
  "type": "string",
784
745
  "mutable": false,
785
746
  "complexType": {
786
- "original": "'listbox' | 'select' | 'autocomplete'",
747
+ "original": "ListTypes",
787
748
  "resolved": "\"autocomplete\" | \"listbox\" | \"select\"",
788
- "references": {}
749
+ "references": {
750
+ "ListTypes": {
751
+ "location": "import",
752
+ "path": "../../../models/bcm-types"
753
+ }
754
+ }
789
755
  },
790
756
  "required": false,
791
757
  "optional": false,
@@ -795,7 +761,7 @@ export class BcmList {
795
761
  },
796
762
  "attribute": "type",
797
763
  "reflect": false,
798
- "defaultValue": "'listbox'"
764
+ "defaultValue": "Bcm.ListType.listbox"
799
765
  },
800
766
  "treeview": {
801
767
  "type": "boolean",
@@ -1604,6 +1570,38 @@ export class BcmList {
1604
1570
  "text": "",
1605
1571
  "tags": []
1606
1572
  }
1573
+ },
1574
+ "show": {
1575
+ "complexType": {
1576
+ "signature": "() => Promise<void>",
1577
+ "parameters": [],
1578
+ "references": {
1579
+ "Promise": {
1580
+ "location": "global"
1581
+ }
1582
+ },
1583
+ "return": "Promise<void>"
1584
+ },
1585
+ "docs": {
1586
+ "text": "",
1587
+ "tags": []
1588
+ }
1589
+ },
1590
+ "hide": {
1591
+ "complexType": {
1592
+ "signature": "() => Promise<void>",
1593
+ "parameters": [],
1594
+ "references": {
1595
+ "Promise": {
1596
+ "location": "global"
1597
+ }
1598
+ },
1599
+ "return": "Promise<void>"
1600
+ },
1601
+ "docs": {
1602
+ "text": "",
1603
+ "tags": []
1604
+ }
1607
1605
  }
1608
1606
  }; }
1609
1607
  static get elementRef() { return "el"; }
@@ -1,4 +1,14 @@
1
1
  import { StatusProps } from "../components/molecules/alert/types";
2
+ // @ts-ignore
3
+ import { version } from "../../package.json";
4
+ //console.log versiyon
5
+ console.log(`%c Bromcom ui component library version: ${version} `, `background: #1890FF;
6
+ text-shadow: 0 0 2px #000000;
7
+ color: #fff;
8
+ line-height: 40px;
9
+ font-size: 13px;
10
+ padding: 0 20px;
11
+ border-radius: 6px; `);
2
12
  export class Generate {
3
13
  }
4
14
  Generate.UID = () => Math.random().toString(36).substr(2, 9);
@@ -447,5 +447,11 @@ export var Bcm;
447
447
  TriggerType["click"] = "click";
448
448
  TriggerType["focus"] = "focus";
449
449
  })(TriggerType = Bcm.TriggerType || (Bcm.TriggerType = {}));
450
+ let ListType;
451
+ (function (ListType) {
452
+ ListType["listbox"] = "listbox";
453
+ ListType["select"] = "select";
454
+ ListType["autocomplete"] = "autocomplete";
455
+ })(ListType = Bcm.ListType || (Bcm.ListType = {}));
450
456
  })(Bcm || (Bcm = {}));
451
457
  export default Bcm;
@@ -15,12 +15,13 @@ export const ListItemTemplate = ({ item, treeview, highlight, checkboxes, size,
15
15
  intersection = match.filter(x => keys.includes(x));
16
16
  }
17
17
  text = item.template && intersection.length > 1 ? StringHelper.templateParser(item.template, Object.assign(Object.assign({}, item.itemObject), { text })) : text;
18
- return (h("div", { onFocus: (e) => focusItem(e), class: cs("bcm-list__item", size === 'large' ? 'size-3' : 'size-2'), id: item.id, hidden: item.hidden, tabindex: "-1" },
19
- h("div", { class: cs('bcm-list__item-content', !checkboxes && item.selected == true && ('selected')) },
18
+ const disabled = item.disabled;
19
+ return (h("div", { id: item.id, hidden: item.hidden, tabindex: "-1", "on-focus": (e) => !disabled && (focusItem(e)), class: cs("bcm-list__item", size === 'large' ? 'size-3' : 'size-2') },
20
+ h("div", { class: cs('bcm-list__item-content', !checkboxes && item.selected == true && ('selected'), { 'disabled': disabled }) },
20
21
  treeview && (h("div", { class: "bcm-list__item-content-collapse-icon", onClick: () => { item.open = item.isSearching; openGroup(item.id); } }, isHaveChildren && (h("i", { class: cs('bcm-fas bcm-fa-caret-' + (item.isSearching || item.open ? 'down' : 'right')) })))),
21
- h("div", { class: cs('bcm-list__item-content-text', { treeview }), onClick: () => !checkboxes && selectedItem(item.id) },
22
- checkboxes && (h("div", { class: "bcm-list__item-content-text-checkbox", onClick: () => checkedItem(item.id) },
22
+ h("div", { class: cs('bcm-list__item-content-text', { treeview }), onClick: () => !checkboxes && !disabled && (selectedItem(item.id)) },
23
+ checkboxes && (h("div", { class: "bcm-list__item-content-text-checkbox", onClick: () => !disabled && (checkedItem(item.id)) },
23
24
  h(CheckboxTemplate, { indeterminate: item.indeterminate, checked: item.checked }))),
24
25
  h("span", { class: "bcm-list__item-content-text-inner", innerHTML: text }))),
25
- treeview && isHaveChildren && (h("div", { class: "bcm-list__item-childs" }, (item.isSearching || item.open) && item.items.map((item) => (h(ListItemTemplate, { highlight: highlight, item: item, treeview: treeview, checkboxes: checkboxes, selectedItem: selectedItem, checkedItem: checkedItem, openGroup: (parentId) => openGroup(parentId) })))))));
26
+ treeview && isHaveChildren && (h("div", { class: "bcm-list__item-childs" }, (item.isSearching || item.open) && item.items.map((item) => (h(ListItemTemplate, { highlight: highlight, item: item, treeview: treeview, checkboxes: checkboxes, selectedItem: selectedItem, checkedItem: checkedItem, openGroup: (parentId) => openGroup(parentId), focusItem: (itemId) => focusItem(itemId) })))))));
26
27
  };
@@ -43,12 +43,11 @@ export const getPlacement = async (box, host, placement, changePlacement) => {
43
43
  }
44
44
  };
45
45
  export const setPosition = (placement, target) => {
46
- const { offsetTop, offsetHeight, offsetWidth, offsetLeft } = target;
47
46
  const rect = target.getBoundingClientRect();
48
- const top = offsetTop || (rect.top + window.pageYOffset);
49
- const left = offsetLeft || (rect.left + window.pageXOffset);
50
- const height = offsetHeight || rect.height;
51
- const width = offsetWidth || rect.width;
47
+ const top = (rect.top + window.pageYOffset);
48
+ const left = (rect.left + window.pageXOffset);
49
+ const height = rect.height;
50
+ const width = rect.width;
52
51
  const places = StringHelper.textContains(placement, '-') ? placement.split('-') : placement.split(' ');
53
52
  switch (places[0]) {
54
53
  case 'left':
@@ -447,6 +447,12 @@ var Bcm;
447
447
  TriggerType["click"] = "click";
448
448
  TriggerType["focus"] = "focus";
449
449
  })(TriggerType = Bcm.TriggerType || (Bcm.TriggerType = {}));
450
+ let ListType;
451
+ (function (ListType) {
452
+ ListType["listbox"] = "listbox";
453
+ ListType["select"] = "select";
454
+ ListType["autocomplete"] = "autocomplete";
455
+ })(ListType = Bcm.ListType || (Bcm.ListType = {}));
450
456
  })(Bcm || (Bcm = {}));
451
457
  const Bcm$1 = Bcm;
452
458