@watermarkinsights/ripple 3.0.1-0 → 3.0.2-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ripple/functions-316c1b23.js → cjs/functions-e3f5ae65.js} +188 -2391
- package/dist/cjs/global-1e540de6.js +38 -0
- package/dist/cjs/http-service-9e8c4dd5.js +57 -0
- package/dist/cjs/index-d930307d.js +1392 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/interfaces-30a74c1f.js +35 -0
- package/dist/cjs/loader.cjs.js +22 -0
- package/dist/cjs/priv-chart-popover.cjs.entry.js +89 -0
- package/dist/cjs/priv-datepicker.cjs.entry.js +672 -0
- package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
- package/dist/cjs/priv-navigator-item.cjs.entry.js +34 -0
- package/dist/cjs/ripple.cjs.js +20 -0
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +318 -0
- package/dist/cjs/wm-button.cjs.entry.js +152 -0
- package/dist/cjs/wm-chart-slice.cjs.entry.js +22 -0
- package/dist/cjs/wm-chart.cjs.entry.js +508 -0
- package/dist/cjs/wm-datepicker.cjs.entry.js +257 -0
- package/dist/cjs/wm-input.cjs.entry.js +110 -0
- package/dist/cjs/wm-modal-footer.cjs.entry.js +43 -0
- package/dist/cjs/wm-modal-header.cjs.entry.js +45 -0
- package/dist/cjs/wm-modal.cjs.entry.js +149 -0
- package/dist/cjs/wm-navigator.cjs.entry.js +279 -0
- package/dist/cjs/wm-network-uploader.cjs.entry.js +431 -0
- package/dist/cjs/wm-option_2.cjs.entry.js +483 -0
- package/dist/cjs/wm-pagination.cjs.entry.js +176 -0
- package/dist/cjs/wm-search.cjs.entry.js +231 -0
- package/dist/cjs/wm-snackbar.cjs.entry.js +160 -0
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +316 -0
- package/dist/cjs/wm-tag-input.cjs.entry.js +538 -0
- package/dist/cjs/wm-timepicker.cjs.entry.js +386 -0
- package/dist/cjs/wm-toggletip.cjs.entry.js +128 -0
- package/dist/cjs/wm-uploader.cjs.entry.js +342 -0
- package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
- package/dist/collection/collection-manifest.json +131 -0
- package/dist/{ripple/ripple.css → collection/components/wm-action-menu/wm-action-menu.css} +80 -42
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +392 -0
- package/dist/collection/components/wm-button/wm-button.css +572 -0
- package/dist/collection/components/wm-button/wm-button.js +365 -0
- package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.css +132 -0
- package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +232 -0
- package/dist/collection/components/wm-chart/wm-chart-slice.js +64 -0
- package/dist/collection/components/wm-chart/wm-chart.css +337 -0
- package/dist/collection/components/wm-chart/wm-chart.js +710 -0
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +374 -0
- package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1003 -0
- package/dist/collection/components/wm-datepicker/wm-datepicker.css +211 -0
- package/dist/collection/components/wm-datepicker/wm-datepicker.js +439 -0
- package/dist/collection/components/wm-input/wm-input.css +220 -0
- package/dist/collection/components/wm-input/wm-input.js +302 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.css +118 -0
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +411 -0
- package/dist/collection/components/wm-modal/wm-modal-footer.css +84 -0
- package/dist/collection/components/wm-modal/wm-modal-footer.js +159 -0
- package/dist/collection/components/wm-modal/wm-modal-header.css +78 -0
- package/dist/collection/components/wm-modal/wm-modal-header.js +109 -0
- package/dist/collection/components/wm-modal/wm-modal.css +155 -0
- package/dist/collection/components/wm-modal/wm-modal.js +356 -0
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +94 -0
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -0
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +67 -0
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -0
- package/dist/collection/components/wm-navigator/wm-navigator.css +137 -0
- package/dist/collection/components/wm-navigator/wm-navigator.js +468 -0
- package/dist/collection/components/wm-option/wm-option.css +162 -0
- package/dist/collection/components/wm-option/wm-option.js +394 -0
- package/dist/collection/components/wm-pagination/wm-pagination.css +217 -0
- package/dist/collection/components/wm-pagination/wm-pagination.js +348 -0
- package/dist/collection/components/wm-search/wm-search.css +155 -0
- package/dist/collection/components/wm-search/wm-search.js +439 -0
- package/dist/collection/components/wm-select/wm-select.css +315 -0
- package/dist/collection/components/wm-select/wm-select.js +676 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.css +331 -0
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +240 -0
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +104 -0
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +202 -0
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +73 -0
- package/dist/{ripple/wm-tab-list.entry.js → collection/components/wm-tabs/wm-tab-list/wm-tab-list.js} +131 -17
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +57 -0
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -0
- package/dist/collection/components/wm-tag-input/wm-tag-input.css +431 -0
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +754 -0
- package/dist/collection/components/wm-timepicker/wm-timepicker.css +370 -0
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +567 -0
- package/dist/collection/components/wm-toggletip/wm-toggletip.css +350 -0
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +217 -0
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.css +642 -0
- package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +753 -0
- package/dist/collection/components/wm-uploader/wm-uploader.css +666 -0
- package/dist/collection/components/wm-uploader/wm-uploader.js +673 -0
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -0
- package/dist/collection/dev/scripts.js +20 -0
- package/dist/collection/global/__mocks__/functions.js +5 -0
- package/dist/collection/global/functions.js +420 -0
- package/dist/{ripple/app-globals-b5693c90.js → collection/global/global.js} +3 -8
- package/dist/{ripple/interfaces-50753346.js → collection/global/interfaces.js} +4 -6
- package/dist/collection/global/services/__mocks__/http-service.js +130 -0
- package/dist/collection/global/services/http-service.js +50 -0
- package/dist/collection/lang/lang.js +5 -0
- package/dist/collection/lang/piglatin.js +93 -0
- package/dist/esm/functions-0deb7f8e.js +6117 -0
- package/dist/esm/global-d6b49e98.js +36 -0
- package/dist/{ripple → esm}/http-service-5d037e16.js +0 -0
- package/dist/esm/index-5a842e48.js +1363 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/interfaces-61c6305b.js +32 -0
- package/dist/esm/loader.js +18 -0
- package/dist/esm/polyfills/core-js.js +11 -0
- package/dist/esm/polyfills/css-shim.js +1 -0
- package/dist/esm/polyfills/dom.js +79 -0
- package/dist/esm/polyfills/es5-html-element.js +1 -0
- package/dist/esm/polyfills/index.js +34 -0
- package/dist/esm/polyfills/system.js +6 -0
- package/dist/{ripple → esm}/priv-chart-popover.entry.js +2 -2
- package/dist/{ripple → esm}/priv-datepicker.entry.js +3 -3
- package/dist/{ripple → esm}/priv-navigator-button.entry.js +1 -1
- package/dist/{ripple → esm}/priv-navigator-item.entry.js +1 -1
- package/dist/esm/ripple.js +18 -0
- package/dist/{ripple/wm-action-menu.entry.js → esm/wm-action-menu_2.entry.js} +114 -3
- package/dist/{ripple → esm}/wm-button.entry.js +3 -3
- package/dist/{ripple → esm}/wm-chart-slice.entry.js +1 -1
- package/dist/{ripple → esm}/wm-chart.entry.js +2 -2
- package/dist/{ripple → esm}/wm-datepicker.entry.js +27 -32
- package/dist/{ripple → esm}/wm-input.entry.js +2 -2
- package/dist/{ripple → esm}/wm-modal-footer.entry.js +2 -2
- package/dist/{ripple → esm}/wm-modal-header.entry.js +2 -2
- package/dist/{ripple → esm}/wm-modal.entry.js +2 -2
- package/dist/{ripple → esm}/wm-navigator.entry.js +3 -3
- package/dist/{ripple → esm}/wm-network-uploader.entry.js +2 -2
- package/dist/{ripple/wm-select.entry.js → esm/wm-option_2.entry.js} +119 -3
- package/dist/{ripple → esm}/wm-pagination.entry.js +2 -2
- package/dist/{ripple → esm}/wm-search.entry.js +2 -2
- package/dist/{ripple → esm}/wm-snackbar.entry.js +2 -2
- package/dist/esm/wm-tab-item_3.entry.js +310 -0
- package/dist/{ripple → esm}/wm-tag-input.entry.js +2 -2
- package/dist/{ripple → esm}/wm-timepicker.entry.js +2 -2
- package/dist/{ripple → esm}/wm-toggletip.entry.js +2 -2
- package/dist/{ripple → esm}/wm-uploader.entry.js +2 -2
- package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/loader/cdn.js +3 -0
- package/dist/loader/index.cjs.js +3 -0
- package/dist/loader/index.d.ts +13 -0
- package/dist/loader/index.es2017.js +3 -0
- package/dist/loader/index.js +4 -0
- package/dist/loader/package.json +10 -0
- package/dist/ripple/index.esm.js +0 -1
- package/dist/ripple/p-103f8cae.entry.js +1 -0
- package/dist/ripple/p-129d94fa.entry.js +1 -0
- package/dist/ripple/p-139fe143.entry.js +1 -0
- package/dist/ripple/p-16367805.entry.js +1 -0
- package/dist/ripple/p-1d334060.entry.js +1 -0
- package/dist/ripple/p-2562f330.entry.js +1 -0
- package/dist/ripple/p-278b26ef.entry.js +1 -0
- package/dist/ripple/p-2c21bb72.entry.js +1 -0
- package/dist/ripple/p-2f5fda71.entry.js +1 -0
- package/dist/ripple/p-3e6f04d5.entry.js +1 -0
- package/dist/ripple/p-7185de7f.entry.js +1 -0
- package/dist/ripple/p-770d0798.entry.js +1 -0
- package/dist/ripple/p-846b4c5f.entry.js +1 -0
- package/dist/ripple/p-888bec42.js +1 -0
- package/dist/ripple/p-90779d53.entry.js +1 -0
- package/dist/ripple/p-934543f2.js +1 -0
- package/dist/ripple/p-9a087fee.entry.js +1 -0
- package/dist/ripple/p-a6d6eae7.js +1 -0
- package/dist/ripple/p-a942ad10.entry.js +1 -0
- package/dist/ripple/p-bfb4652d.entry.js +1 -0
- package/dist/ripple/p-c0fe5201.entry.js +1 -0
- package/dist/ripple/p-c2e27acc.entry.js +1 -0
- package/dist/ripple/p-c2edda64.entry.js +1 -0
- package/dist/ripple/p-d1fdcbcf.entry.js +1 -0
- package/dist/ripple/p-d40b6afb.entry.js +1 -0
- package/dist/ripple/p-da73db1c.entry.js +1 -0
- package/dist/ripple/p-e3843249.js +1 -0
- package/dist/ripple/p-ea5cd8b8.js +16 -0
- package/dist/ripple/p-ed0f43f4.entry.js +1 -0
- package/dist/ripple/p-ffafd363.entry.js +1 -0
- package/dist/ripple/ripple.esm.js +1 -125
- package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +43 -0
- package/dist/types/components/wm-button/wm-button.d.ts +36 -0
- package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -0
- package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -0
- package/dist/types/components/wm-chart/wm-chart.d.ts +77 -0
- package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +75 -0
- package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +39 -0
- package/dist/types/components/wm-input/wm-input.d.ts +30 -0
- package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +30 -0
- package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -0
- package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -0
- package/dist/types/components/wm-modal/wm-modal.d.ts +34 -0
- package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -0
- package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -0
- package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -0
- package/dist/types/components/wm-option/wm-option.d.ts +28 -0
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +31 -0
- package/dist/types/components/wm-search/wm-search.d.ts +78 -0
- package/dist/types/components/wm-select/wm-select.d.ts +63 -0
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +32 -0
- package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +35 -0
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +50 -0
- package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -0
- package/dist/types/components/wm-tag-input/{wm-tag-input.d.ts~ds312_tagInputMaxTags → wm-tag-input.d.ts} +1 -1
- package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +59 -0
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +25 -0
- package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -0
- package/dist/types/components/wm-uploader/wm-uploader.d.ts +75 -0
- package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -0
- package/dist/types/{components.d.ts~ds312_tagInputMaxTags → components.d.ts} +0 -0
- package/dist/types/global/__mocks__/functions.d.ts +5 -0
- package/dist/types/global/global.d.ts +1 -0
- package/dist/types/global/interfaces.d.ts +33 -0
- package/dist/types/global/services/__mocks__/http-service.d.ts +6 -0
- package/dist/types/global/services/http-service.d.ts +4 -0
- package/dist/types/lang/lang.d.ts +5 -0
- package/dist/types/{stencil-public-runtime.d.ts~ds312_tagInputMaxTags → stencil-public-runtime.d.ts} +190 -182
- package/package.json +1 -1
- package/dist/ripple/css-shim-bbdf0cc6.js +0 -4
- package/dist/ripple/dom-1f98a75f.js +0 -73
- package/dist/ripple/index-20b65f86.js +0 -2938
- package/dist/ripple/shadow-css-67b66845.js +0 -389
- package/dist/ripple/wm-menuitem.entry.js +0 -114
- package/dist/ripple/wm-option.entry.js +0 -119
- package/dist/ripple/wm-tab-item.entry.js +0 -78
- package/dist/ripple/wm-tab-panel.entry.js +0 -38
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { Component, Element, h, Prop, Event, Listen, Host } from "@stencil/core";
|
|
2
|
+
export class TabItem {
|
|
3
|
+
constructor() {
|
|
4
|
+
/**
|
|
5
|
+
* Indicates whether the tab is currently active
|
|
6
|
+
*/
|
|
7
|
+
this.selected = false;
|
|
8
|
+
this.show = true;
|
|
9
|
+
/**
|
|
10
|
+
* The id of the tab, linked to a tab panel.
|
|
11
|
+
*/
|
|
12
|
+
this.tabId = "";
|
|
13
|
+
this.tabClicked = (ev) => {
|
|
14
|
+
ev.preventDefault();
|
|
15
|
+
this.tabSelected.emit({ tabId: this.tabId });
|
|
16
|
+
};
|
|
17
|
+
this.tabPressed = (ev) => {
|
|
18
|
+
const key = ev.key;
|
|
19
|
+
if (key === "Enter" || key === " ") {
|
|
20
|
+
ev.preventDefault();
|
|
21
|
+
this.tabSelected.emit({ tabId: this.tabId });
|
|
22
|
+
}
|
|
23
|
+
else if (key === "Tab") {
|
|
24
|
+
this.keydownOnTabItem.emit({ tabItem: this.el, key: ev.key });
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
ev.preventDefault();
|
|
28
|
+
this.keydownOnTabItem.emit({ tabItem: this.el, key: ev.key });
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
get parentTabList() {
|
|
33
|
+
return this.el.parentElement;
|
|
34
|
+
}
|
|
35
|
+
toggleTabbingOn() {
|
|
36
|
+
this.linkEl && this.linkEl.classList.add("user-is-tabbing");
|
|
37
|
+
}
|
|
38
|
+
toggleTabbingOff() {
|
|
39
|
+
this.linkEl && this.linkEl.classList.remove("user-is-tabbing");
|
|
40
|
+
}
|
|
41
|
+
componentWillLoad() {
|
|
42
|
+
// @ts-ignore
|
|
43
|
+
this.el.focus = function () {
|
|
44
|
+
const linkEl = this.shadowRoot.querySelector("a");
|
|
45
|
+
linkEl && linkEl.focus();
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
componentDidLoad() {
|
|
49
|
+
this.tabItemLoaded.emit();
|
|
50
|
+
}
|
|
51
|
+
render() {
|
|
52
|
+
let classes = this.show ? "" : "hide ";
|
|
53
|
+
classes += this.parentTabList && this.parentTabList.customBackground == "dark" ? "dark" : "";
|
|
54
|
+
let styles = {};
|
|
55
|
+
const padding = this.parentTabList && this.parentTabList.customPadding;
|
|
56
|
+
if (padding) {
|
|
57
|
+
const bkgSize = parseInt(padding, 10) * 2 || 0;
|
|
58
|
+
const units = padding.split(/([0-9]+)/).pop();
|
|
59
|
+
styles = {
|
|
60
|
+
"padding-left": this.parentTabList.customPadding,
|
|
61
|
+
"padding-right": this.parentTabList.customPadding,
|
|
62
|
+
"background-size": `calc(100% - ${bkgSize}${units}) 3px`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return (h(Host, { role: "presentation" },
|
|
66
|
+
h("li", { class: "tab-item", role: "presentation" },
|
|
67
|
+
h("a", { class: `tab ${classes}`, style: styles, role: "tab", ref: (el) => (this.linkEl = el), onClick: this.tabClicked, id: `tab-link-${this.tabId}`, onKeyDown: (ev) => this.tabPressed(ev), "aria-selected": this.selected ? "true" : "false", tabindex: this.selected ? 0 : -1 },
|
|
68
|
+
h("slot", null)))));
|
|
69
|
+
}
|
|
70
|
+
static get is() { return "wm-tab-item"; }
|
|
71
|
+
static get encapsulation() { return "shadow"; }
|
|
72
|
+
static get originalStyleUrls() { return {
|
|
73
|
+
"$": ["wm-tab-item.scss"]
|
|
74
|
+
}; }
|
|
75
|
+
static get styleUrls() { return {
|
|
76
|
+
"$": ["wm-tab-item.css"]
|
|
77
|
+
}; }
|
|
78
|
+
static get properties() { return {
|
|
79
|
+
"selected": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"mutable": false,
|
|
82
|
+
"complexType": {
|
|
83
|
+
"original": "boolean",
|
|
84
|
+
"resolved": "boolean",
|
|
85
|
+
"references": {}
|
|
86
|
+
},
|
|
87
|
+
"required": false,
|
|
88
|
+
"optional": false,
|
|
89
|
+
"docs": {
|
|
90
|
+
"tags": [],
|
|
91
|
+
"text": "Indicates whether the tab is currently active"
|
|
92
|
+
},
|
|
93
|
+
"attribute": "selected",
|
|
94
|
+
"reflect": false,
|
|
95
|
+
"defaultValue": "false"
|
|
96
|
+
},
|
|
97
|
+
"show": {
|
|
98
|
+
"type": "boolean",
|
|
99
|
+
"mutable": false,
|
|
100
|
+
"complexType": {
|
|
101
|
+
"original": "boolean",
|
|
102
|
+
"resolved": "boolean",
|
|
103
|
+
"references": {}
|
|
104
|
+
},
|
|
105
|
+
"required": false,
|
|
106
|
+
"optional": false,
|
|
107
|
+
"docs": {
|
|
108
|
+
"tags": [],
|
|
109
|
+
"text": ""
|
|
110
|
+
},
|
|
111
|
+
"attribute": "show",
|
|
112
|
+
"reflect": false,
|
|
113
|
+
"defaultValue": "true"
|
|
114
|
+
},
|
|
115
|
+
"tabId": {
|
|
116
|
+
"type": "string",
|
|
117
|
+
"mutable": false,
|
|
118
|
+
"complexType": {
|
|
119
|
+
"original": "string",
|
|
120
|
+
"resolved": "string",
|
|
121
|
+
"references": {}
|
|
122
|
+
},
|
|
123
|
+
"required": false,
|
|
124
|
+
"optional": false,
|
|
125
|
+
"docs": {
|
|
126
|
+
"tags": [],
|
|
127
|
+
"text": "The id of the tab, linked to a tab panel."
|
|
128
|
+
},
|
|
129
|
+
"attribute": "tab-id",
|
|
130
|
+
"reflect": false,
|
|
131
|
+
"defaultValue": "\"\""
|
|
132
|
+
}
|
|
133
|
+
}; }
|
|
134
|
+
static get events() { return [{
|
|
135
|
+
"method": "tabSelected",
|
|
136
|
+
"name": "tabSelected",
|
|
137
|
+
"bubbles": true,
|
|
138
|
+
"cancelable": true,
|
|
139
|
+
"composed": true,
|
|
140
|
+
"docs": {
|
|
141
|
+
"tags": [],
|
|
142
|
+
"text": ""
|
|
143
|
+
},
|
|
144
|
+
"complexType": {
|
|
145
|
+
"original": "{ tabId: string }",
|
|
146
|
+
"resolved": "{ tabId: string; }",
|
|
147
|
+
"references": {}
|
|
148
|
+
}
|
|
149
|
+
}, {
|
|
150
|
+
"method": "keydownOnTabItem",
|
|
151
|
+
"name": "keydownOnTabItem",
|
|
152
|
+
"bubbles": true,
|
|
153
|
+
"cancelable": true,
|
|
154
|
+
"composed": true,
|
|
155
|
+
"docs": {
|
|
156
|
+
"tags": [],
|
|
157
|
+
"text": ""
|
|
158
|
+
},
|
|
159
|
+
"complexType": {
|
|
160
|
+
"original": "{\n tabItem: HTMLWmTabItemElement;\n key: string;\n }",
|
|
161
|
+
"resolved": "{ tabItem: HTMLWmTabItemElement; key: string; }",
|
|
162
|
+
"references": {
|
|
163
|
+
"HTMLWmTabItemElement": {
|
|
164
|
+
"location": "global"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}, {
|
|
169
|
+
"method": "tabItemLoaded",
|
|
170
|
+
"name": "tabItemLoaded",
|
|
171
|
+
"bubbles": true,
|
|
172
|
+
"cancelable": true,
|
|
173
|
+
"composed": true,
|
|
174
|
+
"docs": {
|
|
175
|
+
"tags": [],
|
|
176
|
+
"text": ""
|
|
177
|
+
},
|
|
178
|
+
"complexType": {
|
|
179
|
+
"original": "{ tab: HTMLWmTabItemElement }",
|
|
180
|
+
"resolved": "{ tab: HTMLWmTabItemElement; }",
|
|
181
|
+
"references": {
|
|
182
|
+
"HTMLWmTabItemElement": {
|
|
183
|
+
"location": "global"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}]; }
|
|
188
|
+
static get elementRef() { return "el"; }
|
|
189
|
+
static get listeners() { return [{
|
|
190
|
+
"name": "keydown",
|
|
191
|
+
"method": "toggleTabbingOn",
|
|
192
|
+
"target": "document",
|
|
193
|
+
"capture": false,
|
|
194
|
+
"passive": false
|
|
195
|
+
}, {
|
|
196
|
+
"name": "click",
|
|
197
|
+
"method": "toggleTabbingOff",
|
|
198
|
+
"target": "document",
|
|
199
|
+
"capture": false,
|
|
200
|
+
"passive": false
|
|
201
|
+
}]; }
|
|
202
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/* --------------------------------------
|
|
2
|
+
1. Box-shadow
|
|
3
|
+
-------------------------------------- */
|
|
4
|
+
/* --------------------------------------
|
|
5
|
+
2. Border-radius
|
|
6
|
+
-------------------------------------- */
|
|
7
|
+
/* --------------------------------------
|
|
8
|
+
3. Transforms
|
|
9
|
+
-------------------------------------- */
|
|
10
|
+
/* --------------------------------------
|
|
11
|
+
4. Button Focus
|
|
12
|
+
-------------------------------------- */
|
|
13
|
+
/* --------------------------------------
|
|
14
|
+
5. Flex
|
|
15
|
+
-------------------------------------- */
|
|
16
|
+
/* --------------------------------------
|
|
17
|
+
6. Button Hover
|
|
18
|
+
-------------------------------------- */
|
|
19
|
+
/* --------------------------------------
|
|
20
|
+
7. Screen Reader Only
|
|
21
|
+
-------------------------------------- */
|
|
22
|
+
/* --------------------------------------
|
|
23
|
+
8. Label styles
|
|
24
|
+
this mixin includes all the styles for the label
|
|
25
|
+
+ flex rules on the parent container to switch between top and left position
|
|
26
|
+
+ srOnly when label is hidden
|
|
27
|
+
Assumes the following markup:
|
|
28
|
+
div.wrapper[.label-left.invalid] > div.label-wrapper > label.label > span.required
|
|
29
|
+
.wrapper is for the flex rules
|
|
30
|
+
.label-wrapper is to set the height of the label when positioned left so it's the same height as
|
|
31
|
+
the input. It can't be done directly on .label because of possible line wrapping.
|
|
32
|
+
When the label is on top there's no line wrapping at all to ensure proper alignment of inlined elements
|
|
33
|
+
(they can't be aligned on the baseline because of possible description text and error message)
|
|
34
|
+
-------------------------------------- */
|
|
35
|
+
/********************************************************************************************/
|
|
36
|
+
/* DO NOT USE THESE DIRECTLY, ASSIGN THEM TO VARIABLES NAMED AFTER FUNCTIONALITY, SEE BELOW */
|
|
37
|
+
/********************************************************************************************/
|
|
38
|
+
/* USAGE */
|
|
39
|
+
/* BELOW IS BEFORE WE HAD THE COLOR PALETTE FROM UI */
|
|
40
|
+
/* TODO: replace with vars above whenever possible */
|
|
41
|
+
/* Buttons */
|
|
42
|
+
/* VIA */
|
|
43
|
+
:host,
|
|
44
|
+
wm-tab-list {
|
|
45
|
+
position: relative;
|
|
46
|
+
white-space: nowrap;
|
|
47
|
+
height: 100%;
|
|
48
|
+
display: block;
|
|
49
|
+
}
|
|
50
|
+
:host *,
|
|
51
|
+
wm-tab-list * {
|
|
52
|
+
box-sizing: border-box;
|
|
53
|
+
}
|
|
54
|
+
:host .tabcontainer,
|
|
55
|
+
wm-tab-list .tabcontainer {
|
|
56
|
+
margin: 0;
|
|
57
|
+
margin-left: -24px;
|
|
58
|
+
width: 100%;
|
|
59
|
+
height: 4.0625rem;
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-direction: row;
|
|
62
|
+
align-items: center;
|
|
63
|
+
padding: 0;
|
|
64
|
+
}
|
|
65
|
+
:host .tabcontainer.dark,
|
|
66
|
+
wm-tab-list .tabcontainer.dark {
|
|
67
|
+
background: #353b48;
|
|
68
|
+
margin: 0;
|
|
69
|
+
}
|
|
70
|
+
:host wm-select,
|
|
71
|
+
wm-tab-list wm-select {
|
|
72
|
+
padding: 0.375rem 0;
|
|
73
|
+
}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const TabList = class {
|
|
7
|
-
constructor(hostRef) {
|
|
8
|
-
registerInstance(this, hostRef);
|
|
9
|
-
this.tabSelected = createEvent(this, "tabSelected", 7);
|
|
1
|
+
import { forceUpdate, Component, Prop, Element, h, Watch, Listen, Host, Event } from "@stencil/core";
|
|
2
|
+
import { debounce } from "../../../global/functions";
|
|
3
|
+
export class TabList {
|
|
4
|
+
constructor() {
|
|
10
5
|
/**
|
|
11
6
|
* Delegates control to the component, which will listen for the tabSelected event, update the display of the tab panels, and update the selected tab on display. When set to false, the app must listen for the event and update the selectedTab attribute. Offers more control for devs, who may want to control when data loads or run other functions when tabs are switched.
|
|
12
7
|
*/
|
|
@@ -179,7 +174,8 @@ const TabList = class {
|
|
|
179
174
|
"margin-left": "-" + this.customPadding,
|
|
180
175
|
};
|
|
181
176
|
}
|
|
182
|
-
return (h("ul", { class: `tabcontainer ${this.customBackground || ""}`, style: margins, role: "tablist" },
|
|
177
|
+
return (h("ul", { class: `tabcontainer ${this.customBackground || ""}`, style: margins, role: "tablist" },
|
|
178
|
+
h("slot", null)));
|
|
183
179
|
}
|
|
184
180
|
}
|
|
185
181
|
renderOptions() {
|
|
@@ -191,11 +187,129 @@ const TabList = class {
|
|
|
191
187
|
render() {
|
|
192
188
|
return h(Host, { class: this.menuLayout ? "menu" : "" }, this.renderMenuOrTabs());
|
|
193
189
|
}
|
|
194
|
-
get
|
|
195
|
-
static get
|
|
196
|
-
|
|
190
|
+
static get is() { return "wm-tab-list"; }
|
|
191
|
+
static get encapsulation() { return "shadow"; }
|
|
192
|
+
static get originalStyleUrls() { return {
|
|
193
|
+
"$": ["wm-tab-list.scss"]
|
|
197
194
|
}; }
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
195
|
+
static get styleUrls() { return {
|
|
196
|
+
"$": ["wm-tab-list.css"]
|
|
197
|
+
}; }
|
|
198
|
+
static get properties() { return {
|
|
199
|
+
"customBackground": {
|
|
200
|
+
"type": "string",
|
|
201
|
+
"mutable": false,
|
|
202
|
+
"complexType": {
|
|
203
|
+
"original": "\"dark\" | \"\"",
|
|
204
|
+
"resolved": "\"\" | \"dark\" | undefined",
|
|
205
|
+
"references": {}
|
|
206
|
+
},
|
|
207
|
+
"required": false,
|
|
208
|
+
"optional": true,
|
|
209
|
+
"docs": {
|
|
210
|
+
"tags": [],
|
|
211
|
+
"text": ""
|
|
212
|
+
},
|
|
213
|
+
"attribute": "custom-background",
|
|
214
|
+
"reflect": false
|
|
215
|
+
},
|
|
216
|
+
"customPadding": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"mutable": false,
|
|
219
|
+
"complexType": {
|
|
220
|
+
"original": "string",
|
|
221
|
+
"resolved": "string | undefined",
|
|
222
|
+
"references": {}
|
|
223
|
+
},
|
|
224
|
+
"required": false,
|
|
225
|
+
"optional": true,
|
|
226
|
+
"docs": {
|
|
227
|
+
"tags": [],
|
|
228
|
+
"text": ""
|
|
229
|
+
},
|
|
230
|
+
"attribute": "custom-padding",
|
|
231
|
+
"reflect": false
|
|
232
|
+
},
|
|
233
|
+
"selectedTab": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"mutable": false,
|
|
236
|
+
"complexType": {
|
|
237
|
+
"original": "string",
|
|
238
|
+
"resolved": "string | undefined",
|
|
239
|
+
"references": {}
|
|
240
|
+
},
|
|
241
|
+
"required": false,
|
|
242
|
+
"optional": true,
|
|
243
|
+
"docs": {
|
|
244
|
+
"tags": [],
|
|
245
|
+
"text": ""
|
|
246
|
+
},
|
|
247
|
+
"attribute": "selected-tab",
|
|
248
|
+
"reflect": false
|
|
249
|
+
},
|
|
250
|
+
"controllerEnabled": {
|
|
251
|
+
"type": "boolean",
|
|
252
|
+
"mutable": false,
|
|
253
|
+
"complexType": {
|
|
254
|
+
"original": "boolean",
|
|
255
|
+
"resolved": "boolean",
|
|
256
|
+
"references": {}
|
|
257
|
+
},
|
|
258
|
+
"required": false,
|
|
259
|
+
"optional": false,
|
|
260
|
+
"docs": {
|
|
261
|
+
"tags": [],
|
|
262
|
+
"text": "Delegates control to the component, which will listen for the tabSelected event, update the display of the tab panels, and update the selected tab on display. When set to false, the app must listen for the event and update the selectedTab attribute. Offers more control for devs, who may want to control when data loads or run other functions when tabs are switched."
|
|
263
|
+
},
|
|
264
|
+
"attribute": "controller-enabled",
|
|
265
|
+
"reflect": false,
|
|
266
|
+
"defaultValue": "false"
|
|
267
|
+
}
|
|
268
|
+
}; }
|
|
269
|
+
static get events() { return [{
|
|
270
|
+
"method": "tabSelected",
|
|
271
|
+
"name": "tabSelected",
|
|
272
|
+
"bubbles": true,
|
|
273
|
+
"cancelable": true,
|
|
274
|
+
"composed": true,
|
|
275
|
+
"docs": {
|
|
276
|
+
"tags": [],
|
|
277
|
+
"text": "Emitted by wm-select options when tabs have the menu format"
|
|
278
|
+
},
|
|
279
|
+
"complexType": {
|
|
280
|
+
"original": "{ tabId: string }",
|
|
281
|
+
"resolved": "{ tabId: string; }",
|
|
282
|
+
"references": {}
|
|
283
|
+
}
|
|
284
|
+
}]; }
|
|
285
|
+
static get elementRef() { return "el"; }
|
|
286
|
+
static get watchers() { return [{
|
|
287
|
+
"propName": "selectedTab",
|
|
288
|
+
"methodName": "setSelected"
|
|
289
|
+
}]; }
|
|
290
|
+
static get listeners() { return [{
|
|
291
|
+
"name": "tabItemLoaded",
|
|
292
|
+
"method": "tabItemLoaded",
|
|
293
|
+
"target": undefined,
|
|
294
|
+
"capture": false,
|
|
295
|
+
"passive": false
|
|
296
|
+
}, {
|
|
297
|
+
"name": "tabSelected",
|
|
298
|
+
"method": "handleTabSelected",
|
|
299
|
+
"target": undefined,
|
|
300
|
+
"capture": false,
|
|
301
|
+
"passive": false
|
|
302
|
+
}, {
|
|
303
|
+
"name": "keydownOnTabItem",
|
|
304
|
+
"method": "handleKeydown",
|
|
305
|
+
"target": undefined,
|
|
306
|
+
"capture": false,
|
|
307
|
+
"passive": false
|
|
308
|
+
}, {
|
|
309
|
+
"name": "resize",
|
|
310
|
+
"method": "setLayout",
|
|
311
|
+
"target": "window",
|
|
312
|
+
"capture": false,
|
|
313
|
+
"passive": true
|
|
314
|
+
}]; }
|
|
315
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/* --------------------------------------
|
|
2
|
+
1. Box-shadow
|
|
3
|
+
-------------------------------------- */
|
|
4
|
+
/* --------------------------------------
|
|
5
|
+
2. Border-radius
|
|
6
|
+
-------------------------------------- */
|
|
7
|
+
/* --------------------------------------
|
|
8
|
+
3. Transforms
|
|
9
|
+
-------------------------------------- */
|
|
10
|
+
/* --------------------------------------
|
|
11
|
+
4. Button Focus
|
|
12
|
+
-------------------------------------- */
|
|
13
|
+
/* --------------------------------------
|
|
14
|
+
5. Flex
|
|
15
|
+
-------------------------------------- */
|
|
16
|
+
/* --------------------------------------
|
|
17
|
+
6. Button Hover
|
|
18
|
+
-------------------------------------- */
|
|
19
|
+
/* --------------------------------------
|
|
20
|
+
7. Screen Reader Only
|
|
21
|
+
-------------------------------------- */
|
|
22
|
+
/* --------------------------------------
|
|
23
|
+
8. Label styles
|
|
24
|
+
this mixin includes all the styles for the label
|
|
25
|
+
+ flex rules on the parent container to switch between top and left position
|
|
26
|
+
+ srOnly when label is hidden
|
|
27
|
+
Assumes the following markup:
|
|
28
|
+
div.wrapper[.label-left.invalid] > div.label-wrapper > label.label > span.required
|
|
29
|
+
.wrapper is for the flex rules
|
|
30
|
+
.label-wrapper is to set the height of the label when positioned left so it's the same height as
|
|
31
|
+
the input. It can't be done directly on .label because of possible line wrapping.
|
|
32
|
+
When the label is on top there's no line wrapping at all to ensure proper alignment of inlined elements
|
|
33
|
+
(they can't be aligned on the baseline because of possible description text and error message)
|
|
34
|
+
-------------------------------------- */
|
|
35
|
+
/********************************************************************************************/
|
|
36
|
+
/* DO NOT USE THESE DIRECTLY, ASSIGN THEM TO VARIABLES NAMED AFTER FUNCTIONALITY, SEE BELOW */
|
|
37
|
+
/********************************************************************************************/
|
|
38
|
+
/* USAGE */
|
|
39
|
+
/* BELOW IS BEFORE WE HAD THE COLOR PALETTE FROM UI */
|
|
40
|
+
/* TODO: replace with vars above whenever possible */
|
|
41
|
+
/* Buttons */
|
|
42
|
+
/* VIA */
|
|
43
|
+
wm-tab-panel {
|
|
44
|
+
visibility: inherit;
|
|
45
|
+
}
|
|
46
|
+
wm-tab-panel.tab-hidden {
|
|
47
|
+
display: none;
|
|
48
|
+
}
|
|
49
|
+
wm-tab-panel:active {
|
|
50
|
+
outline: none;
|
|
51
|
+
}
|
|
52
|
+
wm-tab-panel:focus {
|
|
53
|
+
outline: none;
|
|
54
|
+
}
|
|
55
|
+
wm-tab-panel.user-is-tabbing:focus {
|
|
56
|
+
outline: -webkit-focus-ring-color auto 5px;
|
|
57
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Component, Element, Prop, Host, h, Event, Listen } from "@stencil/core";
|
|
2
|
+
import { generateId } from "../../../global/functions";
|
|
3
|
+
export class TabPanel {
|
|
4
|
+
constructor() {
|
|
5
|
+
/**
|
|
6
|
+
* Indicates whether the panel should be displayed or not.
|
|
7
|
+
*/
|
|
8
|
+
this.active = false;
|
|
9
|
+
/**
|
|
10
|
+
* The id of the panel, linked to a tabItem in the tablist.
|
|
11
|
+
*/
|
|
12
|
+
this.tabId = "";
|
|
13
|
+
}
|
|
14
|
+
componentWillLoad() {
|
|
15
|
+
!this.el.id && this.el.setAttribute("id", generateId());
|
|
16
|
+
}
|
|
17
|
+
componentDidLoad() {
|
|
18
|
+
this.tabPanelLoaded.emit({ tabId: this.tabId });
|
|
19
|
+
}
|
|
20
|
+
toggleTabbingOn() {
|
|
21
|
+
this.el.classList.add("user-is-tabbing");
|
|
22
|
+
}
|
|
23
|
+
toggleTabbingOff() {
|
|
24
|
+
this.el.classList.remove("user-is-tabbing");
|
|
25
|
+
}
|
|
26
|
+
render() {
|
|
27
|
+
return (h(Host, { role: "tabpanel", "aria-hidden": this.active ? "false" : "true", class: { "tab-hidden": !this.active }, onBlur: () => (this.el.tabIndex = -1), tabIndex: -1 }));
|
|
28
|
+
}
|
|
29
|
+
static get is() { return "wm-tab-panel"; }
|
|
30
|
+
static get originalStyleUrls() { return {
|
|
31
|
+
"$": ["wm-tab-panel.scss"]
|
|
32
|
+
}; }
|
|
33
|
+
static get styleUrls() { return {
|
|
34
|
+
"$": ["wm-tab-panel.css"]
|
|
35
|
+
}; }
|
|
36
|
+
static get properties() { return {
|
|
37
|
+
"active": {
|
|
38
|
+
"type": "boolean",
|
|
39
|
+
"mutable": true,
|
|
40
|
+
"complexType": {
|
|
41
|
+
"original": "boolean",
|
|
42
|
+
"resolved": "boolean",
|
|
43
|
+
"references": {}
|
|
44
|
+
},
|
|
45
|
+
"required": false,
|
|
46
|
+
"optional": false,
|
|
47
|
+
"docs": {
|
|
48
|
+
"tags": [],
|
|
49
|
+
"text": "Indicates whether the panel should be displayed or not."
|
|
50
|
+
},
|
|
51
|
+
"attribute": "active",
|
|
52
|
+
"reflect": false,
|
|
53
|
+
"defaultValue": "false"
|
|
54
|
+
},
|
|
55
|
+
"tabId": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"mutable": true,
|
|
58
|
+
"complexType": {
|
|
59
|
+
"original": "string",
|
|
60
|
+
"resolved": "string",
|
|
61
|
+
"references": {}
|
|
62
|
+
},
|
|
63
|
+
"required": false,
|
|
64
|
+
"optional": false,
|
|
65
|
+
"docs": {
|
|
66
|
+
"tags": [],
|
|
67
|
+
"text": "The id of the panel, linked to a tabItem in the tablist."
|
|
68
|
+
},
|
|
69
|
+
"attribute": "tab-id",
|
|
70
|
+
"reflect": false,
|
|
71
|
+
"defaultValue": "\"\""
|
|
72
|
+
}
|
|
73
|
+
}; }
|
|
74
|
+
static get events() { return [{
|
|
75
|
+
"method": "tabPanelLoaded",
|
|
76
|
+
"name": "tabPanelLoaded",
|
|
77
|
+
"bubbles": true,
|
|
78
|
+
"cancelable": true,
|
|
79
|
+
"composed": true,
|
|
80
|
+
"docs": {
|
|
81
|
+
"tags": [],
|
|
82
|
+
"text": ""
|
|
83
|
+
},
|
|
84
|
+
"complexType": {
|
|
85
|
+
"original": "{ tabId: string }",
|
|
86
|
+
"resolved": "{ tabId: string; }",
|
|
87
|
+
"references": {}
|
|
88
|
+
}
|
|
89
|
+
}]; }
|
|
90
|
+
static get elementRef() { return "el"; }
|
|
91
|
+
static get listeners() { return [{
|
|
92
|
+
"name": "keydown",
|
|
93
|
+
"method": "toggleTabbingOn",
|
|
94
|
+
"target": "document",
|
|
95
|
+
"capture": false,
|
|
96
|
+
"passive": false
|
|
97
|
+
}, {
|
|
98
|
+
"name": "click",
|
|
99
|
+
"method": "toggleTabbingOff",
|
|
100
|
+
"target": "document",
|
|
101
|
+
"capture": false,
|
|
102
|
+
"passive": false
|
|
103
|
+
}]; }
|
|
104
|
+
}
|