@limetech/lime-elements 35.0.0-next.2 → 35.0.0-next.20
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/checkbox.template-7f83d0b4.js +41 -0
- package/dist/cjs/{component-f7ef9087.js → component-66df95e7.js} +190 -132
- package/dist/cjs/{component-f532119f.js → component-67144c1c.js} +47 -3
- package/dist/cjs/{component-ed21410d.js → component-ae3bfacf.js} +367 -235
- package/dist/cjs/{component-2faaa141.js → component-cf490570.js} +213 -143
- package/dist/cjs/{component-10dbdd60.js → component-dd795ff0.js} +7 -5
- package/dist/cjs/{index-e63a89d7.js → index-43283636.js} +23 -0
- package/dist/cjs/lime-elements.cjs.js +3 -3
- package/dist/cjs/limel-badge.cjs.entry.js +3 -3
- package/dist/cjs/limel-banner.cjs.entry.js +1 -1
- package/dist/cjs/limel-button-group.cjs.entry.js +2 -2
- package/dist/cjs/limel-button.cjs.entry.js +2 -2
- package/dist/cjs/limel-checkbox.cjs.entry.js +131 -86
- package/dist/cjs/limel-chip-set.cjs.entry.js +234 -190
- package/dist/cjs/limel-circular-progress.cjs.entry.js +2 -2
- package/dist/cjs/limel-code-editor.cjs.entry.js +49 -22
- package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
- package/dist/cjs/limel-color-picker-palette_2.cjs.entry.js +1 -1
- package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
- package/dist/cjs/limel-config.cjs.entry.js +1 -1
- package/dist/cjs/limel-date-picker.cjs.entry.js +5 -5
- package/dist/cjs/limel-dialog.cjs.entry.js +8 -9
- package/dist/cjs/limel-file.cjs.entry.js +5 -5
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
- package/dist/cjs/limel-flex-container.cjs.entry.js +5 -1
- package/dist/cjs/limel-form.cjs.entry.js +7547 -8994
- package/dist/cjs/limel-grid.cjs.entry.js +1 -1
- package/dist/cjs/limel-header.cjs.entry.js +1 -1
- package/dist/cjs/limel-icon-button.cjs.entry.js +5 -5
- package/dist/cjs/limel-icon.cjs.entry.js +1 -1
- package/dist/cjs/limel-input-field.cjs.entry.js +6 -6
- package/dist/cjs/limel-linear-progress.cjs.entry.js +3 -3
- package/dist/cjs/limel-list_3.cjs.entry.js +133 -78
- package/dist/cjs/limel-menu-list.cjs.entry.js +85 -69
- package/dist/cjs/limel-menu.cjs.entry.js +1 -1
- package/dist/cjs/limel-picker.cjs.entry.js +2 -2
- package/dist/cjs/limel-popover-surface.cjs.entry.js +2 -2
- package/dist/cjs/limel-progress-flow-item.cjs.entry.js +1 -1
- package/dist/cjs/limel-progress-flow.cjs.entry.js +1 -1
- package/dist/cjs/limel-select.cjs.entry.js +5 -5
- package/dist/cjs/limel-slider.cjs.entry.js +33 -6
- package/dist/cjs/limel-snackbar.cjs.entry.js +78 -72
- package/dist/cjs/limel-spinner.cjs.entry.js +1 -1
- package/dist/cjs/limel-switch.cjs.entry.js +497 -201
- package/dist/cjs/limel-tab-bar.cjs.entry.js +262 -185
- package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/limel-table.cjs.entry.js +363 -11
- package/dist/cjs/limel-tooltip_2.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/badge/badge.css +9 -15
- package/dist/collection/components/badge/badge.js +2 -2
- package/dist/collection/components/button/button.css +333 -145
- package/dist/collection/components/button-group/button-group.css +30 -5
- package/dist/collection/components/checkbox/checkbox.css +46 -16
- package/dist/collection/components/checkbox/checkbox.template.js +22 -20
- package/dist/collection/components/chip-set/chip-set.css +367 -34
- package/dist/collection/components/circular-progress/circular-progress.css +2 -2
- package/dist/collection/components/code-editor/code-editor.css +8 -13
- package/dist/collection/components/dialog/dialog.css +153 -109
- package/dist/collection/components/flex-container/flex-container.js +10 -0
- package/dist/collection/components/form/form.css +3 -1
- package/dist/collection/components/form/templates/common.js +4 -1
- package/dist/collection/components/icon-button/icon-button.css +116 -59
- package/dist/collection/components/icon-button/icon-button.js +1 -0
- package/dist/collection/components/input-field/input-field.css +351 -29
- package/dist/collection/components/linear-progress/linear-progress.css +14 -2
- package/dist/collection/components/list/list.css +912 -89
- package/dist/collection/components/menu-list/menu-list.css +912 -89
- package/dist/collection/components/menu-surface/menu-surface.css +31 -7
- package/dist/collection/components/picker/picker.js +1 -1
- package/dist/collection/components/popover-surface/popover-surface.css +1 -0
- package/dist/collection/components/select/select.css +430 -20
- package/dist/collection/components/select/select.template.js +1 -1
- package/dist/collection/components/slider/slider.css +54 -2
- package/dist/collection/components/snackbar/snackbar.css +588 -301
- package/dist/collection/components/switch/switch.css +592 -222
- package/dist/collection/components/switch/switch.js +18 -12
- package/dist/collection/components/tab-bar/tab-bar.css +77 -48
- package/dist/collection/components/table/columns.js +1 -1
- package/dist/collection/components/table/selection.js +111 -0
- package/dist/collection/components/table/table-selection.js +125 -0
- package/dist/collection/components/table/table.css +125 -36
- package/dist/collection/components/table/table.js +212 -7
- package/dist/collection/style/functions.scss +3 -1
- package/dist/collection/style/internal/lime-theme.scss +30 -31
- package/dist/collection/style/internal/lime-typography.scss +55 -56
- package/dist/collection/style/internal/shared_input-select-picker.scss +1 -0
- package/dist/collection/style/internal/z-index.scss +2 -1
- package/dist/esm/checkbox.template-f429c5b6.js +39 -0
- package/dist/esm/{component-89e0ce26.js → component-19eb6e2b.js} +7 -5
- package/dist/esm/{component-2630c3d7.js → component-288691f3.js} +367 -235
- package/dist/esm/{component-d682c974.js → component-410aad5a.js} +44 -4
- package/dist/esm/{component-429e92ee.js → component-5b4ac85a.js} +213 -143
- package/dist/esm/{component-2eb4e07b.js → component-fffa3419.js} +191 -133
- package/dist/esm/{index-2316f345.js → index-4456d4ad.js} +23 -0
- package/dist/esm/lime-elements.js +3 -3
- package/dist/esm/limel-badge.entry.js +3 -3
- package/dist/esm/limel-banner.entry.js +1 -1
- package/dist/esm/limel-button-group.entry.js +2 -2
- package/dist/esm/limel-button.entry.js +2 -2
- package/dist/esm/limel-checkbox.entry.js +132 -87
- package/dist/esm/limel-chip-set.entry.js +234 -190
- package/dist/esm/limel-circular-progress.entry.js +2 -2
- package/dist/esm/limel-code-editor.entry.js +49 -22
- package/dist/esm/limel-collapsible-section.entry.js +1 -1
- package/dist/esm/limel-color-picker-palette_2.entry.js +1 -1
- package/dist/esm/limel-color-picker.entry.js +1 -1
- package/dist/esm/limel-config.entry.js +1 -1
- package/dist/esm/limel-date-picker.entry.js +5 -5
- package/dist/esm/limel-dialog.entry.js +8 -9
- package/dist/esm/limel-file.entry.js +5 -5
- package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
- package/dist/esm/limel-flex-container.entry.js +5 -1
- package/dist/esm/limel-form.entry.js +7550 -8997
- package/dist/esm/limel-grid.entry.js +1 -1
- package/dist/esm/limel-header.entry.js +1 -1
- package/dist/esm/limel-icon-button.entry.js +5 -5
- package/dist/esm/limel-icon.entry.js +1 -1
- package/dist/esm/limel-input-field.entry.js +6 -6
- package/dist/esm/limel-linear-progress.entry.js +4 -4
- package/dist/esm/limel-list_3.entry.js +134 -79
- package/dist/esm/limel-menu-list.entry.js +86 -70
- package/dist/esm/limel-menu.entry.js +1 -1
- package/dist/esm/limel-picker.entry.js +2 -2
- package/dist/esm/limel-popover-surface.entry.js +2 -2
- package/dist/esm/limel-progress-flow-item.entry.js +1 -1
- package/dist/esm/limel-progress-flow.entry.js +1 -1
- package/dist/esm/limel-select.entry.js +5 -5
- package/dist/esm/limel-slider.entry.js +34 -7
- package/dist/esm/limel-snackbar.entry.js +78 -72
- package/dist/esm/limel-spinner.entry.js +1 -1
- package/dist/esm/limel-switch.entry.js +497 -201
- package/dist/esm/limel-tab-bar.entry.js +262 -185
- package/dist/esm/limel-tab-panel.entry.js +1 -1
- package/dist/esm/limel-table.entry.js +363 -11
- package/dist/esm/limel-tooltip_2.entry.js +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/{util-71a23335.js → util-f1bde91c.js} +1 -1
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-a4c532a7.entry.js → p-00d485d8.entry.js} +1 -1
- package/dist/lime-elements/p-062a9599.entry.js +131 -0
- package/dist/lime-elements/{p-597cbe05.entry.js → p-0ea1cbf6.entry.js} +1 -1
- package/dist/lime-elements/p-1c284626.js +73 -0
- package/dist/lime-elements/{p-a2cf74c1.entry.js → p-255084bd.entry.js} +1 -1
- package/dist/lime-elements/{p-e881e98d.entry.js → p-2550ff27.entry.js} +1 -1
- package/dist/lime-elements/{p-31fecf5d.entry.js → p-3bef288b.entry.js} +1 -1
- package/dist/lime-elements/{p-58cbe99d.entry.js → p-3f440859.entry.js} +1 -1
- package/dist/lime-elements/{p-4b5af81b.entry.js → p-41ec08c9.entry.js} +1 -1
- package/dist/lime-elements/{p-92146da6.js → p-44f9b6d5.js} +0 -0
- package/dist/lime-elements/{p-1fb5340d.entry.js → p-45689f25.entry.js} +1 -1
- package/dist/lime-elements/p-47ef0ebb.entry.js +1 -0
- package/dist/lime-elements/{p-076bd4dc.js → p-48d4ef20.js} +3 -3
- package/dist/lime-elements/p-4e9869f4.entry.js +126 -0
- package/dist/lime-elements/{p-6003f817.entry.js → p-549190f6.entry.js} +1 -1
- package/dist/lime-elements/p-555f774c.entry.js +82 -0
- package/dist/lime-elements/p-63516991.entry.js +1 -0
- package/dist/lime-elements/{p-13f0e4f4.entry.js → p-687429fb.entry.js} +1 -1
- package/dist/lime-elements/p-6acee2e5.entry.js +73 -0
- package/dist/lime-elements/p-6fc9a0be.entry.js +59 -0
- package/dist/lime-elements/{p-64549ba6.entry.js → p-70a4d004.entry.js} +3 -3
- package/dist/lime-elements/{p-468e940e.entry.js → p-75846313.entry.js} +1 -1
- package/dist/lime-elements/p-779d1567.entry.js +1 -0
- package/dist/lime-elements/p-7d4eb67f.entry.js +1 -0
- package/dist/lime-elements/p-8777324f.entry.js +1 -0
- package/dist/lime-elements/{p-714fde78.entry.js → p-897a7f8a.entry.js} +1 -1
- package/dist/lime-elements/{p-fc30b8e3.entry.js → p-8a5ca741.entry.js} +1 -1
- package/dist/lime-elements/{p-8a2c1038.entry.js → p-9607b6f9.entry.js} +2 -2
- package/dist/lime-elements/p-9caf28bd.entry.js +1 -0
- package/dist/lime-elements/{p-152a6d5f.js → p-9faad6eb.js} +1 -1
- package/dist/lime-elements/{p-34c7872e.entry.js → p-a35e6b8a.entry.js} +1 -1
- package/dist/lime-elements/{p-041ae00c.entry.js → p-b808ba3d.entry.js} +1 -1
- package/dist/lime-elements/p-be2bd743.js +1 -0
- package/dist/lime-elements/p-be351178.entry.js +37 -0
- package/dist/lime-elements/p-c40f5030.entry.js +82 -0
- package/dist/lime-elements/p-c4e2eb42.entry.js +1 -0
- package/dist/lime-elements/{p-1876a96a.entry.js → p-c5168bda.entry.js} +1 -1
- package/dist/lime-elements/p-cbc43682.js +81 -0
- package/dist/lime-elements/{p-ace9affc.js → p-d0a7de87.js} +2 -2
- package/dist/lime-elements/{p-be56ffab.entry.js → p-d5f17adb.entry.js} +1 -1
- package/dist/lime-elements/p-d70f1c00.entry.js +59 -0
- package/dist/lime-elements/p-dbd61714.entry.js +1 -0
- package/dist/lime-elements/{p-8ad5e143.entry.js → p-dd62c71b.entry.js} +1 -1
- package/dist/lime-elements/p-dfba92de.js +126 -0
- package/dist/lime-elements/p-e55144ec.entry.js +1 -0
- package/dist/lime-elements/{p-dfe0a58b.entry.js → p-e6f39a71.entry.js} +1 -1
- package/dist/lime-elements/p-e8453bcb.entry.js +16 -0
- package/dist/lime-elements/p-f777d8a3.entry.js +82 -0
- package/dist/lime-elements/style/functions.scss +3 -1
- package/dist/lime-elements/style/internal/lime-theme.scss +30 -31
- package/dist/lime-elements/style/internal/lime-typography.scss +55 -56
- package/dist/lime-elements/style/internal/shared_input-select-picker.scss +1 -0
- package/dist/lime-elements/style/internal/z-index.scss +2 -1
- package/dist/types/components/badge/badge.d.ts +1 -1
- package/dist/types/components/flex-container/flex-container.d.ts +7 -0
- package/dist/types/components/switch/switch.d.ts +2 -2
- package/dist/types/components/table/columns.d.ts +7 -0
- package/dist/types/components/table/selection.d.ts +79 -0
- package/dist/types/components/table/table-selection.d.ts +57 -0
- package/dist/types/components/table/table.d.ts +39 -7
- package/dist/types/components/table/table.types.d.ts +13 -0
- package/dist/types/components.d.ts +33 -1
- package/dist/types/stencil-public-runtime.d.ts +6 -4
- package/package.json +19 -19
- package/dist/cjs/checkbox.template-50eb8b76.js +0 -39
- package/dist/esm/checkbox.template-50f7c07b.js +0 -37
- package/dist/lime-elements/p-0ce9165f.entry.js +0 -1
- package/dist/lime-elements/p-0fd208f3.entry.js +0 -82
- package/dist/lime-elements/p-143705b1.entry.js +0 -1
- package/dist/lime-elements/p-250f55be.js +0 -1
- package/dist/lime-elements/p-31299106.js +0 -126
- package/dist/lime-elements/p-4932c029.entry.js +0 -1
- package/dist/lime-elements/p-510bb5a4.entry.js +0 -1
- package/dist/lime-elements/p-6215e45e.entry.js +0 -37
- package/dist/lime-elements/p-668795a7.js +0 -73
- package/dist/lime-elements/p-6cfb45a1.entry.js +0 -1
- package/dist/lime-elements/p-7476efe0.entry.js +0 -1
- package/dist/lime-elements/p-902347b9.js +0 -81
- package/dist/lime-elements/p-90f3e17c.entry.js +0 -37
- package/dist/lime-elements/p-96e44a1e.entry.js +0 -82
- package/dist/lime-elements/p-a77cbb08.entry.js +0 -1
- package/dist/lime-elements/p-b5faa40d.entry.js +0 -59
- package/dist/lime-elements/p-bc0dcf01.entry.js +0 -73
- package/dist/lime-elements/p-c35874db.entry.js +0 -1
- package/dist/lime-elements/p-c8c8a946.entry.js +0 -59
- package/dist/lime-elements/p-d2c74396.entry.js +0 -1
- package/dist/lime-elements/p-d48ad9f7.entry.js +0 -126
- package/dist/lime-elements/p-d93a3b07.entry.js +0 -16
- package/dist/lime-elements/p-f2c706b8.entry.js +0 -131
|
@@ -24,9 +24,9 @@ export class Switch {
|
|
|
24
24
|
*/
|
|
25
25
|
this.value = false;
|
|
26
26
|
this.fieldId = createRandomString();
|
|
27
|
-
this.
|
|
27
|
+
this.handleClick = (event) => {
|
|
28
28
|
event.stopPropagation();
|
|
29
|
-
this.change.emit(
|
|
29
|
+
this.change.emit(!this.value);
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
connectedCallback() {
|
|
@@ -48,25 +48,31 @@ export class Switch {
|
|
|
48
48
|
}
|
|
49
49
|
render() {
|
|
50
50
|
return [
|
|
51
|
-
h("
|
|
51
|
+
h("button", { id: this.fieldId, class: {
|
|
52
52
|
'mdc-switch': true,
|
|
53
|
-
'mdc-switch--disabled': this.disabled || this.readonly,
|
|
54
53
|
'lime-switch--readonly': this.readonly,
|
|
55
|
-
|
|
54
|
+
'mdc-switch--unselected': !this.value,
|
|
55
|
+
'mdc-switch--selected': this.value,
|
|
56
|
+
}, type: "button", role: "switch", "aria-checked": this.value, disabled: this.disabled || this.readonly, onClick: this.handleClick },
|
|
56
57
|
h("div", { class: "mdc-switch__track" }),
|
|
57
|
-
h("div", { class: "mdc-
|
|
58
|
-
h("div", { class: "mdc-
|
|
59
|
-
h("
|
|
58
|
+
h("div", { class: "mdc-switch__handle-track" },
|
|
59
|
+
h("div", { class: "mdc-switch__handle" },
|
|
60
|
+
h("div", { class: "mdc-switch__shadow" },
|
|
61
|
+
h("div", { class: "mdc-elevation-overlay" })),
|
|
62
|
+
h("div", { class: "mdc-switch__ripple" }),
|
|
63
|
+
h("div", { class: "mdc-switch__icons" },
|
|
64
|
+
h("svg", { class: "mdc-switch__icon mdc-switch__icon--on", viewBox: "0 0 24 24" },
|
|
65
|
+
h("path", { d: "M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z" })),
|
|
66
|
+
h("svg", { class: "mdc-switch__icon mdc-switch__icon--off", viewBox: "0 0 24 24" },
|
|
67
|
+
h("path", { d: "M20 13H4v-2h16v2z" })))))),
|
|
60
68
|
h("label", { class: `${this.disabled || this.readonly ? 'disabled' : ''}`, htmlFor: this.fieldId }, this.label),
|
|
61
69
|
];
|
|
62
70
|
}
|
|
63
|
-
valueWatcher(newValue
|
|
71
|
+
valueWatcher(newValue) {
|
|
64
72
|
if (!this.mdcSwitch) {
|
|
65
73
|
return;
|
|
66
74
|
}
|
|
67
|
-
|
|
68
|
-
this.mdcSwitch.checked = newValue;
|
|
69
|
-
}
|
|
75
|
+
this.mdcSwitch.selected = newValue;
|
|
70
76
|
}
|
|
71
77
|
static get is() { return "limel-switch"; }
|
|
72
78
|
static get encapsulation() { return "shadow"; }
|
|
@@ -192,17 +192,6 @@
|
|
|
192
192
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
193
193
|
* THE SOFTWARE.
|
|
194
194
|
*/
|
|
195
|
-
.mdc-tab-indicator {
|
|
196
|
-
display: flex;
|
|
197
|
-
position: absolute;
|
|
198
|
-
top: 0;
|
|
199
|
-
left: 0;
|
|
200
|
-
justify-content: center;
|
|
201
|
-
width: 100%;
|
|
202
|
-
height: 100%;
|
|
203
|
-
pointer-events: none;
|
|
204
|
-
z-index: 1;
|
|
205
|
-
}
|
|
206
195
|
.mdc-tab-indicator .mdc-tab-indicator__content--underline {
|
|
207
196
|
border-color: #26a69a;
|
|
208
197
|
/* @alternate */
|
|
@@ -221,6 +210,18 @@
|
|
|
221
210
|
font-size: 34px;
|
|
222
211
|
}
|
|
223
212
|
|
|
213
|
+
.mdc-tab-indicator {
|
|
214
|
+
display: flex;
|
|
215
|
+
position: absolute;
|
|
216
|
+
top: 0;
|
|
217
|
+
left: 0;
|
|
218
|
+
justify-content: center;
|
|
219
|
+
width: 100%;
|
|
220
|
+
height: 100%;
|
|
221
|
+
pointer-events: none;
|
|
222
|
+
z-index: 1;
|
|
223
|
+
}
|
|
224
|
+
|
|
224
225
|
.mdc-tab-indicator__content {
|
|
225
226
|
transform-origin: left;
|
|
226
227
|
opacity: 0;
|
|
@@ -282,10 +283,46 @@
|
|
|
282
283
|
text-transform: none;
|
|
283
284
|
/* @alternate */
|
|
284
285
|
text-transform: var(--mdc-typography-button-text-transform, none);
|
|
286
|
+
position: relative;
|
|
287
|
+
}
|
|
288
|
+
.mdc-tab .mdc-tab__text-label {
|
|
289
|
+
color: rgba(0, 0, 0, 0.6);
|
|
290
|
+
}
|
|
291
|
+
.mdc-tab .mdc-tab__icon {
|
|
292
|
+
color: rgba(0, 0, 0, 0.54);
|
|
293
|
+
fill: currentColor;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.mdc-tab__content {
|
|
297
|
+
position: relative;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.mdc-tab__icon {
|
|
301
|
+
width: 24px;
|
|
302
|
+
height: 24px;
|
|
303
|
+
font-size: 24px;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.mdc-tab--active .mdc-tab__text-label {
|
|
307
|
+
color: #26a69a;
|
|
308
|
+
/* @alternate */
|
|
309
|
+
color: var(--mdc-theme-primary, #26a69a);
|
|
310
|
+
}
|
|
311
|
+
.mdc-tab--active .mdc-tab__icon {
|
|
312
|
+
color: #26a69a;
|
|
313
|
+
/* @alternate */
|
|
314
|
+
color: var(--mdc-theme-primary, #26a69a);
|
|
315
|
+
fill: currentColor;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.mdc-tab {
|
|
319
|
+
background: none;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.mdc-tab {
|
|
323
|
+
min-width: 90px;
|
|
285
324
|
padding-right: 24px;
|
|
286
325
|
padding-left: 24px;
|
|
287
|
-
min-width: 90px;
|
|
288
|
-
position: relative;
|
|
289
326
|
display: flex;
|
|
290
327
|
flex: 1 0 auto;
|
|
291
328
|
justify-content: center;
|
|
@@ -295,20 +332,12 @@
|
|
|
295
332
|
padding-bottom: 0;
|
|
296
333
|
border: none;
|
|
297
334
|
outline: none;
|
|
298
|
-
background: none;
|
|
299
335
|
text-align: center;
|
|
300
336
|
white-space: nowrap;
|
|
301
337
|
cursor: pointer;
|
|
302
338
|
-webkit-appearance: none;
|
|
303
339
|
z-index: 1;
|
|
304
340
|
}
|
|
305
|
-
.mdc-tab .mdc-tab__text-label {
|
|
306
|
-
color: rgba(0, 0, 0, 0.6);
|
|
307
|
-
}
|
|
308
|
-
.mdc-tab .mdc-tab__icon {
|
|
309
|
-
color: rgba(0, 0, 0, 0.54);
|
|
310
|
-
fill: currentColor;
|
|
311
|
-
}
|
|
312
341
|
.mdc-tab::-moz-focus-inner {
|
|
313
342
|
padding: 0;
|
|
314
343
|
border: 0;
|
|
@@ -319,7 +348,6 @@
|
|
|
319
348
|
}
|
|
320
349
|
|
|
321
350
|
.mdc-tab__content {
|
|
322
|
-
position: relative;
|
|
323
351
|
display: flex;
|
|
324
352
|
align-items: center;
|
|
325
353
|
justify-content: center;
|
|
@@ -336,9 +364,6 @@
|
|
|
336
364
|
|
|
337
365
|
.mdc-tab__icon {
|
|
338
366
|
transition: 150ms color linear;
|
|
339
|
-
width: 24px;
|
|
340
|
-
height: 24px;
|
|
341
|
-
font-size: 24px;
|
|
342
367
|
z-index: 2;
|
|
343
368
|
}
|
|
344
369
|
|
|
@@ -352,17 +377,6 @@
|
|
|
352
377
|
padding-bottom: 4px;
|
|
353
378
|
}
|
|
354
379
|
|
|
355
|
-
.mdc-tab--active .mdc-tab__text-label {
|
|
356
|
-
color: #26a69a;
|
|
357
|
-
/* @alternate */
|
|
358
|
-
color: var(--mdc-theme-primary, #26a69a);
|
|
359
|
-
}
|
|
360
|
-
.mdc-tab--active .mdc-tab__icon {
|
|
361
|
-
color: #26a69a;
|
|
362
|
-
/* @alternate */
|
|
363
|
-
color: var(--mdc-theme-primary, #26a69a);
|
|
364
|
-
fill: currentColor;
|
|
365
|
-
}
|
|
366
380
|
.mdc-tab--active .mdc-tab__text-label,
|
|
367
381
|
.mdc-tab--active .mdc-tab__icon {
|
|
368
382
|
transition-delay: 100ms;
|
|
@@ -370,15 +384,21 @@
|
|
|
370
384
|
|
|
371
385
|
.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label {
|
|
372
386
|
/* @noflip */
|
|
387
|
+
/*rtl:ignore*/
|
|
373
388
|
padding-left: 8px;
|
|
374
389
|
/* @noflip */
|
|
390
|
+
/*rtl:ignore*/
|
|
375
391
|
padding-right: 0;
|
|
376
392
|
}
|
|
377
393
|
[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label, .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon + .mdc-tab__text-label[dir=rtl] {
|
|
394
|
+
/*rtl:begin:ignore*/
|
|
378
395
|
/* @noflip */
|
|
396
|
+
/*rtl:ignore*/
|
|
379
397
|
padding-left: 0;
|
|
380
398
|
/* @noflip */
|
|
399
|
+
/*rtl:ignore*/
|
|
381
400
|
padding-right: 8px;
|
|
401
|
+
/*rtl:end:ignore*/
|
|
382
402
|
}
|
|
383
403
|
|
|
384
404
|
@keyframes mdc-ripple-fg-radius-in {
|
|
@@ -442,6 +462,7 @@
|
|
|
442
462
|
.mdc-tab.mdc-ripple-upgraded .mdc-tab__ripple::after {
|
|
443
463
|
top: 0;
|
|
444
464
|
/* @noflip */
|
|
465
|
+
/*rtl:ignore*/
|
|
445
466
|
left: 0;
|
|
446
467
|
transform: scale(0);
|
|
447
468
|
transform-origin: center center;
|
|
@@ -449,6 +470,7 @@
|
|
|
449
470
|
.mdc-tab.mdc-ripple-upgraded--unbounded .mdc-tab__ripple::after {
|
|
450
471
|
top: var(--mdc-ripple-top, 0);
|
|
451
472
|
/* @noflip */
|
|
473
|
+
/*rtl:ignore*/
|
|
452
474
|
left: var(--mdc-ripple-left, 0);
|
|
453
475
|
}
|
|
454
476
|
.mdc-tab.mdc-ripple-upgraded--foreground-activation .mdc-tab__ripple::after {
|
|
@@ -462,6 +484,7 @@
|
|
|
462
484
|
.mdc-tab .mdc-tab__ripple::after {
|
|
463
485
|
top: calc(50% - 100%);
|
|
464
486
|
/* @noflip */
|
|
487
|
+
/*rtl:ignore*/
|
|
465
488
|
left: calc(50% - 100%);
|
|
466
489
|
width: 200%;
|
|
467
490
|
height: 200%;
|
|
@@ -587,19 +610,10 @@
|
|
|
587
610
|
flex: 1 0 auto;
|
|
588
611
|
}
|
|
589
612
|
|
|
590
|
-
.mdc-tab__icon {
|
|
591
|
-
margin-right: 0.5rem;
|
|
592
|
-
}
|
|
593
|
-
|
|
594
613
|
.mdc-tab-indicator .mdc-tab-indicator__content {
|
|
595
614
|
border: none;
|
|
596
615
|
}
|
|
597
616
|
|
|
598
|
-
.mdc-tab--active .mdc-ripple-upgraded--background-focused:before {
|
|
599
|
-
background-color: transparent;
|
|
600
|
-
transition: background-color 1s ease;
|
|
601
|
-
}
|
|
602
|
-
|
|
603
617
|
.mdc-tab__ripple {
|
|
604
618
|
box-sizing: border-box;
|
|
605
619
|
border-radius: 0.625rem;
|
|
@@ -615,12 +629,15 @@
|
|
|
615
629
|
.mdc-tab {
|
|
616
630
|
border-radius: 0;
|
|
617
631
|
letter-spacing: normal;
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
632
|
+
padding-right: 1.25rem;
|
|
633
|
+
padding-left: 1.25rem;
|
|
634
|
+
min-width: 2.5rem;
|
|
621
635
|
background-color: transparent;
|
|
622
636
|
flex: 0 0 auto;
|
|
623
637
|
}
|
|
638
|
+
.mdc-tab:not(.mdc-tab--active) {
|
|
639
|
+
--badge-background-color: rgb(var(--contrast-600));
|
|
640
|
+
}
|
|
624
641
|
.mdc-tab:not(.mdc-tab--active):after {
|
|
625
642
|
content: "";
|
|
626
643
|
display: block;
|
|
@@ -660,4 +677,16 @@
|
|
|
660
677
|
}
|
|
661
678
|
.mdc-tab--active:after {
|
|
662
679
|
right: -0.75rem;
|
|
680
|
+
}
|
|
681
|
+
.mdc-tab--active .mdc-ripple-upgraded--background-focused:before {
|
|
682
|
+
background-color: transparent;
|
|
683
|
+
transition: background-color 1s ease;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
.mdc-tab__content {
|
|
687
|
+
gap: 0.375rem;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
.mdc-tab__text-label {
|
|
691
|
+
padding-left: 0 !important;
|
|
663
692
|
}
|
|
@@ -134,7 +134,7 @@ export function createCustomComponent(cell, column, value, pool) {
|
|
|
134
134
|
* @param {HTMLElement} element the custom element
|
|
135
135
|
* @param {object} props object of properties and event listeners
|
|
136
136
|
*/
|
|
137
|
-
function setElementProperties(element, props) {
|
|
137
|
+
export function setElementProperties(element, props) {
|
|
138
138
|
const properties = pickBy(props, negate(isEventListener));
|
|
139
139
|
Object.assign(element, properties);
|
|
140
140
|
const listeners = pickBy(props, isEventListener);
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contains a set of selected data objects with methods for adding and removing
|
|
3
|
+
* items to the selection by referring to them by their index/position.
|
|
4
|
+
* Maintains a memory of the last toggled item which can be used to select or
|
|
5
|
+
* deselect a range of items between the last toggled item and a given item.
|
|
6
|
+
*/
|
|
7
|
+
export class Selection {
|
|
8
|
+
/**
|
|
9
|
+
* Creates an instance of the Selection class.
|
|
10
|
+
* The provided function `getDataByIndex` is used to provide data for the
|
|
11
|
+
* selected items when selection is toggled by using the item index,
|
|
12
|
+
* which can be the row position in a table.
|
|
13
|
+
*
|
|
14
|
+
* @param {Function} getDataByIndex A function that returns the data at the given index
|
|
15
|
+
*/
|
|
16
|
+
constructor(getDataByIndex) {
|
|
17
|
+
this.getDataByIndex = getDataByIndex;
|
|
18
|
+
this.toggleRange = (fromIndex, toIndex) => {
|
|
19
|
+
const select = !this.selectedItems.has(this.getDataByIndex(toIndex));
|
|
20
|
+
const lowerBound = Math.min(fromIndex, toIndex);
|
|
21
|
+
const upperBound = Math.max(fromIndex, toIndex);
|
|
22
|
+
const updatedIndexes = [];
|
|
23
|
+
const updatedItems = [];
|
|
24
|
+
for (let index = lowerBound; index <= upperBound; index++) {
|
|
25
|
+
const data = this.getDataByIndex(index);
|
|
26
|
+
if (!data) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const isSelected = this.selectedItems.has(data);
|
|
30
|
+
if (isSelected === select) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (select) {
|
|
34
|
+
this.selectedItems.add(data);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.selectedItems.delete(data);
|
|
38
|
+
}
|
|
39
|
+
updatedIndexes.push(index);
|
|
40
|
+
updatedItems.push(data);
|
|
41
|
+
}
|
|
42
|
+
this.lastToggledIndex = toIndex;
|
|
43
|
+
return {
|
|
44
|
+
selected: select,
|
|
45
|
+
items: updatedItems,
|
|
46
|
+
indexes: updatedIndexes,
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
this.clear();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @returns {number} The size of the selection
|
|
53
|
+
*/
|
|
54
|
+
get size() {
|
|
55
|
+
return this.selectedItems.size;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @returns {any[]} The selected items
|
|
59
|
+
*/
|
|
60
|
+
get items() {
|
|
61
|
+
return Array.from(this.selectedItems);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @param {any[]} items The selected items
|
|
65
|
+
*/
|
|
66
|
+
set items(items) {
|
|
67
|
+
this.selectedItems = new Set(items);
|
|
68
|
+
this.lastToggledIndex = -1;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Checks whether the given item exist in the selection
|
|
72
|
+
*
|
|
73
|
+
* @param {any} data The data to look up
|
|
74
|
+
* @returns {boolean} `true` if the given data exist in the selection, otherwise `false`
|
|
75
|
+
*/
|
|
76
|
+
has(data) {
|
|
77
|
+
return this.selectedItems.has(data);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Toggles the item at the given index in the selection
|
|
81
|
+
*
|
|
82
|
+
* @param {number} index The index of the item to toggle
|
|
83
|
+
* @returns {SelectionChangeSet} The changes made to the selection
|
|
84
|
+
*/
|
|
85
|
+
toggleSelection(index) {
|
|
86
|
+
return this.toggleRange(index, index);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Toggles the items from the last toggled index to the given index in the selection.
|
|
90
|
+
* The toggled items will be toggled as the item at the given index no matter
|
|
91
|
+
* their current state in the selection.
|
|
92
|
+
* Initially, when no last toggled index exist, this function behaves like
|
|
93
|
+
* `toggleSelection`.
|
|
94
|
+
*
|
|
95
|
+
* @param {number} index The index of the item to toggle
|
|
96
|
+
* @returns {SelectionChangeSet} The changes made to the selection
|
|
97
|
+
*/
|
|
98
|
+
toggleSelectionFromLastIndex(index) {
|
|
99
|
+
if (this.lastToggledIndex < 0) {
|
|
100
|
+
return this.toggleSelection(index);
|
|
101
|
+
}
|
|
102
|
+
return this.toggleRange(this.lastToggledIndex, index);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Clears the current selection and resets last toggled index
|
|
106
|
+
*/
|
|
107
|
+
clear() {
|
|
108
|
+
this.selectedItems = new Set();
|
|
109
|
+
this.lastToggledIndex = -1;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { setElementProperties } from './columns';
|
|
2
|
+
import { Selection } from './selection';
|
|
3
|
+
import { isEqual } from 'lodash-es';
|
|
4
|
+
const LIMEL_CHECKBOX = 'limel-checkbox';
|
|
5
|
+
/**
|
|
6
|
+
* Provides row selection to Tabulator with shift-click support for range selections
|
|
7
|
+
*/
|
|
8
|
+
export class TableSelection {
|
|
9
|
+
/**
|
|
10
|
+
* Creates an instance of the TableSelection class
|
|
11
|
+
*
|
|
12
|
+
* @param {Function} getTable Function that returns the Tabulator instance
|
|
13
|
+
* @param {ElementPool} pool The element pool used to cache the checkbox components
|
|
14
|
+
* @param {EventEmitter<object[]>} selectEvent The event emitter to use when checkboxes are toggled
|
|
15
|
+
*/
|
|
16
|
+
constructor(getTable, pool, selectEvent) {
|
|
17
|
+
this.getTable = getTable;
|
|
18
|
+
this.pool = pool;
|
|
19
|
+
this.selectEvent = selectEvent;
|
|
20
|
+
/**
|
|
21
|
+
* Tabulator cell click handler that updates the selection for the clicked
|
|
22
|
+
* row and toggles the selection from the last clicked row if the shift key
|
|
23
|
+
* is pressed down.
|
|
24
|
+
*
|
|
25
|
+
* @param {PointerEvent} ev The pointer event
|
|
26
|
+
* @param {Tabulator.CellComponent} cell The clicked cell component
|
|
27
|
+
*/
|
|
28
|
+
this.rowSelectorCellClick = (ev, cell) => {
|
|
29
|
+
ev.stopPropagation();
|
|
30
|
+
ev.preventDefault();
|
|
31
|
+
const clickedRow = cell.getRow();
|
|
32
|
+
const rowPosition = clickedRow.getPosition(true);
|
|
33
|
+
if (ev.shiftKey) {
|
|
34
|
+
this.updateRowSelectors(this.selection.toggleSelectionFromLastIndex(rowPosition));
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.updateRowSelectors(this.selection.toggleSelection(rowPosition));
|
|
38
|
+
}
|
|
39
|
+
this.selectEvent.emit(this.selection.items);
|
|
40
|
+
};
|
|
41
|
+
this.updateRowSelectors = (changeSet) => {
|
|
42
|
+
changeSet.indexes
|
|
43
|
+
.map(this.getRowByIndex)
|
|
44
|
+
.forEach((row) => this.updateRowSelector(row, changeSet.selected));
|
|
45
|
+
};
|
|
46
|
+
this.updateRowSelector = (row, checked) => {
|
|
47
|
+
const cell = row.getCells()[0];
|
|
48
|
+
if (cell) {
|
|
49
|
+
const checkBox = cell.getElement().querySelector(LIMEL_CHECKBOX);
|
|
50
|
+
checkBox.checked = checked;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this.getActiveRows = () => {
|
|
54
|
+
const table = this.getTable();
|
|
55
|
+
if (!table) {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
return table.getRows('active');
|
|
59
|
+
};
|
|
60
|
+
this.getRowByIndex = (index) => {
|
|
61
|
+
return this.getTable().getRowFromPosition(index, true);
|
|
62
|
+
};
|
|
63
|
+
this.selection = new Selection((index) => this.getRowByIndex(index).getData());
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @returns {boolean} Returns `true` when the selection is non-empty, otherwise `false`
|
|
67
|
+
*/
|
|
68
|
+
get hasSelection() {
|
|
69
|
+
return this.selection.size > 0;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Clears the selection
|
|
73
|
+
*/
|
|
74
|
+
clear() {
|
|
75
|
+
this.selection.clear();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Sets the selected items
|
|
79
|
+
*
|
|
80
|
+
* @param {any[]} data The selected items
|
|
81
|
+
*/
|
|
82
|
+
setSelection(data) {
|
|
83
|
+
if (isEqual(this.selection.items, data)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.selection.items = data;
|
|
87
|
+
const rows = this.getActiveRows();
|
|
88
|
+
rows.forEach((row) => this.updateRowSelector(row, this.selection.has(row.getData())));
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Prepends a checkbox column used for row selection to the given column definitions
|
|
92
|
+
*
|
|
93
|
+
* @param {Tabulator.ColumnDefinition[]} columnDefinitions The column definition for the table
|
|
94
|
+
* @returns {Tabulator.ColumnDefinition[]} The column definitions with the checkbox column prepended to it
|
|
95
|
+
*/
|
|
96
|
+
getColumnDefinitions(columnDefinitions) {
|
|
97
|
+
return [this.getRowSelectorColumnDefinition(), ...columnDefinitions];
|
|
98
|
+
}
|
|
99
|
+
getRowSelectorColumnDefinition() {
|
|
100
|
+
return {
|
|
101
|
+
title: '',
|
|
102
|
+
formatter: this.getRowSelectorFormatter(),
|
|
103
|
+
cellClick: this.rowSelectorCellClick,
|
|
104
|
+
headerClick: this.headerClick,
|
|
105
|
+
headerSort: false,
|
|
106
|
+
cssClass: 'limel-table--row-selector',
|
|
107
|
+
resizable: false,
|
|
108
|
+
htmlOutput: false,
|
|
109
|
+
clipboard: false,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
headerClick(ev) {
|
|
113
|
+
ev.stopPropagation();
|
|
114
|
+
}
|
|
115
|
+
getRowSelectorFormatter() {
|
|
116
|
+
return (cell) => {
|
|
117
|
+
const element = this.pool.get(LIMEL_CHECKBOX);
|
|
118
|
+
setElementProperties(element, {
|
|
119
|
+
checked: this.selection.has(cell.getData()),
|
|
120
|
+
});
|
|
121
|
+
element.style.display = 'inline-block';
|
|
122
|
+
return element;
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|