@descope/web-components-ui 3.7.3 → 3.9.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/cjs/index.cjs.js +11810 -11038
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/index.esm.js +6836 -6069
- package/dist/index.esm.js.map +1 -1
- package/dist/umd/8961.js +1 -1
- package/dist/umd/8961.js.map +1 -1
- package/dist/umd/DescopeDev.js +1 -1
- package/dist/umd/DescopeDev.js.map +1 -1
- package/dist/umd/descope-multi-line-mappings.js +339 -0
- package/dist/umd/descope-multi-line-mappings.js.LICENSE.txt +5 -0
- package/dist/umd/descope-multi-line-mappings.js.map +1 -0
- package/dist/umd/descope-multi-select-combo-box.js +2 -0
- package/dist/umd/descope-multi-select-combo-box.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +36 -34
- package/src/index.cjs.js +1 -1
- package/src/index.js +0 -1
- package/src/theme/components/index.js +3 -1
- package/stories/descope-new-password.stories.js +6 -0
- package/stories/descope-policy-validation.stories.js +8 -0
- package/dist/umd/descope-multi-select-combo-box-index-js.js +0 -2
- package/dist/umd/descope-multi-select-combo-box-index-js.js.map +0 -1
- package/src/components/descope-multi-select-combo-box/MultiSelectComboBoxClass.js +0 -684
- package/src/components/descope-multi-select-combo-box/index.js +0 -6
- package/src/theme/components/multiSelectComboBox.js +0 -91
- package/stories/descope-multi-select-combo-box.stories.js +0 -183
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descope/web-components-ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs/index.cjs.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -52,10 +52,10 @@
|
|
|
52
52
|
"webpack-cli": "^7.0.0",
|
|
53
53
|
"webpack-dev-server": "^5.0.0",
|
|
54
54
|
"webpack-subresource-integrity": "5.2.0-rc.1",
|
|
55
|
-
"rollup-replace-plugin": "3.
|
|
56
|
-
"test-drivers": "3.
|
|
57
|
-
"webpack-extract-font-loader": "3.
|
|
58
|
-
"webpack-replace-plugin": "3.
|
|
55
|
+
"rollup-replace-plugin": "3.9.0",
|
|
56
|
+
"test-drivers": "3.9.0",
|
|
57
|
+
"webpack-extract-font-loader": "3.9.0",
|
|
58
|
+
"webpack-replace-plugin": "3.9.0"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@vaadin/checkbox": "24.3.4",
|
|
@@ -79,34 +79,36 @@
|
|
|
79
79
|
"libphonenumber-js": "^1.11.12",
|
|
80
80
|
"lodash.debounce": "4.0.8",
|
|
81
81
|
"lodash.merge": "4.6.2",
|
|
82
|
-
"@descope-ui/
|
|
83
|
-
"@descope-ui/descope-
|
|
84
|
-
"@descope-ui/
|
|
85
|
-
"@descope-ui/descope-apps-list": "3.
|
|
86
|
-
"@descope-ui/descope-autocomplete-field": "3.
|
|
87
|
-
"@descope-ui/descope-
|
|
88
|
-
"@descope-ui/descope-
|
|
89
|
-
"@descope-ui/descope-button": "3.
|
|
90
|
-
"@descope-ui/descope-collapsible-container": "3.
|
|
91
|
-
"@descope-ui/descope-combo-box": "3.
|
|
92
|
-
"@descope-ui/descope-
|
|
93
|
-
"@descope-ui/descope-
|
|
94
|
-
"@descope-ui/descope-
|
|
95
|
-
"@descope-ui/descope-list": "3.
|
|
96
|
-
"@descope-ui/descope-
|
|
97
|
-
"@descope-ui/descope-
|
|
98
|
-
"@descope-ui/descope-
|
|
99
|
-
"@descope-ui/descope-
|
|
100
|
-
"@descope-ui/descope-
|
|
101
|
-
"@descope-ui/descope-
|
|
102
|
-
"@descope-ui/descope-
|
|
103
|
-
"@descope-ui/descope-text": "3.
|
|
104
|
-
"@descope-ui/descope-timer
|
|
105
|
-
"@descope-ui/descope-
|
|
106
|
-
"@descope-ui/descope-
|
|
107
|
-
"@descope-ui/descope-
|
|
108
|
-
"@descope-ui/descope-
|
|
109
|
-
"@descope-ui/descope-
|
|
82
|
+
"@descope-ui/descope-address-field": "3.9.0",
|
|
83
|
+
"@descope-ui/descope-country-subdivision-city-field": "3.9.0",
|
|
84
|
+
"@descope-ui/common": "3.9.0",
|
|
85
|
+
"@descope-ui/descope-apps-list": "3.9.0",
|
|
86
|
+
"@descope-ui/descope-autocomplete-field": "3.9.0",
|
|
87
|
+
"@descope-ui/descope-badge": "3.9.0",
|
|
88
|
+
"@descope-ui/descope-avatar": "3.9.0",
|
|
89
|
+
"@descope-ui/descope-button": "3.9.0",
|
|
90
|
+
"@descope-ui/descope-collapsible-container": "3.9.0",
|
|
91
|
+
"@descope-ui/descope-combo-box": "3.9.0",
|
|
92
|
+
"@descope-ui/descope-enriched-text": "3.9.0",
|
|
93
|
+
"@descope-ui/descope-icon": "3.9.0",
|
|
94
|
+
"@descope-ui/descope-image": "3.9.0",
|
|
95
|
+
"@descope-ui/descope-list": "3.9.0",
|
|
96
|
+
"@descope-ui/descope-link": "3.9.0",
|
|
97
|
+
"@descope-ui/descope-list-item": "3.9.0",
|
|
98
|
+
"@descope-ui/descope-multi-line-mappings": "3.9.0",
|
|
99
|
+
"@descope-ui/descope-outbound-app-button": "3.9.0",
|
|
100
|
+
"@descope-ui/descope-outbound-apps": "3.9.0",
|
|
101
|
+
"@descope-ui/descope-ponyhot": "3.9.0",
|
|
102
|
+
"@descope-ui/descope-recovery-codes": "3.9.0",
|
|
103
|
+
"@descope-ui/descope-text": "3.9.0",
|
|
104
|
+
"@descope-ui/descope-timer": "3.9.0",
|
|
105
|
+
"@descope-ui/descope-timer-button": "3.9.0",
|
|
106
|
+
"@descope-ui/descope-tooltip": "3.9.0",
|
|
107
|
+
"@descope-ui/descope-attachment": "3.9.0",
|
|
108
|
+
"@descope-ui/descope-trusted-devices": "3.9.0",
|
|
109
|
+
"@descope-ui/descope-anchored": "3.9.0",
|
|
110
|
+
"@descope-ui/descope-password-strength": "3.9.0",
|
|
111
|
+
"@descope-ui/descope-multi-select-combo-box": "3.9.0"
|
|
110
112
|
},
|
|
111
113
|
"overrides": {
|
|
112
114
|
"@vaadin/avatar": "24.3.4",
|
|
@@ -145,7 +147,7 @@
|
|
|
145
147
|
"e2e:container": "MONOREPO_ROOT=$(git rev-parse --show-toplevel) && PROJECT_DIR=$(pwd) && PROJECT_RELATIVE_PATH=${PROJECT_DIR#$MONOREPO_ROOT/} && docker run --rm --network host -v $MONOREPO_ROOT:/work/ -w /work/$PROJECT_RELATIVE_PATH descope-wcui-playwright-image",
|
|
146
148
|
"e2e:container:updateSnapshots": "npm run e2e:container -- --update-snapshots=all",
|
|
147
149
|
"container:build": "docker build -t descope-wcui-playwright-image .",
|
|
148
|
-
"container:debug": "MONOREPO_ROOT=$(git rev-parse --show-toplevel) && PROJECT_DIR=$(pwd) && PROJECT_RELATIVE_PATH=${PROJECT_DIR#$MONOREPO_ROOT/} && docker run --rm --network host -v $MONOREPO_ROOT:/work/ -w /work/$PROJECT_RELATIVE_PATH -it mcr.microsoft.com/playwright:v1.58.
|
|
150
|
+
"container:debug": "MONOREPO_ROOT=$(git rev-parse --show-toplevel) && PROJECT_DIR=$(pwd) && PROJECT_RELATIVE_PATH=${PROJECT_DIR#$MONOREPO_ROOT/} && docker run --rm --network host -v $MONOREPO_ROOT:/work/ -w /work/$PROJECT_RELATIVE_PATH -it mcr.microsoft.com/playwright:v1.58.2-noble /bin/bash",
|
|
149
151
|
"print-components": "nx show projects --projects 'packages/web-components/components/*'",
|
|
150
152
|
"print-components:affected": "nx show projects --projects 'packages/web-components/components/*' --affected",
|
|
151
153
|
"print-components:affected:ci": "nx show projects --projects 'packages/web-components/components/*' --affected --base=origin/main",
|
package/src/index.cjs.js
CHANGED
|
@@ -31,7 +31,7 @@ export { ButtonSelectionGroupItemClass } from './components/button-selection-gro
|
|
|
31
31
|
export { ModalClass } from './components/descope-modal/ModalClass';
|
|
32
32
|
export { NotificationClass } from './components/descope-notification/NotificationClass';
|
|
33
33
|
export { GridClass } from './components/descope-grid/GridClass';
|
|
34
|
-
export { MultiSelectComboBoxClass } from '
|
|
34
|
+
export { MultiSelectComboBoxClass } from '@descope-ui/descope-multi-select-combo-box/class';
|
|
35
35
|
export { UserAttributeClass } from './components/descope-user-attribute/UserAttributeClass';
|
|
36
36
|
export { UserAuthMethodClass } from './components/descope-user-auth-method/UserAuthMethodClass';
|
|
37
37
|
export { MappingsFieldClass } from './components/mapping-fields/descope-mappings-field/MappingsFieldClass';
|
package/src/index.js
CHANGED
|
@@ -23,7 +23,6 @@ export * from './components/descope-upload-file';
|
|
|
23
23
|
export * from './components/button-selection-group-fields/descope-button-selection-group';
|
|
24
24
|
export * from './components/button-selection-group-fields/descope-button-multi-selection-group';
|
|
25
25
|
export * from './components/descope-grid';
|
|
26
|
-
export * from './components/descope-multi-select-combo-box';
|
|
27
26
|
export * from './components/descope-modal';
|
|
28
27
|
export * from './components/descope-notification';
|
|
29
28
|
export * from './components/mapping-fields/descope-mappings-field';
|
|
@@ -10,6 +10,8 @@ import * as image from '@descope-ui/descope-image/theme';
|
|
|
10
10
|
import * as appsList from '@descope-ui/descope-apps-list/theme';
|
|
11
11
|
import * as list from '@descope-ui/descope-list/theme';
|
|
12
12
|
import * as listItem from '@descope-ui/descope-list-item/theme';
|
|
13
|
+
import * as multiLineMappings from '@descope-ui/descope-multi-line-mappings/theme';
|
|
14
|
+
import * as multiSelectComboBox from '@descope-ui/descope-multi-select-combo-box/theme';
|
|
13
15
|
import * as autocompleteField from '@descope-ui/descope-autocomplete-field/theme';
|
|
14
16
|
import * as addressField from '@descope-ui/descope-address-field/theme';
|
|
15
17
|
import * as timer from '@descope-ui/descope-timer/theme';
|
|
@@ -48,7 +50,6 @@ import * as buttonMultiSelectionGroup from './buttonSelectionGroup/buttonMultiSe
|
|
|
48
50
|
import * as modal from './modal';
|
|
49
51
|
import * as grid from './grid';
|
|
50
52
|
import * as notificationCard from './notificationCard';
|
|
51
|
-
import * as multiSelectComboBox from './multiSelectComboBox';
|
|
52
53
|
import * as mappingsField from './mappingsField';
|
|
53
54
|
import * as userAttribute from './userAttribute';
|
|
54
55
|
import * as userAuthMethod from './userAuthMethod';
|
|
@@ -116,6 +117,7 @@ const components = {
|
|
|
116
117
|
dateField,
|
|
117
118
|
list,
|
|
118
119
|
listItem,
|
|
120
|
+
multiLineMappings,
|
|
119
121
|
appsList,
|
|
120
122
|
scopesList,
|
|
121
123
|
thirdPartyAppLogo,
|
|
@@ -45,6 +45,11 @@ const policyData = [
|
|
|
45
45
|
message: '1 uppercase letter',
|
|
46
46
|
pattern: '[A-Z]',
|
|
47
47
|
},
|
|
48
|
+
{
|
|
49
|
+
id: 'anyletter',
|
|
50
|
+
message: '1 letter (any case)',
|
|
51
|
+
pattern: '[a-zA-Z]',
|
|
52
|
+
},
|
|
48
53
|
{
|
|
49
54
|
id: 'number',
|
|
50
55
|
message: '1 number',
|
|
@@ -193,6 +198,7 @@ Default.args = {
|
|
|
193
198
|
'minlength',
|
|
194
199
|
'lowercase',
|
|
195
200
|
'uppercase',
|
|
201
|
+
'anyletter',
|
|
196
202
|
'number',
|
|
197
203
|
'nonalphanumeric',
|
|
198
204
|
'passwordstrength',
|
|
@@ -20,6 +20,11 @@ const availablePolicies = [
|
|
|
20
20
|
message: '1 uppercase letter',
|
|
21
21
|
pattern: '[A-Z]',
|
|
22
22
|
},
|
|
23
|
+
{
|
|
24
|
+
id: 'anyletter',
|
|
25
|
+
message: '1 letter (any case)',
|
|
26
|
+
pattern: '[a-zA-Z]',
|
|
27
|
+
},
|
|
23
28
|
{
|
|
24
29
|
id: 'number',
|
|
25
30
|
message: '1 number',
|
|
@@ -40,6 +45,7 @@ const Template = ({
|
|
|
40
45
|
useNumber,
|
|
41
46
|
useLowercase,
|
|
42
47
|
useUppercase,
|
|
48
|
+
useAnyLetter,
|
|
43
49
|
useSymbol,
|
|
44
50
|
useMinLength,
|
|
45
51
|
minLengthValue,
|
|
@@ -48,6 +54,7 @@ const Template = ({
|
|
|
48
54
|
useMinLength ? 'minlength' : null,
|
|
49
55
|
useLowercase ? 'lowercase' : null,
|
|
50
56
|
useUppercase ? 'uppercase' : null,
|
|
57
|
+
useAnyLetter ? 'anyletter' : null,
|
|
51
58
|
useNumber ? 'number' : null,
|
|
52
59
|
useSymbol ? 'nonalphanumeric' : null,
|
|
53
60
|
].filter(Boolean);
|
|
@@ -86,6 +93,7 @@ Default.args = {
|
|
|
86
93
|
useNumber: false,
|
|
87
94
|
useLowercase: false,
|
|
88
95
|
useUppercase: false,
|
|
96
|
+
useAnyLetter: false,
|
|
89
97
|
useSymbol: false,
|
|
90
98
|
useMinLength: false,
|
|
91
99
|
minLengthValue: undefined,
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_descope_web_components_ui=self.webpackChunk_descope_web_components_ui||[]).push([[1331],{12848(e,t,o){o.r(t),o.d(t,{MultiSelectComboBoxClass:()=>I,componentName:()=>l}),o(51408);var r=o(9696),i=o(97810),n=o(73551),a=o(79365);const l=(0,i.xE)("multi-select-combo-box"),{host:s,inputField:p,inputElement:d,placeholder:c,toggle:u,clearButton:m,label:h,requiredIndicator:b,helperText:y,errorMessage:g,chip:v,chipLabel:f,overflowChipFirstBorder:x,overflowChipSecondBorder:w}={host:{selector:()=>":host"},inputField:{selector:"::part(input-field)"},inputElement:{selector:"input"},placeholder:{selector:"> input:placeholder-shown"},toggle:{selector:"::part(toggle-button)"},clearButton:{selector:"::part(clear-button)"},label:{selector:"::part(label)"},requiredIndicator:{selector:"[required]::part(required-indicator)::after"},helperText:{selector:"::part(helper-text)"},errorMessage:{selector:"::part(error-message)"},chip:{selector:"vaadin-multi-select-combo-box-chip"},chipLabel:{selector:"vaadin-multi-select-combo-box-chip::part(label)"},overflowChipFirstBorder:{selector:"vaadin-multi-select-combo-box-chip[slot='overflow']::before"},overflowChipSecondBorder:{selector:"vaadin-multi-select-combo-box-chip[slot='overflow']::after"}},I=(0,r.Zz)((0,a.RF)({mappings:{hostWidth:{...s,property:"width"},hostDirection:{...s,property:"direction"},fontSize:[{},s],chipFontSize:{...f,property:"font-size"},fontFamily:[h,c,p,y,g,f],labelFontSize:{...h,property:"font-size"},labelFontWeight:{...h,property:"font-weight"},inputValueFontWeight:{...p,property:"font-weight"},inputPlaceholderFontWeight:{...c,property:"font-weight"},helperTextFontWeight:{...y,property:"font-weight"},errorMessageFontWeight:{...g,property:"font-weight"},labelTextColor:[{...h,property:"color"},{...b,property:"color"}],errorMessageTextColor:{...g,property:"color"},errorMessageIcon:{...g,property:"background-image"},errorMessageIconSize:{...g,property:"background-size"},errorMessageIconPadding:{...g,property:"padding-inline-start"},errorMessageIconRepeat:{...g,property:"background-repeat"},errorMessageIconPosition:{...g,property:"background-position"},errorMessageFontSize:{...g,property:"font-size"},inputHeight:{...p,property:"min-height"},inputBackgroundColor:{...p,property:"background-color"},inputBorderColor:{...p,property:"border-color"},inputBorderWidth:{...p,property:"border-width"},inputBorderStyle:{...p,property:"border-style"},inputBorderRadius:{...p,property:"border-radius"},labelRequiredIndicator:{...b,property:"content"},inputValueTextColor:{...p,property:"color"},inputPlaceholderTextColor:{...c,property:"color"},inputDropdownButtonCursor:[{...u,property:"cursor"},{...m,property:"cursor"}],inputDropdownButtonColor:[{...u,property:"color"},{...m,property:"color"}],inputDropdownButtonSize:[{...u,property:"font-size"},{...m,property:"font-size"}],inputDropdownButtonOffset:[{...u,property:"margin-right"},{...u,property:"margin-left"}],inputOutlineColor:{...p,property:"outline-color"},inputOutlineWidth:{...p,property:"outline-width"},inputOutlineStyle:{...p,property:"outline-style"},inputOutlineOffset:{...p,property:"outline-offset"},inputHorizontalPadding:[{...d,property:"padding-left"},{...d,property:"padding-right"},{...p,property:"padding-inline-start"}],inputVerticalPadding:[{...p,property:"padding-top"},{...p,property:"padding-bottom"}],chipTextColor:{...f,property:"color"},chipBackgroundColor:[{...v,property:"background-color"},{...x,property:"border-color"},{...w,property:"border-color"}],labelPosition:{...h,property:"position"},labelTopPosition:{...h,property:"top"},labelLeftPosition:{...h,property:"left"},labelHorizontalPosition:[{...h,property:"left"},{...h,property:"right"}],inputTransformY:{...h,property:"transform"},inputTransition:{...h,property:"transition"},marginInlineStart:{...h,property:"margin-inline-start"},placeholderOpacity:{...c,property:"opacity"},inputVerticalAlignment:{...p,property:"align-items"},overlayBackground:{property:()=>I.cssVarList.overlay.backgroundColor},overlayTextColor:{property:()=>I.cssVarList.overlay.textColor},overlayBorder:{property:()=>I.cssVarList.overlay.border},overlayFontSize:{property:()=>I.cssVarList.overlay.fontSize},overlayFontFamily:{property:()=>I.cssVarList.overlay.fontFamily},overlayCursor:{property:()=>I.cssVarList.overlay.cursor},overlayItemBoxShadow:{property:()=>I.cssVarList.overlay.itemBoxShadow},overlayItemPaddingInlineStart:{property:()=>I.cssVarList.overlay.itemPaddingInlineStart},overlayItemPaddingInlineEnd:{property:()=>I.cssVarList.overlay.itemPaddingInlineEnd}}}),a.VO,(0,a.mA)({name:"overlay",selector:"vaadin-multi-select-combo-box-internal",mappings:{backgroundColor:{selector:"vaadin-multi-select-combo-box-scroller"},minHeight:{selector:"vaadin-multi-select-combo-box-overlay"},margin:{selector:"vaadin-multi-select-combo-box-overlay"},cursor:{selector:"vaadin-multi-select-combo-box-item"},fontFamily:{selector:"vaadin-multi-select-combo-box-item"},textColor:{selector:"vaadin-multi-select-combo-box-item",property:"color"},fontSize:{selector:"vaadin-multi-select-combo-box-item"},itemBoxShadow:{selector:"vaadin-multi-select-combo-box-item",property:"box-shadow"},itemPaddingInlineStart:{selector:"vaadin-multi-select-combo-box-item",property:"padding-inline-start"},itemPaddingInlineEnd:{selector:"vaadin-multi-select-combo-box-item",property:"padding-inline-end"}},forward:{include:!1,attributes:["size"]}}),(0,a.OZ)({proxyProps:["selectionStart"],inputEvent:"selected-items-changed"}),a._$,a.tQ,e=>class extends e{static get observedAttributes(){return["readonly"]}#e=({displayName:e,value:t,label:o})=>{const r=document.createElement("span");return r.setAttribute("data-name",o),r.setAttribute("data-id",t),r.textContent=e||o,r.outerHTML};#t;#o=[];get defaultValues(){const e=this.getAttribute("default-values");if(e)try{const t=JSON.parse(e);if(this.isValidDataType(t))return t}catch(e){console.error('could not parse data string from attribute "default-values" -',e.message)}return[]}get renderItem(){return this.#e}set renderItem(e){this.#e=e,this.renderItems()}get data(){if(this.#t)return this.#t;const e=this.getAttribute("data");if(e)try{const t=JSON.parse(e);if(this.isValidDataType(t))return t}catch(e){console.error('could not parse data string from attribute "data" -',e.message)}return[]}set data(e){this.isValidDataType(e)&&(this.#t=e,this.renderItems())}get allowCustomValues(){return"true"===this.getAttribute("allow-custom-value")}get minItemsSelection(){return parseInt(this.getAttribute("min-items-selection"),10)||0}get maxItemsSelection(){return parseInt(this.getAttribute("max-items-selection"),10)||0}isValidDataType(e){const t=Array.isArray(e);return t||console.error("data and default-values must be an array, received:",e),t}getItemsTemplate(){return this.data?.reduce?.((e,t)=>e+(this.renderItem?.(t||{})||""),"")}renderItems(){const e=this.getItemsTemplate();e&&(this.innerHTML=e)}updateSelectedItems(){const e=this.baseElement.selectedItems?.map(e=>e.getAttribute("data-id"))||[];e.length>0&&(this.value=e),0===this.value.length&&this.setDefaultValues()}customValueTransformFn(e){return e}setComboBoxDescriptor(){const e=Object.getOwnPropertyDescriptor(this.inputElement.constructor.prototype,"value"),t=this;Object.defineProperties(this.inputElement,{value:{...e,set(o){const r=t.customValueTransformFn(o)||"";r!==this.value&&e.set.call(this,r)}}})}#r(e){return Array.from(new Map(e.map(e=>[e.getAttribute("data-id"),e])).values())}#i(){const e=Array.from(this.children),t=this.#r(e);e.length?(this.removeAttribute("has-no-options"),t.forEach(e=>{Object.defineProperty(e,"data-name",{value:e.getAttribute("data-name"),configurable:!0,writable:!0}),Object.defineProperty(e,"data-id",{value:e.getAttribute("data-id"),configurable:!0,writable:!0})}),this.baseElement.items=t,setTimeout(()=>{this.updateSelectedItems()},0)):(this.baseElement.items=[],this.setAttribute("has-no-options","")),this.baseElement.renderer=(e,t,o)=>{e.innerHTML=o.item.outerHTML}}#n(){const e=this.baseElement.shadowRoot.querySelector("vaadin-multi-select-combo-box-internal").shadowRoot.querySelector("vaadin-multi-select-combo-box-overlay");e._attachOverlay=()=>{e.bringToFront()},e._detachOverlay=()=>{},e._enterModalState=()=>{}}#a(){this.allowCustomValues&&this.baseElement.addEventListener("custom-value-set",e=>{const t=this.#e({label:e.detail,displayName:e.detail,value:e.detail});this.innerHTML+=t,this.baseElement._lastFilter="",setTimeout(()=>{this.value=[...this.value,e.detail]},0)})}setGetValidity(){this.getValidity=function(){if(this.pattern){const e=new RegExp(this.pattern);if(this.value.some(t=>!e.test(t)))return{patternMismatch:!0}}return this.isRequired&&!this.value.length?{valueMissing:!0}:this.isRequired&&this.minItemsSelection&&this.value.length<this.minItemsSelection?{rangeUnderflow:!0}:this.maxItemsSelection&&this.value.length>this.maxItemsSelection?{rangeOverflow:!0}:{}};const e=this;this.baseElement.checkValidity=()=>e.validity.valid}init(){super.init?.(),this.setGetValidity(),this.#a(),this.renderItems(),(0,i.mx)(this,this.renderItems.bind(this),{includeAttrs:["data"]}),(0,i.Ge)(this,this.#i.bind(this)),(0,i.EA)(this,this.baseElement,{includeAttrs:["placeholder"]}),setTimeout(()=>{this.setComboBoxDescriptor(),this.#n()}),this.setDefaultValues(),this.baseElement.addEventListener("selected-items-changed",()=>{this.#l(),this.dispatchEvent(new CustomEvent("input",{bubbles:!0}))})}setDefaultValues(){this.defaultValues.length>0&&(this.value=this.defaultValues)}#l(){this.#o=this.baseElement.selectedItems?.map(e=>e.getAttribute("data-id"))||[]}set value(e){if(e&&e.length>0){const t=this.baseElement.items?.filter(t=>e.includes(t["data-id"]));if(this.allowCustomValues){const o=t?.map(e=>e.getAttribute("data-id"))||[],r=e.filter(e=>!o.includes(e));if(r.length){const t=r.reduce((e,t)=>e+this.#e({label:t,displayName:t,value:t}),"");return this.innerHTML+=t,void setTimeout(()=>{this.value=e},0)}}const o=t?.map(e=>e.getAttribute("data-id"))||[];(0,r.AG)(this.#o,o)||(this.baseElement.selectedItems=t)}else this.baseElement.selectedItems=[]}get value(){return this.#o}attributeChangedCallback(e,t,o){super.attributeChangedCallback?.(e,t,o),"readonly"===e&&this.onReadOnlyChange(null!==o&&"true"===o)}onReadOnlyChange(e){e?this.baseElement?.shadowRoot?.querySelector("vaadin-multi-select-combo-box-internal")?.setAttribute("inert",e):this.baseElement?.shadowRoot?.querySelector("vaadin-multi-select-combo-box-internal")?.removeAttribute("inert")}})((0,a.tz)({slots:["","prefix"],wrappedEleName:"vaadin-multi-select-combo-box",style:()=>`\n\t\t:host {\n\t\t\tdisplay: inline-flex;\n\t\t\tbox-sizing: border-box;\n\t\t\t-webkit-mask-image: none;\n\t\t}\n\t\t${(0,n.cy)(I.cssVarList)}\n\t\t${(0,n.fu)("vaadin-multi-select-combo-box")}\n\t\t${(0,n.lS)("vaadin-multi-select-combo-box")}\n\t\t${(0,n.I4)("vaadin-multi-select-combo-box")}\n\n\t\tvaadin-multi-select-combo-box {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t\tvaadin-multi-select-combo-box::before {\n\t\t\theight: initial;\n\t\t}\n\t\tvaadin-multi-select-combo-box [slot="input"] {\n\t\t\t-webkit-mask-image: none;\n\t\t\tmin-height: 0;\n align-self: center;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\tvaadin-multi-select-combo-box[readonly] [slot="input"] {\n flex-grow: 1;\n flex-basis: 4em;\n\t\t}\n\n\t\t::part(input-field) {\n padding: 0;\n\t\t\tbox-shadow: none;\n\t\t}\n ${(0,n.$J)("vaadin-multi-select-combo-box")}\n :host([has-label]) vaadin-multi-select-combo-box-chip::part(label) {\n display: block;\n }\n\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::before,\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::after {\n left: -4px;\n right: -4px;\n border-left-width: 0;\n border-inline-start-style: solid;\n border-inline-start-width: 2px;\n }\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::after {\n left: -8px;\n right: -8px;\n }\n\n :host([has-no-options][allow-custom-value='true']) ::part(toggle-button) {\n display: none;\n }\n\n ${(0,n.Kl)()}\n\n vaadin-multi-select-combo-box::part(toggle-button),\n vaadin-multi-select-combo-box::part(clear-button) {\n align-self: center;\n }\n\n vaadin-multi-select-combo-box[label-type="floating"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-multi-select-combo-box[label-type="floating"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\n\t\t`,excludeAttrsSync:["tabindex","size","data","placeholder","style"],componentName:l,includeForwardProps:["items","renderer","selectedItems"]}));customElements.define(l,I)}}]);
|
|
2
|
-
//# sourceMappingURL=descope-multi-select-combo-box-index-js.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"descope-multi-select-combo-box-index-js.js","mappings":"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","sources":["webpack://@descope/web-components-ui/./src/components/descope-multi-select-combo-box/MultiSelectComboBoxClass.js","webpack://@descope/web-components-ui/./src/components/descope-multi-select-combo-box/index.js"],"sourcesContent":["import { compose, compareArraysUnordered } from '../../helpers';\nimport {\n forwardAttrs,\n getComponentName,\n observeAttributes,\n observeChildren,\n} from '../../helpers/componentHelpers';\nimport {\n resetInputLabelPosition,\n resetInputCursor,\n resetInputPlaceholder,\n resetInputReadonlyStyle,\n useHostExternalPadding,\n inputFloatingLabelStyle,\n} from '../../helpers/themeHelpers/resetHelpers';\nimport {\n createStyleMixin,\n draggableMixin,\n createProxy,\n componentNameValidationMixin,\n portalMixin,\n proxyInputMixin,\n changeMixin,\n} from '../../mixins';\n\nexport const componentName = getComponentName('multi-select-combo-box');\n\nconst multiSelectComboBoxMixin = (superclass) =>\n class MultiSelectComboBoxMixinClass extends superclass {\n static get observedAttributes() {\n return ['readonly'];\n }\n\n #renderItem = ({ displayName, value, label }) => {\n const ele = document.createElement('span');\n ele.setAttribute('data-name', label);\n ele.setAttribute('data-id', value);\n ele.textContent = displayName || label;\n\n return ele.outerHTML;\n };\n\n #data;\n\n #value = [];\n\n get defaultValues() {\n const defaultValuesAttr = this.getAttribute('default-values');\n if (defaultValuesAttr) {\n try {\n const defaultValues = JSON.parse(defaultValuesAttr);\n if (this.isValidDataType(defaultValues)) {\n return defaultValues;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"default-values\" -', e.message);\n }\n }\n return [];\n }\n\n get renderItem() {\n return this.#renderItem;\n }\n\n set renderItem(renderFn) {\n this.#renderItem = renderFn;\n this.renderItems();\n }\n\n get data() {\n if (this.#data) return this.#data;\n\n const dataAttr = this.getAttribute('data');\n\n if (dataAttr) {\n try {\n const data = JSON.parse(dataAttr);\n if (this.isValidDataType(data)) {\n return data;\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('could not parse data string from attribute \"data\" -', e.message);\n }\n }\n\n return [];\n }\n\n set data(data) {\n if (this.isValidDataType(data)) {\n this.#data = data;\n this.renderItems();\n }\n }\n\n get allowCustomValues() {\n return this.getAttribute('allow-custom-value') === 'true';\n }\n\n get minItemsSelection() {\n return parseInt(this.getAttribute('min-items-selection'), 10) || 0;\n }\n\n get maxItemsSelection() {\n return parseInt(this.getAttribute('max-items-selection'), 10) || 0;\n }\n\n isValidDataType(data) {\n const isValid = Array.isArray(data);\n if (!isValid) {\n // eslint-disable-next-line no-console\n console.error('data and default-values must be an array, received:', data);\n }\n\n return isValid;\n }\n\n getItemsTemplate() {\n return this.data?.reduce?.((acc, item) => acc + (this.renderItem?.(item || {}) || ''), '');\n }\n\n renderItems() {\n const template = this.getItemsTemplate();\n if (template) this.innerHTML = template;\n }\n\n updateSelectedItems() {\n // This is a list of all the selected items, including ones that may have been removed from the DOM\n const currentSelected =\n this.baseElement.selectedItems?.map((item) => item.getAttribute('data-id')) || [];\n\n // if there are selected items, we want to trigger a potential update to the value if some child elements were removed\n if (currentSelected.length > 0) {\n // setting the value checks that the selected items are still in the DOM and will not set the value if they are not\n this.value = currentSelected;\n }\n\n // otherwise, if default value is specified, set default value as selected item\n if (this.value.length === 0) {\n this.setDefaultValues();\n }\n }\n\n customValueTransformFn(val) {\n return val;\n }\n\n // We want to override Vaadin's Combo Box value setter. This is needed since Vaadin couples between the\n // field that it searches the value, and the finaly display value of the input.\n // We provide a custom transform function to override that behavior.\n setComboBoxDescriptor() {\n const valueDescriptor = Object.getOwnPropertyDescriptor(\n this.inputElement.constructor.prototype,\n 'value'\n );\n\n const comboBox = this;\n\n Object.defineProperties(this.inputElement, {\n value: {\n ...valueDescriptor,\n set(val) {\n const transformedValue = comboBox.customValueTransformFn(val) || '';\n\n if (transformedValue === this.value) {\n return;\n }\n\n valueDescriptor.set.call(this, transformedValue);\n },\n },\n });\n }\n\n // To prevent duplicate items for the multi select options, we dedup them based on the \"data-id\" attribute\n\n #dedupItems(items) {\n return Array.from(\n new Map(items.map((item) => [item.getAttribute('data-id'), item])).values()\n );\n }\n\n // vaadin api is to set props on their combo box node,\n // in order to avoid it, we are passing the children of this component\n // to the items & renderer props, so it will be used as the combo box items\n #onChildrenChange() {\n const items = Array.from(this.children);\n const dedupItems = this.#dedupItems(items);\n\n // we want the data-name attribute to be accessible as an object attribute\n if (items.length) {\n this.removeAttribute('has-no-options');\n\n dedupItems.forEach((node) => {\n Object.defineProperty(node, 'data-name', {\n value: node.getAttribute('data-name'),\n configurable: true,\n writable: true,\n });\n Object.defineProperty(node, 'data-id', {\n value: node.getAttribute('data-id'),\n configurable: true,\n writable: true,\n });\n });\n\n this.baseElement.items = dedupItems;\n\n setTimeout(() => {\n // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden\n this.updateSelectedItems();\n }, 0);\n } else {\n this.baseElement.items = [];\n this.setAttribute('has-no-options', '');\n }\n\n // use vaadin combobox custom renderer to render options as HTML\n // and not via default renderer, which renders only the data-name's value\n // in its own HTML template\n this.baseElement.renderer = (root, combo, model) => {\n root.innerHTML = model.item.outerHTML;\n };\n }\n\n // the default vaadin behavior is to attach the overlay to the body when opened\n // we do not want that because it's difficult to style the overlay in this way\n // so we override it to open inside the shadow DOM\n #overrideOverlaySettings() {\n const overlay = this.baseElement.shadowRoot\n .querySelector('vaadin-multi-select-combo-box-internal')\n .shadowRoot.querySelector('vaadin-multi-select-combo-box-overlay');\n overlay._attachOverlay = () => {\n overlay.bringToFront();\n };\n overlay._detachOverlay = () => {};\n overlay._enterModalState = () => {};\n }\n\n #handleCustomValues() {\n if (this.allowCustomValues) {\n this.baseElement.addEventListener('custom-value-set', (e) => {\n const newItemHtml = this.#renderItem({\n label: e.detail,\n displayName: e.detail,\n value: e.detail,\n });\n this.innerHTML += newItemHtml;\n // The internal filter needs to be removed, otherwise there's a bug where a new custom item\n // added can't be removed from the dropdown because of how the vaadin component is implemented\n this.baseElement._lastFilter = '';\n // The value needs to be set with a timeout because it needs to execute after\n // the custom value is added to items by the children change observer\n setTimeout(() => {\n this.value = [...this.value, e.detail];\n }, 0);\n });\n }\n }\n\n setGetValidity() {\n // eslint-disable-next-line func-names\n this.getValidity = function () {\n if (this.pattern) {\n const patternRegex = new RegExp(this.pattern);\n if (this.value.some((val) => !patternRegex.test(val)))\n return {\n patternMismatch: true,\n };\n }\n\n if (this.isRequired && !this.value.length) {\n return {\n valueMissing: true,\n };\n }\n // If the field is not required, no minimum selection can be set\n if (\n this.isRequired &&\n this.minItemsSelection &&\n this.value.length < this.minItemsSelection\n ) {\n return {\n rangeUnderflow: true,\n };\n }\n if (this.maxItemsSelection && this.value.length > this.maxItemsSelection) {\n return {\n rangeOverflow: true,\n };\n }\n return {};\n };\n\n // This is required to override the default validity check of the vaadin component\n // which is triggered when the component is checked for validity after blur\n // Without this, our minItemsSelection and maxItemsSelection constraints will not be checked\n const that = this;\n\n this.baseElement.checkValidity = () => that.validity.valid;\n }\n\n init() {\n super.init?.();\n\n this.setGetValidity();\n\n this.#handleCustomValues();\n\n this.renderItems();\n\n observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });\n\n observeChildren(this, this.#onChildrenChange.bind(this));\n\n // Note: we need to forward the `placeholder` because the vaadin component observes it and\n // tries to override it, causing us to lose the user set placeholder.\n forwardAttrs(this, this.baseElement, { includeAttrs: ['placeholder'] });\n\n // This is a workaround for a problem we have in Console App, where in ScreenBuilder - the inputElement is not ready when trying to\n // set the component's descriptor and override the overlay settings.\n // THIS IS A PROBLEM WITH THE CONSOLE APP THAT NEEDS TO BE RESOLVED. Until then, we use this workaround.\n setTimeout(() => {\n this.setComboBoxDescriptor();\n this.#overrideOverlaySettings();\n });\n\n this.setDefaultValues();\n\n this.baseElement.addEventListener('selected-items-changed', () => {\n this.#updateInternalValue();\n this.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n });\n }\n\n setDefaultValues() {\n const initialDefaultValues = this.defaultValues;\n if (initialDefaultValues.length > 0) {\n this.value = this.defaultValues;\n }\n }\n\n #updateInternalValue() {\n // This is done here because we don't want to return a different copy of the same array\n // every time get value is called if a new value wasn't set\n this.#value =\n this.baseElement.selectedItems?.map((elem) => elem.getAttribute('data-id')) || [];\n }\n\n // Updating the value will update the selectedItems, which will trigger an event 'selected-items-changed'\n // which we listen to in the init function to update the internal value\n set value(vals) {\n if (vals && vals.length > 0) {\n // Filters the children of the component to find the ones that match the values,\n // since it's possible that some values that are trying to set are not in the children\n const selectedChildren = this.baseElement.items?.filter((item) =>\n vals.includes(item['data-id'])\n );\n\n // If the component allows custom values, we need to add the values that are not present in the children\n if (this.allowCustomValues) {\n const existingValues =\n selectedChildren?.map((child) => child.getAttribute('data-id')) || [];\n const missingValues = vals.filter((val) => !existingValues.includes(val));\n\n if (missingValues.length) {\n const newItemsHtml = missingValues.reduce((acc, val) => {\n const newItemHtml = this.#renderItem({\n label: val,\n displayName: val,\n value: val,\n });\n return acc + newItemHtml;\n }, '');\n this.innerHTML += newItemsHtml;\n\n // The value needs to be set with a timeout because it needs to execute after\n // the custom values are added to the items by the children change observer\n setTimeout(() => {\n this.value = vals;\n }, 0);\n return;\n }\n }\n\n const newSelectedValues =\n selectedChildren?.map((child) => child.getAttribute('data-id')) || [];\n if (!compareArraysUnordered(this.#value, newSelectedValues)) {\n this.baseElement.selectedItems = selectedChildren;\n }\n } else {\n this.baseElement.selectedItems = [];\n }\n }\n\n get value() {\n return this.#value;\n }\n\n attributeChangedCallback(attrName, oldValue, newValue) {\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n\n if (attrName === 'readonly') {\n this.onReadOnlyChange(newValue !== null && newValue === 'true');\n }\n }\n\n onReadOnlyChange(val) {\n if (val) {\n this.baseElement?.shadowRoot\n ?.querySelector('vaadin-multi-select-combo-box-internal')\n ?.setAttribute('inert', val);\n } else {\n this.baseElement?.shadowRoot\n ?.querySelector('vaadin-multi-select-combo-box-internal')\n ?.removeAttribute('inert');\n }\n }\n };\n\nconst {\n host,\n inputField,\n inputElement,\n placeholder,\n toggle,\n clearButton,\n label,\n requiredIndicator,\n helperText,\n errorMessage,\n chip,\n chipLabel,\n overflowChipFirstBorder,\n overflowChipSecondBorder,\n} = {\n host: { selector: () => ':host' },\n inputField: { selector: '::part(input-field)' },\n inputElement: { selector: 'input' },\n placeholder: { selector: '> input:placeholder-shown' },\n toggle: { selector: '::part(toggle-button)' },\n clearButton: { selector: '::part(clear-button)' },\n label: { selector: '::part(label)' },\n requiredIndicator: { selector: '[required]::part(required-indicator)::after' },\n helperText: { selector: '::part(helper-text)' },\n errorMessage: { selector: '::part(error-message)' },\n chip: { selector: 'vaadin-multi-select-combo-box-chip' },\n chipLabel: { selector: 'vaadin-multi-select-combo-box-chip::part(label)' },\n overflowChipFirstBorder: {\n selector: \"vaadin-multi-select-combo-box-chip[slot='overflow']::before\",\n },\n overflowChipSecondBorder: {\n selector: \"vaadin-multi-select-combo-box-chip[slot='overflow']::after\",\n },\n};\n\nexport const MultiSelectComboBoxClass = compose(\n createStyleMixin({\n mappings: {\n hostWidth: { ...host, property: 'width' },\n hostDirection: { ...host, property: 'direction' },\n // we apply font-size also on the host so we can set its width with em\n fontSize: [{}, host],\n chipFontSize: { ...chipLabel, property: 'font-size' },\n fontFamily: [label, placeholder, inputField, helperText, errorMessage, chipLabel],\n labelFontSize: { ...label, property: 'font-size' },\n labelFontWeight: { ...label, property: 'font-weight' },\n inputValueFontWeight: { ...inputField, property: 'font-weight' },\n inputPlaceholderFontWeight: { ...placeholder, property: 'font-weight' },\n helperTextFontWeight: { ...helperText, property: 'font-weight' },\n errorMessageFontWeight: { ...errorMessage, property: 'font-weight' },\n labelTextColor: [\n { ...label, property: 'color' },\n { ...requiredIndicator, property: 'color' },\n ],\n errorMessageTextColor: { ...errorMessage, property: 'color' },\n errorMessageIcon: { ...errorMessage, property: 'background-image' },\n errorMessageIconSize: { ...errorMessage, property: 'background-size' },\n errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },\n errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },\n errorMessageIconPosition: { ...errorMessage, property: 'background-position' },\n errorMessageFontSize: { ...errorMessage, property: 'font-size' },\n inputHeight: { ...inputField, property: 'min-height' },\n inputBackgroundColor: { ...inputField, property: 'background-color' },\n inputBorderColor: { ...inputField, property: 'border-color' },\n inputBorderWidth: { ...inputField, property: 'border-width' },\n inputBorderStyle: { ...inputField, property: 'border-style' },\n inputBorderRadius: { ...inputField, property: 'border-radius' },\n labelRequiredIndicator: { ...requiredIndicator, property: 'content' },\n inputValueTextColor: { ...inputField, property: 'color' },\n inputPlaceholderTextColor: { ...placeholder, property: 'color' },\n inputDropdownButtonCursor: [\n { ...toggle, property: 'cursor' },\n { ...clearButton, property: 'cursor' },\n ],\n inputDropdownButtonColor: [\n { ...toggle, property: 'color' },\n { ...clearButton, property: 'color' },\n ],\n inputDropdownButtonSize: [\n { ...toggle, property: 'font-size' },\n { ...clearButton, property: 'font-size' },\n ],\n inputDropdownButtonOffset: [\n { ...toggle, property: 'margin-right' },\n { ...toggle, property: 'margin-left' },\n ],\n inputOutlineColor: { ...inputField, property: 'outline-color' },\n inputOutlineWidth: { ...inputField, property: 'outline-width' },\n inputOutlineStyle: { ...inputField, property: 'outline-style' },\n inputOutlineOffset: { ...inputField, property: 'outline-offset' },\n inputHorizontalPadding: [\n { ...inputElement, property: 'padding-left' },\n { ...inputElement, property: 'padding-right' },\n { ...inputField, property: 'padding-inline-start' },\n ],\n inputVerticalPadding: [\n { ...inputField, property: 'padding-top' },\n { ...inputField, property: 'padding-bottom' },\n ],\n chipTextColor: { ...chipLabel, property: 'color' },\n chipBackgroundColor: [\n { ...chip, property: 'background-color' },\n { ...overflowChipFirstBorder, property: 'border-color' },\n { ...overflowChipSecondBorder, property: 'border-color' },\n ],\n\n labelPosition: { ...label, property: 'position' },\n labelTopPosition: { ...label, property: 'top' },\n labelLeftPosition: { ...label, property: 'left' },\n labelHorizontalPosition: [\n { ...label, property: 'left' },\n { ...label, property: 'right' },\n ],\n inputTransformY: { ...label, property: 'transform' },\n inputTransition: { ...label, property: 'transition' },\n marginInlineStart: { ...label, property: 'margin-inline-start' },\n placeholderOpacity: { ...placeholder, property: 'opacity' },\n inputVerticalAlignment: { ...inputField, property: 'align-items' },\n\n // we need to use the variables from the portal mixin\n // so we need to use an arrow function on the selector\n // for that to work, because ComboBox is not available\n // at this time.\n overlayBackground: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.backgroundColor,\n },\n overlayTextColor: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.textColor,\n },\n overlayBorder: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.border },\n overlayFontSize: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.fontSize },\n overlayFontFamily: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.fontFamily },\n overlayCursor: { property: () => MultiSelectComboBoxClass.cssVarList.overlay.cursor },\n overlayItemBoxShadow: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemBoxShadow,\n },\n overlayItemPaddingInlineStart: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemPaddingInlineStart,\n },\n overlayItemPaddingInlineEnd: {\n property: () => MultiSelectComboBoxClass.cssVarList.overlay.itemPaddingInlineEnd,\n },\n },\n }),\n draggableMixin,\n portalMixin({\n name: 'overlay',\n selector: 'vaadin-multi-select-combo-box-internal',\n mappings: {\n backgroundColor: { selector: 'vaadin-multi-select-combo-box-scroller' },\n minHeight: { selector: 'vaadin-multi-select-combo-box-overlay' },\n margin: { selector: 'vaadin-multi-select-combo-box-overlay' },\n cursor: { selector: 'vaadin-multi-select-combo-box-item' },\n fontFamily: { selector: 'vaadin-multi-select-combo-box-item' },\n textColor: { selector: 'vaadin-multi-select-combo-box-item', property: 'color' },\n fontSize: { selector: 'vaadin-multi-select-combo-box-item' },\n itemBoxShadow: { selector: 'vaadin-multi-select-combo-box-item', property: 'box-shadow' },\n itemPaddingInlineStart: {\n selector: 'vaadin-multi-select-combo-box-item',\n property: 'padding-inline-start',\n },\n itemPaddingInlineEnd: {\n selector: 'vaadin-multi-select-combo-box-item',\n property: 'padding-inline-end',\n },\n },\n forward: {\n include: false,\n attributes: ['size'],\n },\n }),\n proxyInputMixin({ proxyProps: ['selectionStart'], inputEvent: 'selected-items-changed' }),\n changeMixin,\n componentNameValidationMixin,\n multiSelectComboBoxMixin\n)(\n createProxy({\n slots: ['', 'prefix'],\n wrappedEleName: 'vaadin-multi-select-combo-box',\n style: () => `\n\t\t:host {\n\t\t\tdisplay: inline-flex;\n\t\t\tbox-sizing: border-box;\n\t\t\t-webkit-mask-image: none;\n\t\t}\n\t\t${useHostExternalPadding(MultiSelectComboBoxClass.cssVarList)}\n\t\t${resetInputReadonlyStyle('vaadin-multi-select-combo-box')}\n\t\t${resetInputPlaceholder('vaadin-multi-select-combo-box')}\n\t\t${resetInputCursor('vaadin-multi-select-combo-box')}\n\n\t\tvaadin-multi-select-combo-box {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t\tvaadin-multi-select-combo-box::before {\n\t\t\theight: initial;\n\t\t}\n\t\tvaadin-multi-select-combo-box [slot=\"input\"] {\n\t\t\t-webkit-mask-image: none;\n\t\t\tmin-height: 0;\n align-self: center;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\tvaadin-multi-select-combo-box[readonly] [slot=\"input\"] {\n flex-grow: 1;\n flex-basis: 4em;\n\t\t}\n\n\t\t::part(input-field) {\n padding: 0;\n\t\t\tbox-shadow: none;\n\t\t}\n ${resetInputLabelPosition('vaadin-multi-select-combo-box')}\n :host([has-label]) vaadin-multi-select-combo-box-chip::part(label) {\n display: block;\n }\n\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::before,\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::after {\n left: -4px;\n right: -4px;\n border-left-width: 0;\n border-inline-start-style: solid;\n border-inline-start-width: 2px;\n }\n vaadin-multi-select-combo-box vaadin-multi-select-combo-box-chip[slot='overflow']::after {\n left: -8px;\n right: -8px;\n }\n\n :host([has-no-options][allow-custom-value='true']) ::part(toggle-button) {\n display: none;\n }\n\n ${inputFloatingLabelStyle()}\n\n vaadin-multi-select-combo-box::part(toggle-button),\n vaadin-multi-select-combo-box::part(clear-button) {\n align-self: center;\n }\n\n vaadin-multi-select-combo-box[label-type=\"floating\"]:not([focused])[readonly] > input:placeholder-shown {\n opacity: 0;\n }\n vaadin-multi-select-combo-box[label-type=\"floating\"]:not([focused])[disabled] > input:placeholder-shown {\n opacity: 0;\n }\n\n\t\t`,\n // Note: we exclude `size` to avoid overriding Vaadin's ComboBox property\n // with the same name. Including it will cause Vaadin to calculate NaN size,\n // and reset items to an empty array, and opening the list box with no items\n // to display.\n // Note: we exclude `placeholder` because the vaadin component observes it and\n // tries to override it, causing us to lose the user set placeholder.\n excludeAttrsSync: ['tabindex', 'size', 'data', 'placeholder', 'style'],\n componentName,\n includeForwardProps: ['items', 'renderer', 'selectedItems'],\n })\n);\n","import '@vaadin/multi-select-combo-box';\nimport { componentName, MultiSelectComboBoxClass } from './MultiSelectComboBoxClass';\n\ncustomElements.define(componentName, MultiSelectComboBoxClass);\n\nexport { MultiSelectComboBoxClass, componentName };\n"],"names":["componentName","host","inputField","inputElement","placeholder","toggle","clearButton","label","requiredIndicator","helperText","errorMessage","chip","chipLabel","overflowChipFirstBorder","overflowChipSecondBorder","selector","MultiSelectComboBoxClass","mappings","hostWidth","property","hostDirection","fontSize","chipFontSize","fontFamily","labelFontSize","labelFontWeight","inputValueFontWeight","inputPlaceholderFontWeight","helperTextFontWeight","errorMessageFontWeight","labelTextColor","errorMessageTextColor","errorMessageIcon","errorMessageIconSize","errorMessageIconPadding","errorMessageIconRepeat","errorMessageIconPosition","errorMessageFontSize","inputHeight","inputBackgroundColor","inputBorderColor","inputBorderWidth","inputBorderStyle","inputBorderRadius","labelRequiredIndicator","inputValueTextColor","inputPlaceholderTextColor","inputDropdownButtonCursor","inputDropdownButtonColor","inputDropdownButtonSize","inputDropdownButtonOffset","inputOutlineColor","inputOutlineWidth","inputOutlineStyle","inputOutlineOffset","inputHorizontalPadding","inputVerticalPadding","chipTextColor","chipBackgroundColor","labelPosition","labelTopPosition","labelLeftPosition","labelHorizontalPosition","inputTransformY","inputTransition","marginInlineStart","placeholderOpacity","inputVerticalAlignment","overlayBackground","cssVarList","overlay","backgroundColor","overlayTextColor","textColor","overlayBorder","border","overlayFontSize","overlayFontFamily","overlayCursor","cursor","overlayItemBoxShadow","itemBoxShadow","overlayItemPaddingInlineStart","itemPaddingInlineStart","overlayItemPaddingInlineEnd","itemPaddingInlineEnd","name","minHeight","margin","forward","include","attributes","proxyProps","inputEvent","superclass","observedAttributes","displayName","value","ele","document","createElement","setAttribute","textContent","outerHTML","defaultValues","defaultValuesAttr","this","getAttribute","JSON","parse","isValidDataType","e","console","error","message","renderItem","renderFn","renderItems","data","dataAttr","allowCustomValues","minItemsSelection","parseInt","maxItemsSelection","isValid","Array","isArray","getItemsTemplate","reduce","acc","item","template","innerHTML","updateSelectedItems","currentSelected","baseElement","selectedItems","map","length","setDefaultValues","customValueTransformFn","val","setComboBoxDescriptor","valueDescriptor","Object","getOwnPropertyDescriptor","constructor","prototype","comboBox","defineProperties","set","transformedValue","call","items","from","Map","values","children","dedupItems","removeAttribute","forEach","node","defineProperty","configurable","writable","setTimeout","renderer","root","combo","model","shadowRoot","querySelector","_attachOverlay","bringToFront","_detachOverlay","_enterModalState","addEventListener","newItemHtml","detail","_lastFilter","setGetValidity","getValidity","pattern","patternRegex","RegExp","some","test","patternMismatch","isRequired","valueMissing","rangeUnderflow","rangeOverflow","that","checkValidity","validity","valid","init","super","bind","includeAttrs","dispatchEvent","CustomEvent","bubbles","elem","vals","selectedChildren","filter","includes","existingValues","child","missingValues","newItemsHtml","newSelectedValues","attributeChangedCallback","attrName","oldValue","newValue","onReadOnlyChange","slots","wrappedEleName","style","excludeAttrsSync","includeForwardProps","customElements","define"],"sourceRoot":""}
|