@siemens/ix 2.4.0 → 2.4.1
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/components/application-header.js +17 -11
- package/components/application-header.js.map +1 -1
- package/components/avatar.js +1 -1
- package/components/avatar.js.map +1 -1
- package/components/dropdown.js +10 -6
- package/components/dropdown.js.map +1 -1
- package/components/group-item.js +4 -8
- package/components/group-item.js.map +1 -1
- package/components/ix-basic-navigation.js +16 -10
- package/components/ix-basic-navigation.js.map +1 -1
- package/components/ix-group.js +29 -24
- package/components/ix-group.js.map +1 -1
- package/components/ix-map-navigation.js +18 -12
- package/components/ix-map-navigation.js.map +1 -1
- package/components/ix-pagination.js +3 -3
- package/components/ix-pagination.js.map +1 -1
- package/components/ix-slider.js +20 -13
- package/components/ix-slider.js.map +1 -1
- package/components/service.js +2 -2
- package/components/service.js.map +1 -1
- package/components/tab-item.js +3 -3
- package/components/tab-item.js.map +1 -1
- package/components/tabs.js +77 -43
- package/components/tabs.js.map +1 -1
- package/components/tooltip.js +4 -4
- package/components/tooltip.js.map +1 -1
- package/dist/cjs/ix-application-header.cjs.entry.js +4 -4
- package/dist/cjs/ix-application-header.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-application.cjs.entry.js +1 -1
- package/dist/cjs/ix-avatar_2.cjs.entry.js +1 -1
- package/dist/cjs/ix-avatar_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-basic-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ix-dropdown.cjs.entry.js +10 -6
- package/dist/cjs/ix-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-group-context-menu_2.cjs.entry.js +4 -8
- package/dist/cjs/ix-group-context-menu_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-group.cjs.entry.js +29 -23
- package/dist/cjs/ix-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-menu.cjs.entry.js +1 -1
- package/dist/cjs/ix-pagination.cjs.entry.js +3 -3
- package/dist/cjs/ix-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-pane-layout.cjs.entry.js +1 -1
- package/dist/cjs/ix-pane.cjs.entry.js +1 -1
- package/dist/cjs/ix-slider.cjs.entry.js +20 -13
- package/dist/cjs/ix-slider.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-tab-item_2.cjs.entry.js +74 -44
- package/dist/cjs/ix-tab-item_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ix-tooltip.cjs.entry.js +4 -4
- package/dist/cjs/ix-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{service-a42add5f.js → service-39a8e5fe.js} +3 -3
- package/dist/cjs/service-39a8e5fe.js.map +1 -0
- package/dist/cjs/siemens-ix.cjs.js +1 -1
- package/dist/collection/components/application-header/application-header.js +4 -4
- package/dist/collection/components/application-header/application-header.js.map +1 -1
- package/dist/collection/components/avatar/avatar.css +42 -0
- package/dist/collection/components/dropdown/dropdown.js +10 -6
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/group/group.js +34 -28
- package/dist/collection/components/group/group.js.map +1 -1
- package/dist/collection/components/group/test/group.ct.js +39 -1
- package/dist/collection/components/group/test/group.ct.js.map +1 -1
- package/dist/collection/components/group-item/group-item.css +0 -4
- package/dist/collection/components/group-item/group-item.js +9 -12
- package/dist/collection/components/group-item/group-item.js.map +1 -1
- package/dist/collection/components/pagination/pagination.js +5 -4
- package/dist/collection/components/pagination/pagination.js.map +1 -1
- package/dist/collection/components/select/test/select.ct.js +1 -1
- package/dist/collection/components/select/test/select.ct.js.map +1 -1
- package/dist/collection/components/slider/slider.css +1 -1
- package/dist/collection/components/slider/slider.js +23 -15
- package/dist/collection/components/slider/slider.js.map +1 -1
- package/dist/collection/components/slider/test/slider.ct.js +15 -6
- package/dist/collection/components/slider/test/slider.ct.js.map +1 -1
- package/dist/collection/components/tab-item/tab-item.js +4 -4
- package/dist/collection/components/tab-item/tab-item.js.map +1 -1
- package/dist/collection/components/tabs/tabs.js +77 -42
- package/dist/collection/components/tabs/tabs.js.map +1 -1
- package/dist/collection/components/tabs/test/tabs.ct.js +35 -9
- package/dist/collection/components/tabs/test/tabs.ct.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.js +13 -8
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/components/utils/application-layout/service.js +2 -2
- package/dist/collection/components/utils/application-layout/service.js.map +1 -1
- package/dist/collection/tests/avatar/avatar.e2e.js +6 -0
- package/dist/collection/tests/avatar/avatar.e2e.js.map +1 -1
- package/dist/collection/tests/slider/slider.e2e.js +14 -0
- package/dist/collection/tests/slider/slider.e2e.js.map +1 -1
- package/dist/collection/tests/tabs/tabs.e2e.js +1 -1
- package/dist/collection/tests/tabs/tabs.e2e.js.map +1 -1
- package/dist/esm/ix-application-header.entry.js +4 -4
- package/dist/esm/ix-application-header.entry.js.map +1 -1
- package/dist/esm/ix-application.entry.js +1 -1
- package/dist/esm/ix-avatar_2.entry.js +1 -1
- package/dist/esm/ix-avatar_2.entry.js.map +1 -1
- package/dist/esm/ix-basic-navigation.entry.js +1 -1
- package/dist/esm/ix-dropdown.entry.js +10 -6
- package/dist/esm/ix-dropdown.entry.js.map +1 -1
- package/dist/esm/ix-group-context-menu_2.entry.js +4 -8
- package/dist/esm/ix-group-context-menu_2.entry.js.map +1 -1
- package/dist/esm/ix-group.entry.js +29 -23
- package/dist/esm/ix-group.entry.js.map +1 -1
- package/dist/esm/ix-menu.entry.js +1 -1
- package/dist/esm/ix-pagination.entry.js +3 -3
- package/dist/esm/ix-pagination.entry.js.map +1 -1
- package/dist/esm/ix-pane-layout.entry.js +1 -1
- package/dist/esm/ix-pane.entry.js +1 -1
- package/dist/esm/ix-slider.entry.js +20 -13
- package/dist/esm/ix-slider.entry.js.map +1 -1
- package/dist/esm/ix-tab-item_2.entry.js +74 -44
- package/dist/esm/ix-tab-item_2.entry.js.map +1 -1
- package/dist/esm/ix-tooltip.entry.js +4 -4
- package/dist/esm/ix-tooltip.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{service-02cc9011.js → service-c7fc628b.js} +3 -3
- package/dist/esm/service-c7fc628b.js.map +1 -0
- package/dist/esm/siemens-ix.js +1 -1
- package/dist/siemens-ix/p-0b4e3779.entry.js +2 -0
- package/dist/siemens-ix/p-0b4e3779.entry.js.map +1 -0
- package/dist/siemens-ix/p-4df0cdd7.entry.js +2 -0
- package/dist/siemens-ix/p-4df0cdd7.entry.js.map +1 -0
- package/dist/siemens-ix/{p-96a3a750.entry.js → p-5b135f6b.entry.js} +2 -2
- package/dist/siemens-ix/{p-96a3a750.entry.js.map → p-5b135f6b.entry.js.map} +1 -1
- package/dist/siemens-ix/{p-29df2e29.entry.js → p-71315e2e.entry.js} +2 -2
- package/dist/siemens-ix/p-71315e2e.entry.js.map +1 -0
- package/dist/siemens-ix/{p-a536adcb.entry.js → p-a0a44a2b.entry.js} +2 -2
- package/dist/siemens-ix/{p-7750e187.entry.js → p-bc2c74c5.entry.js} +2 -2
- package/dist/siemens-ix/{p-c389de85.entry.js → p-c33cee36.entry.js} +2 -2
- package/dist/siemens-ix/p-d331216f.entry.js +2 -0
- package/dist/siemens-ix/p-d331216f.entry.js.map +1 -0
- package/dist/siemens-ix/p-d8790ff5.entry.js +2 -0
- package/dist/siemens-ix/p-d8790ff5.entry.js.map +1 -0
- package/dist/siemens-ix/p-d950c3a8.entry.js +2 -0
- package/dist/siemens-ix/p-d950c3a8.entry.js.map +1 -0
- package/dist/siemens-ix/{p-112069ca.entry.js → p-dbe8f5e6.entry.js} +2 -2
- package/dist/siemens-ix/p-dbe8f5e6.entry.js.map +1 -0
- package/dist/siemens-ix/{p-ae7a7af4.entry.js → p-dde7eb80.entry.js} +2 -2
- package/dist/siemens-ix/{p-4344ba99.entry.js → p-f318140c.entry.js} +2 -2
- package/dist/siemens-ix/p-f318140c.entry.js.map +1 -0
- package/dist/siemens-ix/{p-702f9349.js → p-fbe017b7.js} +2 -2
- package/dist/siemens-ix/p-fbe017b7.js.map +1 -0
- package/dist/siemens-ix/{p-6b928634.entry.js → p-fc5814df.entry.js} +2 -2
- package/dist/siemens-ix/siemens-ix.esm.js +1 -1
- package/dist/siemens-ix/siemens-ix.esm.js.map +1 -1
- package/dist/types/components/application-header/application-header.d.ts +1 -1
- package/dist/types/components/dropdown/dropdown.d.ts +1 -0
- package/dist/types/components/group/group.d.ts +3 -4
- package/dist/types/components/group-item/group-item.d.ts +4 -4
- package/dist/types/components/slider/slider.d.ts +3 -3
- package/dist/types/components/tab-item/tab-item.d.ts +1 -1
- package/dist/types/components/tabs/tabs.d.ts +7 -4
- package/dist/types/components/tooltip/tooltip.d.ts +7 -7
- package/dist/types/components.d.ts +16 -14
- package/hydrate/index.js +153 -109
- package/package.json +1 -1
- package/dist/cjs/service-a42add5f.js.map +0 -1
- package/dist/esm/service-02cc9011.js.map +0 -1
- package/dist/siemens-ix/p-112069ca.entry.js.map +0 -1
- package/dist/siemens-ix/p-29df2e29.entry.js.map +0 -1
- package/dist/siemens-ix/p-315f070d.entry.js +0 -2
- package/dist/siemens-ix/p-315f070d.entry.js.map +0 -1
- package/dist/siemens-ix/p-4344ba99.entry.js.map +0 -1
- package/dist/siemens-ix/p-60c16878.entry.js +0 -2
- package/dist/siemens-ix/p-60c16878.entry.js.map +0 -1
- package/dist/siemens-ix/p-702f9349.js.map +0 -1
- package/dist/siemens-ix/p-c55db6c7.entry.js +0 -2
- package/dist/siemens-ix/p-c55db6c7.entry.js.map +0 -1
- package/dist/siemens-ix/p-f07110c6.entry.js +0 -2
- package/dist/siemens-ix/p-f07110c6.entry.js.map +0 -1
- package/dist/siemens-ix/p-fa53933d.entry.js +0 -2
- package/dist/siemens-ix/p-fa53933d.entry.js.map +0 -1
- /package/dist/siemens-ix/{p-a536adcb.entry.js.map → p-a0a44a2b.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-7750e187.entry.js.map → p-bc2c74c5.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-c389de85.entry.js.map → p-c33cee36.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-ae7a7af4.entry.js.map → p-dde7eb80.entry.js.map} +0 -0
- /package/dist/siemens-ix/{p-6b928634.entry.js.map → p-fc5814df.entry.js.map} +0 -0
|
@@ -13,21 +13,17 @@ export class GroupItem {
|
|
|
13
13
|
this.text = undefined;
|
|
14
14
|
this.secondaryText = undefined;
|
|
15
15
|
this.suppressSelection = false;
|
|
16
|
-
this.selected =
|
|
16
|
+
this.selected = false;
|
|
17
17
|
this.focusable = true;
|
|
18
18
|
this.index = undefined;
|
|
19
19
|
}
|
|
20
20
|
clickListen() {
|
|
21
|
-
if (this.suppressSelection) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
21
|
this.selectedChanged.emit(this.hostElement);
|
|
25
22
|
}
|
|
26
23
|
render() {
|
|
27
|
-
return (h(Host, { key: '
|
|
24
|
+
return (h(Host, { key: 'ae51a9df7d4b27336b05017a18300c5ee91473c7', class: {
|
|
28
25
|
selected: this.selected && !this.suppressSelection,
|
|
29
|
-
|
|
30
|
-
} }, h("button", { key: 'f5ca23ab1328e745e9bb8299db8d15a450cd3af7', tabindex: this.focusable ? 0 : -1 }, h("div", { key: '3a60d30b7686a8b3b67343e7c5cbd5b1faacf0e4', class: "group-entry-selection-indicator" }), this.icon ? h("ix-icon", { size: "16", name: this.icon }) : null, this.text ? (h("span", { class: "group-entry-text" }, h("span", { title: this.text }, this.text))) : null, this.secondaryText ? (h("span", { class: "group-entry-text-secondary" }, h("span", { title: this.secondaryText }, this.secondaryText))) : null, h("slot", { key: 'a24a61b86fea34c7124b5345bd41c08550a145b5' }))));
|
|
26
|
+
} }, h("button", { key: 'd70ce085f9deb507c5365c4d4c3c75dac4864560', tabindex: this.focusable ? 0 : -1 }, h("div", { key: '194d910fb5b1dc94e27b504568ef9b5d774fcaca', class: "group-entry-selection-indicator" }), this.icon ? h("ix-icon", { size: "16", name: this.icon }) : null, this.text ? (h("span", { class: "group-entry-text" }, h("span", { title: this.text }, this.text))) : null, this.secondaryText ? (h("span", { class: "group-entry-text-secondary" }, h("span", { title: this.secondaryText }, this.secondaryText))) : null, h("slot", { key: '4934b9729052b030c04ea695d23abde6634eaf10' }))));
|
|
31
27
|
}
|
|
32
28
|
static get is() { return "ix-group-item"; }
|
|
33
29
|
static get encapsulation() { return "shadow"; }
|
|
@@ -52,7 +48,7 @@ export class GroupItem {
|
|
|
52
48
|
"references": {}
|
|
53
49
|
},
|
|
54
50
|
"required": false,
|
|
55
|
-
"optional":
|
|
51
|
+
"optional": true,
|
|
56
52
|
"docs": {
|
|
57
53
|
"tags": [],
|
|
58
54
|
"text": "Group item icon"
|
|
@@ -69,7 +65,7 @@ export class GroupItem {
|
|
|
69
65
|
"references": {}
|
|
70
66
|
},
|
|
71
67
|
"required": false,
|
|
72
|
-
"optional":
|
|
68
|
+
"optional": true,
|
|
73
69
|
"docs": {
|
|
74
70
|
"tags": [],
|
|
75
71
|
"text": "Group item text"
|
|
@@ -86,7 +82,7 @@ export class GroupItem {
|
|
|
86
82
|
"references": {}
|
|
87
83
|
},
|
|
88
84
|
"required": false,
|
|
89
|
-
"optional":
|
|
85
|
+
"optional": true,
|
|
90
86
|
"docs": {
|
|
91
87
|
"tags": [],
|
|
92
88
|
"text": "Group item secondary text"
|
|
@@ -127,7 +123,8 @@ export class GroupItem {
|
|
|
127
123
|
"text": "Show selected state"
|
|
128
124
|
},
|
|
129
125
|
"attribute": "selected",
|
|
130
|
-
"reflect": false
|
|
126
|
+
"reflect": false,
|
|
127
|
+
"defaultValue": "false"
|
|
131
128
|
},
|
|
132
129
|
"focusable": {
|
|
133
130
|
"type": "boolean",
|
|
@@ -156,7 +153,7 @@ export class GroupItem {
|
|
|
156
153
|
"references": {}
|
|
157
154
|
},
|
|
158
155
|
"required": false,
|
|
159
|
-
"optional":
|
|
156
|
+
"optional": true,
|
|
160
157
|
"docs": {
|
|
161
158
|
"tags": [],
|
|
162
159
|
"text": "Index"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-item.js","sourceRoot":"","sources":["../../../src/components/group-item/group-item.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,IAAI,GACL,MAAM,eAAe,CAAC;AAOvB,MAAM,OAAO,SAAS;;;;;iCAqBQ,KAAK
|
|
1
|
+
{"version":3,"file":"group-item.js","sourceRoot":"","sources":["../../../src/components/group-item/group-item.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,IAAI,GACL,MAAM,eAAe,CAAC;AAOvB,MAAM,OAAO,SAAS;;;;;iCAqBQ,KAAK;wBAKL,KAAK;yBAMb,IAAI;;;IAaxB,WAAW;QACT,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB;aACnD;YAED,+DAAQ,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,4DAAK,KAAK,EAAC,iCAAiC,GAAO;gBAClD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAS,IAAI,EAAC,IAAI,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAY,CAAC,CAAC,CAAC,IAAI;gBACjE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,YAAM,KAAK,EAAC,kBAAkB;oBAC5B,YAAM,KAAK,EAAE,IAAI,CAAC,IAAI,IAAG,IAAI,CAAC,IAAI,CAAQ,CACrC,CACR,CAAC,CAAC,CAAC,IAAI;gBACP,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CACpB,YAAM,KAAK,EAAC,4BAA4B;oBACtC,YAAM,KAAK,EAAE,IAAI,CAAC,aAAa,IAAG,IAAI,CAAC,aAAa,CAAQ,CACvD,CACR,CAAC,CAAC,CAAC,IAAI;gBACR,8DAAa,CACN,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n} from '@stencil/core';\n\n@Component({\n tag: 'ix-group-item',\n styleUrl: 'group-item.scss',\n shadow: true,\n})\nexport class GroupItem {\n @Element() hostElement!: HTMLIxGroupItemElement;\n\n /**\n * Group item icon\n */\n @Prop() icon?: string;\n\n /**\n * Group item text\n */\n @Prop() text?: string;\n\n /**\n * Group item secondary text\n */\n @Prop() secondaryText?: string;\n\n /**\n * Supress the selection of the group\n */\n @Prop() suppressSelection = false;\n\n /**\n * Show selected state\n */\n @Prop() selected: boolean = false;\n\n /**\n * The elements tabindex attribute will get set accordingly.\n * If true tabindex will be 0, -1 otherwise.\n */\n @Prop() focusable = true;\n\n /**\n * Selection changed\n */\n @Event() selectedChanged!: EventEmitter<HTMLIxGroupItemElement>;\n\n /**\n * Index\n */\n @Prop() index?: number;\n\n @Listen('click', { passive: true })\n clickListen() {\n this.selectedChanged.emit(this.hostElement);\n }\n\n render() {\n return (\n <Host\n class={{\n selected: this.selected && !this.suppressSelection,\n }}\n >\n <button tabindex={this.focusable ? 0 : -1}>\n <div class=\"group-entry-selection-indicator\"></div>\n {this.icon ? <ix-icon size=\"16\" name={this.icon}></ix-icon> : null}\n {this.text ? (\n <span class=\"group-entry-text\">\n <span title={this.text}>{this.text}</span>\n </span>\n ) : null}\n {this.secondaryText ? (\n <span class=\"group-entry-text-secondary\">\n <span title={this.secondaryText}>{this.secondaryText}</span>\n </span>\n ) : null}\n <slot></slot>\n </button>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -30,7 +30,7 @@ export class Pagination {
|
|
|
30
30
|
},
|
|
31
31
|
};
|
|
32
32
|
this.maxCountPages = 7;
|
|
33
|
-
this.advanced =
|
|
33
|
+
this.advanced = false;
|
|
34
34
|
this.itemCount = 15;
|
|
35
35
|
this.showItemCount = true;
|
|
36
36
|
this.count = undefined;
|
|
@@ -124,10 +124,10 @@ export class Pagination {
|
|
|
124
124
|
return h("span", { class: "page-buttons" }, pageButtons);
|
|
125
125
|
}
|
|
126
126
|
render() {
|
|
127
|
-
return (h(Host, { key: '
|
|
127
|
+
return (h(Host, { key: '6cc3a3f4bbfaa4d41c08c8f864e08a26ef7a0977' }, h("ix-icon-button", { key: 'e457ad80d07a9503a87a09cddf9445037010cdbb', disabled: !this.count || this.selectedPage === 0, ghost: true, icon: 'chevron-left-small', onClick: () => this.decrease() }), this.advanced ? (h("div", { class: "advanced-pagination" }, h("ix-typography", { variant: "default" }, this.i18nPage), h("input", { class: "form-control page-selection", type: "number", min: "1", max: this.count, value: this.selectedPage + 1, onChange: (e) => {
|
|
128
128
|
const index = Number.parseInt(e.target['value']);
|
|
129
129
|
this.selectPage(index - 1);
|
|
130
|
-
} }), h("span", { class: "total-count" }, h("ix-typography", { variant: "default" }, this.i18nOf, " ", this.count)))) : (h("span", { class: "basic-pagination" }, this.renderPageButtons(), " ")), h("ix-icon-button", { key: '
|
|
130
|
+
} }), h("span", { class: "total-count" }, h("ix-typography", { variant: "default" }, this.i18nOf, " ", this.count)))) : (h("span", { class: "basic-pagination" }, this.renderPageButtons(), " ")), h("ix-icon-button", { key: '7638a95799a72d60fb3090dc033e7e397580e391', disabled: !this.count || this.selectedPage === this.count - 1, ghost: true, icon: 'chevron-right-small', onClick: () => this.increase() }), this.advanced && this.showItemCount ? (h("span", { class: "item-count" }, h("ix-typography", { variant: "default" }, this.i18nItems), h("ix-select", { hideListHeader: true, i18nPlaceholder: "", i18nSelectListHeader: "", value: `${this.itemCount}`, onValueChange: (e) => {
|
|
131
131
|
const count = Number.parseInt(Array.isArray(e.detail) ? e.detail[0] : e.detail);
|
|
132
132
|
this.itemCountChanged.emit(count);
|
|
133
133
|
} }, h("ix-select-item", { label: "10", value: "10" }), h("ix-select-item", { label: "15", value: "15" }), h("ix-select-item", { label: "20", value: "20" }), h("ix-select-item", { label: "40", value: "40" }), h("ix-select-item", { label: "100", value: "100" })))) : ('')));
|
|
@@ -161,7 +161,8 @@ export class Pagination {
|
|
|
161
161
|
"text": "Advanced mode"
|
|
162
162
|
},
|
|
163
163
|
"attribute": "advanced",
|
|
164
|
-
"reflect": false
|
|
164
|
+
"reflect": false,
|
|
165
|
+
"defaultValue": "false"
|
|
165
166
|
},
|
|
166
167
|
"itemCount": {
|
|
167
168
|
"type": "number",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2022 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { BaseButton, BaseButtonProps } from '../button/base-button';\nimport { a11yBoolean } from '../utils/a11y';\n\n/**\n * @since 1.5.0\n */\n@Component({\n tag: 'ix-pagination',\n styleUrl: 'pagination.scss',\n shadow: true,\n})\nexport class Pagination {\n private readonly baseButtonConfig: BaseButtonProps = {\n variant: 'secondary',\n outline: false,\n ghost: true,\n iconOnly: true,\n iconOval: false,\n disabled: false,\n icon: '',\n loading: false,\n selected: false,\n type: 'button',\n extraClasses: {\n ['w-auto']: true,\n },\n };\n\n private readonly maxCountPages = 7;\n\n @Element() hostElement!: HTMLIxPaginationElement;\n\n /**\n * Advanced mode\n */\n @Prop() advanced: boolean;\n\n /**\n * Number of items shown at once.\n * Can only be changed in advaced mode.\n */\n @Prop() itemCount = 15;\n\n /**\n * Show item count in advanced mode\n */\n @Prop() showItemCount = true;\n\n /**\n * Total number of pages\n */\n @Prop() count: number;\n\n /**\n * Zero based index of currently selected page\n */\n @Prop({ mutable: true }) selectedPage = 0;\n\n /**\n * i18n\n */\n @Prop() i18nPage = 'Page';\n\n /**\n * i18n\n */\n @Prop() i18nOf = 'of';\n\n /**\n /**\n * i18n\n */\n @Prop() i18nItems = 'Items';\n\n /**\n * Page selection event\n */\n @Event() pageSelected: EventEmitter<number>;\n\n /**\n * Item count change event\n */\n @Event() itemCountChanged: EventEmitter<number>;\n\n private selectPage(index: number) {\n if (index < 0) {\n this.selectedPage = 0;\n } else if (index > this.count - 1) {\n this.selectedPage = this.count - 1;\n } else {\n this.selectedPage = index;\n }\n\n this.pageSelected.emit(this.selectedPage);\n }\n\n private increase() {\n if (this.selectedPage === this.count - 1) {\n return;\n }\n\n this.selectPage(this.selectedPage + 1);\n }\n\n private decrease() {\n if (this.selectedPage === 0) {\n return;\n }\n\n this.selectPage(this.selectedPage - 1);\n }\n\n private getPageButton(index: number) {\n const baseButtonProps: BaseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => this.selectPage(index),\n selected: this.selectedPage === index,\n ariaAttributes: {\n 'aria-pressed': a11yBoolean(this.selectedPage === index),\n },\n };\n\n return <BaseButton {...baseButtonProps}>{index + 1}</BaseButton>;\n }\n\n private renderPageButtons() {\n const pagesBeforeOverflow = Math.floor(this.maxCountPages / 2);\n const hasOverflow = this.count > this.maxCountPages;\n const hasOverflowStart =\n hasOverflow && this.selectedPage > pagesBeforeOverflow;\n const hasOverflowEnd =\n hasOverflow && this.selectedPage < this.count - pagesBeforeOverflow - 1;\n const pageButtons = [];\n\n let start = 0;\n let end = Math.min(this.count, this.maxCountPages);\n let pageCount = Math.floor((this.maxCountPages - 4) / 2);\n\n if (hasOverflowStart) {\n const baseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => {\n if (hasOverflowEnd) {\n this.selectPage(this.selectedPage - Math.max(0, 2 * pageCount + 1));\n } else {\n this.selectPage(this.count - this.maxCountPages);\n }\n },\n };\n pageButtons.push(this.getPageButton(0));\n pageButtons.push(<BaseButton {...baseButtonProps}>...</BaseButton>);\n\n if (hasOverflowEnd) {\n start = this.count - this.maxCountPages + 2;\n } else {\n start = this.count - this.maxCountPages + 2;\n end = this.count;\n }\n }\n\n if (hasOverflowEnd) {\n if (hasOverflowStart) {\n start = this.selectedPage - pageCount;\n end = this.selectedPage + pageCount + 1;\n } else {\n end = this.maxCountPages - 2;\n }\n }\n\n for (let i = start; i < end; i++) {\n pageButtons.push(this.getPageButton(i));\n }\n\n if (hasOverflowEnd) {\n const baseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => {\n if (hasOverflowStart) {\n this.selectPage(this.selectedPage + Math.max(0, 2 * pageCount + 1));\n } else {\n this.selectPage(this.maxCountPages - 1);\n }\n },\n };\n pageButtons.push(<BaseButton {...baseButtonProps}>...</BaseButton>);\n pageButtons.push(this.getPageButton(this.count - 1));\n }\n\n return <span class=\"page-buttons\">{pageButtons}</span>;\n }\n\n render() {\n return (\n <Host>\n <ix-icon-button\n disabled={this.selectedPage === 0}\n ghost\n icon={'chevron-left-small'}\n onClick={() => this.decrease()}\n ></ix-icon-button>\n\n {this.advanced ? (\n <div class=\"advanced-pagination\">\n <ix-typography variant=\"default\">{this.i18nPage}</ix-typography>\n <input\n class=\"form-control page-selection\"\n type=\"number\"\n min=\"1\"\n max={this.count}\n value={this.selectedPage + 1}\n onChange={(e) => {\n const index = Number.parseInt(e.target['value']);\n this.selectPage(index - 1);\n }}\n />\n <span class=\"total-count\">\n <ix-typography variant=\"default\">\n {this.i18nOf} {this.count}\n </ix-typography>\n </span>\n </div>\n ) : (\n <span class=\"basic-pagination\">{this.renderPageButtons()} </span>\n )}\n\n <ix-icon-button\n disabled={this.selectedPage === this.count - 1}\n ghost\n icon={'chevron-right-small'}\n onClick={() => this.increase()}\n ></ix-icon-button>\n\n {this.advanced && this.showItemCount ? (\n <span class=\"item-count\">\n <ix-typography variant=\"default\">{this.i18nItems}</ix-typography>\n <ix-select\n hideListHeader\n i18nPlaceholder=\"\"\n i18nSelectListHeader=\"\"\n value={`${this.itemCount}`}\n onValueChange={(e) => {\n const count = Number.parseInt(\n Array.isArray(e.detail) ? e.detail[0] : e.detail\n );\n\n this.itemCountChanged.emit(count);\n }}\n >\n <ix-select-item label=\"10\" value=\"10\"></ix-select-item>\n <ix-select-item label=\"15\" value=\"15\"></ix-select-item>\n <ix-select-item label=\"20\" value=\"20\"></ix-select-item>\n <ix-select-item label=\"40\" value=\"40\"></ix-select-item>\n <ix-select-item label=\"100\" value=\"100\"></ix-select-item>\n </ix-select>\n </span>\n ) : (\n ''\n )}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2022 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { BaseButton, BaseButtonProps } from '../button/base-button';\nimport { a11yBoolean } from '../utils/a11y';\n\n/**\n * @since 1.5.0\n */\n@Component({\n tag: 'ix-pagination',\n styleUrl: 'pagination.scss',\n shadow: true,\n})\nexport class Pagination {\n private readonly baseButtonConfig: BaseButtonProps = {\n variant: 'secondary',\n outline: false,\n ghost: true,\n iconOnly: true,\n iconOval: false,\n disabled: false,\n icon: '',\n loading: false,\n selected: false,\n type: 'button',\n extraClasses: {\n ['w-auto']: true,\n },\n };\n\n private readonly maxCountPages = 7;\n\n @Element() hostElement!: HTMLIxPaginationElement;\n\n /**\n * Advanced mode\n */\n @Prop() advanced = false;\n\n /**\n * Number of items shown at once.\n * Can only be changed in advaced mode.\n */\n @Prop() itemCount = 15;\n\n /**\n * Show item count in advanced mode\n */\n @Prop() showItemCount = true;\n\n /**\n * Total number of pages\n */\n @Prop() count: number;\n\n /**\n * Zero based index of currently selected page\n */\n @Prop({ mutable: true }) selectedPage = 0;\n\n /**\n * i18n\n */\n @Prop() i18nPage = 'Page';\n\n /**\n * i18n\n */\n @Prop() i18nOf = 'of';\n\n /**\n /**\n * i18n\n */\n @Prop() i18nItems = 'Items';\n\n /**\n * Page selection event\n */\n @Event() pageSelected!: EventEmitter<number>;\n\n /**\n * Item count change event\n */\n @Event() itemCountChanged!: EventEmitter<number>;\n\n private selectPage(index: number) {\n if (index < 0) {\n this.selectedPage = 0;\n } else if (index > this.count - 1) {\n this.selectedPage = this.count - 1;\n } else {\n this.selectedPage = index;\n }\n\n this.pageSelected.emit(this.selectedPage);\n }\n\n private increase() {\n if (this.selectedPage === this.count - 1) {\n return;\n }\n\n this.selectPage(this.selectedPage + 1);\n }\n\n private decrease() {\n if (this.selectedPage === 0) {\n return;\n }\n\n this.selectPage(this.selectedPage - 1);\n }\n\n private getPageButton(index: number) {\n const baseButtonProps: BaseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => this.selectPage(index),\n selected: this.selectedPage === index,\n ariaAttributes: {\n 'aria-pressed': a11yBoolean(this.selectedPage === index),\n },\n };\n\n return <BaseButton {...baseButtonProps}>{index + 1}</BaseButton>;\n }\n\n private renderPageButtons() {\n const pagesBeforeOverflow = Math.floor(this.maxCountPages / 2);\n const hasOverflow = this.count > this.maxCountPages;\n const hasOverflowStart =\n hasOverflow && this.selectedPage > pagesBeforeOverflow;\n const hasOverflowEnd =\n hasOverflow && this.selectedPage < this.count - pagesBeforeOverflow - 1;\n const pageButtons = [];\n\n let start = 0;\n let end = Math.min(this.count, this.maxCountPages);\n let pageCount = Math.floor((this.maxCountPages - 4) / 2);\n\n if (hasOverflowStart) {\n const baseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => {\n if (hasOverflowEnd) {\n this.selectPage(this.selectedPage - Math.max(0, 2 * pageCount + 1));\n } else {\n this.selectPage(this.count - this.maxCountPages);\n }\n },\n };\n pageButtons.push(this.getPageButton(0));\n pageButtons.push(<BaseButton {...baseButtonProps}>...</BaseButton>);\n\n if (hasOverflowEnd) {\n start = this.count - this.maxCountPages + 2;\n } else {\n start = this.count - this.maxCountPages + 2;\n end = this.count;\n }\n }\n\n if (hasOverflowEnd) {\n if (hasOverflowStart) {\n start = this.selectedPage - pageCount;\n end = this.selectedPage + pageCount + 1;\n } else {\n end = this.maxCountPages - 2;\n }\n }\n\n for (let i = start; i < end; i++) {\n pageButtons.push(this.getPageButton(i));\n }\n\n if (hasOverflowEnd) {\n const baseButtonProps = {\n ...this.baseButtonConfig,\n onClick: () => {\n if (hasOverflowStart) {\n this.selectPage(this.selectedPage + Math.max(0, 2 * pageCount + 1));\n } else {\n this.selectPage(this.maxCountPages - 1);\n }\n },\n };\n pageButtons.push(<BaseButton {...baseButtonProps}>...</BaseButton>);\n pageButtons.push(this.getPageButton(this.count - 1));\n }\n\n return <span class=\"page-buttons\">{pageButtons}</span>;\n }\n\n render() {\n return (\n <Host>\n <ix-icon-button\n disabled={!this.count || this.selectedPage === 0}\n ghost\n icon={'chevron-left-small'}\n onClick={() => this.decrease()}\n ></ix-icon-button>\n\n {this.advanced ? (\n <div class=\"advanced-pagination\">\n <ix-typography variant=\"default\">{this.i18nPage}</ix-typography>\n <input\n class=\"form-control page-selection\"\n type=\"number\"\n min=\"1\"\n max={this.count}\n value={this.selectedPage + 1}\n onChange={(e) => {\n const index = Number.parseInt(e.target['value']);\n this.selectPage(index - 1);\n }}\n />\n <span class=\"total-count\">\n <ix-typography variant=\"default\">\n {this.i18nOf} {this.count}\n </ix-typography>\n </span>\n </div>\n ) : (\n <span class=\"basic-pagination\">{this.renderPageButtons()} </span>\n )}\n\n <ix-icon-button\n disabled={!this.count || this.selectedPage === this.count - 1}\n ghost\n icon={'chevron-right-small'}\n onClick={() => this.increase()}\n ></ix-icon-button>\n\n {this.advanced && this.showItemCount ? (\n <span class=\"item-count\">\n <ix-typography variant=\"default\">{this.i18nItems}</ix-typography>\n <ix-select\n hideListHeader\n i18nPlaceholder=\"\"\n i18nSelectListHeader=\"\"\n value={`${this.itemCount}`}\n onValueChange={(e) => {\n const count = Number.parseInt(\n Array.isArray(e.detail) ? e.detail[0] : e.detail\n );\n\n this.itemCountChanged.emit(count);\n }}\n >\n <ix-select-item label=\"10\" value=\"10\"></ix-select-item>\n <ix-select-item label=\"15\" value=\"15\"></ix-select-item>\n <ix-select-item label=\"20\" value=\"20\"></ix-select-item>\n <ix-select-item label=\"40\" value=\"40\"></ix-select-item>\n <ix-select-item label=\"100\" value=\"100\"></ix-select-item>\n </ix-select>\n </span>\n ) : (\n ''\n )}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -560,7 +560,7 @@ test.describe('Events', () => {
|
|
|
560
560
|
await select.evaluate((i) => i.addEventListener('vauleChange', (e) => e.preventDefault()));
|
|
561
561
|
await page.locator('ix-icon-button').click();
|
|
562
562
|
const item = await page.locator('ix-select-item');
|
|
563
|
-
item.click();
|
|
563
|
+
await item.click();
|
|
564
564
|
await expect(item).not.toHaveClass('selected');
|
|
565
565
|
});
|
|
566
566
|
test('add item', async ({ mount, page }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.ct.js","sourceRoot":"","sources":["../../../../src/components/select/test/select.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { expect } from '@playwright/test';\nimport { test } from '@utils/test';\n\ntest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n});\n\ntest('editable mode', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('Not existing');\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).not.toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).not.toBeVisible();\n\n const add = page.getByRole('button', { name: /Not existing/ });\n await expect(add).toBeVisible();\n\n await add.click();\n await expect(page.getByTestId('input')).toHaveValue(/Not existing/);\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n\n const addedItem = page\n .getByRole('listitem')\n .filter({ hasText: 'Not existing' });\n\n await expect(addedItem).toBeVisible();\n});\n\ntest('single selection', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate(\n (select: HTMLIxSelectElement) => (select.value = '22')\n );\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(\n page.getByRole('button', { name: 'Item 2' }).locator('ix-icon')\n ).toBeVisible();\n});\n\ntest('multiple selection', async ({ mount, page }) => {\n await mount(`\n <ix-select mode=\"multiple\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n <ix-select-item value=\"4\" label=\"Item 4\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n const chips = element.locator('.chips');\n\n await expect(dropdown).toBeVisible();\n\n const item1 = element.locator('ix-select-item').nth(0);\n const item3 = element.locator('ix-select-item').nth(2);\n await item1.click();\n await item3.click();\n\n await expect(item1.locator('ix-icon')).toBeVisible();\n await expect(item3.locator('ix-icon')).toBeVisible();\n\n const chip1 = chips.getByTitle('Item 1');\n const chip3 = chips.getByTitle('Item 3');\n\n await expect(chip1).toBeVisible();\n await expect(chip3).toBeVisible();\n});\n\ntest('filter', async ({ mount, page }) => {\n await mount(`\n <ix-select mode=\"multiple\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"abc\" label=\"abc\">Test</ix-select-item>\n <ix-select-item value=\"4\" label=\"Item 4\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n\n await page.locator('[data-select-dropdown]').click();\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await element.locator('input').fill('abc');\n\n const item1 = page.getByRole('button', { name: 'Item 1' });\n const item2 = page.getByRole('button', { name: 'Item 2' });\n const item4 = page.getByRole('button', { name: 'Item 4' });\n const item_abc = page.getByRole('button', { name: 'abc' });\n\n await expect(item1).not.toBeVisible();\n await expect(item2).not.toBeVisible();\n await expect(item4).not.toBeVisible();\n await expect(item_abc).toBeVisible();\n});\n\ntest('open filtered dropdown on input', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n\n await page.locator('[data-testid=\"input\"]').focus();\n page.keyboard.down('Escape');\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).not.toBeVisible();\n\n page.keyboard.down('1');\n\n const item1 = page.getByRole('button', { name: 'Item 1' });\n const item2 = page.getByRole('button', { name: 'Item 2' });\n\n await expect(item1).toBeVisible();\n await expect(item2).not.toBeVisible();\n});\n\ntest('remove text from input and reselect the element', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n `);\n\n await page.locator('[data-select-dropdown]').click();\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const item2 = page.getByRole('button', { name: 'Item 2' });\n await item2.click();\n\n const inputValue = await element.locator('input').inputValue();\n expect(inputValue).toEqual('Item 2');\n});\n\ntest('type in a novel item name in editable mode and then remove it', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\" editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('test');\n\n await expect(page.getByRole('button', { name: 'Item 1' })).not.toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).not.toBeVisible();\n\n const add = page.getByRole('button', { name: 'test' });\n await expect(add).toBeVisible();\n\n await page.getByTestId('input').fill('');\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(add).not.toBeVisible();\n});\n\ntest('type in a novel item name in editable mode, click outside and reopen the select', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\" editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n <ix-button>outside</ix-button>\n `);\n\n const selectElement = page.locator('ix-select');\n const btnElement = page.locator('ix-button');\n await expect(selectElement).toHaveClass(/hydrated/);\n await expect(btnElement).toBeVisible();\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('test');\n\n const add = page.getByRole('button', { name: 'test' });\n await expect(add).toBeVisible();\n\n await btnElement.click();\n const inputValue = await page.getByTestId('input').inputValue();\n\n expect(inputValue).toBe('Item 2');\n\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 3' })).toBeVisible();\n});\n\ntest('pass object as value and check if it is selectable', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select>\n <ix-select-item label=\"Item 1\">Test</ix-select-item>\n <ix-select-item label=\"Item 2\">Test</ix-select-item>\n <ix-select-item label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n `);\n const selectElement = page.locator('ix-select');\n await expect(selectElement).toHaveClass(/hydrated/);\n\n async function setSelectItemValue(index: number): Promise<void> {\n await page\n .locator('ix-select-item')\n .nth(index)\n .evaluate((e: HTMLIxSelectItemElement, index) => {\n e.value = { selectLabel: `Item ${index}`, selectValue: `${index}` };\n });\n }\n\n for (let index = 0; index < 3; index++) {\n await setSelectItemValue(index);\n }\n\n await page.locator('[data-select-dropdown]').click();\n await page.locator('ix-select-item').last().click();\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 3' })).toBeVisible();\n await expect(\n page.getByRole('button', { name: 'Item 3' }).locator('ix-icon')\n ).toBeVisible();\n});\n\ntest.describe('arrow key navigation', () => {\n test.describe('ArrowDown', () => {\n test('input -> slotted item', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n await page.locator('ix-select input').click();\n await page.keyboard.down('ArrowDown');\n const itemOne = await page.locator('ix-select-item').first();\n await expect(itemOne).toBeFocused();\n });\n\n test('input -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n const itemOne = await page.locator('.add-item');\n await expect(itemOne).toBeFocused();\n });\n\n test('input -> add item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.keyboard.down('Enter');\n await page.waitForSelector('.checkmark');\n\n await page.keyboard.down('ArrowDown');\n const addItem = await page.locator('ix-dropdown-item');\n await expect(addItem).toBeFocused();\n });\n\n test('slot -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.keyboard.down('Enter');\n await page.waitForSelector('.checkmark');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemThree = page.locator('ix-select-item').last();\n await expect(itemThree).toBeFocused();\n });\n\n test('slot -> add item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n });\n\n test('dynamic item -> add item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 2');\n await page.keyboard.down('Enter');\n await page.waitForSelector('.checkmark');\n\n await input.clear();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n });\n\n test('wrap - dynamic item -> slot', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 2');\n await page.keyboard.press('Enter');\n await page.locator('input').clear();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemTwo = page.locator('ix-select-item').nth(1);\n await expect(itemTwo).toBeFocused();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item').first();\n await expect(itemOne).toBeFocused();\n });\n\n test('wrap - add item -> slot', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item').first();\n await expect(itemOne).toBeFocused();\n });\n\n test('wrap - add item -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 1');\n await page.keyboard.press('Enter');\n await page.waitForSelector('.checkmark');\n\n await input.clear();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item');\n await expect(itemOne).toBeFocused();\n });\n });\n\n test.describe('ArrowUp', () => {\n test('dynamic item -> slot', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.keyboard.down('Enter');\n await page.waitForSelector('.checkmark');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemTwo = page.locator('ix-select-item').last();\n await expect(itemTwo).toBeFocused();\n\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item').first();\n await expect(itemOne).toBeFocused();\n });\n\n test('add item -> slot', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item');\n await expect(itemOne).toBeFocused();\n });\n\n test('add item -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 1');\n await page.keyboard.press('Enter');\n await page.waitForSelector('.checkmark');\n\n await input.clear();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item');\n await expect(itemOne).toBeFocused();\n });\n\n test('wrap - slot -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('input');\n await input.focus();\n await input.fill('Item 2');\n await page.keyboard.press('Enter');\n await page.locator('input').clear();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const itemTwo = page.locator('ix-select-item').last();\n await expect(itemTwo).toBeFocused();\n });\n\n test('wrap - slot -> add-item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n });\n\n test('wrap - dynamic item -> add item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 1');\n await page.keyboard.press('Enter');\n await page.waitForSelector('.checkmark');\n\n await input.clear();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n });\n });\n});\n\ntest.describe('Events', () => {\n test('value change', async ({ mount, page }) => {\n await mount(`<ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\"></ix-select-item>\n </ix-select>`);\n\n const select = await page.locator('ix-select');\n const valueChanged = select.evaluate((elm) => {\n return new Promise<number>((resolve) => {\n elm.addEventListener('valueChange', (e: CustomEvent) =>\n resolve(e.detail)\n );\n });\n });\n\n await page.locator('ix-icon-button').click();\n await page.locator('ix-select-item').click();\n\n await expect(select).toHaveClass(/hydrated/);\n expect(await valueChanged).toBe('1');\n });\n\n test('add item', async ({ mount, page }) => {\n const itemText = 'test';\n await mount(`<ix-select editable></ix-select>`);\n const select = await page.locator('ix-select');\n const itemAdded = select.evaluate((elm) => {\n return new Promise<number>((resolve) => {\n elm.addEventListener('addItem', (e: CustomEvent) => resolve(e.detail));\n });\n });\n const input = await page.locator('input');\n await input.focus();\n await input.fill(itemText);\n await page.keyboard.press('Enter');\n\n await expect(select).toHaveClass(/hydrated/);\n expect(await itemAdded).toBe(itemText);\n });\n\n test.describe('prevent default', () => {\n test('value change', async ({ mount, page }) => {\n await mount(`<ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\"></ix-select-item>\n </ix-select>`);\n const select = await page.locator('ix-select');\n await select.evaluate((i) =>\n i.addEventListener('vauleChange', (e) => e.preventDefault())\n );\n await page.locator('ix-icon-button').click();\n const item = await page.locator('ix-select-item');\n item.click();\n await expect(item).not.toHaveClass('selected');\n });\n\n test('add item', async ({ mount, page }) => {\n await mount(`<ix-select editable></ix-select>`);\n const select = await page.locator('ix-select');\n await select.evaluate((i) =>\n i.addEventListener('addItem', (e) => e.preventDefault())\n );\n const input = await page.locator('input');\n await input.focus();\n await input.fill('test');\n await page.keyboard.press('Enter');\n const count = await page.locator('ix-select-item').count();\n await expect(count).toBe(0);\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"select.ct.js","sourceRoot":"","sources":["../../../../src/components/select/test/select.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2023 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { expect } from '@playwright/test';\nimport { test } from '@utils/test';\n\ntest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n});\n\ntest('editable mode', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('Not existing');\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).not.toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).not.toBeVisible();\n\n const add = page.getByRole('button', { name: /Not existing/ });\n await expect(add).toBeVisible();\n\n await add.click();\n await expect(page.getByTestId('input')).toHaveValue(/Not existing/);\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n\n const addedItem = page\n .getByRole('listitem')\n .filter({ hasText: 'Not existing' });\n\n await expect(addedItem).toBeVisible();\n});\n\ntest('single selection', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"11\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"22\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate(\n (select: HTMLIxSelectElement) => (select.value = '22')\n );\n\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(\n page.getByRole('button', { name: 'Item 2' }).locator('ix-icon')\n ).toBeVisible();\n});\n\ntest('multiple selection', async ({ mount, page }) => {\n await mount(`\n <ix-select mode=\"multiple\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n <ix-select-item value=\"4\" label=\"Item 4\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n await page.locator('[data-select-dropdown]').click();\n\n const dropdown = element.locator('ix-dropdown');\n const chips = element.locator('.chips');\n\n await expect(dropdown).toBeVisible();\n\n const item1 = element.locator('ix-select-item').nth(0);\n const item3 = element.locator('ix-select-item').nth(2);\n await item1.click();\n await item3.click();\n\n await expect(item1.locator('ix-icon')).toBeVisible();\n await expect(item3.locator('ix-icon')).toBeVisible();\n\n const chip1 = chips.getByTitle('Item 1');\n const chip3 = chips.getByTitle('Item 3');\n\n await expect(chip1).toBeVisible();\n await expect(chip3).toBeVisible();\n});\n\ntest('filter', async ({ mount, page }) => {\n await mount(`\n <ix-select mode=\"multiple\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"abc\" label=\"abc\">Test</ix-select-item>\n <ix-select-item value=\"4\" label=\"Item 4\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n\n await page.locator('[data-select-dropdown]').click();\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n await element.locator('input').fill('abc');\n\n const item1 = page.getByRole('button', { name: 'Item 1' });\n const item2 = page.getByRole('button', { name: 'Item 2' });\n const item4 = page.getByRole('button', { name: 'Item 4' });\n const item_abc = page.getByRole('button', { name: 'abc' });\n\n await expect(item1).not.toBeVisible();\n await expect(item2).not.toBeVisible();\n await expect(item4).not.toBeVisible();\n await expect(item_abc).toBeVisible();\n});\n\ntest('open filtered dropdown on input', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n\n await page.locator('[data-testid=\"input\"]').focus();\n page.keyboard.down('Escape');\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).not.toBeVisible();\n\n page.keyboard.down('1');\n\n const item1 = page.getByRole('button', { name: 'Item 1' });\n const item2 = page.getByRole('button', { name: 'Item 2' });\n\n await expect(item1).toBeVisible();\n await expect(item2).not.toBeVisible();\n});\n\ntest('remove text from input and reselect the element', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\">\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n `);\n\n await page.locator('[data-select-dropdown]').click();\n const element = page.locator('ix-select');\n await element.evaluate((select: HTMLIxSelectElement) => (select.value = []));\n const dropdown = element.locator('ix-dropdown');\n await expect(dropdown).toBeVisible();\n\n const item2 = page.getByRole('button', { name: 'Item 2' });\n await item2.click();\n\n const inputValue = await element.locator('input').inputValue();\n expect(inputValue).toEqual('Item 2');\n});\n\ntest('type in a novel item name in editable mode and then remove it', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\" editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const element = page.locator('ix-select');\n await expect(element).toHaveClass(/hydrated/);\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('test');\n\n await expect(page.getByRole('button', { name: 'Item 1' })).not.toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).not.toBeVisible();\n\n const add = page.getByRole('button', { name: 'test' });\n await expect(add).toBeVisible();\n\n await page.getByTestId('input').fill('');\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(add).not.toBeVisible();\n});\n\ntest('type in a novel item name in editable mode, click outside and reopen the select', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select value=\"2\" editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n <ix-select-item value=\"3\" label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n <ix-button>outside</ix-button>\n `);\n\n const selectElement = page.locator('ix-select');\n const btnElement = page.locator('ix-button');\n await expect(selectElement).toHaveClass(/hydrated/);\n await expect(btnElement).toBeVisible();\n\n await page.locator('[data-select-dropdown]').click();\n await page.getByTestId('input').fill('test');\n\n const add = page.getByRole('button', { name: 'test' });\n await expect(add).toBeVisible();\n\n await btnElement.click();\n const inputValue = await page.getByTestId('input').inputValue();\n\n expect(inputValue).toBe('Item 2');\n\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 3' })).toBeVisible();\n});\n\ntest('pass object as value and check if it is selectable', async ({\n mount,\n page,\n}) => {\n await mount(`\n <ix-select>\n <ix-select-item label=\"Item 1\">Test</ix-select-item>\n <ix-select-item label=\"Item 2\">Test</ix-select-item>\n <ix-select-item label=\"Item 3\">Test</ix-select-item>\n </ix-select>\n `);\n const selectElement = page.locator('ix-select');\n await expect(selectElement).toHaveClass(/hydrated/);\n\n async function setSelectItemValue(index: number): Promise<void> {\n await page\n .locator('ix-select-item')\n .nth(index)\n .evaluate((e: HTMLIxSelectItemElement, index) => {\n e.value = { selectLabel: `Item ${index}`, selectValue: `${index}` };\n });\n }\n\n for (let index = 0; index < 3; index++) {\n await setSelectItemValue(index);\n }\n\n await page.locator('[data-select-dropdown]').click();\n await page.locator('ix-select-item').last().click();\n await page.locator('[data-select-dropdown]').click();\n\n await expect(page.getByRole('button', { name: 'Item 1' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 2' })).toBeVisible();\n await expect(page.getByRole('button', { name: 'Item 3' })).toBeVisible();\n await expect(\n page.getByRole('button', { name: 'Item 3' }).locator('ix-icon')\n ).toBeVisible();\n});\n\ntest.describe('arrow key navigation', () => {\n test.describe('ArrowDown', () => {\n test('input -> slotted item', async ({ mount, page }) => {\n await mount(`\n <ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n await page.locator('ix-select input').click();\n await page.keyboard.down('ArrowDown');\n const itemOne = await page.locator('ix-select-item').first();\n await expect(itemOne).toBeFocused();\n });\n\n test('input -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n const itemOne = await page.locator('.add-item');\n await expect(itemOne).toBeFocused();\n });\n\n test('input -> add item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.keyboard.down('Enter');\n await page.waitForSelector('.checkmark');\n\n await page.keyboard.down('ArrowDown');\n const addItem = await page.locator('ix-dropdown-item');\n await expect(addItem).toBeFocused();\n });\n\n test('slot -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.keyboard.down('Enter');\n await page.waitForSelector('.checkmark');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemThree = page.locator('ix-select-item').last();\n await expect(itemThree).toBeFocused();\n });\n\n test('slot -> add item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n <ix-select-item value=\"2\" label=\"Item 2\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n });\n\n test('dynamic item -> add item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 2');\n await page.keyboard.down('Enter');\n await page.waitForSelector('.checkmark');\n\n await input.clear();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n });\n\n test('wrap - dynamic item -> slot', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 2');\n await page.keyboard.press('Enter');\n await page.locator('input').clear();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemTwo = page.locator('ix-select-item').nth(1);\n await expect(itemTwo).toBeFocused();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item').first();\n await expect(itemOne).toBeFocused();\n });\n\n test('wrap - add item -> slot', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item').first();\n await expect(itemOne).toBeFocused();\n });\n\n test('wrap - add item -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 1');\n await page.keyboard.press('Enter');\n await page.waitForSelector('.checkmark');\n\n await input.clear();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item');\n await expect(itemOne).toBeFocused();\n });\n });\n\n test.describe('ArrowUp', () => {\n test('dynamic item -> slot', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.keyboard.down('Enter');\n await page.waitForSelector('.checkmark');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const itemTwo = page.locator('ix-select-item').last();\n await expect(itemTwo).toBeFocused();\n\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item').first();\n await expect(itemOne).toBeFocused();\n });\n\n test('add item -> slot', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item');\n await expect(itemOne).toBeFocused();\n });\n\n test('add item -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 1');\n await page.keyboard.press('Enter');\n await page.waitForSelector('.checkmark');\n\n await input.clear();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const itemOne = page.locator('ix-select-item');\n await expect(itemOne).toBeFocused();\n });\n\n test('wrap - slot -> dynamic item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('input');\n await input.focus();\n await input.fill('Item 2');\n await page.keyboard.press('Enter');\n await page.locator('input').clear();\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const itemTwo = page.locator('ix-select-item').last();\n await expect(itemTwo).toBeFocused();\n });\n\n test('wrap - slot -> add-item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable>\n <ix-select-item value=\"1\" label=\"Item 1\">Test</ix-select-item>\n </ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n });\n\n test('wrap - dynamic item -> add item', async ({ mount, page }) => {\n await mount(`\n <ix-select editable></ix-select>\n `);\n\n const input = await page.locator('ix-select input');\n await input.focus();\n await input.fill('Item 1');\n await page.keyboard.press('Enter');\n await page.waitForSelector('.checkmark');\n\n await input.clear();\n await input.fill('I');\n await page.waitForSelector('.add-item');\n\n await page.keyboard.down('ArrowDown');\n await page.waitForTimeout(100);\n await page.keyboard.down('ArrowUp');\n await page.waitForTimeout(100);\n\n const addItem = page.locator('.add-item');\n await expect(addItem).toBeFocused();\n });\n });\n});\n\ntest.describe('Events', () => {\n test('value change', async ({ mount, page }) => {\n await mount(`<ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\"></ix-select-item>\n </ix-select>`);\n\n const select = await page.locator('ix-select');\n const valueChanged = select.evaluate((elm) => {\n return new Promise<number>((resolve) => {\n elm.addEventListener('valueChange', (e: CustomEvent) =>\n resolve(e.detail)\n );\n });\n });\n\n await page.locator('ix-icon-button').click();\n await page.locator('ix-select-item').click();\n\n await expect(select).toHaveClass(/hydrated/);\n expect(await valueChanged).toBe('1');\n });\n\n test('add item', async ({ mount, page }) => {\n const itemText = 'test';\n await mount(`<ix-select editable></ix-select>`);\n const select = await page.locator('ix-select');\n const itemAdded = select.evaluate((elm) => {\n return new Promise<number>((resolve) => {\n elm.addEventListener('addItem', (e: CustomEvent) => resolve(e.detail));\n });\n });\n const input = await page.locator('input');\n await input.focus();\n await input.fill(itemText);\n await page.keyboard.press('Enter');\n\n await expect(select).toHaveClass(/hydrated/);\n expect(await itemAdded).toBe(itemText);\n });\n\n test.describe('prevent default', () => {\n test('value change', async ({ mount, page }) => {\n await mount(`<ix-select>\n <ix-select-item value=\"1\" label=\"Item 1\"></ix-select-item>\n </ix-select>`);\n const select = await page.locator('ix-select');\n await select.evaluate((i) =>\n i.addEventListener('vauleChange', (e) => e.preventDefault())\n );\n await page.locator('ix-icon-button').click();\n const item = await page.locator('ix-select-item');\n await item.click();\n await expect(item).not.toHaveClass('selected');\n });\n\n test('add item', async ({ mount, page }) => {\n await mount(`<ix-select editable></ix-select>`);\n const select = await page.locator('ix-select');\n await select.evaluate((i) =>\n i.addEventListener('addItem', (e) => e.preventDefault())\n );\n const input = await page.locator('input');\n await input.focus();\n await input.fill('test');\n await page.keyboard.press('Enter');\n const count = await page.locator('ix-select-item').count();\n await expect(count).toBe(0);\n });\n });\n});\n"]}
|
|
@@ -38,7 +38,7 @@ function between(min, value, max) {
|
|
|
38
38
|
*/
|
|
39
39
|
export class Slider {
|
|
40
40
|
constructor() {
|
|
41
|
-
this.step =
|
|
41
|
+
this.step = 1;
|
|
42
42
|
this.min = 0;
|
|
43
43
|
this.max = 100;
|
|
44
44
|
this.value = 0;
|
|
@@ -54,20 +54,24 @@ export class Slider {
|
|
|
54
54
|
this.showTooltip = false;
|
|
55
55
|
}
|
|
56
56
|
get tooltip() {
|
|
57
|
-
|
|
57
|
+
var _a;
|
|
58
|
+
return (_a = this.hostElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('ix-tooltip');
|
|
58
59
|
}
|
|
59
60
|
get pseudoThumb() {
|
|
60
|
-
|
|
61
|
+
var _a;
|
|
62
|
+
return (_a = this.hostElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.thumb');
|
|
61
63
|
}
|
|
62
64
|
get slider() {
|
|
63
|
-
|
|
65
|
+
var _a;
|
|
66
|
+
return (_a = this.hostElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('slider');
|
|
64
67
|
}
|
|
65
68
|
onShowTooltipChange() {
|
|
69
|
+
var _a, _b;
|
|
66
70
|
if (this.showTooltip) {
|
|
67
|
-
this.tooltip.showTooltip(this.pseudoThumb);
|
|
71
|
+
(_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.showTooltip(this.pseudoThumb);
|
|
68
72
|
return;
|
|
69
73
|
}
|
|
70
|
-
this.tooltip.hideTooltip();
|
|
74
|
+
(_b = this.tooltip) === null || _b === void 0 ? void 0 : _b.hideTooltip();
|
|
71
75
|
}
|
|
72
76
|
componentWillLoad() {
|
|
73
77
|
this.a11yAttributes = a11yHostAttributes(this.hostElement, [
|
|
@@ -118,12 +122,12 @@ export class Slider {
|
|
|
118
122
|
traceStart = valueInPercentage;
|
|
119
123
|
traceEnd = traceReferenceInPercentage;
|
|
120
124
|
}
|
|
121
|
-
return (h(Host, { key: '
|
|
125
|
+
return (h(Host, { key: 'c7e6a14875ee17d49fe5e42459b81fb561802ebc', class: {
|
|
122
126
|
disabled: this.disabled,
|
|
123
127
|
error: !!this.error,
|
|
124
|
-
}, onPointerDown: () => setTimeout(() => (this.showTooltip = true)) }, h("div", { key: '
|
|
128
|
+
}, onPointerDown: () => setTimeout(() => (this.showTooltip = true)) }, h("div", { key: 'bed770beec56a4798df1c0b8546fd78ef6c1f749', class: "slider" }, h("div", { key: 'b2337e7802806933356cc7930bcb5a0e025796b8', class: "track" }, h("div", { key: 'd5d40d3e44d50112733e5c9137b807e3a25dcafa', class: "thumb", style: {
|
|
125
129
|
left: `calc(${valueInPercentage} * 100% - 8px)`,
|
|
126
|
-
} }), h("div", { key: '
|
|
130
|
+
} }), h("div", { key: '041f4368d4b80929a03abfbe617d8f5bb15957d0', class: "ticks" }, this.marker
|
|
127
131
|
? this.marker.map((markerValue) => {
|
|
128
132
|
if (markerValue > this.max || markerValue < this.min) {
|
|
129
133
|
return;
|
|
@@ -136,20 +140,23 @@ export class Slider {
|
|
|
136
140
|
'--tick-value': `${left}`,
|
|
137
141
|
} }));
|
|
138
142
|
})
|
|
139
|
-
: null)), h("input", Object.assign({ key: '
|
|
143
|
+
: null)), h("input", Object.assign({ key: 'ef61a64f69ebc8816778dfd95dee2402b0ed9144', id: "slider", type: "range", list: this.marker ? 'markers' : undefined, step: this.step, min: this.min, max: this.max, value: this.rangeInput, tabindex: this.disabled ? -1 : 0, onInput: (event) => this.onInput(event), style: {
|
|
140
144
|
'--value': `${valueInPercentage}`,
|
|
141
145
|
'--trace-reference': `${traceReferenceInPercentage}`,
|
|
142
146
|
'--trace-start': `${traceStart}`,
|
|
143
147
|
'--trace-end': `${traceEnd}`,
|
|
144
148
|
}, class: {
|
|
145
149
|
trace: this.trace && traceReferenceInPercentage !== valueInPercentage,
|
|
150
|
+
'hide-trace-reference': this.trace &&
|
|
151
|
+
(this.traceReference <= this.min ||
|
|
152
|
+
this.traceReference >= this.max),
|
|
146
153
|
}, onFocus: () => {
|
|
147
154
|
this.showTooltip = true;
|
|
148
155
|
}, onBlur: () => {
|
|
149
156
|
this.showTooltip = false;
|
|
150
|
-
}, role: "slider", "aria-valuenow": this.rangeInput, "aria-valuemin": this.min, "aria-valuemax": this.max }, this.a11yAttributes)), h("ix-tooltip", { key: '
|
|
157
|
+
}, role: "slider", "aria-valuenow": this.rangeInput, "aria-valuemin": this.min, "aria-valuemax": this.max }, this.a11yAttributes)), h("ix-tooltip", { key: '4dfe584376f3df426be2e049703adfb4c2bf39ab', class: {
|
|
151
158
|
'hide-tooltip': !this.showTooltip,
|
|
152
|
-
}, animationFrame: true }, this.rangeInput)), h("div", { key: '
|
|
159
|
+
}, animationFrame: true }, this.rangeInput)), h("div", { key: '9c42a9aa11e4c59c2fa9f0b132d6ac3a2b4f8f72', class: "label" }, h("div", { key: '22ed6e4412f84449c68109dd5619054a65d8790f', class: "label-start" }, h("slot", { key: '676a5d1b03b6a398bda253f01396c06ccb7cdb04', name: "label-start" })), h("div", { key: '7ec74b8f1f5a4a6e0eb4dd2b1bd8c32aa098f47c', class: "label-end" }, h("slot", { key: '1a4b99aebbe60d9db5e4ed5c26907aecf2a38568', name: "label-end" }))), this.error ? (h("ix-typography", { class: 'label-error', color: "alarm" }, this.error)) : null));
|
|
153
160
|
}
|
|
154
161
|
static get is() { return "ix-slider"; }
|
|
155
162
|
static get encapsulation() { return "shadow"; }
|
|
@@ -183,7 +190,8 @@ export class Slider {
|
|
|
183
190
|
"text": "Legal number intervals"
|
|
184
191
|
},
|
|
185
192
|
"attribute": "step",
|
|
186
|
-
"reflect": false
|
|
193
|
+
"reflect": false,
|
|
194
|
+
"defaultValue": "1"
|
|
187
195
|
},
|
|
188
196
|
"min": {
|
|
189
197
|
"type": "number",
|
|
@@ -254,7 +262,7 @@ export class Slider {
|
|
|
254
262
|
}
|
|
255
263
|
},
|
|
256
264
|
"required": false,
|
|
257
|
-
"optional":
|
|
265
|
+
"optional": true,
|
|
258
266
|
"docs": {
|
|
259
267
|
"tags": [],
|
|
260
268
|
"text": "Define tick marker on the slider. Marker has to be within slider min/max"
|
|
@@ -323,7 +331,7 @@ export class Slider {
|
|
|
323
331
|
"references": {}
|
|
324
332
|
},
|
|
325
333
|
"required": false,
|
|
326
|
-
"optional":
|
|
334
|
+
"optional": true,
|
|
327
335
|
"docs": {
|
|
328
336
|
"tags": [],
|
|
329
337
|
"text": "Show error state and message"
|