bromcom-ui 2.7.38-rc.13 → 2.7.38-rc.14
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-14d4b66f.entry.js → p-047c35b1.entry.js} +1 -1
- package/dist/bromcom-ui/p-0fb362d7.entry.js +5 -0
- package/dist/bromcom-ui/p-16b50160.js +1 -1
- package/dist/bromcom-ui/p-1ff8838d.entry.js +5 -0
- package/dist/bromcom-ui/p-27429bb5.entry.js +5 -0
- package/dist/bromcom-ui/{p-134c6c32.entry.js → p-29866cdb.entry.js} +1 -1
- package/dist/bromcom-ui/p-2a1f44d8.entry.js +5 -0
- package/dist/bromcom-ui/p-2a5b5ecc.entry.js +5 -0
- package/dist/bromcom-ui/p-335dd2b5.entry.js +5 -0
- package/dist/bromcom-ui/p-3cbeb4dc.entry.js +5 -0
- package/dist/bromcom-ui/{p-a39daf28.entry.js → p-3ed25f2b.entry.js} +2 -2
- package/dist/bromcom-ui/p-4487e8c2.js +1 -1
- package/dist/bromcom-ui/{p-18b8a460.js → p-44f3ca76.js} +1 -1
- package/dist/bromcom-ui/p-468af02f.entry.js +5 -0
- package/dist/bromcom-ui/p-480024c3.js +5 -0
- package/dist/bromcom-ui/p-4b2852a8.entry.js +5 -0
- package/dist/bromcom-ui/p-4c91002a.js +5 -0
- package/dist/bromcom-ui/p-4debe197.entry.js +5 -0
- package/dist/bromcom-ui/p-4f5acd80.entry.js +5 -0
- package/dist/bromcom-ui/p-503a376b.entry.js +5 -0
- package/dist/bromcom-ui/p-56898932.js +1 -1
- package/dist/bromcom-ui/p-58c108a5.entry.js +5 -0
- package/dist/bromcom-ui/p-5b664dec.js +5 -0
- package/dist/bromcom-ui/p-5bf68f57.entry.js +5 -0
- package/dist/bromcom-ui/p-5d70f446.entry.js +5 -0
- package/dist/bromcom-ui/{p-a183a09f.entry.js → p-5de651cc.entry.js} +1 -1
- package/dist/bromcom-ui/p-5ebfa466.entry.js +5 -0
- package/dist/bromcom-ui/p-60947a22.entry.js +5 -0
- package/dist/bromcom-ui/p-67e6f5fe.entry.js +5 -0
- package/dist/bromcom-ui/p-687f8d9c.entry.js +5 -0
- package/dist/bromcom-ui/p-6d7be2d1.entry.js +5 -0
- package/dist/bromcom-ui/p-6e9e2e3b.entry.js +5 -0
- package/dist/bromcom-ui/{p-9a9151f4.js → p-74bac994.js} +1 -1
- package/dist/bromcom-ui/p-882f8cb1.entry.js +5 -0
- package/dist/bromcom-ui/p-8b9d2bb3.entry.js +5 -0
- package/dist/bromcom-ui/p-9799c72f.entry.js +5 -0
- package/dist/bromcom-ui/p-98af14a9.entry.js +5 -0
- package/dist/bromcom-ui/p-a1c843ae.entry.js +5 -0
- package/dist/bromcom-ui/p-a373d8b6.entry.js +5 -0
- package/dist/bromcom-ui/{p-39175c90.js → p-a3b9fc0c.js} +1 -1
- package/dist/bromcom-ui/p-a429e85b.js +1 -1
- package/dist/bromcom-ui/p-ab6d3082.entry.js +5 -0
- package/dist/bromcom-ui/p-ac1f9851.entry.js +5 -0
- package/dist/bromcom-ui/p-aff12492.entry.js +5 -0
- package/dist/bromcom-ui/p-b963626d.js +5 -0
- package/dist/bromcom-ui/p-ba73ad6b.entry.js +5 -0
- package/dist/bromcom-ui/{p-731eb879.js → p-bd031390.js} +1 -1
- package/dist/bromcom-ui/p-bdb0dfda.entry.js +5 -0
- package/dist/bromcom-ui/p-bef9e2fe.entry.js +5 -0
- package/dist/bromcom-ui/p-c0f70afa.entry.js +5 -0
- package/dist/bromcom-ui/p-ce1f522e.entry.js +5 -0
- package/dist/bromcom-ui/p-cebefc96.entry.js +5 -0
- package/dist/bromcom-ui/p-d01e8312.entry.js +5 -0
- package/dist/bromcom-ui/{p-9a5e145b.js → p-d651e723.js} +1 -1
- package/dist/bromcom-ui/p-d73e3d1d.entry.js +5 -0
- package/dist/bromcom-ui/p-d8fd3bbb.entry.js +5 -0
- package/dist/bromcom-ui/p-d9baf5e7.entry.js +5 -0
- package/dist/bromcom-ui/p-dda54e92.entry.js +5 -0
- package/dist/bromcom-ui/p-e34ad7a7.entry.js +5 -0
- package/dist/bromcom-ui/p-e38087d9.entry.js +5 -0
- package/dist/bromcom-ui/p-e3bfaffd.entry.js +5 -0
- package/dist/bromcom-ui/p-e74b4689.entry.js +5 -0
- package/dist/bromcom-ui/p-ea21c68d.entry.js +5 -0
- package/dist/bromcom-ui/p-ef787294.entry.js +5 -0
- package/dist/cjs/{bcm-ab921827.js → bcm-634604e3.js} +4 -4
- package/dist/cjs/bcm-accordion.cjs.entry.js +3 -1
- package/dist/cjs/bcm-alert.cjs.entry.js +4 -3
- package/dist/cjs/bcm-attendance.cjs.entry.js +3 -1
- package/dist/cjs/bcm-avatar_2.cjs.entry.js +12 -11
- package/dist/cjs/bcm-breadcrumb.cjs.entry.js +2 -1
- package/dist/cjs/bcm-button-group.cjs.entry.js +7 -6
- package/dist/cjs/bcm-button.cjs.entry.js +13 -12
- package/dist/cjs/bcm-card.cjs.entry.js +6 -5
- package/dist/cjs/bcm-checkbox-group.cjs.entry.js +25 -24
- package/dist/cjs/bcm-checkbox-lite_9.cjs.entry.js +6 -5
- package/dist/cjs/bcm-checkbox_2.cjs.entry.js +11 -10
- package/dist/cjs/bcm-chip.cjs.entry.js +3 -2
- package/dist/cjs/bcm-collapse.cjs.entry.js +2 -1
- package/dist/cjs/bcm-color-input.cjs.entry.js +7 -6
- package/dist/cjs/bcm-colorful_2.cjs.entry.js +10 -9
- package/dist/cjs/bcm-date-picker.cjs.entry.js +4 -3
- package/dist/cjs/bcm-datetime-picker.cjs.entry.js +9 -8
- package/dist/cjs/bcm-default.cjs.entry.js +3 -1
- package/dist/cjs/bcm-drawer.cjs.entry.js +9 -8
- package/dist/cjs/bcm-dropdown.cjs.entry.js +7 -6
- package/dist/cjs/bcm-expansion-panel.cjs.entry.js +5 -4
- package/dist/cjs/bcm-form-2.cjs.entry.js +5 -4
- package/dist/cjs/bcm-form.cjs.entry.js +2 -2
- package/dist/cjs/{bcm-list.cjs.entry.js → bcm-icon_3.cjs.entry.js} +383 -113
- package/dist/cjs/bcm-input-custom.cjs.entry.js +73 -0
- package/dist/cjs/bcm-input.cjs.entry.js +12 -11
- package/dist/cjs/bcm-item.cjs.entry.js +5 -4
- package/dist/cjs/bcm-items.cjs.entry.js +4 -3
- package/dist/cjs/bcm-label_2.cjs.entry.js +39 -15
- package/dist/cjs/bcm-link.cjs.entry.js +3 -3
- package/dist/cjs/bcm-menu.cjs.entry.js +9 -8
- package/dist/cjs/bcm-modal.cjs.entry.js +7 -6
- package/dist/cjs/bcm-popconfirm-box.cjs.entry.js +6 -5
- package/dist/cjs/bcm-popconfirm.cjs.entry.js +5 -4
- package/dist/cjs/bcm-popover.cjs.entry.js +88 -38
- package/dist/cjs/bcm-progress.cjs.entry.js +5 -4
- package/dist/cjs/bcm-radio-group.cjs.entry.js +77 -211
- package/dist/cjs/bcm-radio.cjs.entry.js +35 -76
- package/dist/cjs/bcm-range.cjs.entry.js +6 -5
- package/dist/cjs/bcm-select.cjs.entry.js +2 -2
- package/dist/cjs/bcm-skeleton.cjs.entry.js +3 -1
- package/dist/cjs/bcm-step.cjs.entry.js +3 -2
- package/dist/cjs/bcm-stepper.cjs.entry.js +10 -9
- package/dist/cjs/bcm-switch.cjs.entry.js +9 -8
- package/dist/cjs/bcm-tab-group.cjs.entry.js +160 -0
- package/dist/cjs/bcm-tab-item-header.cjs.entry.js +87 -0
- package/dist/cjs/bcm-tab-item.cjs.entry.js +104 -0
- package/dist/cjs/bcm-tag.cjs.entry.js +15 -14
- package/dist/cjs/bcm-text.cjs.entry.js +63 -0
- package/dist/cjs/bcm-textarea.cjs.entry.js +7 -6
- package/dist/cjs/bcm-time-picker.cjs.entry.js +4 -3
- package/dist/cjs/bromcom-ui.cjs.js +1 -1
- package/dist/cjs/color-helper-0e3e8ce5.js +86 -0
- package/dist/cjs/{color-helper-c9882bd8.js → colors-25c96ed6.js} +4 -81
- package/dist/cjs/{floating-ui-0ca84e74.js → floating-ui-c23acc6c.js} +2 -2
- package/dist/cjs/{generate-1c6288f3.js → generate-9739666b.js} +38 -1
- package/dist/cjs/{input-template-a6387296.js → input-template-8307182a.js} +6 -6
- package/dist/cjs/{json-parse-decarator-fb0443a2.js → json-parse-decarator-7a7415e0.js} +1 -1
- package/dist/cjs/{label-template-e83fc65c.js → label-template-098a30a4.js} +3 -3
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{number-helper-9cb681ed.js → number-helper-063f8c7b.js} +1 -1
- package/dist/cjs/old-bcm-popover-box.cjs.entry.js +7 -6
- package/dist/cjs/old-bcm-popover.cjs.entry.js +5 -4
- package/dist/cjs/{popover-placement-5db8811b.js → popover-placement-69d37a5f.js} +1 -1
- package/dist/cjs/{slot-template-175c51fb.js → slot-template-7a07f865.js} +1 -1
- package/dist/cjs/{stepper-states-5ba5cabd.js → stepper-states-7dd1eab4.js} +1 -1
- package/dist/cjs/{string-helper-087a8134.js → string-helper-71b10c53.js} +2 -2
- package/dist/cjs/{tooltip-helper-348e4222.js → tooltip-helper-01c69059.js} +43 -13
- package/dist/cjs/{validators-d8faa4be.js → validators-861b4246.js} +1 -1
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/external-source/bcm-toast-helper.js +20 -0
- package/dist/collection/components/external-source/test.js/bcm-toast-helper.js +20 -0
- package/dist/collection/components/molecules/popover/popover.js +106 -1
- package/dist/collection/components/molecules/radio/{group.js → radio-group.js} +163 -246
- package/dist/collection/components/molecules/radio/radio.js +42 -132
- package/dist/collection/components/molecules/tooltip/tooltip.js +108 -1
- package/dist/collection/components/organism/states/bcm-list2.states.js +1 -1
- package/dist/collection/components/other/input-custom/input-custom.js +249 -0
- package/dist/collection/helper/generate.js +36 -0
- package/dist/collection/helper/popover-helper.js +57 -29
- package/dist/collection/helper/tooltip-helper.js +33 -4
- package/dist/components/bcm-input-custom.d.ts +11 -0
- package/dist/components/bcm-input-custom.js +114 -0
- package/dist/components/bcm-list.js +1 -1
- package/dist/components/bcm-popover.js +82 -29
- package/dist/components/bcm-radio-group.js +88 -230
- package/dist/components/color-helper.js +1 -405
- package/dist/{esm/color-helper-b5e9aa56.js → components/colors2.js} +2 -79
- package/dist/components/generate.js +37 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.js +1 -0
- package/dist/components/radio.js +38 -82
- package/dist/components/tooltip-helper.js +33 -3
- package/dist/components/tooltip.js +28 -2
- package/dist/esm/bcm-9f50af9c.js +1 -1
- package/dist/esm/bcm-accordion.entry.js +3 -1
- package/dist/esm/bcm-alert.entry.js +2 -1
- package/dist/esm/bcm-attendance.entry.js +3 -1
- package/dist/esm/bcm-avatar_2.entry.js +6 -5
- package/dist/esm/bcm-breadcrumb.entry.js +2 -1
- package/dist/esm/bcm-button-group.entry.js +3 -2
- package/dist/esm/bcm-button.entry.js +4 -3
- package/dist/esm/bcm-card.entry.js +3 -2
- package/dist/esm/bcm-checkbox-group.entry.js +9 -8
- package/dist/esm/bcm-checkbox-lite_9.entry.js +3 -2
- package/dist/esm/bcm-checkbox_2.entry.js +4 -3
- package/dist/esm/bcm-chip.entry.js +3 -2
- package/dist/esm/bcm-collapse.entry.js +2 -1
- package/dist/esm/bcm-color-input.entry.js +5 -4
- package/dist/esm/bcm-colorful_2.entry.js +6 -5
- package/dist/esm/bcm-date-picker.entry.js +3 -2
- package/dist/esm/bcm-datetime-picker.entry.js +3 -2
- package/dist/esm/bcm-default.entry.js +3 -1
- package/dist/esm/bcm-drawer.entry.js +6 -5
- package/dist/esm/bcm-dropdown.entry.js +4 -3
- package/dist/esm/bcm-expansion-panel.entry.js +3 -2
- package/dist/esm/bcm-form-2.entry.js +3 -2
- package/dist/esm/{bcm-list.entry.js → bcm-icon_3.entry.js} +314 -46
- package/dist/esm/bcm-input-custom.entry.js +69 -0
- package/dist/esm/bcm-input.entry.js +6 -5
- package/dist/esm/bcm-item.entry.js +4 -3
- package/dist/esm/bcm-items.entry.js +3 -2
- package/dist/esm/bcm-label_2.entry.js +32 -8
- package/dist/esm/bcm-link.entry.js +1 -1
- package/dist/esm/bcm-menu.entry.js +6 -5
- package/dist/esm/bcm-modal.entry.js +3 -2
- package/dist/esm/bcm-popconfirm-box.entry.js +3 -2
- package/dist/esm/bcm-popconfirm.entry.js +3 -2
- package/dist/esm/bcm-popover.entry.js +85 -35
- package/dist/esm/bcm-progress.entry.js +4 -3
- package/dist/esm/bcm-radio-group.entry.js +72 -206
- package/dist/esm/bcm-radio.entry.js +35 -76
- package/dist/esm/bcm-range.entry.js +3 -2
- package/dist/esm/bcm-skeleton.entry.js +3 -1
- package/dist/esm/bcm-step.entry.js +3 -2
- package/dist/esm/bcm-stepper.entry.js +7 -6
- package/dist/esm/bcm-switch.entry.js +3 -2
- package/dist/esm/bcm-tab-group.entry.js +156 -0
- package/dist/esm/bcm-tab-item-header.entry.js +83 -0
- package/dist/esm/bcm-tab-item.entry.js +100 -0
- package/dist/esm/bcm-tag.entry.js +4 -3
- package/dist/esm/bcm-text.entry.js +59 -0
- package/dist/esm/bcm-textarea.entry.js +4 -3
- package/dist/esm/bcm-time-picker.entry.js +3 -2
- package/dist/esm/bromcom-ui.js +1 -1
- package/dist/esm/color-helper-0277e11a.js +84 -0
- package/dist/esm/colors-fabca483.js +411 -0
- package/dist/esm/floating-ui-4a49ea46.js +1 -1
- package/dist/esm/{generate-6d61a8d4.js → generate-0dc9b243.js} +38 -1
- package/dist/esm/{input-template-5377ad24.js → input-template-de00be57.js} +2 -2
- package/dist/esm/{json-parse-decarator-24e9b234.js → json-parse-decarator-5b16dfec.js} +1 -1
- package/dist/esm/label-template-eed2dd69.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{number-helper-056c158e.js → number-helper-282f0beb.js} +1 -1
- package/dist/esm/old-bcm-popover-box.entry.js +3 -2
- package/dist/esm/old-bcm-popover.entry.js +3 -2
- package/dist/esm/{stepper-states-450629eb.js → stepper-states-fdf47afe.js} +1 -1
- package/dist/esm/string-helper-0fb7ff20.js +1 -1
- package/dist/esm/{tooltip-helper-05959548.js → tooltip-helper-4e2db0c0.js} +38 -8
- package/dist/esm/{validators-649cde78.js → validators-089d15b9.js} +1 -1
- package/dist/types/components/external-source/bcm-toast-helper.d.ts +12 -0
- package/dist/types/components/external-source/test.js/bcm-toast-helper.d.ts +12 -0
- package/dist/types/components/molecules/popover/popover.d.ts +10 -1
- package/dist/types/components/molecules/radio/{group.d.ts → radio-group.d.ts} +19 -27
- package/dist/types/components/molecules/radio/radio.d.ts +5 -11
- package/dist/types/components/molecules/tooltip/tooltip.d.ts +10 -1
- package/dist/types/components/other/input-custom/input-custom.d.ts +20 -0
- package/dist/types/components.d.ts +76 -33
- package/dist/types/helper/generate.d.ts +2 -0
- package/dist/types/helper/popover-helper.d.ts +13 -3
- package/dist/types/helper/tooltip-helper.d.ts +13 -3
- package/package.json +1 -1
- package/dist/bromcom-ui/p-0b10d948.entry.js +0 -5
- package/dist/bromcom-ui/p-125b65f6.entry.js +0 -5
- package/dist/bromcom-ui/p-1945b686.entry.js +0 -5
- package/dist/bromcom-ui/p-29dc2191.js +0 -5
- package/dist/bromcom-ui/p-2a391ece.entry.js +0 -5
- package/dist/bromcom-ui/p-2ec946a1.entry.js +0 -5
- package/dist/bromcom-ui/p-33f4e17f.entry.js +0 -5
- package/dist/bromcom-ui/p-36224b1d.entry.js +0 -5
- package/dist/bromcom-ui/p-366e47ab.entry.js +0 -5
- package/dist/bromcom-ui/p-41c296b0.entry.js +0 -5
- package/dist/bromcom-ui/p-41dc9559.entry.js +0 -5
- package/dist/bromcom-ui/p-45367974.entry.js +0 -5
- package/dist/bromcom-ui/p-50db7a26.entry.js +0 -5
- package/dist/bromcom-ui/p-579e8412.entry.js +0 -5
- package/dist/bromcom-ui/p-5a899703.entry.js +0 -5
- package/dist/bromcom-ui/p-5e55f59b.entry.js +0 -5
- package/dist/bromcom-ui/p-5efd7090.entry.js +0 -5
- package/dist/bromcom-ui/p-688f1e5e.entry.js +0 -5
- package/dist/bromcom-ui/p-6a768487.entry.js +0 -5
- package/dist/bromcom-ui/p-6b321329.entry.js +0 -5
- package/dist/bromcom-ui/p-6c9920df.entry.js +0 -5
- package/dist/bromcom-ui/p-73d6483e.entry.js +0 -5
- package/dist/bromcom-ui/p-7aad993b.entry.js +0 -5
- package/dist/bromcom-ui/p-7e0b3687.entry.js +0 -5
- package/dist/bromcom-ui/p-82318c6a.entry.js +0 -5
- package/dist/bromcom-ui/p-880b9e3d.entry.js +0 -5
- package/dist/bromcom-ui/p-92382af0.entry.js +0 -5
- package/dist/bromcom-ui/p-96f555da.entry.js +0 -5
- package/dist/bromcom-ui/p-9c910424.entry.js +0 -5
- package/dist/bromcom-ui/p-a25d69f2.js +0 -5
- package/dist/bromcom-ui/p-a87c6718.entry.js +0 -5
- package/dist/bromcom-ui/p-a8d1397d.js +0 -5
- package/dist/bromcom-ui/p-a990ad01.entry.js +0 -5
- package/dist/bromcom-ui/p-aaac6552.entry.js +0 -5
- package/dist/bromcom-ui/p-abff65bf.entry.js +0 -5
- package/dist/bromcom-ui/p-bf7d791d.entry.js +0 -5
- package/dist/bromcom-ui/p-c2dfd997.entry.js +0 -5
- package/dist/bromcom-ui/p-c7d37238.entry.js +0 -5
- package/dist/bromcom-ui/p-cbb00d90.entry.js +0 -5
- package/dist/bromcom-ui/p-cf82f22a.entry.js +0 -5
- package/dist/bromcom-ui/p-d75546da.entry.js +0 -5
- package/dist/bromcom-ui/p-d8f62742.entry.js +0 -5
- package/dist/bromcom-ui/p-ddc53b28.entry.js +0 -5
- package/dist/bromcom-ui/p-e5dc36af.entry.js +0 -5
- package/dist/bromcom-ui/p-e85f520f.entry.js +0 -5
- package/dist/bromcom-ui/p-e94dcd9a.entry.js +0 -5
- package/dist/bromcom-ui/p-ec23e7f7.entry.js +0 -5
- package/dist/cjs/bcm-icon_5.cjs.entry.js +0 -378
- package/dist/cjs/bcm-search.cjs.entry.js +0 -258
- package/dist/collection/components/molecules/radio/group.css +0 -802
- package/dist/collection/components/molecules/radio/radio.css +0 -1287
- package/dist/collection/components/molecules/radio/types.js +0 -30
- package/dist/collection/components/molecules/states/radio-group.states.js +0 -107
- package/dist/esm/bcm-icon_5.entry.js +0 -370
- package/dist/esm/bcm-search.entry.js +0 -254
- package/dist/types/components/molecules/radio/types.d.ts +0 -29
- package/dist/types/components/molecules/states/radio-group.states.d.ts +0 -48
|
@@ -7,6 +7,7 @@ import { StatusProps } from "../components/molecules/alert/types";
|
|
|
7
7
|
import { version } from "../../package.json";
|
|
8
8
|
import { Build } from "@stencil/core";
|
|
9
9
|
import snq from "snq";
|
|
10
|
+
import colors from 'tailwindcss/colors';
|
|
10
11
|
const allowedDomains = ["localhost", "beta-regression.bromcomcloud.com", "beta-scrum.bromcomcloud.com", "beta-kanban.bromcomcloud.com"];
|
|
11
12
|
const isAllowedDomain = () => {
|
|
12
13
|
const hostname = window.location.hostname;
|
|
@@ -15,7 +16,42 @@ const isAllowedDomain = () => {
|
|
|
15
16
|
if (isAllowedDomain()) {
|
|
16
17
|
console.log(`%cbromcom ui%c version: ${version}-${Build.isDev ? "d" : "p"} `, `color: white; background:#1890FF; font-weight: 300; font-size:10px; padding:2px 6px; border-radius: 5px`, `font-size:10px;`);
|
|
17
18
|
}
|
|
19
|
+
(function checkTheme() {
|
|
20
|
+
const body = document.querySelector("body");
|
|
21
|
+
let theme = localStorage.getItem("bcm-theme");
|
|
22
|
+
if (!body.classList.contains("bcm-theme-*") && theme) {
|
|
23
|
+
body.classList.add(`bcm-theme-${theme}`);
|
|
24
|
+
}
|
|
25
|
+
})();
|
|
18
26
|
export class Generate {
|
|
27
|
+
static observeElementRemoval(element, callback) {
|
|
28
|
+
const observer = new MutationObserver((mutationsList, observer) => {
|
|
29
|
+
for (const mutation of mutationsList) {
|
|
30
|
+
if (mutation.type === "childList") {
|
|
31
|
+
const removedNodes = Array.from(mutation.removedNodes);
|
|
32
|
+
for (const removedNode of removedNodes) {
|
|
33
|
+
if (removedNode === element) {
|
|
34
|
+
callback();
|
|
35
|
+
observer.disconnect();
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
observer.observe(document.documentElement, { childList: true, subtree: true });
|
|
43
|
+
}
|
|
44
|
+
static getTwColor(color, variable = "--bcm-color-default") {
|
|
45
|
+
if (!color || !colors[color]) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
const colorObj = colors[color];
|
|
49
|
+
const result = {};
|
|
50
|
+
for (const [key, value] of Object.entries(colorObj)) {
|
|
51
|
+
result[`${variable}-${key}`] = value;
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
19
55
|
}
|
|
20
56
|
Generate.UID = (prefix = "bcm") => `${prefix}${Math.random().toString(36).substr(2, 9)}`;
|
|
21
57
|
Generate.getIconAttrWithStatusType = (status, loading = false) => {
|
|
@@ -2,31 +2,38 @@
|
|
|
2
2
|
* Built with Stencil
|
|
3
3
|
* Copyright (c) Bromcom.
|
|
4
4
|
*/
|
|
5
|
-
import { FloatingUI } from
|
|
6
|
-
import { ColorHelper, Generate, StringHelper } from
|
|
5
|
+
import { delay, FloatingUI } from "@bcm/utils";
|
|
6
|
+
import { ColorHelper, Generate, StringHelper } from "@bcm/helpers";
|
|
7
7
|
export class Popover {
|
|
8
|
-
constructor({ content, message, targetId, placement =
|
|
8
|
+
constructor({ content, message, targetId, placement = "top", color = "slate-700", trigger = "none", openDelay = 0, closeDelay = 0, emitShow = () => { }, emitHide = () => { } }) {
|
|
9
|
+
this.destroy = () => {
|
|
10
|
+
this.el = document.getElementById(this.id);
|
|
11
|
+
if (this.el) {
|
|
12
|
+
this.el.remove();
|
|
13
|
+
this.emitHide();
|
|
14
|
+
}
|
|
15
|
+
this.removeListener();
|
|
16
|
+
};
|
|
9
17
|
this.bgColor = () => ColorHelper.twColor(this.color, 700);
|
|
10
18
|
this.exepcitonColors = {
|
|
11
|
-
white:
|
|
12
|
-
black:
|
|
19
|
+
white: "slate-300",
|
|
20
|
+
black: "slate-700",
|
|
13
21
|
};
|
|
14
22
|
this.target = () => document.getElementById(this.targetId);
|
|
15
23
|
this.init = () => {
|
|
16
|
-
console.log(this.content, this.message);
|
|
17
24
|
const inner = `<div class="tw-z-[1] tw-rounded tw-py-2 tw-bg-${this.bgColor()}">
|
|
18
|
-
${this.message ? `<div class="tw-font-medium tw-w-full tw-pb-1 tw-px-4">${StringHelper.trim(this.message)}</div>` :
|
|
19
|
-
${this.content ? `<div class="tw-font-normal tw-px-4">${StringHelper.trim(this.content)}</div>` :
|
|
25
|
+
${this.message ? `<div class="tw-font-medium tw-w-full tw-pb-1 tw-px-4">${StringHelper.trim(this.message)}</div>` : ""}
|
|
26
|
+
${this.content ? `<div class="tw-font-normal tw-px-4">${StringHelper.trim(this.content)}</div>` : ""}
|
|
20
27
|
</div>`;
|
|
21
|
-
this.el = Generate.createElement(
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
this.el = Generate.createElement("div", {
|
|
29
|
+
"id": `${this.targetId}-popover-box`,
|
|
30
|
+
"class": `
|
|
24
31
|
tw-whitespace-normal tw-break-words tw-block tw-font-sans tw-pointer-events-none tw-max-w-[256px] tw-rounded tw-bg-${this.bgColor()} tw-text-white tw-text-3 tw-absolute tw-top-0 tw-left-0 tw-z-tooltip tw-opacity-0 tw-transition-opacity tw-duration-300
|
|
25
32
|
tw-shadow`,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
"role": "popover",
|
|
34
|
+
"aria-hidden": "true",
|
|
35
|
+
"style": `color: ${ColorHelper.twColorReverse(this.bgColor())}`,
|
|
36
|
+
"innerHTML": inner,
|
|
30
37
|
});
|
|
31
38
|
};
|
|
32
39
|
this.update = () => {
|
|
@@ -37,21 +44,21 @@ export class Popover {
|
|
|
37
44
|
}
|
|
38
45
|
};
|
|
39
46
|
this.listener = () => {
|
|
40
|
-
window.addEventListener(
|
|
41
|
-
window.addEventListener(
|
|
42
|
-
window.addEventListener(
|
|
47
|
+
window.addEventListener("resize", this.calculatePosition.bind(this));
|
|
48
|
+
window.addEventListener("scroll", this.calculatePosition.bind(this), true);
|
|
49
|
+
window.addEventListener("wheel", this.calculatePosition.bind(this));
|
|
43
50
|
if (this.trigger && this.target()) {
|
|
44
51
|
switch (this.trigger) {
|
|
45
|
-
case
|
|
46
|
-
this.target().addEventListener(
|
|
52
|
+
case "click":
|
|
53
|
+
this.target().addEventListener("click", this.toggle.bind(this));
|
|
47
54
|
break;
|
|
48
|
-
case
|
|
49
|
-
this.target().addEventListener(
|
|
50
|
-
this.target().addEventListener(
|
|
55
|
+
case "hover":
|
|
56
|
+
this.target().addEventListener("mouseenter", this.show.bind(this));
|
|
57
|
+
this.target().addEventListener("mouseleave", this.hide.bind(this));
|
|
51
58
|
break;
|
|
52
|
-
case
|
|
53
|
-
this.target().addEventListener(
|
|
54
|
-
this.target().addEventListener(
|
|
59
|
+
case "focus":
|
|
60
|
+
this.target().addEventListener("focus", this.show.bind(this), true);
|
|
61
|
+
this.target().addEventListener("blur", this.hide.bind(this), true);
|
|
55
62
|
break;
|
|
56
63
|
default:
|
|
57
64
|
break;
|
|
@@ -59,6 +66,18 @@ export class Popover {
|
|
|
59
66
|
}
|
|
60
67
|
this.calculatePosition();
|
|
61
68
|
};
|
|
69
|
+
this.removeListener = () => {
|
|
70
|
+
window.removeEventListener("resize", this.calculatePosition.bind(this));
|
|
71
|
+
window.removeEventListener("scroll", this.calculatePosition.bind(this), true);
|
|
72
|
+
window.removeEventListener("wheel", this.calculatePosition.bind(this));
|
|
73
|
+
if (this.target()) {
|
|
74
|
+
this.target().removeEventListener("click", this.toggle.bind(this));
|
|
75
|
+
this.target().removeEventListener("mouseenter", this.show.bind(this));
|
|
76
|
+
this.target().removeEventListener("mouseleave", this.hide.bind(this));
|
|
77
|
+
this.target().removeEventListener("focus", this.show.bind(this), true);
|
|
78
|
+
this.target().removeEventListener("blur", this.hide.bind(this), true);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
62
81
|
this.calculatePosition = () => {
|
|
63
82
|
this.el = document.getElementById(this.id);
|
|
64
83
|
if (this.el) {
|
|
@@ -72,19 +91,23 @@ export class Popover {
|
|
|
72
91
|
});
|
|
73
92
|
}
|
|
74
93
|
};
|
|
75
|
-
this.show = () => {
|
|
94
|
+
this.show = async () => {
|
|
76
95
|
if (this.message) {
|
|
77
96
|
this.init();
|
|
97
|
+
await delay(this.openDelay);
|
|
78
98
|
this.calculatePosition();
|
|
99
|
+
this.emitShow();
|
|
79
100
|
}
|
|
80
101
|
else {
|
|
81
102
|
this.hide();
|
|
82
103
|
}
|
|
83
104
|
};
|
|
84
|
-
this.hide = () => {
|
|
105
|
+
this.hide = async () => {
|
|
85
106
|
this.el = document.getElementById(this.id);
|
|
86
107
|
if (this.el) {
|
|
108
|
+
await delay(this.closeDelay);
|
|
87
109
|
this.el.remove();
|
|
110
|
+
this.emitHide();
|
|
88
111
|
}
|
|
89
112
|
};
|
|
90
113
|
this.toggle = () => {
|
|
@@ -102,6 +125,11 @@ export class Popover {
|
|
|
102
125
|
this.placement = placement;
|
|
103
126
|
this.color = color;
|
|
104
127
|
this.trigger = trigger;
|
|
105
|
-
this.id = targetId +
|
|
128
|
+
this.id = targetId + "-popover-box";
|
|
129
|
+
this.openDelay = openDelay;
|
|
130
|
+
this.closeDelay = closeDelay;
|
|
131
|
+
this.emitShow = emitShow;
|
|
132
|
+
this.emitHide = emitHide;
|
|
133
|
+
Generate.observeElementRemoval(document.getElementById(this.targetId), this.destroy.bind(this));
|
|
106
134
|
}
|
|
107
135
|
}
|
|
@@ -2,11 +2,19 @@
|
|
|
2
2
|
* Built with Stencil
|
|
3
3
|
* Copyright (c) Bromcom.
|
|
4
4
|
*/
|
|
5
|
-
import { FloatingUI } from "@bcm/utils";
|
|
5
|
+
import { delay, FloatingUI } from "@bcm/utils";
|
|
6
6
|
import { ColorHelper, Generate, StringHelper } from "@bcm/helpers";
|
|
7
7
|
import { Bcm } from "@bcm/model";
|
|
8
8
|
export class Tooltip {
|
|
9
|
-
constructor({ message, targetId, placement = "top", color = "slate-700", trigger = "none", size = "medium" }) {
|
|
9
|
+
constructor({ message, targetId, placement = "top", color = "slate-700", trigger = "none", size = "medium", openDelay = 0, closeDelay = 0, emitShow = () => { }, emitHide = () => { }, }) {
|
|
10
|
+
this.destroy = () => {
|
|
11
|
+
this.el = document.getElementById(this.id);
|
|
12
|
+
if (this.el) {
|
|
13
|
+
this.el.remove();
|
|
14
|
+
this.emitHide();
|
|
15
|
+
}
|
|
16
|
+
this.removeListener();
|
|
17
|
+
};
|
|
10
18
|
this.bgColor = () => ColorHelper.twColor(this.color, 700);
|
|
11
19
|
this.target = () => document.getElementById(this.targetId);
|
|
12
20
|
this.sizeClass = () => {
|
|
@@ -62,6 +70,18 @@ export class Tooltip {
|
|
|
62
70
|
}
|
|
63
71
|
this.calculatePosition();
|
|
64
72
|
};
|
|
73
|
+
this.removeListener = () => {
|
|
74
|
+
window.removeEventListener("resize", this.calculatePosition.bind(this));
|
|
75
|
+
window.removeEventListener("scroll", this.calculatePosition.bind(this), true);
|
|
76
|
+
window.removeEventListener("wheel", this.calculatePosition.bind(this));
|
|
77
|
+
if (this.target()) {
|
|
78
|
+
this.target().removeEventListener("click", this.toggle.bind(this));
|
|
79
|
+
this.target().removeEventListener("mouseenter", this.show.bind(this));
|
|
80
|
+
this.target().removeEventListener("mouseleave", this.hide.bind(this));
|
|
81
|
+
this.target().removeEventListener("focus", this.show.bind(this), true);
|
|
82
|
+
this.target().removeEventListener("blur", this.hide.bind(this), true);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
65
85
|
this.calculatePosition = () => {
|
|
66
86
|
this.el = document.getElementById(this.id);
|
|
67
87
|
if (this.el) {
|
|
@@ -75,19 +95,23 @@ export class Tooltip {
|
|
|
75
95
|
});
|
|
76
96
|
}
|
|
77
97
|
};
|
|
78
|
-
this.show = () => {
|
|
98
|
+
this.show = async () => {
|
|
79
99
|
if (this.message) {
|
|
80
100
|
this.init();
|
|
101
|
+
await delay(this.openDelay);
|
|
81
102
|
this.calculatePosition();
|
|
103
|
+
this.emitShow();
|
|
82
104
|
}
|
|
83
105
|
else {
|
|
84
106
|
this.hide();
|
|
85
107
|
}
|
|
86
108
|
};
|
|
87
|
-
this.hide = () => {
|
|
109
|
+
this.hide = async () => {
|
|
88
110
|
this.el = document.getElementById(this.id);
|
|
89
111
|
if (this.el) {
|
|
112
|
+
await delay(this.closeDelay);
|
|
90
113
|
this.el.remove();
|
|
114
|
+
this.emitHide();
|
|
91
115
|
}
|
|
92
116
|
};
|
|
93
117
|
this.toggle = () => {
|
|
@@ -106,5 +130,10 @@ export class Tooltip {
|
|
|
106
130
|
this.id = targetId + "-tooltip-box";
|
|
107
131
|
this.trigger = trigger;
|
|
108
132
|
this.size = size;
|
|
133
|
+
this.openDelay = openDelay;
|
|
134
|
+
this.closeDelay = closeDelay;
|
|
135
|
+
this.emitShow = emitShow;
|
|
136
|
+
this.emitHide = emitHide;
|
|
137
|
+
Generate.observeElementRemoval(document.getElementById(this.targetId), this.destroy.bind(this));
|
|
109
138
|
}
|
|
110
139
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface BcmInputCustom extends Components.BcmInputCustom, HTMLElement {}
|
|
4
|
+
export const BcmInputCustom: {
|
|
5
|
+
prototype: BcmInputCustom;
|
|
6
|
+
new (): BcmInputCustom;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built with Stencil
|
|
3
|
+
* Copyright (c) Bromcom.
|
|
4
|
+
*/
|
|
5
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
6
|
+
import { I as IsLoad } from './is-load-decorator.js';
|
|
7
|
+
import { G as Generate } from './generate.js';
|
|
8
|
+
import { c as classnames } from './index2.js';
|
|
9
|
+
import { d as defineCustomElement$4 } from './icon.js';
|
|
10
|
+
import { d as defineCustomElement$3 } from './label.js';
|
|
11
|
+
import { d as defineCustomElement$2 } from './tooltip.js';
|
|
12
|
+
|
|
13
|
+
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
14
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
15
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
16
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
17
|
+
else
|
|
18
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
19
|
+
if (d = decorators[i])
|
|
20
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
|
+
};
|
|
23
|
+
const BcmInputCustom$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
24
|
+
constructor() {
|
|
25
|
+
super();
|
|
26
|
+
this.__registerHost();
|
|
27
|
+
this.handleFocus = () => {
|
|
28
|
+
this.hasFocus = true;
|
|
29
|
+
};
|
|
30
|
+
this.handleBlur = () => {
|
|
31
|
+
this.hasFocus = false;
|
|
32
|
+
};
|
|
33
|
+
this.handleChange = (e) => {
|
|
34
|
+
this.value = e.target.value;
|
|
35
|
+
console.log(e);
|
|
36
|
+
};
|
|
37
|
+
this.handleInput = (e) => {
|
|
38
|
+
// this.value = (e.target as HTMLInputElement).value;
|
|
39
|
+
console.log(e);
|
|
40
|
+
};
|
|
41
|
+
this._id = Generate.UID();
|
|
42
|
+
this.name = undefined;
|
|
43
|
+
this.value = undefined;
|
|
44
|
+
this.type = "text";
|
|
45
|
+
this.label = undefined;
|
|
46
|
+
this.required = false;
|
|
47
|
+
this.disabled = false;
|
|
48
|
+
this.readonly = false;
|
|
49
|
+
this.placeholder = undefined;
|
|
50
|
+
this.fullwidth = false;
|
|
51
|
+
this.hasFocus = false;
|
|
52
|
+
}
|
|
53
|
+
render() {
|
|
54
|
+
const { _id, type, name, value, label, required, fullwidth, placeholder, disabled, readonly } = this;
|
|
55
|
+
return (h(Host, { class: classnames("tw-inline-flex tw-w-full tw-max-w-[256px] tw-flex-col", {
|
|
56
|
+
"tw-max-w-full": fullwidth,
|
|
57
|
+
}) }, label && h("bcm-label", { value: label, required: required, htmlFor: _id }), h("div", { class: classnames("tw-relative tw-flex tw-w-full tw-flex-row tw-items-stretch tw-rounded tw-border tw-p-0 hover:tw-border-primary-600", {
|
|
58
|
+
"tw-cursor-not-allowed tw-bg-secondary-50": this.disabled,
|
|
59
|
+
"tw-cursor-text": !this.disabled,
|
|
60
|
+
"tw-cursor-default tw-bg-secondary-50": this.readonly,
|
|
61
|
+
"tw-border-primary-500 tw-bg-secondary-50": this.hasFocus,
|
|
62
|
+
"tw-border-secondary-300 tw-bg-white": !this.hasFocus,
|
|
63
|
+
}) }, h("input", { id: _id, name: name, type: type, value: value, "data-value": value, placeholder: placeholder, required: required, disabled: disabled, readonly: readonly, class: classnames("tw-text-overflow-ellipsis", "tw-rounded-none", "tw-flex-1", "tw-cursor-inherit", "tw-w-full", "tw-appearance-none", "tw-overflow-hidden", "tw-whitespace-nowrap", "tw-border-none", "tw-bg-transparent", "tw-p-2", "tw-text-secondary-600", "tw-placeholder-secondary-300", "tw-outline-none"), onFocus: this.handleFocus, onBlur: this.handleBlur, onChange: e => this.handleChange(e), onInput: this.handleInput }))));
|
|
64
|
+
}
|
|
65
|
+
get el() { return this; }
|
|
66
|
+
}, [0, "bcm-input-custom", {
|
|
67
|
+
"_id": [1537, "id"],
|
|
68
|
+
"name": [1],
|
|
69
|
+
"value": [1025],
|
|
70
|
+
"type": [1],
|
|
71
|
+
"label": [1],
|
|
72
|
+
"required": [4],
|
|
73
|
+
"disabled": [4],
|
|
74
|
+
"readonly": [4],
|
|
75
|
+
"placeholder": [1],
|
|
76
|
+
"fullwidth": [4],
|
|
77
|
+
"hasFocus": [32]
|
|
78
|
+
}]);
|
|
79
|
+
__decorate([
|
|
80
|
+
IsLoad()
|
|
81
|
+
], BcmInputCustom$1.prototype, "el", void 0);
|
|
82
|
+
function defineCustomElement$1() {
|
|
83
|
+
if (typeof customElements === "undefined") {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const components = ["bcm-input-custom", "bcm-icon", "bcm-label", "bcm-tooltip"];
|
|
87
|
+
components.forEach(tagName => { switch (tagName) {
|
|
88
|
+
case "bcm-input-custom":
|
|
89
|
+
if (!customElements.get(tagName)) {
|
|
90
|
+
customElements.define(tagName, BcmInputCustom$1);
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
case "bcm-icon":
|
|
94
|
+
if (!customElements.get(tagName)) {
|
|
95
|
+
defineCustomElement$4();
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
case "bcm-label":
|
|
99
|
+
if (!customElements.get(tagName)) {
|
|
100
|
+
defineCustomElement$3();
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
case "bcm-tooltip":
|
|
104
|
+
if (!customElements.get(tagName)) {
|
|
105
|
+
defineCustomElement$2();
|
|
106
|
+
}
|
|
107
|
+
break;
|
|
108
|
+
} });
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const BcmInputCustom = BcmInputCustom$1;
|
|
112
|
+
const defineCustomElement = defineCustomElement$1;
|
|
113
|
+
|
|
114
|
+
export { BcmInputCustom, defineCustomElement };
|
|
@@ -325,7 +325,7 @@ const findItem = (id, itemId, items) => {
|
|
|
325
325
|
if (dataSource) {
|
|
326
326
|
dataSource.forEach(item => {
|
|
327
327
|
if (itemId.includes(item.id)) {
|
|
328
|
-
checkedProcess(id, item
|
|
328
|
+
checkedProcess(id, item);
|
|
329
329
|
if (item.parentId) {
|
|
330
330
|
indeterminateStatus(id, item.parentId);
|
|
331
331
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Built with Stencil
|
|
3
3
|
* Copyright (c) Bromcom.
|
|
4
4
|
*/
|
|
5
|
-
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
5
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
6
6
|
import { I as IsLoad } from './is-load-decorator.js';
|
|
7
7
|
import { C as ColorHelper } from './color-helper.js';
|
|
8
8
|
import './validators.js';
|
|
@@ -11,31 +11,39 @@ import './number-helper.js';
|
|
|
11
11
|
import { S as StringHelper } from './string-helper.js';
|
|
12
12
|
import './element-dragger.js';
|
|
13
13
|
import { a as Bcm } from './bcm.js';
|
|
14
|
+
import { d as delay } from './utils.js';
|
|
14
15
|
import { F as FloatingUI } from './floating-ui.js';
|
|
15
16
|
|
|
16
17
|
class Popover {
|
|
17
|
-
constructor({ content, message, targetId, placement =
|
|
18
|
+
constructor({ content, message, targetId, placement = "top", color = "slate-700", trigger = "none", openDelay = 0, closeDelay = 0, emitShow = () => { }, emitHide = () => { } }) {
|
|
19
|
+
this.destroy = () => {
|
|
20
|
+
this.el = document.getElementById(this.id);
|
|
21
|
+
if (this.el) {
|
|
22
|
+
this.el.remove();
|
|
23
|
+
this.emitHide();
|
|
24
|
+
}
|
|
25
|
+
this.removeListener();
|
|
26
|
+
};
|
|
18
27
|
this.bgColor = () => ColorHelper.twColor(this.color, 700);
|
|
19
28
|
this.exepcitonColors = {
|
|
20
|
-
white:
|
|
21
|
-
black:
|
|
29
|
+
white: "slate-300",
|
|
30
|
+
black: "slate-700",
|
|
22
31
|
};
|
|
23
32
|
this.target = () => document.getElementById(this.targetId);
|
|
24
33
|
this.init = () => {
|
|
25
|
-
console.log(this.content, this.message);
|
|
26
34
|
const inner = `<div class="tw-z-[1] tw-rounded tw-py-2 tw-bg-${this.bgColor()}">
|
|
27
|
-
${this.message ? `<div class="tw-font-medium tw-w-full tw-pb-1 tw-px-4">${StringHelper.trim(this.message)}</div>` :
|
|
28
|
-
${this.content ? `<div class="tw-font-normal tw-px-4">${StringHelper.trim(this.content)}</div>` :
|
|
35
|
+
${this.message ? `<div class="tw-font-medium tw-w-full tw-pb-1 tw-px-4">${StringHelper.trim(this.message)}</div>` : ""}
|
|
36
|
+
${this.content ? `<div class="tw-font-normal tw-px-4">${StringHelper.trim(this.content)}</div>` : ""}
|
|
29
37
|
</div>`;
|
|
30
|
-
this.el = Generate.createElement(
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
this.el = Generate.createElement("div", {
|
|
39
|
+
"id": `${this.targetId}-popover-box`,
|
|
40
|
+
"class": `
|
|
33
41
|
tw-whitespace-normal tw-break-words tw-block tw-font-sans tw-pointer-events-none tw-max-w-[256px] tw-rounded tw-bg-${this.bgColor()} tw-text-white tw-text-3 tw-absolute tw-top-0 tw-left-0 tw-z-tooltip tw-opacity-0 tw-transition-opacity tw-duration-300
|
|
34
42
|
tw-shadow`,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
"role": "popover",
|
|
44
|
+
"aria-hidden": "true",
|
|
45
|
+
"style": `color: ${ColorHelper.twColorReverse(this.bgColor())}`,
|
|
46
|
+
"innerHTML": inner,
|
|
39
47
|
});
|
|
40
48
|
};
|
|
41
49
|
this.update = () => {
|
|
@@ -46,26 +54,38 @@ class Popover {
|
|
|
46
54
|
}
|
|
47
55
|
};
|
|
48
56
|
this.listener = () => {
|
|
49
|
-
window.addEventListener(
|
|
50
|
-
window.addEventListener(
|
|
51
|
-
window.addEventListener(
|
|
57
|
+
window.addEventListener("resize", this.calculatePosition.bind(this));
|
|
58
|
+
window.addEventListener("scroll", this.calculatePosition.bind(this), true);
|
|
59
|
+
window.addEventListener("wheel", this.calculatePosition.bind(this));
|
|
52
60
|
if (this.trigger && this.target()) {
|
|
53
61
|
switch (this.trigger) {
|
|
54
|
-
case
|
|
55
|
-
this.target().addEventListener(
|
|
62
|
+
case "click":
|
|
63
|
+
this.target().addEventListener("click", this.toggle.bind(this));
|
|
56
64
|
break;
|
|
57
|
-
case
|
|
58
|
-
this.target().addEventListener(
|
|
59
|
-
this.target().addEventListener(
|
|
65
|
+
case "hover":
|
|
66
|
+
this.target().addEventListener("mouseenter", this.show.bind(this));
|
|
67
|
+
this.target().addEventListener("mouseleave", this.hide.bind(this));
|
|
60
68
|
break;
|
|
61
|
-
case
|
|
62
|
-
this.target().addEventListener(
|
|
63
|
-
this.target().addEventListener(
|
|
69
|
+
case "focus":
|
|
70
|
+
this.target().addEventListener("focus", this.show.bind(this), true);
|
|
71
|
+
this.target().addEventListener("blur", this.hide.bind(this), true);
|
|
64
72
|
break;
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
this.calculatePosition();
|
|
68
76
|
};
|
|
77
|
+
this.removeListener = () => {
|
|
78
|
+
window.removeEventListener("resize", this.calculatePosition.bind(this));
|
|
79
|
+
window.removeEventListener("scroll", this.calculatePosition.bind(this), true);
|
|
80
|
+
window.removeEventListener("wheel", this.calculatePosition.bind(this));
|
|
81
|
+
if (this.target()) {
|
|
82
|
+
this.target().removeEventListener("click", this.toggle.bind(this));
|
|
83
|
+
this.target().removeEventListener("mouseenter", this.show.bind(this));
|
|
84
|
+
this.target().removeEventListener("mouseleave", this.hide.bind(this));
|
|
85
|
+
this.target().removeEventListener("focus", this.show.bind(this), true);
|
|
86
|
+
this.target().removeEventListener("blur", this.hide.bind(this), true);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
69
89
|
this.calculatePosition = () => {
|
|
70
90
|
this.el = document.getElementById(this.id);
|
|
71
91
|
if (this.el) {
|
|
@@ -79,19 +99,23 @@ class Popover {
|
|
|
79
99
|
});
|
|
80
100
|
}
|
|
81
101
|
};
|
|
82
|
-
this.show = () => {
|
|
102
|
+
this.show = async () => {
|
|
83
103
|
if (this.message) {
|
|
84
104
|
this.init();
|
|
105
|
+
await delay(this.openDelay);
|
|
85
106
|
this.calculatePosition();
|
|
107
|
+
this.emitShow();
|
|
86
108
|
}
|
|
87
109
|
else {
|
|
88
110
|
this.hide();
|
|
89
111
|
}
|
|
90
112
|
};
|
|
91
|
-
this.hide = () => {
|
|
113
|
+
this.hide = async () => {
|
|
92
114
|
this.el = document.getElementById(this.id);
|
|
93
115
|
if (this.el) {
|
|
116
|
+
await delay(this.closeDelay);
|
|
94
117
|
this.el.remove();
|
|
118
|
+
this.emitHide();
|
|
95
119
|
}
|
|
96
120
|
};
|
|
97
121
|
this.toggle = () => {
|
|
@@ -109,7 +133,12 @@ class Popover {
|
|
|
109
133
|
this.placement = placement;
|
|
110
134
|
this.color = color;
|
|
111
135
|
this.trigger = trigger;
|
|
112
|
-
this.id = targetId +
|
|
136
|
+
this.id = targetId + "-popover-box";
|
|
137
|
+
this.openDelay = openDelay;
|
|
138
|
+
this.closeDelay = closeDelay;
|
|
139
|
+
this.emitShow = emitShow;
|
|
140
|
+
this.emitHide = emitHide;
|
|
141
|
+
Generate.observeElementRemoval(document.getElementById(this.targetId), this.destroy.bind(this));
|
|
113
142
|
}
|
|
114
143
|
}
|
|
115
144
|
|
|
@@ -127,6 +156,8 @@ const BcmPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
127
156
|
constructor() {
|
|
128
157
|
super();
|
|
129
158
|
this.__registerHost();
|
|
159
|
+
this.bcmPopoverShow = createEvent(this, "bcmPopoverShow", 7);
|
|
160
|
+
this.bcmPopoverHide = createEvent(this, "bcmPopoverHide", 7);
|
|
130
161
|
this._id = Generate.UID();
|
|
131
162
|
this.message = "";
|
|
132
163
|
this.content = "";
|
|
@@ -134,13 +165,29 @@ const BcmPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
134
165
|
this.trigger = Bcm.TriggerType.click;
|
|
135
166
|
this.open = false;
|
|
136
167
|
this.color = "white";
|
|
168
|
+
this.targetId = undefined;
|
|
169
|
+
this.openDelay = 0;
|
|
170
|
+
this.closeDelay = 0;
|
|
171
|
+
this.popover = undefined;
|
|
172
|
+
}
|
|
173
|
+
emitShow() {
|
|
174
|
+
this.bcmPopoverShow.emit();
|
|
175
|
+
}
|
|
176
|
+
emitHide() {
|
|
177
|
+
this.bcmPopoverHide.emit();
|
|
178
|
+
}
|
|
179
|
+
componentWillLoad() {
|
|
137
180
|
this.popover = new Popover({
|
|
138
|
-
targetId: this._id,
|
|
181
|
+
targetId: this.targetId || this._id,
|
|
139
182
|
content: this.content,
|
|
140
183
|
message: this.message,
|
|
141
184
|
placement: this.placement,
|
|
142
185
|
color: this.color,
|
|
143
186
|
trigger: this.trigger,
|
|
187
|
+
openDelay: this.openDelay,
|
|
188
|
+
closeDelay: this.closeDelay,
|
|
189
|
+
emitShow: () => this.emitShow(),
|
|
190
|
+
emitHide: () => this.emitHide(),
|
|
144
191
|
});
|
|
145
192
|
}
|
|
146
193
|
componentDidLoad() {
|
|
@@ -155,6 +202,9 @@ const BcmPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
155
202
|
this.popover.trigger = trigger;
|
|
156
203
|
this.popover.update();
|
|
157
204
|
}
|
|
205
|
+
disconnectedCallback() {
|
|
206
|
+
this.popover.destroy();
|
|
207
|
+
}
|
|
158
208
|
async show() {
|
|
159
209
|
this.popover.show();
|
|
160
210
|
}
|
|
@@ -176,6 +226,9 @@ const BcmPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
176
226
|
"trigger": [1],
|
|
177
227
|
"open": [1028],
|
|
178
228
|
"color": [1],
|
|
229
|
+
"targetId": [1, "target-id"],
|
|
230
|
+
"openDelay": [2, "open-delay"],
|
|
231
|
+
"closeDelay": [2, "close-delay"],
|
|
179
232
|
"popover": [32],
|
|
180
233
|
"show": [64],
|
|
181
234
|
"hide": [64],
|