bromcom-ui 2.9.0-rc.4 → 2.9.0-rc.5
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.
- package/dist/bromcom-ui/bromcom-ui.css +1 -1
- package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
- package/dist/bromcom-ui/p-0543a86f.js +5 -0
- package/dist/bromcom-ui/{p-d888c814.entry.js → p-0a528362.entry.js} +1 -1
- package/dist/bromcom-ui/{p-3992dd70.entry.js → p-0c549bd0.entry.js} +1 -1
- package/dist/bromcom-ui/{p-08d4cd65.entry.js → p-0d4372c9.entry.js} +1 -1
- package/dist/bromcom-ui/{p-8c9d109c.entry.js → p-15758356.entry.js} +1 -1
- package/dist/bromcom-ui/{p-2df6dc86.entry.js → p-179af180.entry.js} +1 -1
- package/dist/bromcom-ui/p-1a04159f.entry.js +5 -0
- package/dist/bromcom-ui/{p-6478455c.entry.js → p-1a405289.entry.js} +1 -1
- package/dist/bromcom-ui/{p-5648b456.entry.js → p-1b1f4b44.entry.js} +1 -1
- package/dist/bromcom-ui/p-1eabd5dc.js +10 -0
- package/dist/bromcom-ui/p-24cffc16.entry.js +13 -0
- package/dist/bromcom-ui/{p-20aa2ba8.entry.js → p-25f9928a.entry.js} +1 -1
- package/dist/bromcom-ui/p-285722ad.entry.js +5 -0
- package/dist/bromcom-ui/{p-3adc157d.entry.js → p-29a12785.entry.js} +1 -1
- package/dist/bromcom-ui/{p-f48e5337.entry.js → p-2a02b473.entry.js} +1 -1
- package/dist/bromcom-ui/p-2fc584c4.js +5 -0
- package/dist/bromcom-ui/{p-fd7243a7.entry.js → p-365eec45.entry.js} +1 -1
- package/dist/bromcom-ui/{p-6a087ad5.js → p-38972c46.js} +1 -1
- package/dist/bromcom-ui/{p-8c018ae0.js → p-3c7a0345.js} +1 -1
- package/dist/bromcom-ui/p-53448351.js +5 -0
- package/dist/bromcom-ui/{p-09c4a42a.entry.js → p-546f5f82.entry.js} +1 -1
- package/dist/bromcom-ui/{p-70aa6e00.entry.js → p-5855b125.entry.js} +1 -1
- package/dist/bromcom-ui/{p-7e44e6b5.js → p-5ae0a59b.js} +1 -1
- package/dist/bromcom-ui/{p-4cd8a7c8.entry.js → p-5c3e9ac9.entry.js} +1 -1
- package/dist/bromcom-ui/{p-4e6292fd.entry.js → p-61172e12.entry.js} +1 -1
- package/dist/bromcom-ui/{p-224d392c.entry.js → p-65318f25.entry.js} +1 -1
- package/dist/bromcom-ui/p-663766cf.entry.js +5 -0
- package/dist/bromcom-ui/{p-30788121.entry.js → p-6c3e9e10.entry.js} +1 -1
- package/dist/bromcom-ui/{p-6e9b23ed.entry.js → p-721e0cb5.entry.js} +1 -1
- package/dist/bromcom-ui/{p-fc07ca8a.entry.js → p-7bff7371.entry.js} +1 -1
- package/dist/bromcom-ui/{p-50066349.entry.js → p-8260eda6.entry.js} +1 -1
- package/dist/bromcom-ui/{p-1647559e.entry.js → p-8bcfe3b3.entry.js} +1 -1
- package/dist/bromcom-ui/{p-21783e29.entry.js → p-8e2e77ca.entry.js} +1 -1
- package/dist/bromcom-ui/p-90e5c655.js +5 -0
- package/dist/bromcom-ui/p-947c78e3.js +5 -0
- package/dist/bromcom-ui/{p-0d6623c0.entry.js → p-96614f57.entry.js} +1 -1
- package/dist/bromcom-ui/{p-6cb648f0.entry.js → p-9d98d32d.entry.js} +1 -1
- package/dist/bromcom-ui/{p-ea23f0aa.entry.js → p-9e05f845.entry.js} +1 -1
- package/dist/bromcom-ui/{p-c8695c8b.entry.js → p-a02c333f.entry.js} +1 -1
- package/dist/bromcom-ui/{p-4ea7331b.entry.js → p-a1335bd5.entry.js} +1 -1
- package/dist/bromcom-ui/{p-b321e86d.entry.js → p-a3b54a22.entry.js} +1 -1
- package/dist/bromcom-ui/{p-18696519.entry.js → p-a4731c71.entry.js} +1 -1
- package/dist/bromcom-ui/p-a5953ecd.entry.js +5 -0
- package/dist/bromcom-ui/{p-50c3df61.js → p-a8aaa382.js} +1 -1
- package/dist/bromcom-ui/{p-30a3320f.entry.js → p-b1c83bb8.entry.js} +1 -1
- package/dist/bromcom-ui/{p-8d14232d.entry.js → p-ba89e3c7.entry.js} +1 -1
- package/dist/bromcom-ui/{p-119fc842.entry.js → p-c1de1367.entry.js} +1 -1
- package/dist/bromcom-ui/{p-15347028.entry.js → p-ca32c1b9.entry.js} +1 -1
- package/dist/bromcom-ui/p-cf0ab7f0.entry.js +5 -0
- package/dist/bromcom-ui/p-d37379d4.entry.js +5 -0
- package/dist/bromcom-ui/{p-afb4a0e7.entry.js → p-d58107e2.entry.js} +1 -1
- package/dist/bromcom-ui/p-dd422dd1.js +5 -0
- package/dist/bromcom-ui/{p-cf307549.entry.js → p-e92d9879.entry.js} +1 -1
- package/dist/bromcom-ui/{p-159b67a7.entry.js → p-e9c963b3.entry.js} +1 -1
- package/dist/bromcom-ui/{p-dc9466d6.entry.js → p-ebee9f45.entry.js} +1 -1
- package/dist/bromcom-ui/{p-ba47106f.entry.js → p-ef8bbaf3.entry.js} +1 -1
- package/dist/bromcom-ui/p-f0350c0c.entry.js +5 -0
- package/dist/bromcom-ui/p-f302cbdf.entry.js +5 -0
- package/dist/bromcom-ui/{p-68abefd2.entry.js → p-f331e009.entry.js} +1 -1
- package/dist/bromcom-ui/{p-28649759.entry.js → p-f3b546c6.entry.js} +1 -1
- package/dist/bromcom-ui/{p-8ae4bdb2.entry.js → p-f532862e.entry.js} +1 -1
- package/dist/bromcom-ui/{p-e12e563a.entry.js → p-f889d1b6.entry.js} +1 -1
- package/dist/bromcom-ui/p-f8bf531f.entry.js +5 -0
- package/dist/bromcom-ui/{p-9fff4f7d.entry.js → p-f8cbdade.entry.js} +1 -1
- package/dist/bromcom-ui/{p-cb344455.entry.js → p-fb22bc06.entry.js} +1 -1
- package/dist/bromcom-ui/p-fceaf172.entry.js +5 -0
- package/dist/cjs/bcm-accordion.cjs.entry.js +1 -1
- package/dist/cjs/bcm-alert.cjs.entry.js +1 -1
- package/dist/cjs/bcm-attendance.cjs.entry.js +1 -1
- package/dist/cjs/bcm-avatar.cjs.entry.js +126 -0
- package/dist/cjs/bcm-badge_15.cjs.entry.js +1738 -0
- package/dist/cjs/bcm-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/bcm-button-group.cjs.entry.js +1 -1
- package/dist/cjs/bcm-card.cjs.entry.js +2 -2
- package/dist/cjs/bcm-checkbox-group.cjs.entry.js +17 -17
- package/dist/cjs/bcm-checkbox-lite_9.cjs.entry.js +1 -1
- package/dist/cjs/{bcm-checkbox_2.cjs.entry.js → bcm-checkbox.cjs.entry.js} +2 -13
- package/dist/cjs/bcm-chip-group.cjs.entry.js +128 -0
- package/dist/cjs/bcm-chip.cjs.entry.js +90 -0
- package/dist/cjs/bcm-collapse.cjs.entry.js +1 -1
- package/dist/cjs/bcm-color-input.cjs.entry.js +4 -4
- package/dist/cjs/{bcm-avatar_15.cjs.entry.js → bcm-colorful.cjs.entry.js} +3 -6332
- package/dist/cjs/bcm-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/bcm-datetime-picker.cjs.entry.js +1 -1
- package/dist/cjs/bcm-default.cjs.entry.js +1 -1
- package/dist/cjs/bcm-drawer.cjs.entry.js +4 -4
- package/dist/cjs/bcm-expansion-panel.cjs.entry.js +2 -2
- package/dist/cjs/bcm-form-2.cjs.entry.js +1 -1
- package/dist/cjs/bcm-form.cjs.entry.js +488 -0
- package/dist/cjs/bcm-input-custom.cjs.entry.js +1 -1
- package/dist/cjs/bcm-input.cjs.entry.js +370 -0
- package/dist/cjs/bcm-label.cjs.entry.js +44 -0
- package/dist/cjs/bcm-list_3.cjs.entry.js +4025 -0
- package/dist/cjs/bcm-modal-2-footer.cjs.entry.js +4 -4
- package/dist/cjs/bcm-modal-2-header.cjs.entry.js +4 -4
- package/dist/cjs/bcm-modal-2.cjs.entry.js +4 -4
- package/dist/cjs/bcm-modal.cjs.entry.js +1 -1
- package/dist/cjs/bcm-popconfirm-box.cjs.entry.js +2 -2
- package/dist/cjs/bcm-popconfirm.cjs.entry.js +1 -1
- package/dist/cjs/bcm-progress.cjs.entry.js +2 -2
- package/dist/cjs/bcm-radio-group.cjs.entry.js +4 -4
- package/dist/cjs/bcm-radio.cjs.entry.js +4 -4
- package/dist/cjs/bcm-range.cjs.entry.js +1 -1
- package/dist/cjs/bcm-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/bcm-step.cjs.entry.js +2 -2
- package/dist/cjs/bcm-stepper.cjs.entry.js +5 -5
- package/dist/cjs/bcm-switch.cjs.entry.js +1 -1
- package/dist/cjs/bcm-tag.cjs.entry.js +2 -2
- package/dist/cjs/bcm-textarea.cjs.entry.js +2 -2
- package/dist/cjs/bcm-time-picker.cjs.entry.js +1 -1
- package/dist/cjs/bcm-toast.cjs.entry.js +1 -1
- package/dist/cjs/bromcom-ui.cjs.js +1 -1
- package/dist/cjs/{color-helper-d6d2028b.js → color-helper-7ab15732.js} +27 -1
- package/dist/cjs/{generate-d246df02.js → generate-d0470117.js} +55 -5
- package/dist/cjs/index-906fb4e5.js +540 -0
- package/dist/cjs/index-b08b037a.js +52 -0
- package/dist/cjs/{input-template-22c31e2b.js → input-template-e1d297ed.js} +1 -1
- package/dist/cjs/{json-parse-decarator-bf157b28.js → json-parse-decarator-026354f1.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{number-helper-26df0c91.js → number-helper-b3d57233.js} +1 -1
- package/dist/cjs/old-bcm-popover-box.cjs.entry.js +2 -2
- package/dist/cjs/old-bcm-popover.cjs.entry.js +1 -1
- package/dist/cjs/{stepper-states-1a1a63cb.js → stepper-states-09cd4bed.js} +1 -1
- package/dist/cjs/{validators-095e7611.js → validators-39ca1c93.js} +1 -1
- package/dist/collection/components/atoms/avatar/avatar.js +95 -80
- package/dist/collection/components/atoms/avatar/avatar.style.js +39 -0
- package/dist/collection/components/atoms/badge/badge.js +29 -90
- package/dist/collection/components/atoms/badge/badge.style.js +39 -0
- package/dist/collection/components/molecules/items/items.js +1 -1
- package/dist/collection/components/molecules/menu/menu.js +1 -0
- package/dist/collection/components/molecules/popover/popover.js +1 -1
- package/dist/collection/components/molecules/tab-group/tab-group.js +5 -1
- package/dist/collection/components/molecules/tab-group/tab-item-header.js +11 -26
- package/dist/collection/components/molecules/tooltip/tooltip.js +1 -1
- package/dist/collection/components/other/typography/typography.js +1 -1
- package/dist/collection/helper/color-helper.js +27 -1
- package/dist/collection/helper/generate.js +54 -4
- package/dist/collection/helper/popover-helper.js +13 -9
- package/dist/collection/helper/tooltip-helper.js +12 -4
- package/dist/components/avatar.js +91 -52
- package/dist/components/badge.js +109 -46
- package/dist/components/bcm-items.js +1 -1
- package/dist/components/bcm-popover.js +14 -10
- package/dist/components/bcm-tab-group.js +5 -1
- package/dist/components/bcm-tab-item-header.js +11 -26
- package/dist/components/color-helper.js +27 -1
- package/dist/components/generate.js +55 -5
- package/dist/components/menu.js +1 -0
- package/dist/components/tooltip-helper.js +12 -4
- package/dist/components/tooltip.js +1 -1
- package/dist/components/typography.js +1 -1
- package/dist/esm/bcm-accordion.entry.js +1 -1
- package/dist/esm/bcm-alert.entry.js +1 -1
- package/dist/esm/bcm-attendance.entry.js +1 -1
- package/dist/esm/bcm-avatar.entry.js +122 -0
- package/dist/esm/bcm-badge_15.entry.js +1720 -0
- package/dist/esm/bcm-breadcrumb.entry.js +1 -1
- package/dist/esm/bcm-button-group.entry.js +1 -1
- package/dist/esm/bcm-card.entry.js +3 -3
- package/dist/esm/bcm-checkbox-group.entry.js +8 -8
- package/dist/esm/bcm-checkbox-lite_9.entry.js +2 -2
- package/dist/esm/{bcm-checkbox_2.entry.js → bcm-checkbox.entry.js} +4 -14
- package/dist/esm/bcm-chip-group.entry.js +124 -0
- package/dist/esm/bcm-chip.entry.js +86 -0
- package/dist/esm/bcm-collapse-group.entry.js +1 -1
- package/dist/esm/bcm-collapse.entry.js +1 -1
- package/dist/esm/bcm-color-input.entry.js +6 -6
- package/dist/esm/{bcm-avatar_15.entry.js → bcm-colorful.entry.js} +4 -6319
- package/dist/esm/bcm-colorpicker.entry.js +2 -2
- package/dist/esm/bcm-date-picker.entry.js +2 -2
- package/dist/esm/bcm-datetime-picker.entry.js +3 -3
- package/dist/esm/bcm-default.entry.js +1 -1
- package/dist/esm/bcm-drawer.entry.js +6 -6
- package/dist/esm/bcm-expansion-panel.entry.js +3 -3
- package/dist/esm/bcm-form-2.entry.js +1 -1
- package/dist/esm/bcm-form.entry.js +484 -0
- package/dist/esm/bcm-input-custom.entry.js +1 -1
- package/dist/esm/bcm-input.entry.js +366 -0
- package/dist/esm/bcm-label.entry.js +40 -0
- package/dist/esm/bcm-list_3.entry.js +4019 -0
- package/dist/esm/bcm-modal-2-footer.entry.js +6 -6
- package/dist/esm/bcm-modal-2-header.entry.js +6 -6
- package/dist/esm/bcm-modal-2.entry.js +6 -6
- package/dist/esm/bcm-modal.entry.js +1 -1
- package/dist/esm/bcm-old-input.entry.js +1 -1
- package/dist/esm/bcm-old-tag_2.entry.js +1 -1
- package/dist/esm/bcm-popconfirm-box.entry.js +3 -3
- package/dist/esm/bcm-popconfirm.entry.js +1 -1
- package/dist/esm/bcm-progress.entry.js +3 -3
- package/dist/esm/bcm-radio-group.entry.js +6 -6
- package/dist/esm/bcm-radio.entry.js +6 -6
- package/dist/esm/bcm-range.entry.js +2 -2
- package/dist/esm/bcm-select.entry.js +1 -1
- package/dist/esm/bcm-skeleton.entry.js +1 -1
- package/dist/esm/bcm-step.entry.js +2 -2
- package/dist/esm/bcm-stepper.entry.js +7 -7
- package/dist/esm/bcm-switch.entry.js +2 -2
- package/dist/esm/bcm-table.entry.js +1 -1
- package/dist/esm/bcm-tabs-content.entry.js +1 -1
- package/dist/esm/bcm-tabs.entry.js +1 -1
- package/dist/esm/bcm-tag.entry.js +3 -3
- package/dist/esm/bcm-textarea.entry.js +3 -3
- package/dist/esm/bcm-time-picker.entry.js +2 -2
- package/dist/esm/bcm-toast.entry.js +2 -2
- package/dist/esm/bromcom-ui.js +1 -1
- package/dist/esm/{color-helper-e8ce23d7.js → color-helper-116755ed.js} +28 -2
- package/dist/esm/{element-dragger-89bb52fd.js → element-dragger-7ea06c76.js} +1 -1
- package/dist/esm/{generate-e7435a13.js → generate-abec36e5.js} +55 -5
- package/dist/esm/index-6310a048.js +537 -0
- package/dist/esm/index-962dec74.js +50 -0
- package/dist/esm/{input-template-e1e850b5.js → input-template-a02d00ff.js} +1 -1
- package/dist/esm/{json-parse-decarator-2bcd4584.js → json-parse-decarator-268fe3de.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{number-helper-cb2563aa.js → number-helper-cf26accd.js} +1 -1
- package/dist/esm/old-bcm-popover-box.entry.js +4 -4
- package/dist/esm/old-bcm-popover.entry.js +1 -1
- package/dist/esm/{stepper-states-29463262.js → stepper-states-cf443480.js} +1 -1
- package/dist/esm/{utils-57652744.js → utils-b3338faf.js} +1 -1
- package/dist/esm/{validators-0a4134a4.js → validators-63753298.js} +1 -1
- package/dist/types/components/atoms/avatar/avatar.d.ts +8 -10
- package/dist/types/components/atoms/avatar/avatar.style.d.ts +5 -0
- package/dist/types/components/atoms/badge/badge.d.ts +3 -7
- package/dist/types/components/atoms/badge/badge.style.d.ts +4 -0
- package/dist/types/components.d.ts +11 -13
- package/dist/types/helper/color-helper.d.ts +22 -2
- package/dist/types/helper/generate.d.ts +21 -1
- package/dist/types/helper/popover-helper.d.ts +0 -5
- package/dist/types/helper/tooltip-helper.d.ts +0 -1
- package/package.json +7 -4
- package/dist/bromcom-ui/p-00d7bbed.js +0 -5
- package/dist/bromcom-ui/p-0ab46a99.js +0 -5
- package/dist/bromcom-ui/p-0b0660a0.js +0 -5
- package/dist/bromcom-ui/p-1a3d281e.entry.js +0 -5
- package/dist/bromcom-ui/p-2b4677a8.entry.js +0 -5
- package/dist/bromcom-ui/p-3ae615ef.entry.js +0 -5
- package/dist/bromcom-ui/p-61c51804.entry.js +0 -5
- package/dist/bromcom-ui/p-632bbc11.entry.js +0 -5
- package/dist/bromcom-ui/p-6c34860e.entry.js +0 -5
- package/dist/bromcom-ui/p-843905c8.js +0 -5
- package/dist/bromcom-ui/p-8ce0f5f8.entry.js +0 -5
- package/dist/bromcom-ui/p-92831a1d.js +0 -5
- package/dist/bromcom-ui/p-a9a9bf8f.js +0 -5
- package/dist/bromcom-ui/p-b17ba740.entry.js +0 -19
- package/dist/bromcom-ui/p-b8cfa9ab.entry.js +0 -5
- package/dist/bromcom-ui/p-c5de4c76.entry.js +0 -5
- package/dist/bromcom-ui/p-d832cf50.entry.js +0 -5
- package/dist/bromcom-ui/p-fb96c1cd.entry.js +0 -5
- package/dist/cjs/bcm-dropdown.cjs.entry.js +0 -118
- package/dist/cjs/bcm-item.cjs.entry.js +0 -71
- package/dist/cjs/bcm-items.cjs.entry.js +0 -48
- package/dist/cjs/bcm-menu.cjs.entry.js +0 -149
- package/dist/cjs/bcm-popover.cjs.entry.js +0 -225
- package/dist/cjs/bcm-tab-group.cjs.entry.js +0 -205
- package/dist/cjs/bcm-tab-item-header.cjs.entry.js +0 -73
- package/dist/cjs/bcm-tab-item.cjs.entry.js +0 -90
- package/dist/cjs/bcm-text.cjs.entry.js +0 -49
- package/dist/cjs/tooltip-helper-c822010b.js +0 -150
- package/dist/collection/components/atoms/avatar/avatar.css +0 -198
- package/dist/collection/components/atoms/badge/badge.css +0 -231
- package/dist/esm/bcm-dropdown.entry.js +0 -114
- package/dist/esm/bcm-item.entry.js +0 -67
- package/dist/esm/bcm-items.entry.js +0 -44
- package/dist/esm/bcm-menu.entry.js +0 -145
- package/dist/esm/bcm-popover.entry.js +0 -221
- package/dist/esm/bcm-tab-group.entry.js +0 -201
- package/dist/esm/bcm-tab-item-header.entry.js +0 -69
- package/dist/esm/bcm-tab-item.entry.js +0 -86
- package/dist/esm/bcm-text.entry.js +0 -45
- package/dist/esm/tooltip-helper-f35d93d2.js +0 -148
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import { r as registerInstance, c as createEvent, f as forceUpdate, h, H as Host, g as getElement } from './index-348b16ad.js';
|
|
6
|
-
import './color-helper-e8ce23d7.js';
|
|
7
|
-
import './datetime-helper-df25808a.js';
|
|
8
|
-
import { G as Generate } from './generate-e7435a13.js';
|
|
9
|
-
import './number-helper-cb2563aa.js';
|
|
10
|
-
import './string-helper-6bd24967.js';
|
|
11
|
-
import './validators-0a4134a4.js';
|
|
12
|
-
import './element-dragger-89bb52fd.js';
|
|
13
|
-
import { d as delay } from './utils-57652744.js';
|
|
14
|
-
import { B as Bcm } from './bcm-9f50af9c.js';
|
|
15
|
-
import './colors-1d7854ea.js';
|
|
16
|
-
import './colors-44c95e7e.js';
|
|
17
|
-
import './_commonjsHelpers-3016b722.js';
|
|
18
|
-
|
|
19
|
-
const BcmTabGroup = class {
|
|
20
|
-
constructor(hostRef) {
|
|
21
|
-
registerInstance(this, hostRef);
|
|
22
|
-
this.tabChange = createEvent(this, "bcm-tab-change", 7);
|
|
23
|
-
this._id = Generate.UID();
|
|
24
|
-
this.active = "1";
|
|
25
|
-
this.color = "blue";
|
|
26
|
-
this.size = Bcm.Size.medium;
|
|
27
|
-
}
|
|
28
|
-
get tabItems() {
|
|
29
|
-
return this.el.querySelectorAll("bcm-tab-item");
|
|
30
|
-
}
|
|
31
|
-
get tabItemHeaders() {
|
|
32
|
-
return this.el.querySelectorAll("bcm-tab-item-header");
|
|
33
|
-
}
|
|
34
|
-
setTabAttributes() {
|
|
35
|
-
this.tabItems.forEach((tab, index) => {
|
|
36
|
-
const itemActive = tab.hasAttribute("active") ? true : false;
|
|
37
|
-
const itemDisabled = tab.hasAttribute("disabled") ? true : false;
|
|
38
|
-
const itemIndex = index + 1;
|
|
39
|
-
tab.setAttribute("index", `${itemIndex}`);
|
|
40
|
-
tab.setAttribute("size", this.size);
|
|
41
|
-
tab.setAttribute("color", this.color);
|
|
42
|
-
tab.removeAttribute("active");
|
|
43
|
-
tab.removeAttribute("disabled");
|
|
44
|
-
if (itemActive) {
|
|
45
|
-
tab.setAttribute("active", "");
|
|
46
|
-
this.active = itemIndex.toString();
|
|
47
|
-
}
|
|
48
|
-
if (itemDisabled) {
|
|
49
|
-
tab.setAttribute("disabled", "");
|
|
50
|
-
}
|
|
51
|
-
// const headerElement = tab.querySelector("bcm-tab-item-header");
|
|
52
|
-
// if (headerElement) {
|
|
53
|
-
// this.setHeaderTabAttributes(headerElement, tab);
|
|
54
|
-
// }
|
|
55
|
-
});
|
|
56
|
-
const isHasActiveTab = Array.from(this.tabItems).some((tab) => tab.hasAttribute("active"));
|
|
57
|
-
if (!isHasActiveTab) {
|
|
58
|
-
this.tabItems[0].setAttribute("active", "");
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
componentWillLoad() {
|
|
62
|
-
this.setTabAttributes();
|
|
63
|
-
}
|
|
64
|
-
handleTabClick(index) {
|
|
65
|
-
var _a, _b;
|
|
66
|
-
if (index) {
|
|
67
|
-
this.active = index.toString();
|
|
68
|
-
}
|
|
69
|
-
if ((_a = this.tabItems) === null || _a === void 0 ? void 0 : _a.length) {
|
|
70
|
-
this.tabItems.forEach(tab => {
|
|
71
|
-
tab.removeAttribute("active");
|
|
72
|
-
tab.setAttribute("size", this.size);
|
|
73
|
-
tab.setAttribute("color", this.color);
|
|
74
|
-
if (tab.getAttribute("index") == this.active) {
|
|
75
|
-
tab.setAttribute("active", "");
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
if ((_b = this.tabItemHeaders) === null || _b === void 0 ? void 0 : _b.length) {
|
|
80
|
-
this.tabItemHeaders.forEach(tabHeader => {
|
|
81
|
-
tabHeader.removeAttribute("active");
|
|
82
|
-
tabHeader.setAttribute("size", this.size);
|
|
83
|
-
tabHeader.setAttribute("color", this.color);
|
|
84
|
-
if (tabHeader.getAttribute("index") == this.active) {
|
|
85
|
-
tabHeader.setAttribute("active", "");
|
|
86
|
-
// tabHeader.scrollIntoView({
|
|
87
|
-
// behavior: "smooth",
|
|
88
|
-
// block: "start",
|
|
89
|
-
// inline: "center",
|
|
90
|
-
// });
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
this.tabChange.emit(this.active);
|
|
95
|
-
}
|
|
96
|
-
componentDidRender() {
|
|
97
|
-
this.inkBarControl();
|
|
98
|
-
this.handleTabClick();
|
|
99
|
-
}
|
|
100
|
-
componentDidLoad() {
|
|
101
|
-
this.inkBarControl();
|
|
102
|
-
this.observeTabItem();
|
|
103
|
-
}
|
|
104
|
-
async setActive(index) {
|
|
105
|
-
if (index > 0 && index <= this.tabItems.length && index != +this.active) {
|
|
106
|
-
this.handleTabClick(index);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
async refresh() {
|
|
110
|
-
await delay(100);
|
|
111
|
-
forceUpdate(this);
|
|
112
|
-
}
|
|
113
|
-
inkBarControl() {
|
|
114
|
-
var _a;
|
|
115
|
-
const inkBar = this.el.querySelector("#ink-bar");
|
|
116
|
-
if (!inkBar || !((_a = this.tabItemHeaders) === null || _a === void 0 ? void 0 : _a.length))
|
|
117
|
-
return;
|
|
118
|
-
for (let i = 0; i < this.tabItemHeaders.length; i++) {
|
|
119
|
-
const tab = this.tabItemHeaders[i];
|
|
120
|
-
const tabIndex = tab.getAttribute("index");
|
|
121
|
-
if (tabIndex === this.active) {
|
|
122
|
-
inkBar.style.width = `${tab.offsetWidth}px`;
|
|
123
|
-
// inkBar.style.top = `${tab.offsetHeight}px`;
|
|
124
|
-
inkBar.style.transform = `translateX(${tab.offsetLeft}px)`;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
activeChanged(newVal, _oldVal) {
|
|
129
|
-
var _a;
|
|
130
|
-
if (!((_a = this.tabItems) === null || _a === void 0 ? void 0 : _a.length))
|
|
131
|
-
return;
|
|
132
|
-
const isHasActiveTab = Array.from(this.tabItems).some(tab => tab.getAttribute("index") == newVal);
|
|
133
|
-
if (!isHasActiveTab) {
|
|
134
|
-
this.active = "1";
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
observeTabItem() {
|
|
138
|
-
const callback = (mutationsList, _observer) => {
|
|
139
|
-
for (const mutation of mutationsList) {
|
|
140
|
-
if (mutation.type === "childList") {
|
|
141
|
-
// for (const node of mutation.addedNodes) {
|
|
142
|
-
// if (node.nodeName === "BCM-TAB-ITEM") {
|
|
143
|
-
// // Do something when a bcm-tab-item is added
|
|
144
|
-
// }
|
|
145
|
-
// }
|
|
146
|
-
for (const node of mutation.removedNodes) {
|
|
147
|
-
if (node.nodeName === "BCM-TAB-ITEM") {
|
|
148
|
-
// Do something when a bcm-tab-item is removed
|
|
149
|
-
// console.log("A bcm-tab-item was removed.", node);
|
|
150
|
-
if (node === null || node === void 0 ? void 0 : node.active) {
|
|
151
|
-
this.active = "1";
|
|
152
|
-
}
|
|
153
|
-
this.tabProcess();
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
this.observer = new MutationObserver(callback);
|
|
160
|
-
this.observer.observe(this.el, { childList: true });
|
|
161
|
-
}
|
|
162
|
-
tabProcess() {
|
|
163
|
-
this.updateTabHeaders();
|
|
164
|
-
this.regenerateIndex();
|
|
165
|
-
this.refresh();
|
|
166
|
-
this.inkBarControl();
|
|
167
|
-
}
|
|
168
|
-
updateTabHeaders() {
|
|
169
|
-
const tabIds = Array.from(this.tabItems).map(tab => tab.getAttribute("id"));
|
|
170
|
-
const tabHeaderElements = Array.from(this.el.querySelector("#tab-header").querySelectorAll("bcm-tab-item-header"));
|
|
171
|
-
if (tabIds.length !== tabHeaderElements.length) {
|
|
172
|
-
tabHeaderElements.forEach(tabHeader => {
|
|
173
|
-
const tabId = tabHeader.getAttribute("tab-id");
|
|
174
|
-
if (!tabIds.includes(tabId)) {
|
|
175
|
-
tabHeader.remove();
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
regenerateIndex() {
|
|
181
|
-
this.tabItems.forEach((tab, index) => {
|
|
182
|
-
const itemIndex = index + 1;
|
|
183
|
-
tab.setAttribute("index", `${itemIndex}`);
|
|
184
|
-
const headerElement = this.el.querySelector(`bcm-tab-item-header[tab-id="${tab.getAttribute("id")}"]`);
|
|
185
|
-
if (headerElement) {
|
|
186
|
-
headerElement.setAttribute("index", `${itemIndex}`);
|
|
187
|
-
headerElement.style.order = `${itemIndex}`;
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
render() {
|
|
192
|
-
const { color } = this;
|
|
193
|
-
return (h(Host, { role: "tablist", "aria-label": "Tab Group", class: "tw-flex tw-w-full tw-flex-col tw-items-center tw-font-sans" }, h("div", { class: `tw-relative tw-flex tw-w-full tw-flex-row tw-items-end tw-justify-between`, id: "tab-header" }, h("div", { id: "ink-bar", class: `tw-bg-${color}-500 tw-absolute tw-bottom-0 tw-left-0 tw-mt-[-2px] tw-h-[2px] tw-rounded-sm tw-transition-transform` })), h("slot", null)));
|
|
194
|
-
}
|
|
195
|
-
get el() { return getElement(this); }
|
|
196
|
-
static get watchers() { return {
|
|
197
|
-
"active": ["activeChanged"]
|
|
198
|
-
}; }
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
export { BcmTabGroup as bcm_tab_group };
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import { r as registerInstance, h, H as Host, g as getElement } from './index-348b16ad.js';
|
|
6
|
-
import './color-helper-e8ce23d7.js';
|
|
7
|
-
import './datetime-helper-df25808a.js';
|
|
8
|
-
import { G as Generate } from './generate-e7435a13.js';
|
|
9
|
-
import './number-helper-cb2563aa.js';
|
|
10
|
-
import './string-helper-6bd24967.js';
|
|
11
|
-
import './validators-0a4134a4.js';
|
|
12
|
-
import './element-dragger-89bb52fd.js';
|
|
13
|
-
import { B as Bcm } from './bcm-9f50af9c.js';
|
|
14
|
-
import { c as classnames } from './index-ed9652af.js';
|
|
15
|
-
import './colors-1d7854ea.js';
|
|
16
|
-
import './utils-57652744.js';
|
|
17
|
-
import './colors-44c95e7e.js';
|
|
18
|
-
import './_commonjsHelpers-3016b722.js';
|
|
19
|
-
|
|
20
|
-
const BcmTabItemHeader = class {
|
|
21
|
-
constructor(hostRef) {
|
|
22
|
-
registerInstance(this, hostRef);
|
|
23
|
-
this._id = Generate.UID();
|
|
24
|
-
this.active = false;
|
|
25
|
-
this.disabled = false;
|
|
26
|
-
this.index = undefined;
|
|
27
|
-
this.color = "blue";
|
|
28
|
-
this.size = Bcm.Size.medium;
|
|
29
|
-
}
|
|
30
|
-
handleClick() {
|
|
31
|
-
var _a;
|
|
32
|
-
if (!this.disabled) {
|
|
33
|
-
(_a = Generate.findParentElement(this.el, "bcm-tab-group")) === null || _a === void 0 ? void 0 : _a.setActive(this.index);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
render() {
|
|
37
|
-
const { color, size, active, disabled } = this;
|
|
38
|
-
let fontSize, padding, gap;
|
|
39
|
-
switch (size) {
|
|
40
|
-
case Bcm.Size.small:
|
|
41
|
-
fontSize = "2";
|
|
42
|
-
padding = "1";
|
|
43
|
-
gap = "2";
|
|
44
|
-
break;
|
|
45
|
-
case Bcm.Size.medium:
|
|
46
|
-
fontSize = "3";
|
|
47
|
-
padding = "2";
|
|
48
|
-
gap = "3";
|
|
49
|
-
break;
|
|
50
|
-
case Bcm.Size.large:
|
|
51
|
-
fontSize = "4";
|
|
52
|
-
padding = "3";
|
|
53
|
-
gap = "4";
|
|
54
|
-
break;
|
|
55
|
-
default:
|
|
56
|
-
fontSize = "3";
|
|
57
|
-
padding = "2";
|
|
58
|
-
gap = "3";
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
const disabledClass = "tw-cursor-not-allowed tw-text-gray-400 tw-opacity-50";
|
|
62
|
-
return (h(Host, { onClick: () => this.handleClick(), class: classnames(`tw-text-${fontSize} tw-py-${padding} tw-flex tw-flex-1 tw-items-center tw-justify-center tw-border-b-[2px] tw-border-b-slate-300 tw-transition-font tw-gap-${gap} tw-focus:outline-none tw-mb-${padding}]`, disabled ? disabledClass : "tw-cursor-pointer", active
|
|
63
|
-
? `tw-text-${color}-500 enabled:hover:tw-text-${color}-600 enabled:active:tw-text-${color}-700 enabled:focus-visible:tw-text-${color}-800`
|
|
64
|
-
: "tw-text-slate-400 enabled:hover:tw-text-slate-500 enabled:focus-visible:tw-text-slate-700 enabled:active:tw-text-slate-600") }));
|
|
65
|
-
}
|
|
66
|
-
get el() { return getElement(this); }
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export { BcmTabItemHeader as bcm_tab_item_header };
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import { r as registerInstance, h, H as Host, g as getElement } from './index-348b16ad.js';
|
|
6
|
-
import './color-helper-e8ce23d7.js';
|
|
7
|
-
import './datetime-helper-df25808a.js';
|
|
8
|
-
import { G as Generate } from './generate-e7435a13.js';
|
|
9
|
-
import './number-helper-cb2563aa.js';
|
|
10
|
-
import './string-helper-6bd24967.js';
|
|
11
|
-
import './validators-0a4134a4.js';
|
|
12
|
-
import './element-dragger-89bb52fd.js';
|
|
13
|
-
import './bcm-9f50af9c.js';
|
|
14
|
-
import './colors-1d7854ea.js';
|
|
15
|
-
import './utils-57652744.js';
|
|
16
|
-
import './colors-44c95e7e.js';
|
|
17
|
-
import './_commonjsHelpers-3016b722.js';
|
|
18
|
-
|
|
19
|
-
const BcmTabItem = class {
|
|
20
|
-
constructor(hostRef) {
|
|
21
|
-
registerInstance(this, hostRef);
|
|
22
|
-
this._id = Generate.UID();
|
|
23
|
-
this.active = false;
|
|
24
|
-
this.disabled = false;
|
|
25
|
-
this.index = undefined;
|
|
26
|
-
}
|
|
27
|
-
componentWillLoad() {
|
|
28
|
-
this.indexControl();
|
|
29
|
-
}
|
|
30
|
-
componentDidRender() {
|
|
31
|
-
this.headerMove();
|
|
32
|
-
}
|
|
33
|
-
getHeaderItem() {
|
|
34
|
-
const headerItem = this.el.querySelector("bcm-tab-item-header");
|
|
35
|
-
if (headerItem) {
|
|
36
|
-
headerItem.setAttribute("index", `${this.index}`);
|
|
37
|
-
headerItem.setAttribute("active", `${this.active}`);
|
|
38
|
-
headerItem.setAttribute("disabled", `${this.disabled}`);
|
|
39
|
-
headerItem.setAttribute("tab-id", `${this._id}`);
|
|
40
|
-
headerItem.style.order = `${this.index}`;
|
|
41
|
-
}
|
|
42
|
-
return headerItem;
|
|
43
|
-
}
|
|
44
|
-
getParentTabGroup() {
|
|
45
|
-
return Generate.findParentElement(this.el, "bcm-tab-group");
|
|
46
|
-
}
|
|
47
|
-
getFindHeaderItem() {
|
|
48
|
-
var _a, _b;
|
|
49
|
-
return (_b = (_a = this.getParentTabGroup()) === null || _a === void 0 ? void 0 : _a.querySelector("#tab-header")) === null || _b === void 0 ? void 0 : _b.querySelector(`bcm-tab-item-header[tab-id="${this._id}"]`);
|
|
50
|
-
}
|
|
51
|
-
headerMove() {
|
|
52
|
-
var _a, _b, _c, _d;
|
|
53
|
-
if (this.getHeaderItem()) {
|
|
54
|
-
(_a = this.getFindHeaderItem()) === null || _a === void 0 ? void 0 : _a.remove();
|
|
55
|
-
(_c = (_b = this.getParentTabGroup()) === null || _b === void 0 ? void 0 : _b.querySelector("#tab-header")) === null || _c === void 0 ? void 0 : _c.appendChild(this.getHeaderItem());
|
|
56
|
-
(_d = this.el.parentElement) === null || _d === void 0 ? void 0 : _d.refresh();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
indexControl() {
|
|
60
|
-
var _a;
|
|
61
|
-
if (!this.index) {
|
|
62
|
-
(_a = Generate.findParentElement(this.el, "bcm-tab-group")) === null || _a === void 0 ? void 0 : _a.querySelectorAll("bcm-tab-item").forEach((item, index) => {
|
|
63
|
-
if (item === this.el) {
|
|
64
|
-
item.setAttribute("index", `${index + 1}`);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
componentDidLoad() {
|
|
70
|
-
const observer = new MutationObserver(() => {
|
|
71
|
-
this.headerMove();
|
|
72
|
-
});
|
|
73
|
-
observer.observe(this.el, { childList: true, subtree: true });
|
|
74
|
-
}
|
|
75
|
-
render() {
|
|
76
|
-
return (h(Host, { id: this._id, role: "tabpanel", "aria-labelledby": `tab-${this._id}`, "aria-hidden": `${!this.active}`, class: {
|
|
77
|
-
"tw-block": this.active,
|
|
78
|
-
"tw-hidden": !this.active,
|
|
79
|
-
"tw-opacity-50": this.disabled,
|
|
80
|
-
"tw-w-full": true,
|
|
81
|
-
} }, h("slot", null)));
|
|
82
|
-
}
|
|
83
|
-
get el() { return getElement(this); }
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
export { BcmTabItem as bcm_tab_item };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import { r as registerInstance, h, H as Host, g as getElement } from './index-348b16ad.js';
|
|
6
|
-
import { c as classnames } from './index-ed9652af.js';
|
|
7
|
-
import { C as ColorHelper } from './color-helper-e8ce23d7.js';
|
|
8
|
-
import { S as SlotTemplate } from './slot-template-672e941d.js';
|
|
9
|
-
import './_commonjsHelpers-3016b722.js';
|
|
10
|
-
import './colors-1d7854ea.js';
|
|
11
|
-
import './utils-57652744.js';
|
|
12
|
-
import './colors-44c95e7e.js';
|
|
13
|
-
import './string-helper-6bd24967.js';
|
|
14
|
-
import './bcm-9f50af9c.js';
|
|
15
|
-
|
|
16
|
-
const textCss = "@import url(\"https://fonts.googleapis.com/css?family=Roboto:400,500\");@import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); .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}*{box-sizing:border-box}.bcm-text{display:inline;font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400}.bcm-text.hidden{display:none}.bcm-text__paragraph{margin:0;padding:0}.bcm-text__font-size-1{font-size:10px;line-height:calc(10px + 8px)}.bcm-text__font-size-2{font-size:12px;line-height:calc(12px + 8px)}.bcm-text__font-size-3{font-size:14px;line-height:calc(14px + 8px)}.bcm-text__font-size-4{font-size:16px;line-height:calc(16px + 8px)}.bcm-text__font-size-5{font-size:18px;line-height:calc(18px + 8px)}.bcm-text__font-size-6{font-size:20px;line-height:calc(20px + 8px)}.bcm-text__font-size-7{font-size:24px;line-height:calc(24px + 8px)}.bcm-text__font-size-8{font-size:32px;line-height:calc(32px + 8px)}.bcm-text__font-size-9{font-size:40px;line-height:calc(40px + 8px)}";
|
|
17
|
-
|
|
18
|
-
const BcmText = class {
|
|
19
|
-
constructor(hostRef) {
|
|
20
|
-
registerInstance(this, hostRef);
|
|
21
|
-
this.hidden = false;
|
|
22
|
-
this.scale = undefined;
|
|
23
|
-
this.weight = "400";
|
|
24
|
-
this.color = "slate";
|
|
25
|
-
this.text = undefined;
|
|
26
|
-
this.fontSize = 4;
|
|
27
|
-
}
|
|
28
|
-
render() {
|
|
29
|
-
const { hidden, scale, weight, color, fontSize } = this;
|
|
30
|
-
const hostClasses = classnames('bcm-text', {
|
|
31
|
-
hidden
|
|
32
|
-
});
|
|
33
|
-
const classes = classnames('bcm-text__paragraph', `bcm-text__font-size-${fontSize}`, scale);
|
|
34
|
-
const fontWeight = +weight || 400;
|
|
35
|
-
const style = {
|
|
36
|
-
color: ColorHelper.dsColor(color),
|
|
37
|
-
fontWeight
|
|
38
|
-
};
|
|
39
|
-
return (h(Host, { class: hostClasses }, h("span", { hidden: true }, h("slot", null)), h("p", { class: classes, style: Object.assign({}, style) }, h(SlotTemplate, { value: this.text }))));
|
|
40
|
-
}
|
|
41
|
-
get el() { return getElement(this); }
|
|
42
|
-
};
|
|
43
|
-
BcmText.style = textCss;
|
|
44
|
-
|
|
45
|
-
export { BcmText as bcm_text };
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import './element-dragger-89bb52fd.js';
|
|
6
|
-
import { S as StringHelper } from './string-helper-6bd24967.js';
|
|
7
|
-
import { d as delay } from './utils-57652744.js';
|
|
8
|
-
import { F as FloatingUI } from './floating-ui-e7341329.js';
|
|
9
|
-
import { C as ColorHelper } from './color-helper-e8ce23d7.js';
|
|
10
|
-
import './datetime-helper-df25808a.js';
|
|
11
|
-
import { G as Generate } from './generate-e7435a13.js';
|
|
12
|
-
import './number-helper-cb2563aa.js';
|
|
13
|
-
import './validators-0a4134a4.js';
|
|
14
|
-
import { B as Bcm } from './bcm-9f50af9c.js';
|
|
15
|
-
|
|
16
|
-
class Tooltip {
|
|
17
|
-
constructor({ message, targetId, placement = "top", color = "slate-700", trigger = "none", size = "medium", openDelay = 0, closeDelay = 0, autoHide = false, emitShow = () => { }, emitHide = () => { }, }) {
|
|
18
|
-
this.destroy = () => {
|
|
19
|
-
this.el = document.getElementById(this.id);
|
|
20
|
-
if (this.el) {
|
|
21
|
-
this.el.remove();
|
|
22
|
-
this.emitHide();
|
|
23
|
-
}
|
|
24
|
-
this.removeListener();
|
|
25
|
-
};
|
|
26
|
-
this.bgColor = () => ColorHelper.twColor(this.color, 700);
|
|
27
|
-
this.target = () => document.getElementById(this.targetId);
|
|
28
|
-
this.sizeClass = () => {
|
|
29
|
-
switch (this.size) {
|
|
30
|
-
case Bcm.Size.small:
|
|
31
|
-
return "tw-text-1";
|
|
32
|
-
case Bcm.Size.medium:
|
|
33
|
-
return "tw-text-2";
|
|
34
|
-
case Bcm.Size.large:
|
|
35
|
-
return "tw-text-3";
|
|
36
|
-
default:
|
|
37
|
-
return "tw-text-2";
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
this.init = () => {
|
|
41
|
-
this.el = Generate.createElement("div", {
|
|
42
|
-
"id": `${this.targetId}-tooltip-box`,
|
|
43
|
-
"class": `
|
|
44
|
-
tw-whitespace-normal tw-break-words tw-block tw-font-sans tw-pointer-events-none tw-max-w-xs tw-py-1 tw-px-2 tw-rounded tw-bg-${this.bgColor()} tw-text-white ${this.sizeClass()} tw-absolute tw-top-0 tw-left-0 tw-z-tooltip tw-opacity-0 tw-transition-opacity tw-duration-300`,
|
|
45
|
-
"role": "tooltip",
|
|
46
|
-
"aria-hidden": "true",
|
|
47
|
-
"style": `color: ${ColorHelper.twColorReverse(this.bgColor())}`,
|
|
48
|
-
"innerHTML": StringHelper.trim(this.message),
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
this.update = () => {
|
|
52
|
-
this.el = document.getElementById(this.id);
|
|
53
|
-
if (this.el) {
|
|
54
|
-
this.hide();
|
|
55
|
-
this.show();
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
this.listener = () => {
|
|
59
|
-
window.addEventListener("resize", this.calculatePosition.bind(this));
|
|
60
|
-
window.addEventListener("scroll", this.calculatePosition.bind(this), true);
|
|
61
|
-
window.addEventListener("wheel", this.calculatePosition.bind(this));
|
|
62
|
-
if (this.trigger && this.target()) {
|
|
63
|
-
switch (this.trigger) {
|
|
64
|
-
case "click":
|
|
65
|
-
this.target().addEventListener("click", this.toggle.bind(this));
|
|
66
|
-
this.autoHide && this.target().addEventListener("mouseleave", this.hide.bind(this));
|
|
67
|
-
break;
|
|
68
|
-
case "hover":
|
|
69
|
-
this.target().addEventListener("mouseenter", this.show.bind(this));
|
|
70
|
-
this.target().addEventListener("mouseleave", this.hide.bind(this));
|
|
71
|
-
break;
|
|
72
|
-
case "focus":
|
|
73
|
-
this.target().addEventListener("focus", this.show.bind(this), true);
|
|
74
|
-
this.target().addEventListener("blur", this.hide.bind(this), true);
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
this.calculatePosition();
|
|
79
|
-
};
|
|
80
|
-
this.removeListener = () => {
|
|
81
|
-
window.removeEventListener("resize", this.calculatePosition.bind(this));
|
|
82
|
-
window.removeEventListener("scroll", this.calculatePosition.bind(this), true);
|
|
83
|
-
window.removeEventListener("wheel", this.calculatePosition.bind(this));
|
|
84
|
-
if (this.target()) {
|
|
85
|
-
this.target().removeEventListener("click", this.toggle.bind(this));
|
|
86
|
-
this.target().removeEventListener("mouseenter", this.show.bind(this));
|
|
87
|
-
this.target().removeEventListener("mouseleave", this.hide.bind(this));
|
|
88
|
-
this.target().removeEventListener("focus", this.show.bind(this), true);
|
|
89
|
-
this.target().removeEventListener("blur", this.hide.bind(this), true);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
this.calculatePosition = () => {
|
|
93
|
-
this.el = document.getElementById(this.id);
|
|
94
|
-
if (this.el) {
|
|
95
|
-
FloatingUI({
|
|
96
|
-
ref: this.target(),
|
|
97
|
-
floating: this.el,
|
|
98
|
-
placement: this.placement,
|
|
99
|
-
offset: 8,
|
|
100
|
-
arrow: true,
|
|
101
|
-
arrowColor: `tw-bg-${this.bgColor()}`,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
this.show = async () => {
|
|
106
|
-
if (this.message) {
|
|
107
|
-
this.init();
|
|
108
|
-
await delay(this.openDelay);
|
|
109
|
-
this.calculatePosition();
|
|
110
|
-
this.emitShow();
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
this.hide();
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
this.hide = async () => {
|
|
117
|
-
this.el = document.getElementById(this.id);
|
|
118
|
-
if (this.el) {
|
|
119
|
-
await delay(this.closeDelay);
|
|
120
|
-
this.el && this.el.remove();
|
|
121
|
-
this.emitHide();
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
this.toggle = () => {
|
|
125
|
-
this.el = document.getElementById(this.id);
|
|
126
|
-
if (this.el) {
|
|
127
|
-
this.hide();
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
this.show();
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
this.message = message;
|
|
134
|
-
this.targetId = targetId;
|
|
135
|
-
this.placement = placement;
|
|
136
|
-
this.color = color;
|
|
137
|
-
this.id = targetId + "-tooltip-box";
|
|
138
|
-
this.trigger = trigger;
|
|
139
|
-
this.size = size;
|
|
140
|
-
this.openDelay = openDelay;
|
|
141
|
-
this.closeDelay = closeDelay;
|
|
142
|
-
this.autoHide = autoHide;
|
|
143
|
-
this.emitShow = emitShow;
|
|
144
|
-
this.emitHide = emitHide;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export { Tooltip as T };
|