bromcom-ui 2.8.1-rc.0 → 2.8.1-rc.10-0
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-2a93a5a2.entry.js → p-02a232a6.entry.js} +1 -1
- package/dist/bromcom-ui/{p-afc59b65.entry.js → p-033bc73e.entry.js} +1 -1
- package/dist/bromcom-ui/p-037a40a6.entry.js +5 -0
- package/dist/bromcom-ui/{p-f66df7e2.entry.js → p-03db2686.entry.js} +1 -1
- package/dist/bromcom-ui/{p-2c6f2c6e.entry.js → p-04869d82.entry.js} +1 -1
- package/dist/bromcom-ui/p-05069d60.entry.js +5 -0
- package/dist/bromcom-ui/{p-35d087b1.entry.js → p-0e247b5c.entry.js} +1 -1
- package/dist/bromcom-ui/{p-0c043993.entry.js → p-104a911e.entry.js} +1 -1
- package/dist/bromcom-ui/{p-985b830e.entry.js → p-134cb719.entry.js} +1 -1
- package/dist/bromcom-ui/p-1eabd5dc.js +10 -0
- package/dist/bromcom-ui/p-1fac3b1b.entry.js +5 -0
- package/dist/bromcom-ui/p-2a8b1592.js +5 -0
- package/dist/bromcom-ui/p-2cd16cba.entry.js +5 -0
- package/dist/bromcom-ui/{p-233a1fb4.entry.js → p-2fb6a382.entry.js} +1 -1
- package/dist/bromcom-ui/{p-6e6cd7c5.entry.js → p-327e6b40.entry.js} +1 -1
- package/dist/bromcom-ui/{p-e9e1004b.entry.js → p-50a6e6ad.entry.js} +1 -1
- package/dist/bromcom-ui/{p-771ad3a6.entry.js → p-50dedc69.entry.js} +1 -1
- package/dist/bromcom-ui/{p-df70c965.entry.js → p-516a396f.entry.js} +1 -1
- package/dist/bromcom-ui/p-60db4bb4.entry.js +5 -0
- package/dist/bromcom-ui/{p-edea9dfd.entry.js → p-6d54838e.entry.js} +1 -1
- package/dist/bromcom-ui/{p-36bac522.entry.js → p-811034bb.entry.js} +1 -1
- package/dist/bromcom-ui/{p-c0c5cb65.entry.js → p-83385ad0.entry.js} +1 -1
- package/dist/bromcom-ui/{p-f87163ff.entry.js → p-844ddccb.entry.js} +1 -1
- package/dist/bromcom-ui/{p-eeca9f6a.js → p-8496349d.js} +1 -1
- package/dist/bromcom-ui/{p-40bdc7f4.entry.js → p-851a15f4.entry.js} +1 -1
- package/dist/bromcom-ui/{p-1b334e60.entry.js → p-86ba62bc.entry.js} +1 -1
- package/dist/bromcom-ui/p-88bde8d0.entry.js +5 -0
- package/dist/bromcom-ui/{p-b8067e79.entry.js → p-8c2af9eb.entry.js} +1 -1
- package/dist/bromcom-ui/{p-82aff8b2.entry.js → p-92f92499.entry.js} +1 -1
- package/dist/bromcom-ui/{p-0bb029b9.entry.js → p-948c5685.entry.js} +1 -1
- package/dist/bromcom-ui/{p-6a2c25e7.js → p-95ac600e.js} +1 -1
- package/dist/bromcom-ui/{p-84e3a7c2.entry.js → p-95c94d6b.entry.js} +1 -1
- package/dist/bromcom-ui/{p-f58d8231.entry.js → p-98067117.entry.js} +1 -1
- package/dist/bromcom-ui/p-9b2fbdbe.js +5 -0
- package/dist/bromcom-ui/{p-746e776f.entry.js → p-9b6b06b7.entry.js} +1 -1
- package/dist/bromcom-ui/{p-eaa0450d.entry.js → p-a32b3d70.entry.js} +1 -1
- package/dist/bromcom-ui/{p-15322ffb.js → p-a3d9a134.js} +1 -1
- package/dist/bromcom-ui/{p-dab9ce79.entry.js → p-a4129ba5.entry.js} +1 -1
- package/dist/bromcom-ui/{p-1622e5dd.entry.js → p-a46dbcbe.entry.js} +1 -1
- package/dist/bromcom-ui/{p-964e1b9d.entry.js → p-a61d0671.entry.js} +1 -1
- package/dist/bromcom-ui/{p-d6c9225c.entry.js → p-af2ce958.entry.js} +1 -1
- package/dist/bromcom-ui/{p-3f3e0704.entry.js → p-b655061c.entry.js} +1 -1
- package/dist/bromcom-ui/{p-ab3598c2.entry.js → p-bad48e36.entry.js} +1 -1
- package/dist/bromcom-ui/{p-34af5169.entry.js → p-c1326b6b.entry.js} +1 -1
- package/dist/bromcom-ui/p-c6a39efd.entry.js +5 -0
- package/dist/bromcom-ui/{p-f7dd4f41.entry.js → p-c7e477c2.entry.js} +1 -1
- package/dist/bromcom-ui/{p-8804713b.entry.js → p-c8ccc4e9.entry.js} +1 -1
- package/dist/bromcom-ui/p-cbf609ed.entry.js +5 -0
- package/dist/bromcom-ui/p-ccf71804.entry.js +5 -0
- package/dist/bromcom-ui/{p-31c05e88.entry.js → p-ce99fc13.entry.js} +1 -1
- package/dist/bromcom-ui/{p-5f594403.entry.js → p-e03a7e41.entry.js} +1 -1
- package/dist/bromcom-ui/{p-1ab0af09.entry.js → p-e1ec4ae0.entry.js} +1 -1
- package/dist/bromcom-ui/p-e2660e43.entry.js +13 -0
- package/dist/bromcom-ui/{p-fb13a0d7.entry.js → p-e5f2263f.entry.js} +1 -1
- package/dist/bromcom-ui/{p-0d7bb78b.entry.js → p-e803d804.entry.js} +1 -1
- package/dist/bromcom-ui/{p-df7b3fed.js → p-f0082c91.js} +1 -1
- package/dist/bromcom-ui/{p-5b21f39a.js → p-f2c540cc.js} +1 -1
- package/dist/bromcom-ui/{p-a3d7bc84.entry.js → p-fcc88dea.entry.js} +1 -1
- package/dist/bromcom-ui/p-ff944406.entry.js +5 -0
- package/dist/bromcom-ui/{p-c91d78bb.entry.js → p-fff16d5e.entry.js} +1 -1
- 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_2.cjs.entry.js +3 -3
- 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-button_7.cjs.entry.js +7 -4
- package/dist/cjs/bcm-card.cjs.entry.js +1 -1
- package/dist/cjs/bcm-checkbox-lite_9.cjs.entry.js +1 -1
- package/dist/cjs/bcm-chip.cjs.entry.js +1 -1
- package/dist/cjs/bcm-collapse.cjs.entry.js +1 -1
- package/dist/cjs/bcm-color-input.cjs.entry.js +3 -3
- package/dist/cjs/bcm-colorful_2.cjs.entry.js +34 -549
- package/dist/cjs/bcm-content.cjs.entry.js +22 -0
- package/dist/cjs/bcm-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/bcm-datetime-picker.cjs.entry.js +4 -7
- package/dist/cjs/bcm-default.cjs.entry.js +1 -1
- package/dist/cjs/bcm-drawer.cjs.entry.js +3 -3
- package/dist/cjs/bcm-dropdown.cjs.entry.js +4 -10
- package/dist/cjs/bcm-expansion-panel.cjs.entry.js +1 -1
- package/dist/cjs/bcm-form-2.cjs.entry.js +1 -1
- package/dist/cjs/bcm-input-custom.cjs.entry.js +1 -1
- package/dist/cjs/bcm-input.cjs.entry.js +5 -5
- package/dist/cjs/bcm-item.cjs.entry.js +1 -1
- package/dist/cjs/bcm-items.cjs.entry.js +1 -1
- package/dist/cjs/bcm-list.cjs.entry.js +158 -345
- package/dist/cjs/bcm-menu.cjs.entry.js +10 -7
- package/dist/cjs/bcm-modal-2-footer.cjs.entry.js +3 -3
- package/dist/cjs/bcm-modal-2-header.cjs.entry.js +3 -3
- package/dist/cjs/bcm-modal-2.cjs.entry.js +3 -3
- package/dist/cjs/bcm-modal.cjs.entry.js +35 -11
- package/dist/cjs/bcm-popconfirm-box.cjs.entry.js +1 -1
- package/dist/cjs/bcm-popconfirm.cjs.entry.js +1 -1
- package/dist/cjs/bcm-popover.cjs.entry.js +12 -5
- package/dist/cjs/bcm-progress.cjs.entry.js +1 -1
- package/dist/cjs/bcm-radio-group.cjs.entry.js +3 -3
- package/dist/cjs/bcm-radio.cjs.entry.js +3 -3
- package/dist/cjs/bcm-range.cjs.entry.js +1 -1
- package/dist/cjs/bcm-rc-overflow_2.cjs.entry.js +2443 -0
- 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 +23 -7
- package/dist/cjs/bcm-switch.cjs.entry.js +1 -1
- package/dist/cjs/bcm-tab-group.cjs.entry.js +3 -3
- package/dist/cjs/bcm-tab-item-header.cjs.entry.js +3 -3
- package/dist/cjs/bcm-tab-item.cjs.entry.js +3 -3
- package/dist/cjs/bcm-tag.cjs.entry.js +2 -2
- package/dist/cjs/bcm-textarea.cjs.entry.js +3 -3
- 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/{generate-411c1529.js → generate-fbd410e1.js} +10 -1
- package/dist/cjs/index-906fb4e5.js +540 -0
- package/dist/cjs/{input-template-741a1078.js → input-template-68bd0585.js} +1 -1
- package/dist/cjs/{json-parse-decarator-661924f2.js → json-parse-decarator-6a4b6957.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{number-helper-91446798.js → number-helper-4d112085.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-ee18b202.js → stepper-states-21ff9922.js} +1 -1
- package/dist/cjs/{tooltip-helper-dee255e9.js → tooltip-helper-e87e3189.js} +6 -4
- package/dist/cjs/{validators-c131b7c6.js → validators-d4b3d110.js} +1 -1
- package/dist/collection/collection-manifest.json +4 -2
- package/dist/collection/components/molecules/dropdown/dropdown.js +20 -8
- package/dist/collection/components/molecules/input/input.css +0 -4
- package/dist/collection/components/molecules/linked/linked.js +20 -6
- package/dist/collection/components/molecules/menu/menu.css +32 -10
- package/dist/collection/components/molecules/menu/menu.js +41 -2
- package/dist/collection/components/molecules/modal/modal.css +1 -1
- package/dist/collection/components/molecules/modal/modal.js +59 -17
- package/dist/collection/components/molecules/popover/popover.js +38 -15
- package/dist/collection/components/molecules/search/search.css +0 -4
- package/dist/collection/components/molecules/stepper/stepper.css +75 -43
- package/dist/collection/components/molecules/stepper/stepper.js +38 -2
- package/dist/collection/components/molecules/textarea/textarea.css +0 -4
- package/dist/collection/components/molecules/tooltip/tooltip.js +21 -0
- package/dist/collection/components/organism/datetime-picker/datetime-picker.js +3 -6
- package/dist/collection/components/organism/list/list.css +4 -3
- package/dist/collection/components/organism/list/list.js +172 -177
- package/dist/collection/components/organism/states/bcm-list2.states.js +19 -18
- package/dist/collection/components/other/content/content.js +15 -0
- package/dist/collection/components/{molecules → third-parts}/colorful/colorful.css +1 -5
- package/dist/collection/components/third-parts/rc-overflow/rc-overflow.css +138 -0
- package/dist/collection/components/third-parts/rc-overflow/rc-overflow.js +194 -0
- package/dist/collection/helper/generate.js +9 -0
- package/dist/collection/helper/popover-helper.js +3 -1
- package/dist/collection/helper/tooltip-helper.js +3 -1
- package/dist/collection/templates/list-template.js +2 -2
- package/dist/components/bcm-alert.js +1 -1
- package/dist/components/bcm-checkbox-group.js +1 -1
- package/dist/components/bcm-content.d.ts +11 -0
- package/dist/components/bcm-content.js +35 -0
- package/dist/components/bcm-dropdown.js +3 -8
- package/dist/components/bcm-list.js +172 -346
- package/dist/components/bcm-modal.js +35 -11
- package/dist/components/bcm-popover.js +11 -3
- package/dist/components/bcm-rc-overflow.d.ts +11 -0
- package/dist/components/bcm-rc-overflow.js +10 -0
- package/dist/components/bcm-stepper.js +20 -4
- package/dist/components/bcm-textarea.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/colorful.js +2 -531
- package/dist/components/datetime-picker.js +3 -6
- package/dist/components/generate.js +10 -1
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index3.js +523 -177
- package/dist/components/index4.js +191 -0
- package/dist/components/input.js +1 -1
- package/dist/components/linked.js +20 -6
- package/dist/components/menu.js +8 -3
- package/dist/components/rc-overflow.js +2238 -0
- package/dist/components/search.js +2 -2
- package/dist/components/step.js +1 -1
- package/dist/components/tooltip-helper.js +3 -1
- package/dist/components/tooltip.js +4 -0
- 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_2.entry.js +3 -3
- package/dist/esm/bcm-breadcrumb.entry.js +1 -1
- package/dist/esm/bcm-button-group.entry.js +1 -1
- package/dist/esm/bcm-button_7.entry.js +7 -4
- package/dist/esm/bcm-card.entry.js +1 -1
- package/dist/esm/bcm-checkbox-lite_9.entry.js +1 -1
- package/dist/esm/bcm-chip.entry.js +1 -1
- package/dist/esm/bcm-collapse.entry.js +1 -1
- package/dist/esm/bcm-color-input.entry.js +3 -3
- package/dist/esm/bcm-colorful_2.entry.js +25 -540
- package/dist/esm/bcm-content.entry.js +18 -0
- package/dist/esm/bcm-date-picker.entry.js +1 -1
- package/dist/esm/bcm-datetime-picker.entry.js +4 -7
- package/dist/esm/bcm-default.entry.js +1 -1
- package/dist/esm/bcm-drawer.entry.js +3 -3
- package/dist/esm/bcm-dropdown.entry.js +4 -10
- package/dist/esm/bcm-expansion-panel.entry.js +1 -1
- package/dist/esm/bcm-form-2.entry.js +1 -1
- package/dist/esm/bcm-input-custom.entry.js +1 -1
- package/dist/esm/bcm-input.entry.js +5 -5
- package/dist/esm/bcm-item.entry.js +1 -1
- package/dist/esm/bcm-items.entry.js +1 -1
- package/dist/esm/bcm-list.entry.js +158 -345
- package/dist/esm/bcm-menu.entry.js +10 -7
- package/dist/esm/bcm-modal-2-footer.entry.js +3 -3
- package/dist/esm/bcm-modal-2-header.entry.js +3 -3
- package/dist/esm/bcm-modal-2.entry.js +3 -3
- package/dist/esm/bcm-modal.entry.js +35 -11
- package/dist/esm/bcm-popconfirm-box.entry.js +1 -1
- package/dist/esm/bcm-popconfirm.entry.js +1 -1
- package/dist/esm/bcm-popover.entry.js +12 -5
- package/dist/esm/bcm-progress.entry.js +1 -1
- package/dist/esm/bcm-radio-group.entry.js +3 -3
- package/dist/esm/bcm-radio.entry.js +3 -3
- package/dist/esm/bcm-range.entry.js +1 -1
- package/dist/esm/bcm-rc-overflow_2.entry.js +2438 -0
- 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 +23 -7
- package/dist/esm/bcm-switch.entry.js +1 -1
- package/dist/esm/bcm-tab-group.entry.js +3 -3
- package/dist/esm/bcm-tab-item-header.entry.js +3 -3
- package/dist/esm/bcm-tab-item.entry.js +3 -3
- package/dist/esm/bcm-tag.entry.js +2 -2
- package/dist/esm/bcm-textarea.entry.js +3 -3
- package/dist/esm/bcm-time-picker.entry.js +1 -1
- package/dist/esm/bcm-toast.entry.js +1 -1
- package/dist/esm/bromcom-ui.js +1 -1
- package/dist/esm/{generate-3e284764.js → generate-078b420f.js} +10 -1
- package/dist/esm/index-6310a048.js +537 -0
- package/dist/esm/{input-template-b0adc55c.js → input-template-2fa28387.js} +1 -1
- package/dist/esm/{json-parse-decarator-5f1e26d4.js → json-parse-decarator-22e8e247.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{number-helper-ca1092d7.js → number-helper-ed541ffb.js} +1 -1
- package/dist/esm/old-bcm-popover-box.entry.js +2 -2
- package/dist/esm/old-bcm-popover.entry.js +1 -1
- package/dist/esm/{stepper-states-f8c0fb9b.js → stepper-states-d7a39df1.js} +1 -1
- package/dist/esm/{tooltip-helper-d4a37741.js → tooltip-helper-b0776da6.js} +6 -4
- package/dist/esm/{validators-c025ec38.js → validators-f8caf3b9.js} +1 -1
- package/dist/types/components/molecules/dropdown/dropdown.d.ts +1 -1
- package/dist/types/components/molecules/linked/linked.d.ts +3 -0
- package/dist/types/components/molecules/menu/menu.d.ts +2 -0
- package/dist/types/components/molecules/modal/modal.d.ts +10 -4
- package/dist/types/components/molecules/popover/popover.d.ts +2 -1
- package/dist/types/components/molecules/stepper/stepper.d.ts +3 -0
- package/dist/types/components/molecules/tooltip/tooltip.d.ts +1 -0
- package/dist/types/components/organism/list/list.d.ts +9 -5
- package/dist/types/components/organism/states/bcm-list2.states.d.ts +1 -1
- package/dist/types/components/other/content/content.d.ts +6 -0
- package/dist/types/components/third-parts/rc-overflow/rc-overflow.d.ts +17 -0
- package/dist/types/components.d.ts +54 -4
- package/dist/types/helper/popover-helper.d.ts +3 -1
- package/dist/types/helper/tooltip-helper.d.ts +3 -1
- package/package.json +2 -1
- package/dist/bromcom-ui/p-0f41f6e2.entry.js +0 -5
- package/dist/bromcom-ui/p-1362b17e.entry.js +0 -5
- package/dist/bromcom-ui/p-37a28587.js +0 -5
- package/dist/bromcom-ui/p-3bb952e7.entry.js +0 -5
- package/dist/bromcom-ui/p-748cb943.entry.js +0 -5
- package/dist/bromcom-ui/p-8a0128e6.entry.js +0 -5
- package/dist/bromcom-ui/p-98fe21a3.entry.js +0 -5
- package/dist/bromcom-ui/p-9f48d505.entry.js +0 -5
- package/dist/bromcom-ui/p-b4f02061.entry.js +0 -10
- package/dist/bromcom-ui/p-b52fe89c.entry.js +0 -5
- package/dist/bromcom-ui/p-feab9d90.entry.js +0 -5
- package/dist/bromcom-ui/p-ff408c78.js +0 -5
- package/dist/cjs/bcm-search.cjs.entry.js +0 -245
- package/dist/collection/components/organism/list/list-tag-control.js +0 -173
- package/dist/esm/bcm-search.entry.js +0 -241
- package/dist/types/components/organism/list/list-tag-control.d.ts +0 -18
- /package/dist/collection/components/{molecules → third-parts}/colorful/colorful.js +0 -0
- /package/dist/types/components/{molecules → third-parts}/colorful/colorful.d.ts +0 -0
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import{r as e,c as t,h as i,H as n,g as a}from"./p-da1055cb.js";import{s as r,G as c}from"./p-37a28587.js";import{B as o}from"./p-a429e85b.js";import{I as l}from"./p-15322ffb.js";import{d as s}from"./p-8c018ae0.js";import{c as p}from"./p-a60a2dd0.js";import{S as m}from"./p-8d0ca8c2.js";import"./p-4aa0e6b1.js";import"./p-6f56f8ca.js";import"./p-3fac58f7.js";import"./p-d65a1e21.js";const{state:u}=p({value:new Map}),b=(e,t)=>{let i=[];return e&&(i=e.map((e=>Object.assign(Object.assign(Object.assign({},e),{parentId:r((()=>t),null)}),e.items&&e.items.length>0&&{items:r((()=>b(e.items,e.id)),[])})))),i},h=e=>r((()=>u.value.get(e)),{}),d=(e,t,i)=>{let n=[],a=[],r=[],c=[];const{searchIsOnlyChilds:o}=h(e);return t&&t.length>0&&t.forEach((t=>{let l=o&&null!==t.parentId;if((m.slugify(t.text).indexOf(m.slugify(i))>-1||t.keywords&&m.slugify(t.keywords).indexOf(m.slugify(i))>-1)&&(!o||o&&l)){if(r.push(t.id),n.push(t.id),a.push(t.id),c.push({id:t.id,text:t.text,parentId:t.parentId}),t.items&&t.items.length>0){const a=d(e,t.items,i);a.matching.length>0&&a.matching.forEach((e=>{n.push(e)}))}}else if(t.items&&t.items.length>0){const o=d(e,t.items,i);o.result.length>0&&(o.result.forEach((e=>{r.push(e)})),r.push(t.id),a.push(t.id),c.push({id:t.id,text:t.text,parentId:t.parentId,items:o.nestedResult})),o.matching.length>0&&n.push(...o.matching)}})),{result:r,matching:n,parentIndex:a,nestedResult:c}},x=(e,t,i)=>{let n;n=i&&i.length>0?i:h(e).dataSource;let a=[];return n&&a.push(d(e,n,t)),{result:r((()=>c.flatArray(a[0].result)),[]),matching:r((()=>a[0].matching),[]),parentIndex:r((()=>a[0].parentIndex),[]),nestedResult:r((()=>a[0].nestedResult),[])}},g=class{constructor(i){e(this,i),this.bcmOnSearch=t(this,"bcm-on-search",7),this.bcmOnSearchClear=t(this,"bcm-on-search-clear",7),this.debounceHandler=c.debounceInput((e=>this.onSearchValue(e,this)),300,!1,(()=>{var e,t;this.isActiveClearable=(null===(t=null===(e=this.inputElement)||void 0===e?void 0:e.value)||void 0===t?void 0:t.length)>0&&this.clearable})),this._id=c.UID(),this.placeholder="Search",this.disabled=!1,this.readonly=!1,this.clearable=!0,this.size=o.Size.medium,this.limit=10,this.searchIsOnlyChilds=!1,this.minSearchLength=2,this.data=[],this.tick={},this.isActiveClearable=!1}async componentDidLoad(){await this.initState()}async dataChanged(e,t){e!==t&&await this.initState()}async initState(){await(e=>{const{id:t,dataSource:i}=e,n={id:r((()=>t),c.UID),dataSource:i&&i.length>0&&b(i),searchIsOnlyChilds:e.searchIsOnlyChilds};u.value.set(n.id,n)})({id:this._id+"-input",dataSource:this.data,searchIsOnlyChilds:this.searchIsOnlyChilds}),await this.markForCheck()}markForCheck(){this.tick=c.UID()}handleInput(){}async onBcmFocus(){this.inputElement.focus()}async onBcmBlur(){this.inputElement.blur()}async onBcmSelect(){this.inputElement.select()}async setValue(e){this.inputElement.value=e}handleFocus(){}handleBlur(){}handleChange(){}async handleClear(e=!0){this.inputElement.value="";const{value:t,id:i}=this.inputElement;return x(i,t),this.isActiveClearable=!1,this.bcmOnSearch.emit({result:null,value:null,matching:null,parentIndex:null}),this.bcmOnSearchClear.emit(e),await s(10),Promise.resolve()}onSearchValue(e,t){const{value:i,id:n}=e.target,a=(null==i?void 0:i.length)>=this.minSearchLength?x(n,i,null):null,{bcmOnSearch:r,inputElement:c}=t;r.emit({result:null==a?void 0:a.result,value:null==c?void 0:c.value,matching:null==a?void 0:a.matching,parentIndex:null==a?void 0:a.parentIndex,nestedResult:null==a?void 0:a.nestedResult})}render(){const{_id:e,placeholder:t,disabled:a,readonly:r}=this;return i(n,{onClick:()=>{this.onBcmFocus(),this.onBcmSelect()}},i(l,{size:this.size,id:e,type:"search",placeholder:t,disabled:a,"full-width":!0,readonly:r,clearable:this.isActiveClearable,handleFocus:()=>this.handleFocus(),handleBlur:()=>this.handleBlur(),handleChange:()=>this.handleChange(),handleClear:()=>this.handleClear(),handleInput:this.debounceHandler,ref:e=>this.inputElement=e}))}get el(){return a(this)}static get watchers(){return{data:["dataChanged"]}}};g.style='@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"); @import url("https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap"); @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-caption-area{font-family:"Inter", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;font-size:12px;line-height:calc(12px + 8px);color:var(--bcm-new-ds-color-slate-400);display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;flex-wrap:nowrap;margin-top:2px}.bcm-caption-area__text{color:var(--bcm-new-ds-color-slate-400)}.bcm-caption-area__text.default{color:var(--bcm-new-ds-color-slate-400)}.bcm-caption-area__text.info{color:var(--bcm-new-ds-color-blue-500)}.bcm-caption-area__text.success{color:var(--bcm-new-ds-color-emerald-500)}.bcm-caption-area__text.warning{color:var(--bcm-new-ds-color-amber-500)}.bcm-caption-area__text.error{color:var(--bcm-new-ds-color-red-500)}.bcm-caption-area__size-small{font-size:10px;line-height:calc(10px + 8px);min-height:calc(10px + 8px)}.bcm-caption-area__size-medium{font-size:12px;line-height:calc(12px + 8px);min-height:calc(12px + 8px)}.bcm-caption-area__size-large{font-size:14px;line-height:calc(14px + 8px);min-height:calc(14px + 8px)}*{box-sizing:border-box}.bcm-label{display:inline-flex;align-items:flex-start;grid-gap:2px}.bcm-label__text{margin-bottom:2px;font-family:"Inter", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;display:inline-block;color:var(--bcm-new-ds-color-slate-600)}.bcm-label__size-small{font-size:10px;line-height:calc(10px + 8px);min-height:calc(10px + 8px)}.bcm-label__size-medium{font-size:12px;line-height:calc(12px + 8px);min-height:calc(12px + 8px)}.bcm-label__size-large{font-size:14px;line-height:calc(14px + 8px);min-height:calc(14px + 8px)}.bcm-input[no-margin]{margin:0}.bcm-textarea[no-margin]{margin:0}.bcm-switch[no-margin]{margin:0}.bcm-checkbox[no-margin]{margin:0}.bcm-radio-group[no-margin]{margin:0}.bcm-checkbox-group[no-margin]{margin:0}.bcm-range[no-margin]{margin:0}.bcm-form[no-margin]{margin:0}.bcm-form-group[no-margin]{margin:0}.bcm-list[no-margin]{margin:0}.bcm-colorpicker[no-margin]{margin:0}.bcm-date-picker[no-margin]{margin:0}.bcm-time-picker[no-margin]{margin:0}.bcm-datetime-picker[no-margin]{margin:0}.bcm-select[no-margin]{margin:0}.bcm-listbox[no-margin]{margin:0}*{box-sizing:border-box}.bcm-input{display:inline-flex;flex-direction:column;width:100%;max-width:256px;margin-bottom:8px}.bcm-input.full-width{max-width:100%}.bcm-input.hidden{display:none}.bcm-input__container{font-family:"Inter", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;display:flex;align-items:stretch;flex-direction:row;background-color:var(--bcm-new-ds-color-white);border:1px solid var(--bcm-new-ds-color-slate-300);border-radius:4px;box-sizing:border-box;cursor:text;padding:0 0 0 4px;position:relative;width:100%}.bcm-input__container.disabled{background-color:var(--bcm-new-ds-color-slate-50);cursor:not-allowed}.bcm-input__container.disabled .bcm-input-element{color:var(--bcm-new-ds-color-slate-500)}.bcm-input__container.readonly{background-color:var(--bcm-new-ds-color-slate-50);cursor:default}.bcm-input__container.readonly .bcm-input-element{color:var(--bcm-new-ds-color-slate-600)}.bcm-input__container:not(.disabled):hover .caret-container,.bcm-input__container:not(.disabled).focused .caret-container{opacity:1}.bcm-input__container:not(.disabled):hover .input-clear-button,.bcm-input__container:not(.disabled).focused .input-clear-button{opacity:1}.bcm-input__container:not(.disabled).focused{background-color:var(--bcm-new-ds-color-slate-50)}.bcm-input__container:not(.disabled):hover{border-color:var(--bcm-color-prime-blue-6)}.bcm-input__container.empty .input-clear-button{display:none}.bcm-input__container.invalid,.bcm-input__container.error{border-color:var(--bcm-new-ds-color-red-500)}.bcm-input__container .bcm-input-element{width:100%;color:var(--bcm-new-ds-color-slate-600);flex:1;border:none;background:transparent;box-shadow:unset;padding:0 4px;font-family:"Inter", sans-serif;cursor:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bcm-input__container .bcm-input-element::placeholder{font-family:"Inter", sans-serif;color:var(--bcm-new-ds-color-slate-300);user-select:none}.bcm-input__container .bcm-input-element::-webkit-search-decoration,.bcm-input__container .bcm-input-element::-webkit-search-cancel-button,.bcm-input__container .bcm-input-element::-webkit-search-results-button,.bcm-input__container .bcm-input-element::-webkit-search-results-decoration,.bcm-input__container .bcm-input-element::-webkit-calendar-picker-indicator,.bcm-input__container .bcm-input-element::-webkit-inner-spin-button,.bcm-input__container .bcm-input-element::-webkit-outer-spin-button{-webkit-appearance:none}.bcm-input__container .caret-container{width:30px;display:flex;flex-direction:column;justify-content:center;align-items:stretch;border-left:1px solid #D9D9D9;transition:0.2s opacity;user-select:none;box-sizing:border-box}.bcm-input__container .caret-container .bcm-input-caret{display:flex;align-items:center;justify-content:center;color:var(--bcm-color-grey-7);cursor:pointer;flex:1}.bcm-input__container .caret-container .bcm-input-caret bcm-icon{line-height:1}.bcm-input__container .caret-container .bcm-input-caret:hover{color:var(--bcm-color-prime-blue-6)}.bcm-input__container .caret-container .bcm-input-caret:active{background-color:var(--bcm-color-grey-3)}.bcm-input__container .caret-container .bcm-input-caret:last-child{border-top:1px solid #D9D9D9}.bcm-input__container .caret-container.disabled{background-color:var(--bcm-color-grey-3)}.bcm-input__container .caret-container.disabled .bcm-input-caret{cursor:not-allowed}.bcm-input__container .input-suffix-content{display:flex;align-items:center;justify-content:center}.bcm-input__container .input-prefix:not(:empty){padding-left:4px}.bcm-input__container .input-suffix:not(:empty){min-width:24px;padding-right:4px}.bcm-input__container .input-prefix:not(:empty),.bcm-input__container .input-suffix:not(:empty){display:flex;align-items:center;justify-content:center;cursor:default;color:#64748a}.bcm-input__container .input-prefix:not(:empty) .unit-prefix,.bcm-input__container .input-suffix:not(:empty) .unit-prefix{color:#64748a}.bcm-input__container .input-prefix-button:not(:empty),.bcm-input__container .input-suffix-button:not(:empty){cursor:pointer}.bcm-input__container .caret-container,.bcm-input__container .input-clear-button{opacity:0}.bcm-input__container--small{font-size:12px}.bcm-input__container--medium{font-size:14px}.bcm-input__container--large{font-size:16px}.bcm-input__textarea .bcm-input-element{white-space:normal}.bcm-input__textarea.clearable .bcm-input-element{padding-right:24px}.bcm-input__textarea .input-clear-button{position:absolute;top:4px;right:0}';export{g as bcm_search}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import{r as t,c as i,h as e,H as s,g as n}from"./p-da1055cb.js";import{c as o}from"./p-d65a1e21.js";import{I as a}from"./p-c23b6240.js";import{J as h}from"./p-5b21f39a.js";import{G as r}from"./p-37a28587.js";import{B as p}from"./p-a429e85b.js";import"./p-6f56f8ca.js";import"./p-4aa0e6b1.js";var d=function(t,i,e,s){var n,o=arguments.length,a=o<3?i:null===s?s=Object.getOwnPropertyDescriptor(i,e):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,i,e,s);else for(var h=t.length-1;h>=0;h--)(n=t[h])&&(a=(o<3?n(a):o>3?n(i,e,a):n(i,e))||a);return o>3&&a&&Object.defineProperty(i,e,a),a};const l=class{constructor(e){t(this,e),this.bcmClick=i(this,"bcm-click",7),this.bcmDropdownChange=i(this,"bcm-dropdown-change",7),this.isOpen=void 0,this._id=r.UID(),this.menuId=r.UID(),this.hidden=!1,this.type="dropdown",this.size=p.Size.medium,this.disabled=!1,this.kind=p.Kind.solid,this.icon=void 0,this.href=void 0,this.target=void 0,this.value=void 0,this.noStyle=!1,this.dropdownIcon="fas fa-angle-down",this.linkedComponent=void 0,this.loading=!1,this.variant=void 0,this.dataDismiss=!1,this.fullWidth=!1,this.iconPosition=p.IconPosition.prefix,this.placement=void 0,this.height=void 0,this.maxHeight="500px",this.minHeight="50px",this.stopDeepClean=!1,this.selectable=!0,this.color=void 0,this.activeItem=null,this.data=[]}async dataChanged(t){t&&(this.data=t)}async setActive(t=null){var i,e;null===(e=null===(i=document.getElementById(`${this.menuId}`))||void 0===i?void 0:i.querySelectorAll("bcm-menu"))||void 0===e||e.forEach((i=>{i.setActive(t)}))}async getActive(){return this.activeItem}handleSlotItems({detail:t}){this.data=t}componentDidLoad(){var t;const i=this.el.querySelector("bcm-content");i&&(null===(t=document.getElementById(this.menuId))||void 0===t||t.appendChild(i))}setActiveAttribute(t){t.detail&&(this.bcmDropdownChange.emit(t.detail),this.activeItem=t.detail)}render(){const{size:t,kind:i,disabled:n,icon:a,color:h,href:r,target:p,loading:d,type:l,variant:c,fullWidth:m,isOpen:b}=this,x=o("bcm-dropdown","bcm-dropdown__type-"+l,{"full-width":m,"no-style":this.noStyle,hidden:this.hidden||this.linkedComponent}),u=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n&&{disabled:n}),d&&{loading:d}),i&&{kind:i}),t&&{size:t}),c&&{variant:c}),h&&{color:h}),this.menuId&&{"menu-id":this.menuId}),g=o("bcm-dropdown__icon",{"bcm-dropdown__icon--open":b}),f=e("span",{class:g},e("bcm-icon",{icon:this.dropdownIcon}));return e(s,{class:x},e("span",{hidden:!0},e("slot",null)),this.noStyle&&e("slot",null),!this.noStyle&&e("bcm-button",Object.assign({class:"main-button",id:`${this._id}-button`},u,a&&{icon:a},r&&"split"===l&&{href:r},p&&"split"===l&&{target:p},m&&{fullWidth:m}),e("slot",null),"dropdown"===l&&f),!this.noStyle&&"split"===l&&e("bcm-button",Object.assign({id:`${this._id}-button-split`,class:"split-button"},u),f),e("bcm-linked",{id:`${this.menuId}`,"target-id":`${this._id}-button${"split"===l?"-split":""}`,placement:this.placement||("dropdown"===l?"bottom-start":"bottom-end"),"max-height":this.maxHeight,"min-height":this.minHeight,height:this.height,"on-bcm-open":t=>{var i;return(null===(i=null==t?void 0:t.target)||void 0===i?void 0:i.id)==this.menuId&&(this.isOpen=t.detail)}},this.data&&this.data.length>0&&e("bcm-menu",{data:this.data,selectable:this.selectable,"on-bcm-click":t=>this.bcmClick.emit(t.detail),"onBcm-menu-change":t=>this.setActiveAttribute(t)})))}get el(){return n(this)}static get watchers(){return{data:["dataChanged"]}}};d([a()],l.prototype,"el",void 0),d([h("data",!0)],l.prototype,"dataChanged",null),l.style='@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-dropdown{width:fit-content;display:inline-flex;flex-direction:row}.bcm-dropdown.hidden{display:none}.bcm-dropdown.no-style{cursor:pointer}.bcm-dropdown.full-width{width:100%}.bcm-dropdown.full-width .bcm-button__container-text{flex:1;justify-content:space-between}.bcm-dropdown__type-split .main-button .bcm-button__container{border-top-right-radius:0;border-bottom-right-radius:0}.bcm-dropdown__type-split .split-button .bcm-button__container{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:1px;min-width:auto}.bcm-dropdown__icon{display:flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:nowrap;transform:rotate(0deg);transition:transform 0.2s ease}.bcm-dropdown__icon--open{transform:rotate(180deg)}';export{l as bcm_dropdown}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import"./p-7e44e6b5.js";import{S as t}from"./p-8d0ca8c2.js";import{d as s}from"./p-8c018ae0.js";import{F as i}from"./p-b60bcecf.js";import{C as h}from"./p-843905c8.js";import"./p-626a65e9.js";import{G as e}from"./p-37a28587.js";import"./p-df7b3fed.js";import"./p-eeca9f6a.js";import{a as o}from"./p-a429e85b.js";class r{constructor({message:r,targetId:a,placement:w="top",color:c="slate-700",trigger:n="none",size:l="medium",openDelay:p=0,closeDelay:m=0,emitShow:d=(()=>{}),emitHide:u=(()=>{})}){this.destroy=()=>{this.el=document.getElementById(this.id),this.el&&(this.el.remove(),this.emitHide()),this.removeListener()},this.bgColor=()=>h.twColor(this.color,700),this.target=()=>document.getElementById(this.targetId),this.sizeClass=()=>{switch(this.size){case o.Size.small:return"tw-text-1";case o.Size.medium:return"tw-text-2";case o.Size.large:return"tw-text-3";default:return"tw-text-2"}},this.init=()=>{this.el=e.createElement("div",{id:`${this.targetId}-tooltip-box`,class:`\n 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`,role:"tooltip","aria-hidden":"true",style:`color: ${h.twColorReverse(this.bgColor())}`,innerHTML:t.trim(this.message)})},this.update=()=>{this.el=document.getElementById(this.id),this.el&&(this.hide(),this.show())},this.listener=()=>{if(window.addEventListener("resize",this.calculatePosition.bind(this)),window.addEventListener("scroll",this.calculatePosition.bind(this),!0),window.addEventListener("wheel",this.calculatePosition.bind(this)),this.trigger&&this.target())switch(this.trigger){case"click":this.target().addEventListener("click",this.toggle.bind(this));break;case"hover":this.target().addEventListener("mouseenter",this.show.bind(this)),this.target().addEventListener("mouseleave",this.hide.bind(this));break;case"focus":this.target().addEventListener("focus",this.show.bind(this),!0),this.target().addEventListener("blur",this.hide.bind(this),!0)}this.calculatePosition()},this.removeListener=()=>{window.removeEventListener("resize",this.calculatePosition.bind(this)),window.removeEventListener("scroll",this.calculatePosition.bind(this),!0),window.removeEventListener("wheel",this.calculatePosition.bind(this)),this.target()&&(this.target().removeEventListener("click",this.toggle.bind(this)),this.target().removeEventListener("mouseenter",this.show.bind(this)),this.target().removeEventListener("mouseleave",this.hide.bind(this)),this.target().removeEventListener("focus",this.show.bind(this),!0),this.target().removeEventListener("blur",this.hide.bind(this),!0))},this.calculatePosition=()=>{this.el=document.getElementById(this.id),this.el&&i({ref:this.target(),floating:this.el,placement:this.placement,offset:8,arrow:!0,arrowColor:`tw-bg-${this.bgColor()}`})},this.show=async()=>{this.message?(this.init(),await s(this.openDelay),this.calculatePosition(),this.emitShow()):this.hide()},this.hide=async()=>{this.el=document.getElementById(this.id),this.el&&(await s(this.closeDelay),this.el&&this.el.remove(),this.emitHide())},this.toggle=()=>{this.el=document.getElementById(this.id),this.el?this.hide():this.show()},this.message=r,this.targetId=a,this.placement=w,this.color=c,this.id=a+"-tooltip-box",this.trigger=n,this.size=l,this.openDelay=p,this.closeDelay=m,this.emitShow=d,this.emitHide=u}}export{r as T}
|
|
@@ -1,245 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
'use strict';
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
8
|
-
|
|
9
|
-
const index$1 = require('./index-ddfd6d8f.js');
|
|
10
|
-
const generate = require('./generate-411c1529.js');
|
|
11
|
-
const bcm = require('./bcm-634604e3.js');
|
|
12
|
-
const inputTemplate = require('./input-template-741a1078.js');
|
|
13
|
-
const utils = require('./utils-fc077139.js');
|
|
14
|
-
const index = require('./index-4506fcd7.js');
|
|
15
|
-
const stringHelper = require('./string-helper-45cffee0.js');
|
|
16
|
-
require('./colors-e1d142ad.js');
|
|
17
|
-
require('./_commonjsHelpers-bd20f4c0.js');
|
|
18
|
-
require('./types-cc4adee7.js');
|
|
19
|
-
require('./index-fdbf5226.js');
|
|
20
|
-
|
|
21
|
-
const { state } = index.createStore({
|
|
22
|
-
value: new Map(),
|
|
23
|
-
});
|
|
24
|
-
const setValue = val => {
|
|
25
|
-
const { id, dataSource } = val;
|
|
26
|
-
const data = {
|
|
27
|
-
id: generate.snq(() => id, generate.Generate.UID),
|
|
28
|
-
dataSource: dataSource && dataSource.length > 0 && recursive(dataSource),
|
|
29
|
-
searchIsOnlyChilds: val.searchIsOnlyChilds,
|
|
30
|
-
};
|
|
31
|
-
state.value.set(data.id, data);
|
|
32
|
-
};
|
|
33
|
-
const recursive = (data, parentId) => {
|
|
34
|
-
let recData = [];
|
|
35
|
-
if (data) {
|
|
36
|
-
recData = data.map(item => (Object.assign(Object.assign(Object.assign({}, item), { parentId: generate.snq(() => parentId, null) }), (item.items && item.items.length > 0 && { items: generate.snq(() => recursive(item.items, item.id), []) }))));
|
|
37
|
-
}
|
|
38
|
-
return recData;
|
|
39
|
-
};
|
|
40
|
-
const removeValue = _id => {
|
|
41
|
-
state.value.delete(_id);
|
|
42
|
-
};
|
|
43
|
-
const getValue = id => generate.snq(() => state.value.get(id), {});
|
|
44
|
-
const getDataPagination = (id, limit = 3) => {
|
|
45
|
-
let data = [];
|
|
46
|
-
const value = getValue(id);
|
|
47
|
-
if (value) {
|
|
48
|
-
const { dataSource } = value;
|
|
49
|
-
data = dataSource.slice(0, limit);
|
|
50
|
-
}
|
|
51
|
-
return data;
|
|
52
|
-
};
|
|
53
|
-
// //search treeview data by text
|
|
54
|
-
// const searchData = (id, search, items?) => {
|
|
55
|
-
// let dataSource
|
|
56
|
-
// if (items && items.length > 0) {
|
|
57
|
-
// dataSource = items
|
|
58
|
-
// } else {
|
|
59
|
-
// const value = getValue(id);
|
|
60
|
-
// dataSource = value.dataSource;
|
|
61
|
-
// }
|
|
62
|
-
// let result = []
|
|
63
|
-
// if (dataSource) {
|
|
64
|
-
// dataSource.forEach(child => {
|
|
65
|
-
// if (child.text.toLowerCase().includes(search.toLowerCase())) {
|
|
66
|
-
// result.push(child)
|
|
67
|
-
// }
|
|
68
|
-
// result = result.concat(searchData(id, search, child.items))
|
|
69
|
-
// })
|
|
70
|
-
// };
|
|
71
|
-
// return result
|
|
72
|
-
// };
|
|
73
|
-
//nested search
|
|
74
|
-
const searchData = (id, searchText, items) => {
|
|
75
|
-
let dataSource;
|
|
76
|
-
if (items && items.length > 0) {
|
|
77
|
-
dataSource = items;
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
const value = getValue(id);
|
|
81
|
-
dataSource = value.dataSource;
|
|
82
|
-
}
|
|
83
|
-
let results = [];
|
|
84
|
-
if (dataSource) {
|
|
85
|
-
results.push(nestedSearch(id, dataSource, searchText));
|
|
86
|
-
//return with their parents
|
|
87
|
-
// dataSource.forEach(child => {
|
|
88
|
-
// if (child.text.toLowerCase().includes(searchText.toLowerCase())) {
|
|
89
|
-
// results.push(child)
|
|
90
|
-
// } else if (child.items && child.items.length > 0) {
|
|
91
|
-
// child.items = nestedSearch(child.items, searchText)
|
|
92
|
-
// if (child.items.length > 0) {
|
|
93
|
-
// results.push(child)
|
|
94
|
-
// }
|
|
95
|
-
// }
|
|
96
|
-
// })
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
result: generate.snq(() => generate.Generate.flatArray(results[0].result), []),
|
|
100
|
-
matching: generate.snq(() => results[0].matching, []),
|
|
101
|
-
parentIndex: generate.snq(() => results[0].parentIndex, []),
|
|
102
|
-
nestedResult: generate.snq(() => results[0].nestedResult, []),
|
|
103
|
-
};
|
|
104
|
-
};
|
|
105
|
-
const nestedSearch = (id, items, searchText) => {
|
|
106
|
-
let matching = [];
|
|
107
|
-
let parentIndex = [];
|
|
108
|
-
let result = [];
|
|
109
|
-
let nestedResult = [];
|
|
110
|
-
const { searchIsOnlyChilds } = getValue(id);
|
|
111
|
-
if (items && items.length > 0) {
|
|
112
|
-
items.forEach(child => {
|
|
113
|
-
let isChild = searchIsOnlyChilds && child.parentId !== null;
|
|
114
|
-
let isMatching = stringHelper.StringHelper.slugify(child.text).indexOf(stringHelper.StringHelper.slugify(searchText)) > -1 ||
|
|
115
|
-
(child.keywords && stringHelper.StringHelper.slugify(child.keywords).indexOf(stringHelper.StringHelper.slugify(searchText)) > -1);
|
|
116
|
-
if (isMatching && (!searchIsOnlyChilds || (searchIsOnlyChilds && isChild))) {
|
|
117
|
-
result.push(child.id);
|
|
118
|
-
matching.push(child.id);
|
|
119
|
-
parentIndex.push(child.id);
|
|
120
|
-
nestedResult.push({ id: child.id, text: child.text, parentId: child.parentId });
|
|
121
|
-
if (child.items && child.items.length > 0) {
|
|
122
|
-
const found = nestedSearch(id, child.items, searchText);
|
|
123
|
-
if (found.matching.length > 0) {
|
|
124
|
-
found.matching.forEach(chi => {
|
|
125
|
-
matching.push(chi);
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else if (child.items && child.items.length > 0) {
|
|
131
|
-
const found = nestedSearch(id, child.items, searchText);
|
|
132
|
-
if (found.result.length > 0) {
|
|
133
|
-
found.result.forEach(chi => {
|
|
134
|
-
result.push(chi);
|
|
135
|
-
});
|
|
136
|
-
result.push(child.id);
|
|
137
|
-
parentIndex.push(child.id);
|
|
138
|
-
nestedResult.push({ id: child.id, text: child.text, parentId: child.parentId, items: found.nestedResult });
|
|
139
|
-
}
|
|
140
|
-
if (found.matching.length > 0) {
|
|
141
|
-
matching.push(...found.matching);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
return { result, matching, parentIndex, nestedResult };
|
|
147
|
-
};
|
|
148
|
-
const searchState = {
|
|
149
|
-
setValue,
|
|
150
|
-
removeValue,
|
|
151
|
-
getValue,
|
|
152
|
-
getDataPagination,
|
|
153
|
-
searchData,
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
const searchCss = "@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\"); @import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); @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-caption-area{font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;font-size:12px;line-height:calc(12px + 8px);color:var(--bcm-new-ds-color-slate-400);display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;flex-wrap:nowrap;margin-top:2px}.bcm-caption-area__text{color:var(--bcm-new-ds-color-slate-400)}.bcm-caption-area__text.default{color:var(--bcm-new-ds-color-slate-400)}.bcm-caption-area__text.info{color:var(--bcm-new-ds-color-blue-500)}.bcm-caption-area__text.success{color:var(--bcm-new-ds-color-emerald-500)}.bcm-caption-area__text.warning{color:var(--bcm-new-ds-color-amber-500)}.bcm-caption-area__text.error{color:var(--bcm-new-ds-color-red-500)}.bcm-caption-area__size-small{font-size:10px;line-height:calc(10px + 8px);min-height:calc(10px + 8px)}.bcm-caption-area__size-medium{font-size:12px;line-height:calc(12px + 8px);min-height:calc(12px + 8px)}.bcm-caption-area__size-large{font-size:14px;line-height:calc(14px + 8px);min-height:calc(14px + 8px)}*{box-sizing:border-box}.bcm-label{display:inline-flex;align-items:flex-start;grid-gap:2px}.bcm-label__text{margin-bottom:2px;font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;display:inline-block;color:var(--bcm-new-ds-color-slate-600)}.bcm-label__size-small{font-size:10px;line-height:calc(10px + 8px);min-height:calc(10px + 8px)}.bcm-label__size-medium{font-size:12px;line-height:calc(12px + 8px);min-height:calc(12px + 8px)}.bcm-label__size-large{font-size:14px;line-height:calc(14px + 8px);min-height:calc(14px + 8px)}.bcm-input[no-margin]{margin:0}.bcm-textarea[no-margin]{margin:0}.bcm-switch[no-margin]{margin:0}.bcm-checkbox[no-margin]{margin:0}.bcm-radio-group[no-margin]{margin:0}.bcm-checkbox-group[no-margin]{margin:0}.bcm-range[no-margin]{margin:0}.bcm-form[no-margin]{margin:0}.bcm-form-group[no-margin]{margin:0}.bcm-list[no-margin]{margin:0}.bcm-colorpicker[no-margin]{margin:0}.bcm-date-picker[no-margin]{margin:0}.bcm-time-picker[no-margin]{margin:0}.bcm-datetime-picker[no-margin]{margin:0}.bcm-select[no-margin]{margin:0}.bcm-listbox[no-margin]{margin:0}*{box-sizing:border-box}.bcm-input{display:inline-flex;flex-direction:column;width:100%;max-width:256px;margin-bottom:8px}.bcm-input.full-width{max-width:100%}.bcm-input.hidden{display:none}.bcm-input__container{font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;display:flex;align-items:stretch;flex-direction:row;background-color:var(--bcm-new-ds-color-white);border:1px solid var(--bcm-new-ds-color-slate-300);border-radius:4px;box-sizing:border-box;cursor:text;padding:0 0 0 4px;position:relative;width:100%}.bcm-input__container.disabled{background-color:var(--bcm-new-ds-color-slate-50);cursor:not-allowed}.bcm-input__container.disabled .bcm-input-element{color:var(--bcm-new-ds-color-slate-500)}.bcm-input__container.readonly{background-color:var(--bcm-new-ds-color-slate-50);cursor:default}.bcm-input__container.readonly .bcm-input-element{color:var(--bcm-new-ds-color-slate-600)}.bcm-input__container:not(.disabled):hover .caret-container,.bcm-input__container:not(.disabled).focused .caret-container{opacity:1}.bcm-input__container:not(.disabled):hover .input-clear-button,.bcm-input__container:not(.disabled).focused .input-clear-button{opacity:1}.bcm-input__container:not(.disabled).focused{background-color:var(--bcm-new-ds-color-slate-50)}.bcm-input__container:not(.disabled):hover{border-color:var(--bcm-color-prime-blue-6)}.bcm-input__container.empty .input-clear-button{display:none}.bcm-input__container.invalid,.bcm-input__container.error{border-color:var(--bcm-new-ds-color-red-500)}.bcm-input__container .bcm-input-element{width:100%;color:var(--bcm-new-ds-color-slate-600);flex:1;border:none;background:transparent;box-shadow:unset;padding:0 4px;font-family:\"Inter\", sans-serif;cursor:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bcm-input__container .bcm-input-element::placeholder{font-family:\"Inter\", sans-serif;color:var(--bcm-new-ds-color-slate-300);user-select:none}.bcm-input__container .bcm-input-element::-webkit-search-decoration,.bcm-input__container .bcm-input-element::-webkit-search-cancel-button,.bcm-input__container .bcm-input-element::-webkit-search-results-button,.bcm-input__container .bcm-input-element::-webkit-search-results-decoration,.bcm-input__container .bcm-input-element::-webkit-calendar-picker-indicator,.bcm-input__container .bcm-input-element::-webkit-inner-spin-button,.bcm-input__container .bcm-input-element::-webkit-outer-spin-button{-webkit-appearance:none}.bcm-input__container .caret-container{width:30px;display:flex;flex-direction:column;justify-content:center;align-items:stretch;border-left:1px solid #D9D9D9;transition:0.2s opacity;user-select:none;box-sizing:border-box}.bcm-input__container .caret-container .bcm-input-caret{display:flex;align-items:center;justify-content:center;color:var(--bcm-color-grey-7);cursor:pointer;flex:1}.bcm-input__container .caret-container .bcm-input-caret bcm-icon{line-height:1}.bcm-input__container .caret-container .bcm-input-caret:hover{color:var(--bcm-color-prime-blue-6)}.bcm-input__container .caret-container .bcm-input-caret:active{background-color:var(--bcm-color-grey-3)}.bcm-input__container .caret-container .bcm-input-caret:last-child{border-top:1px solid #D9D9D9}.bcm-input__container .caret-container.disabled{background-color:var(--bcm-color-grey-3)}.bcm-input__container .caret-container.disabled .bcm-input-caret{cursor:not-allowed}.bcm-input__container .input-suffix-content{display:flex;align-items:center;justify-content:center}.bcm-input__container .input-prefix:not(:empty){padding-left:4px}.bcm-input__container .input-suffix:not(:empty){min-width:24px;padding-right:4px}.bcm-input__container .input-prefix:not(:empty),.bcm-input__container .input-suffix:not(:empty){display:flex;align-items:center;justify-content:center;cursor:default;color:#64748a}.bcm-input__container .input-prefix:not(:empty) .unit-prefix,.bcm-input__container .input-suffix:not(:empty) .unit-prefix{color:#64748a}.bcm-input__container .input-prefix-button:not(:empty),.bcm-input__container .input-suffix-button:not(:empty){cursor:pointer}.bcm-input__container .caret-container,.bcm-input__container .input-clear-button{opacity:0}.bcm-input__container--small{font-size:12px}.bcm-input__container--medium{font-size:14px}.bcm-input__container--large{font-size:16px}.bcm-input__textarea .bcm-input-element{white-space:normal}.bcm-input__textarea.clearable .bcm-input-element{padding-right:24px}.bcm-input__textarea .input-clear-button{position:absolute;top:4px;right:0}";
|
|
157
|
-
|
|
158
|
-
const BcmSearch = class {
|
|
159
|
-
constructor(hostRef) {
|
|
160
|
-
index$1.registerInstance(this, hostRef);
|
|
161
|
-
this.bcmOnSearch = index$1.createEvent(this, "bcm-on-search", 7);
|
|
162
|
-
this.bcmOnSearchClear = index$1.createEvent(this, "bcm-on-search-clear", 7);
|
|
163
|
-
this.debounceHandler = generate.Generate.debounceInput((event) => this.onSearchValue(event, this), 300, false, () => {
|
|
164
|
-
var _a, _b;
|
|
165
|
-
this.isActiveClearable = ((_b = (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.length) > 0 && this.clearable;
|
|
166
|
-
});
|
|
167
|
-
this._id = generate.Generate.UID();
|
|
168
|
-
this.placeholder = "Search";
|
|
169
|
-
this.disabled = false;
|
|
170
|
-
this.readonly = false;
|
|
171
|
-
this.clearable = true;
|
|
172
|
-
this.size = bcm.Bcm.Size.medium;
|
|
173
|
-
this.limit = 10;
|
|
174
|
-
this.searchIsOnlyChilds = false;
|
|
175
|
-
this.minSearchLength = 2;
|
|
176
|
-
this.data = [];
|
|
177
|
-
this.tick = {};
|
|
178
|
-
this.isActiveClearable = false;
|
|
179
|
-
}
|
|
180
|
-
async componentDidLoad() {
|
|
181
|
-
await this.initState();
|
|
182
|
-
}
|
|
183
|
-
async dataChanged(newValue, oldValue) {
|
|
184
|
-
// console.log('data changed', newValue, oldValue)
|
|
185
|
-
if (newValue !== oldValue) {
|
|
186
|
-
await this.initState();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
async initState() {
|
|
190
|
-
await searchState.setValue({
|
|
191
|
-
id: this._id + "-input",
|
|
192
|
-
dataSource: this.data,
|
|
193
|
-
searchIsOnlyChilds: this.searchIsOnlyChilds,
|
|
194
|
-
});
|
|
195
|
-
await this.markForCheck();
|
|
196
|
-
}
|
|
197
|
-
markForCheck() {
|
|
198
|
-
this.tick = generate.Generate.UID();
|
|
199
|
-
}
|
|
200
|
-
handleInput() {
|
|
201
|
-
// console.log("aheyya")
|
|
202
|
-
}
|
|
203
|
-
async onBcmFocus() {
|
|
204
|
-
this.inputElement.focus();
|
|
205
|
-
}
|
|
206
|
-
async onBcmBlur() {
|
|
207
|
-
this.inputElement.blur();
|
|
208
|
-
}
|
|
209
|
-
async onBcmSelect() {
|
|
210
|
-
this.inputElement.select();
|
|
211
|
-
}
|
|
212
|
-
async setValue(newValue) {
|
|
213
|
-
this.inputElement.value = newValue;
|
|
214
|
-
}
|
|
215
|
-
handleFocus() { }
|
|
216
|
-
handleBlur() { }
|
|
217
|
-
handleChange() { }
|
|
218
|
-
async handleClear(eventEmit = true) {
|
|
219
|
-
this.inputElement.value = '';
|
|
220
|
-
const { value, id } = this.inputElement;
|
|
221
|
-
searchState.searchData(id, value);
|
|
222
|
-
this.isActiveClearable = false;
|
|
223
|
-
this.bcmOnSearch.emit({ result: null, value: null, matching: null, parentIndex: null });
|
|
224
|
-
this.bcmOnSearchClear.emit(eventEmit);
|
|
225
|
-
await utils.delay(10);
|
|
226
|
-
return Promise.resolve();
|
|
227
|
-
}
|
|
228
|
-
onSearchValue(event, instance) {
|
|
229
|
-
const { value, id } = event.target;
|
|
230
|
-
const searchResult = (value === null || value === void 0 ? void 0 : value.length) >= this.minSearchLength ? searchState.searchData(id, value, null) : null;
|
|
231
|
-
const { bcmOnSearch, inputElement } = instance;
|
|
232
|
-
bcmOnSearch.emit({ result: searchResult === null || searchResult === void 0 ? void 0 : searchResult.result, value: inputElement === null || inputElement === void 0 ? void 0 : inputElement.value, matching: searchResult === null || searchResult === void 0 ? void 0 : searchResult.matching, parentIndex: searchResult === null || searchResult === void 0 ? void 0 : searchResult.parentIndex, nestedResult: searchResult === null || searchResult === void 0 ? void 0 : searchResult.nestedResult });
|
|
233
|
-
}
|
|
234
|
-
render() {
|
|
235
|
-
const { _id, placeholder, disabled, readonly } = this;
|
|
236
|
-
return index$1.h(index$1.Host, { onClick: () => { this.onBcmFocus(); this.onBcmSelect(); } }, index$1.h(inputTemplate.InputTemplate, { size: this.size, id: _id, type: "search", placeholder: placeholder, disabled: disabled, "full-width": true, readonly: readonly, clearable: this.isActiveClearable, handleFocus: () => this.handleFocus(), handleBlur: () => this.handleBlur(), handleChange: () => this.handleChange(), handleClear: () => this.handleClear(), handleInput: this.debounceHandler, ref: (el) => this.inputElement = el }));
|
|
237
|
-
}
|
|
238
|
-
get el() { return index$1.getElement(this); }
|
|
239
|
-
static get watchers() { return {
|
|
240
|
-
"data": ["dataChanged"]
|
|
241
|
-
}; }
|
|
242
|
-
};
|
|
243
|
-
BcmSearch.style = searchCss;
|
|
244
|
-
|
|
245
|
-
exports.bcm_search = BcmSearch;
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built with Stencil
|
|
3
|
-
* Copyright (c) Bromcom.
|
|
4
|
-
*/
|
|
5
|
-
import { Tooltip } from '@bcm/helpers';
|
|
6
|
-
import snq from 'snq';
|
|
7
|
-
import { StringHelper } from '../../../helper/string-helper';
|
|
8
|
-
import { pluralize } from '../../../utils/utils';
|
|
9
|
-
export class ListTagControl {
|
|
10
|
-
constructor(containerId, values, listId, selectedOtherTag, clearable) {
|
|
11
|
-
this.clearable = false;
|
|
12
|
-
this.containerId = containerId;
|
|
13
|
-
this.values = values;
|
|
14
|
-
this.listId = listId;
|
|
15
|
-
this.selectedOtherTag = selectedOtherTag;
|
|
16
|
-
this.clearable = clearable;
|
|
17
|
-
}
|
|
18
|
-
getTooltip(id, text) {
|
|
19
|
-
return new Tooltip({ message: text, targetId: id, placement: 'bottom' });
|
|
20
|
-
}
|
|
21
|
-
tagHtmlTemplate(tag, isOtherTag = false, otherTagIsSingle = false) {
|
|
22
|
-
return `<span class="bcm-tag__content dismissable ${!otherTagIsSingle && isOtherTag && (this.selectedOtherTag ? 'checkable checked' : '')}">
|
|
23
|
-
<span class="value">${tag.text}</span>
|
|
24
|
-
${otherTagIsSingle
|
|
25
|
-
? ''
|
|
26
|
-
: `
|
|
27
|
-
<span class="right close-button" bcm-list-tag-dismiss >
|
|
28
|
-
<bcm-icon icon="fal fa-times"></bcm-icon>
|
|
29
|
-
</span>`}
|
|
30
|
-
</span>`;
|
|
31
|
-
}
|
|
32
|
-
getContainer() {
|
|
33
|
-
return document.getElementById(this.containerId);
|
|
34
|
-
}
|
|
35
|
-
getContainerWidth() {
|
|
36
|
-
let tagContainerWidth = snq(() => document.getElementById(this.containerId).clientWidth, 0);
|
|
37
|
-
tagContainerWidth = (this.clearable ? tagContainerWidth - 20 : tagContainerWidth) - 20;
|
|
38
|
-
return [tagContainerWidth < 130 ? 130 : tagContainerWidth - 20, tagContainerWidth];
|
|
39
|
-
}
|
|
40
|
-
isClickDismiss(e) {
|
|
41
|
-
const path = e.path || (e.composedPath && e.composedPath());
|
|
42
|
-
const tag = path.find(element => element.attributes && element.attributes['bcm-list-tag-dismiss']);
|
|
43
|
-
return !!tag;
|
|
44
|
-
}
|
|
45
|
-
onClickControl(e, id, isOtherTag = false) {
|
|
46
|
-
const isDismiss = this.isClickDismiss(e);
|
|
47
|
-
let tooltipId = '';
|
|
48
|
-
if (isDismiss) {
|
|
49
|
-
this.onClickDismiss(id);
|
|
50
|
-
tooltipId = isOtherTag ? `bcm-list-input-tag-${this.listId}-other-tag` : `list-${this.listId}-${id}`;
|
|
51
|
-
this.getTooltip(tooltipId, '').hide();
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
isOtherTag ? this.onClickOtherTag(id) : this.onClickTag(id);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
calculateTags() {
|
|
58
|
-
const containerWidth = this.getContainerWidth();
|
|
59
|
-
const virtualDom = this.getContainer();
|
|
60
|
-
if (virtualDom) {
|
|
61
|
-
if (this.values && this.values.length > 0) {
|
|
62
|
-
if (containerWidth[0] > 0 && virtualDom) {
|
|
63
|
-
virtualDom.innerHTML = '';
|
|
64
|
-
this.values.slice(0, 50).map(value => {
|
|
65
|
-
const tag = document.createElement('div');
|
|
66
|
-
tag.classList.add('bcm-tag');
|
|
67
|
-
tag.id = `list-${this.listId}-${value.id}`;
|
|
68
|
-
// tag.title = value.tagTitle || value.text || '';
|
|
69
|
-
tag.onmouseenter = () => this.getTooltip(`list-${this.listId}-${value.id}`, value.tagTitle || value.text || '').show();
|
|
70
|
-
tag.onmouseleave = () => this.getTooltip(`list-${this.listId}-${value.id}`, value.tagTitle || value.text || '').hide();
|
|
71
|
-
tag.dataset.id = value.id;
|
|
72
|
-
tag.onclick = e => this.onClickControl(e, value.id);
|
|
73
|
-
tag.innerHTML = this.tagHtmlTemplate(Object.assign(Object.assign({}, value), { text: StringHelper.textLimitter(value.text, 10) }));
|
|
74
|
-
virtualDom.appendChild(tag);
|
|
75
|
-
});
|
|
76
|
-
let tags = virtualDom.querySelectorAll('.bcm-tag');
|
|
77
|
-
let otherTags = [];
|
|
78
|
-
let visibleTags = [];
|
|
79
|
-
const checkControl = () => {
|
|
80
|
-
const virtualDomTags = virtualDom.querySelectorAll('.bcm-tag');
|
|
81
|
-
if (visibleTags.length === 1 && (virtualDomTags === null || virtualDomTags === void 0 ? void 0 : virtualDomTags.length) === 1) {
|
|
82
|
-
visibleTags[0].innerHTML = this.tagHtmlTemplate({ text: '+1' }, false, true);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
let tagsWidth = Array.from(tags).reduce((acc, tag) => {
|
|
86
|
-
const tagClientWidth = tag.clientWidth > 50 ? tag.clientWidth : 50;
|
|
87
|
-
if (tagClientWidth > 0 && acc + tagClientWidth + 10 < containerWidth[0]) {
|
|
88
|
-
acc += tagClientWidth + 10;
|
|
89
|
-
visibleTags.push(tag);
|
|
90
|
-
const checkFreeSpace = tagClientWidth > 0 && acc + tagClientWidth + 10 < containerWidth[0];
|
|
91
|
-
!checkFreeSpace && containerWidth[1] < 70 && checkControl();
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
otherTags.push(tag);
|
|
95
|
-
tag.remove();
|
|
96
|
-
}
|
|
97
|
-
return acc;
|
|
98
|
-
}, 0);
|
|
99
|
-
const otherTagElement = this.values.slice(visibleTags.length);
|
|
100
|
-
const virtualDomLastElements = virtualDom.lastElementChild;
|
|
101
|
-
const otherTagTextControl = args => {
|
|
102
|
-
const { count, width } = args;
|
|
103
|
-
if (count > 999)
|
|
104
|
-
return '999+' + pluralize('item', count);
|
|
105
|
-
if (width > 100)
|
|
106
|
-
return `${count} ` + pluralize('item', count) + ' selected';
|
|
107
|
-
if (width < 100)
|
|
108
|
-
return `+${count < 10 ? count : '9'}`;
|
|
109
|
-
};
|
|
110
|
-
if (otherTags && otherTags.length > 0 && virtualDomLastElements && virtualDomLastElements.id !== `bcm-list-input-tag-${this.listId}-other-tag`) {
|
|
111
|
-
otherTags.push(virtualDomLastElements);
|
|
112
|
-
if (otherTags.length > 0) {
|
|
113
|
-
const otherCounter = otherTagElement.length + 1;
|
|
114
|
-
const createOthertagElement = {
|
|
115
|
-
id: `bcm-list-input-tag-${this.listId}-other-tag`,
|
|
116
|
-
text: otherTagTextControl({ count: otherCounter, width: containerWidth[1] }),
|
|
117
|
-
title: snq(() => otherTags
|
|
118
|
-
.map(tag => this.values.find(value => value.id == tag.dataset.id))
|
|
119
|
-
.sort((a, b) => +a._i - +b._i)
|
|
120
|
-
.slice(0, 15)
|
|
121
|
-
.map(item => StringHelper.textLimitter(item.tagTitle || item.text, 40, true))
|
|
122
|
-
.toString()
|
|
123
|
-
.split(',')
|
|
124
|
-
.join('\r\n') + (otherTags.length > 15 ? ('\r\n...') : ''), '...'),
|
|
125
|
-
};
|
|
126
|
-
virtualDomLastElements.remove();
|
|
127
|
-
visibleTags = visibleTags.filter(tag => tag.id !== virtualDomLastElements.id);
|
|
128
|
-
const hiddenTags = this.values.filter(value => !visibleTags.find(tag => tag.dataset.id == value.id)).map(value => value.id);
|
|
129
|
-
const otherTag = document.createElement('div');
|
|
130
|
-
const otherTagIds = hiddenTags.join(',');
|
|
131
|
-
const otherTagIsSingle = visibleTags.length === 0;
|
|
132
|
-
otherTag.classList.add('bcm-tag');
|
|
133
|
-
!otherTagIsSingle && otherTag.classList.add('bcm-tag--other');
|
|
134
|
-
otherTag.id = createOthertagElement.id;
|
|
135
|
-
// otherTag.title = createOthertagElement.title || false;
|
|
136
|
-
if (createOthertagElement.title) {
|
|
137
|
-
otherTag.onmouseenter = () => this.getTooltip(createOthertagElement.id, createOthertagElement.title).show();
|
|
138
|
-
otherTag.onmouseleave = () => this.getTooltip(createOthertagElement.id, createOthertagElement.title).hide();
|
|
139
|
-
}
|
|
140
|
-
otherTag.onclick = e => this.onClickControl(e, otherTagIds, otherTagIsSingle ? false : true);
|
|
141
|
-
otherTag.innerHTML = this.tagHtmlTemplate(createOthertagElement, true, otherTagIsSingle);
|
|
142
|
-
otherTag.dataset.ids = hiddenTags.join(',');
|
|
143
|
-
virtualDom.appendChild(otherTag);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
const otherTag = document.getElementById(`bcm-list-input-tag-${this.listId}-other-tag`);
|
|
147
|
-
const otherTagWidth = otherTag ? (otherTag.clientWidth && otherTag.clientWidth < 50 ? 50 : otherTag.clientWidth) : 200;
|
|
148
|
-
const tagsPerRow = Math.floor(containerWidth[0] - tagsWidth);
|
|
149
|
-
if (tagsPerRow > otherTagWidth) {
|
|
150
|
-
if (otherTag) {
|
|
151
|
-
const findElement = this.values.find(value => value.id == otherTag.dataset.ids.split(',')[0]);
|
|
152
|
-
const tag = document.createElement('div');
|
|
153
|
-
tag.classList.add('bcm-tag');
|
|
154
|
-
tag.id = `list-${this.listId}-${findElement.id}`;
|
|
155
|
-
// tag.title = findElement?.title || '';
|
|
156
|
-
tag.onmouseenter = () => this.getTooltip(`list-${this.listId}-${findElement.id}`, (findElement === null || findElement === void 0 ? void 0 : findElement.title) || '').show();
|
|
157
|
-
tag.onmouseleave = () => this.getTooltip(`list-${this.listId}-${findElement.id}`, (findElement === null || findElement === void 0 ? void 0 : findElement.title) || '').hide();
|
|
158
|
-
tag.dataset.id = findElement.id;
|
|
159
|
-
tag.onclick = e => this.onClickControl(e, findElement === null || findElement === void 0 ? void 0 : findElement.id);
|
|
160
|
-
tag.innerHTML = this.tagHtmlTemplate(Object.assign(Object.assign({}, findElement), { text: StringHelper.textLimitter(findElement.text, 10) }));
|
|
161
|
-
const otherTagElement = document.getElementById(`bcm-list-input-tag-${this.listId}-other-tag`);
|
|
162
|
-
otherTagElement.remove();
|
|
163
|
-
virtualDom.appendChild(tag);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
virtualDom.innerHTML = '';
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|