@telia-ace/knowledge-widget-ui 1.0.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/LICENSE.txt +6 -0
- package/README.md +3 -0
- package/lib/components/dialog-link.d.ts +12 -0
- package/lib/components/dialog-link.js +40 -0
- package/lib/components/dialog-list.d.ts +7 -0
- package/lib/components/dialog-list.js +72 -0
- package/lib/components/drawer-list.d.ts +5 -0
- package/lib/components/drawer-list.js +43 -0
- package/lib/components/dropdown-actions.d.ts +11 -0
- package/lib/components/dropdown-actions.js +25 -0
- package/lib/components/dropdown-list.d.ts +5 -0
- package/lib/components/dropdown-list.js +66 -0
- package/lib/components/favorite-button.d.ts +17 -0
- package/lib/components/favorite-button.js +65 -0
- package/lib/components/feedback.d.ts +11 -0
- package/lib/components/feedback.js +84 -0
- package/lib/components/guide-list.d.ts +46 -0
- package/lib/components/guide-list.js +202 -0
- package/lib/components/index.d.ts +10 -0
- package/lib/components/index.js +28 -0
- package/lib/components/loader.d.ts +9 -0
- package/lib/components/loader.js +50 -0
- package/lib/components/metadata.d.ts +17 -0
- package/lib/components/metadata.js +35 -0
- package/lib/hooks/index.d.ts +5 -0
- package/lib/hooks/index.js +14 -0
- package/lib/hooks/use-arrow-keys.d.ts +3 -0
- package/lib/hooks/use-arrow-keys.js +48 -0
- package/lib/hooks/use-debounce.d.ts +2 -0
- package/lib/hooks/use-debounce.js +41 -0
- package/lib/hooks/use-favorites.d.ts +8 -0
- package/lib/hooks/use-favorites.js +81 -0
- package/lib/hooks/use-hover.d.ts +2 -0
- package/lib/hooks/use-hover.js +29 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +44 -0
- package/lib/missing-type-exports.d.ts +47 -0
- package/lib/missing-type-exports.js +3 -0
- package/lib/styles.d.ts +8 -0
- package/lib/styles.js +50 -0
- package/lib/utils/embedded-link-mapper.d.ts +4 -0
- package/lib/utils/embedded-link-mapper.js +62 -0
- package/lib/utils/guide-render-instructions.d.ts +9 -0
- package/lib/utils/guide-render-instructions.js +56 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +8 -0
- package/lib-esm/components/dialog-link.d.ts +12 -0
- package/lib-esm/components/dialog-link.js +35 -0
- package/lib-esm/components/dialog-list.d.ts +7 -0
- package/lib-esm/components/dialog-list.js +44 -0
- package/lib-esm/components/drawer-list.d.ts +5 -0
- package/lib-esm/components/drawer-list.js +38 -0
- package/lib-esm/components/dropdown-actions.d.ts +11 -0
- package/lib-esm/components/dropdown-actions.js +20 -0
- package/lib-esm/components/dropdown-list.d.ts +5 -0
- package/lib-esm/components/dropdown-list.js +38 -0
- package/lib-esm/components/favorite-button.d.ts +17 -0
- package/lib-esm/components/favorite-button.js +40 -0
- package/lib-esm/components/feedback.d.ts +11 -0
- package/lib-esm/components/feedback.js +59 -0
- package/lib-esm/components/guide-list.d.ts +46 -0
- package/lib-esm/components/guide-list.js +173 -0
- package/lib-esm/components/index.d.ts +10 -0
- package/lib-esm/components/index.js +10 -0
- package/lib-esm/components/loader.d.ts +9 -0
- package/lib-esm/components/loader.js +21 -0
- package/lib-esm/components/metadata.d.ts +17 -0
- package/lib-esm/components/metadata.js +30 -0
- package/lib-esm/hooks/index.d.ts +5 -0
- package/lib-esm/hooks/index.js +4 -0
- package/lib-esm/hooks/use-arrow-keys.d.ts +3 -0
- package/lib-esm/hooks/use-arrow-keys.js +46 -0
- package/lib-esm/hooks/use-debounce.d.ts +2 -0
- package/lib-esm/hooks/use-debounce.js +39 -0
- package/lib-esm/hooks/use-favorites.d.ts +8 -0
- package/lib-esm/hooks/use-favorites.js +79 -0
- package/lib-esm/hooks/use-hover.d.ts +2 -0
- package/lib-esm/hooks/use-hover.js +27 -0
- package/lib-esm/index.d.ts +7 -0
- package/lib-esm/index.js +6 -0
- package/lib-esm/missing-type-exports.d.ts +47 -0
- package/lib-esm/missing-type-exports.js +2 -0
- package/lib-esm/styles.d.ts +8 -0
- package/lib-esm/styles.js +24 -0
- package/lib-esm/utils/embedded-link-mapper.d.ts +4 -0
- package/lib-esm/utils/embedded-link-mapper.js +57 -0
- package/lib-esm/utils/guide-render-instructions.d.ts +9 -0
- package/lib-esm/utils/guide-render-instructions.js +51 -0
- package/lib-esm/utils/index.d.ts +1 -0
- package/lib-esm/utils/index.js +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
41
|
+
var t = {};
|
|
42
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
43
|
+
t[p] = s[p];
|
|
44
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
45
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
46
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
47
|
+
t[p[i]] = s[p[i]];
|
|
48
|
+
}
|
|
49
|
+
return t;
|
|
50
|
+
};
|
|
51
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
52
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
53
|
+
if (!m) return o;
|
|
54
|
+
var i = m.call(o), r, ar = [], e;
|
|
55
|
+
try {
|
|
56
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
57
|
+
}
|
|
58
|
+
catch (error) { e = { error: error }; }
|
|
59
|
+
finally {
|
|
60
|
+
try {
|
|
61
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
62
|
+
}
|
|
63
|
+
finally { if (e) throw e.error; }
|
|
64
|
+
}
|
|
65
|
+
return ar;
|
|
66
|
+
};
|
|
67
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
68
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
69
|
+
};
|
|
70
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
71
|
+
exports.AccordionListItem = void 0;
|
|
72
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
73
|
+
var widget_utilities_1 = require("@telia-ace/widget-utilities");
|
|
74
|
+
var react_1 = __importStar(require("react"));
|
|
75
|
+
var styled_components_1 = __importStar(require("styled-components"));
|
|
76
|
+
var hooks_1 = require("../hooks");
|
|
77
|
+
var favorite_button_1 = __importDefault(require("./favorite-button"));
|
|
78
|
+
var metadata_1 = __importDefault(require("./metadata"));
|
|
79
|
+
var Tags = function (_a) {
|
|
80
|
+
var tags = _a.tags;
|
|
81
|
+
if (!tags.filter(function (t) { return t.symbol; }).length) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return (react_1.default.createElement(StyledTagList, { className: "humany-guide-list-tags", items: tags, renderItem: function (_a) {
|
|
85
|
+
var id = _a.id, symbol = _a.symbol, title = _a.title;
|
|
86
|
+
return symbol && (react_1.default.createElement("li", { key: id, "data-tag": id },
|
|
87
|
+
react_1.default.createElement(StyledTagIcon, { size: 18, symbol: symbol, title: title })));
|
|
88
|
+
} }));
|
|
89
|
+
};
|
|
90
|
+
exports.AccordionListItem = (0, react_1.forwardRef)(function (_a, ref) {
|
|
91
|
+
var title = _a.title, id = _a.id, route = _a.route, symbolSize = _a.symbolSize, collapseUri = _a.collapseUri, children = _a.children;
|
|
92
|
+
var params = (0, widget_ui_1.useRouteData)().params;
|
|
93
|
+
return (react_1.default.createElement(ActiveAccordionListItem, { ref: ref, "data-guide": id },
|
|
94
|
+
react_1.default.createElement(widget_ui_1.TextLink, { title: title, "aria-label": title, routeName: route, params: (0, widget_utilities_1.createParams)(__assign(__assign({}, params), { uriName: collapseUri ? collapseUri : undefined, id: undefined, guide: undefined, accordion: undefined })), text: title },
|
|
95
|
+
react_1.default.createElement(widget_ui_1.SymbolBadge, { size: symbolSize, symbol: { type: 'Svg', content: 'caret-up' } })),
|
|
96
|
+
children));
|
|
97
|
+
});
|
|
98
|
+
var ActiveAccordionListItem = styled_components_1.default.li(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n > a { \n grid-column: 1 / -1\n font-weight: bold;\n margin: 0 0 ", " 0;\n }\n\n > div {\n grid-column: 1 / -1\n }\n"], ["\n > a { \n grid-column: 1 / -1\n font-weight: bold;\n margin: 0 0 ", " 0;\n }\n\n > div {\n grid-column: 1 / -1\n }\n"])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.normal; });
|
|
99
|
+
exports.default = (0, react_1.forwardRef)(function (_a, ref) {
|
|
100
|
+
var _b = _a.expandable, expandable = _b === void 0 ? false : _b, _c = _a.routing, routing = _c === void 0 ? {} : _c, _d = _a.paramMappers, paramMappers = _d === void 0 ? {} : _d, _e = _a.symbolSize, symbolSize = _e === void 0 ? 11 : _e, _f = _a.pageRole, pageRole = _f === void 0 ? 'link' : _f, _g = _a.pageCaret, pageCaret = _g === void 0 ? 'down' : _g, _h = _a.showTags, showTags = _h === void 0 ? false : _h, _j = _a.showFavoriteToggle, showFavoriteToggle = _j === void 0 ? false : _j, _k = _a.localPaging, localPaging = _k === void 0 ? false : _k, _l = _a.onItemClick, onItemClick = _l === void 0 ? function () { } : _l, _m = _a.dispatch, dispatch = _m === void 0 ? function () { } : _m, _o = _a.metadata, metadata = _o === void 0 ? {} : _o, pageLabel = _a.pageLabel, className = _a.className, children = _a.children, items = _a.items, renderItem = _a.renderItem, addFavoriteTooltip = _a.addFavoriteTooltip, removeFavoriteCancelLabel = _a.removeFavoriteCancelLabel, removeFavoriteConfirmLabel = _a.removeFavoriteConfirmLabel, removeFavoriteHeader = _a.removeFavoriteHeader, removeFavoriteLabel = _a.removeFavoriteLabel, removeFavoriteTooltip = _a.removeFavoriteTooltip, other = __rest(_a, ["expandable", "routing", "paramMappers", "symbolSize", "pageRole", "pageCaret", "showTags", "showFavoriteToggle", "localPaging", "onItemClick", "dispatch", "metadata", "pageLabel", "className", "children", "items", "renderItem", "addFavoriteTooltip", "removeFavoriteCancelLabel", "removeFavoriteConfirmLabel", "removeFavoriteHeader", "removeFavoriteLabel", "removeFavoriteTooltip"]);
|
|
101
|
+
var _p = (0, react_1.useContext)(styled_components_1.ThemeContext).accessibility.isTabbing, isTabbing = _p === void 0 ? false : _p;
|
|
102
|
+
var innerRef = (0, react_1.useRef)();
|
|
103
|
+
var prevItems = (0, widget_ui_1.usePrevious)(items);
|
|
104
|
+
var _q = routing.guide, guideRoute = _q === void 0 ? 'guide' : _q, _r = routing.page, pageRoute = _r === void 0 ? 'index' : _r;
|
|
105
|
+
var _s = paramMappers.guide, mapGuideParams = _s === void 0 ? function (_a) {
|
|
106
|
+
var id = _a.id;
|
|
107
|
+
return (0, widget_utilities_1.createParams)({ guide: id });
|
|
108
|
+
} : _s, _t = paramMappers.page, mapPageParams = _t === void 0 ? function () { return (0, widget_utilities_1.createParams)(); } : _t;
|
|
109
|
+
var _u = __read((0, hooks_1.useFavorites)(), 2), favorites = _u[0], actions = _u[1];
|
|
110
|
+
(0, react_1.useImperativeHandle)(ref, function () { return innerRef.current; });
|
|
111
|
+
var defaultRenderer = function (guide) {
|
|
112
|
+
var id = guide.id, title = guide.title, tags = guide.tags, published = guide.published, modified = guide.modified, publishedBy = guide.publishedBy, modifiedBy = guide.modifiedBy;
|
|
113
|
+
return (react_1.default.createElement("li", { key: id, "data-guide": id, "has-metadata": ((!!(metadata === null || metadata === void 0 ? void 0 : metadata.showPublished) && !!published) ||
|
|
114
|
+
(!!(metadata === null || metadata === void 0 ? void 0 : metadata.showModified) && !!modified)).toString() },
|
|
115
|
+
react_1.default.createElement(widget_ui_1.TextLink, { className: "humany-guide-link", title: title, "aria-label": title, routeName: guideRoute, onClick: function (e) { return onItemClick(e, guide); }, params: mapGuideParams(guide), text: title },
|
|
116
|
+
react_1.default.createElement(widget_ui_1.SymbolBadge, { size: symbolSize, symbol: {
|
|
117
|
+
type: 'Svg',
|
|
118
|
+
content: expandable ? 'caret-down' : 'caret-right',
|
|
119
|
+
} })),
|
|
120
|
+
showFavoriteToggle && (react_1.default.createElement(favorite_button_1.default, { guideTitle: title, addFavoriteTooltip: addFavoriteTooltip, removeFavoriteCancelLabel: removeFavoriteCancelLabel, removeFavoriteConfirmLabel: removeFavoriteConfirmLabel, removeFavoriteHeader: removeFavoriteHeader, removeFavoriteLabel: removeFavoriteLabel, removeFavoriteTooltip: removeFavoriteTooltip, isFavorite: favorites.indexOf(id) > -1, actions: actions, id: id })),
|
|
121
|
+
showTags && react_1.default.createElement(Tags, { tags: tags }),
|
|
122
|
+
react_1.default.createElement(StyledMetadata, __assign({}, metadata, { indent: expandable ? undefined : symbolSize, modified: modified, published: published, publishedBy: publishedBy, modifiedBy: modifiedBy }))));
|
|
123
|
+
};
|
|
124
|
+
var renderer = (0, react_1.useCallback)(function (guide, index, items) {
|
|
125
|
+
if (renderItem) {
|
|
126
|
+
return renderItem(guide, index, items, defaultRenderer);
|
|
127
|
+
}
|
|
128
|
+
return defaultRenderer(guide, index, items);
|
|
129
|
+
}, [renderItem, defaultRenderer]);
|
|
130
|
+
var onPageClick = (0, react_1.useCallback)(function (e) {
|
|
131
|
+
if (localPaging) {
|
|
132
|
+
e.preventDefault();
|
|
133
|
+
dispatch('page', mapPageParams());
|
|
134
|
+
}
|
|
135
|
+
}, [dispatch, localPaging]);
|
|
136
|
+
(0, react_1.useEffect)(function () {
|
|
137
|
+
if (isTabbing && prevItems && prevItems.length < items.length && innerRef.current) {
|
|
138
|
+
var elements = innerRef.current.querySelectorAll('.humany-guide-list > ul > li');
|
|
139
|
+
var listItemElem = elements[prevItems.length];
|
|
140
|
+
if (elements.length === items.length && prevItems.length) {
|
|
141
|
+
var nextListItem = elements[prevItems.length];
|
|
142
|
+
if (nextListItem) {
|
|
143
|
+
var focusNext = nextListItem.querySelector('.humany-guide-link');
|
|
144
|
+
focusNext && focusNext.focus();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else if (listItemElem) {
|
|
148
|
+
var observer = new MutationObserver(function (mutations, observer) {
|
|
149
|
+
mutations.forEach(function (mutation) {
|
|
150
|
+
if (mutation.addedNodes) {
|
|
151
|
+
var found = Array.from(mutation.addedNodes).find(function (node) { return node.tagName === 'A'; });
|
|
152
|
+
if (found &&
|
|
153
|
+
(0, widget_utilities_1.htmlParentContains)(innerRef.current, document.activeElement)) {
|
|
154
|
+
isTabbing && found.focus();
|
|
155
|
+
observer.disconnect();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
observer.observe(listItemElem, {
|
|
161
|
+
attributes: false,
|
|
162
|
+
characterData: false,
|
|
163
|
+
childList: true,
|
|
164
|
+
subtree: true,
|
|
165
|
+
attributeOldValue: false,
|
|
166
|
+
characterDataOldValue: false,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
var hasMetaData = !!Object.keys(metadata).filter(function (k) { return typeof metadata[k] !== 'undefined'; }).length;
|
|
172
|
+
return (react_1.default.createElement(StyledItemList, __assign({ className: (0, widget_utilities_1.appendClassNames)(className, 'humany-guide-list'), "data-item-count": items.length, items: items, renderItem: renderer, expandable: expandable ? 'true' : 'false', "grid-items": showTags || showFavoriteToggle || hasMetaData ? 'true' : 'false' }, (0, widget_ui_1.convertToStringAttributes)(other), { ref: innerRef }),
|
|
173
|
+
pageLabel ? (react_1.default.createElement(widget_ui_1.TextLink, { text: pageLabel, title: pageLabel, "aria-label": pageLabel, routeName: pageRoute, role: pageRole, params: mapPageParams(), onClick: onPageClick },
|
|
174
|
+
react_1.default.createElement(widget_ui_1.SymbolBadge, { size: symbolSize, symbol: { type: 'Svg', content: "caret-".concat(pageCaret) } }))) : null,
|
|
175
|
+
children));
|
|
176
|
+
});
|
|
177
|
+
var StyledItemList = (0, styled_components_1.default)(widget_ui_1.ItemList)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n ", "\n padding: ", ";\n overflow: auto;\n justify-content: flex-start;\n white-space: nowrap;\n font-weight: 300;\n text-decoration: none;\n\n > div {\n ", "\n }\n\n > ul > li {\n ", "\n > a {\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n display: inline-block;\n\n svg {\n margin: 0 calc(", "*2) 0 0;\n line {\n stroke: ", ";\n }\n }\n\n ", "\n\n &:focus {\n ", ";\n }\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n > a {\n color: ", ";\n margin: ", " 0 0;\n align-self: flex-start;\n align-items: center;\n display: flex;\n\n span {\n text-decoration: underline;\n }\n\n svg {\n margin: 0 calc(", "*2) 0 0;\n line {\n stroke: ", ";\n }\n }\n\n &:focus {\n ", ";\n }\n }\n"], ["\n ", "\n padding: ", ";\n overflow: auto;\n justify-content: flex-start;\n white-space: nowrap;\n font-weight: 300;\n text-decoration: none;\n\n > div {\n ", "\n }\n\n > ul > li {\n ", "\n > a {\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n display: inline-block;\n\n svg {\n margin: 0 calc(", "*2) 0 0;\n line {\n stroke: ", ";\n }\n }\n\n ", "\n\n &:focus {\n ", ";\n }\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n\n > a {\n color: ", ";\n margin: ", " 0 0;\n align-self: flex-start;\n align-items: center;\n display: flex;\n\n span {\n text-decoration: underline;\n }\n\n svg {\n margin: 0 calc(", "*2) 0 0;\n line {\n stroke: ", ";\n }\n }\n\n &:focus {\n ", ";\n }\n }\n"])), widget_ui_1.itemList, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.large; }, (0, widget_ui_1.headingElement)('> h1', (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n white-space: pre-wrap;\n "], ["\n white-space: pre-wrap;\n "])))), function (p) {
|
|
178
|
+
return p['grid-items'] === 'true' && (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: grid;\n grid-template-columns: auto 1fr 1fr;\n gap: 0px 0px;\n grid-template-areas: '. favorite tags';\n align-items: center;\n\n > button {\n margin: 0 0 0 ", ";\n\n &[data-favorite='false'] {\n ", ";\n &:focus {\n opacity: 1;\n }\n }\n }\n\n > span {\n font-size: ", ";\n }\n\n &:hover {\n button[data-favorite='false'] {\n display: flex;\n justify-self: flex-start;\n }\n }\n\n &[has-metadata='true'] {\n grid-template-rows: 1fr 1fr;\n grid-template-areas:\n '. favorite tags'\n 'metadata metadata metadata';\n }\n "], ["\n display: grid;\n grid-template-columns: auto 1fr 1fr;\n gap: 0px 0px;\n grid-template-areas: '. favorite tags';\n align-items: center;\n\n > button {\n margin: 0 0 0 ", ";\n\n &[data-favorite='false'] {\n ", ";\n &:focus {\n opacity: 1;\n }\n }\n }\n\n > span {\n font-size: ", ";\n }\n\n &:hover {\n button[data-favorite='false'] {\n display: flex;\n justify-self: flex-start;\n }\n }\n\n &[has-metadata='true'] {\n grid-template-rows: 1fr 1fr;\n grid-template-areas:\n '. favorite tags'\n 'metadata metadata metadata';\n }\n "])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; }, function (p) { var _a; return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing) ? 'opacity: 0;' : 'display: none;'; }, function (p) { var _a; return (_a = p.theme.fonts) === null || _a === void 0 ? void 0 : _a.small; });
|
|
179
|
+
}, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.primary; }, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.primary; }, function (p) {
|
|
180
|
+
return p.expandable === 'true' && (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n margin: 0 0 0 ", ";\n }\n "], ["\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n margin: 0 0 0 ", ";\n }\n "])), function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; });
|
|
181
|
+
}, function (p) {
|
|
182
|
+
var _a;
|
|
183
|
+
return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing) && (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n ", "\n text-decoration: underline;\n "], ["\n ", "\n text-decoration: underline;\n "])), widget_ui_1.borderTabStyle);
|
|
184
|
+
}, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; }, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.normal; }, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; }, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.text; }, function (p) {
|
|
185
|
+
var _a;
|
|
186
|
+
return ((_a = p.theme.accessibility) === null || _a === void 0 ? void 0 : _a.isTabbing) && (0, styled_components_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n ", "\n text-decoration: underline;\n "], ["\n ", "\n text-decoration: underline;\n "])), widget_ui_1.borderTabStyle);
|
|
187
|
+
});
|
|
188
|
+
var StyledTagList = (0, styled_components_1.default)(widget_ui_1.List)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n ", "\n display: flex;\n margin: 0 0 0 auto;\n grid-area: tags;\n\n li,\n li:last-child {\n margin: 0 0 0 ", ";\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n"], ["\n ", "\n display: flex;\n margin: 0 0 0 auto;\n grid-area: tags;\n\n li,\n li:last-child {\n margin: 0 0 0 ", ";\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n"])), widget_ui_1.list, function (p) { var _a; return (_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small; });
|
|
189
|
+
var StyledTagIcon = (0, styled_components_1.default)(widget_ui_1.SymbolBadge)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n display: block;\n color: ", ";\n ", "\n"], ["\n display: block;\n color: ", ";\n ", "\n"])), function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.primary; }, function (p) {
|
|
190
|
+
if (p.symbol.type === 'Uri') {
|
|
191
|
+
return "\n width: ".concat(p.size, "px;\n height: ").concat(p.size, "px;\n ");
|
|
192
|
+
}
|
|
193
|
+
if (p.symbol.type === 'FontAwesome') {
|
|
194
|
+
return "\n font-size: ".concat(p.size, "px;\n ");
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
var StyledMetadata = (0, styled_components_1.default)(metadata_1.default)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n grid-area: metadata;\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: ", ";\n ", "\n"], ["\n grid-area: metadata;\n text-overflow: ellipsis;\n overflow: hidden;\n font-size: ", ";\n ", "\n"])), function (p) { var _a; return (_a = p.theme.fonts) === null || _a === void 0 ? void 0 : _a.small; }, function (p) {
|
|
198
|
+
var _a;
|
|
199
|
+
return typeof p.indent === 'number' &&
|
|
200
|
+
"text-indent: calc(".concat((_a = p.theme.sizes) === null || _a === void 0 ? void 0 : _a.small, " * 2 + ").concat(p.indent, "px);");
|
|
201
|
+
});
|
|
202
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { default as DialogLink } from './dialog-link';
|
|
2
|
+
export { default as DialogList } from './dialog-list';
|
|
3
|
+
export { default as DrawerList } from './drawer-list';
|
|
4
|
+
export { default as DropdownActions } from './dropdown-actions';
|
|
5
|
+
export { default as DropdownList } from './dropdown-list';
|
|
6
|
+
export { default as FavoriteButton } from './favorite-button';
|
|
7
|
+
export { default as Feedback } from './feedback';
|
|
8
|
+
export { AccordionListItem, default as GuideList } from './guide-list';
|
|
9
|
+
export { default as Loader, Wrapper as LoaderWrapper } from './loader';
|
|
10
|
+
export { default as Metadata } from './metadata';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Metadata = exports.LoaderWrapper = exports.Loader = exports.GuideList = exports.AccordionListItem = exports.Feedback = exports.FavoriteButton = exports.DropdownList = exports.DropdownActions = exports.DrawerList = exports.DialogList = exports.DialogLink = void 0;
|
|
7
|
+
var dialog_link_1 = require("./dialog-link");
|
|
8
|
+
Object.defineProperty(exports, "DialogLink", { enumerable: true, get: function () { return __importDefault(dialog_link_1).default; } });
|
|
9
|
+
var dialog_list_1 = require("./dialog-list");
|
|
10
|
+
Object.defineProperty(exports, "DialogList", { enumerable: true, get: function () { return __importDefault(dialog_list_1).default; } });
|
|
11
|
+
var drawer_list_1 = require("./drawer-list");
|
|
12
|
+
Object.defineProperty(exports, "DrawerList", { enumerable: true, get: function () { return __importDefault(drawer_list_1).default; } });
|
|
13
|
+
var dropdown_actions_1 = require("./dropdown-actions");
|
|
14
|
+
Object.defineProperty(exports, "DropdownActions", { enumerable: true, get: function () { return __importDefault(dropdown_actions_1).default; } });
|
|
15
|
+
var dropdown_list_1 = require("./dropdown-list");
|
|
16
|
+
Object.defineProperty(exports, "DropdownList", { enumerable: true, get: function () { return __importDefault(dropdown_list_1).default; } });
|
|
17
|
+
var favorite_button_1 = require("./favorite-button");
|
|
18
|
+
Object.defineProperty(exports, "FavoriteButton", { enumerable: true, get: function () { return __importDefault(favorite_button_1).default; } });
|
|
19
|
+
var feedback_1 = require("./feedback");
|
|
20
|
+
Object.defineProperty(exports, "Feedback", { enumerable: true, get: function () { return __importDefault(feedback_1).default; } });
|
|
21
|
+
var guide_list_1 = require("./guide-list");
|
|
22
|
+
Object.defineProperty(exports, "AccordionListItem", { enumerable: true, get: function () { return guide_list_1.AccordionListItem; } });
|
|
23
|
+
Object.defineProperty(exports, "GuideList", { enumerable: true, get: function () { return __importDefault(guide_list_1).default; } });
|
|
24
|
+
var loader_1 = require("./loader");
|
|
25
|
+
Object.defineProperty(exports, "Loader", { enumerable: true, get: function () { return __importDefault(loader_1).default; } });
|
|
26
|
+
Object.defineProperty(exports, "LoaderWrapper", { enumerable: true, get: function () { return loader_1.Wrapper; } });
|
|
27
|
+
var metadata_1 = require("./metadata");
|
|
28
|
+
Object.defineProperty(exports, "Metadata", { enumerable: true, get: function () { return __importDefault(metadata_1).default; } });
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type Props = {
|
|
3
|
+
loading: boolean | undefined;
|
|
4
|
+
};
|
|
5
|
+
export declare const Wrapper: import("styled-components").StyledComponent<"div", any, {
|
|
6
|
+
'data-loading': boolean;
|
|
7
|
+
}, never>;
|
|
8
|
+
declare const Loader: React.SFC<Props>;
|
|
9
|
+
export default Loader;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.Wrapper = void 0;
|
|
34
|
+
var react_1 = __importDefault(require("react"));
|
|
35
|
+
var styled_components_1 = __importStar(require("styled-components"));
|
|
36
|
+
var spin = (0, styled_components_1.keyframes)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n 100% {\n transform: rotate(360deg);\n }\n"], ["\n 100% {\n transform: rotate(360deg);\n }\n"])));
|
|
37
|
+
var dash = (0, styled_components_1.keyframes)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n"], ["\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124px;\n }\n"])));
|
|
38
|
+
var SpinnerSvg = styled_components_1.default.svg(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n animation: ", " 2s linear infinite;\n height: 100%;\n transform-origin: center center;\n width: 100%;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: auto;\n transition: 200ms ease-out opacity;\n"], ["\n animation: ", " 2s linear infinite;\n height: 100%;\n transform-origin: center center;\n width: 100%;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: auto;\n transition: 200ms ease-out opacity;\n"])), spin);
|
|
39
|
+
exports.Wrapper = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%;\n width: 100%;\n pointer-events: ", "\n display: flex;\n flex-direction: column;\n justify-content: center;\n transition: 200ms ease-out opacity;\n box-sizing: border-box;\n overflow: hidden;\n ", " {\n opacity: ", "\n }\n"], ["\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n height: 100%;\n width: 100%;\n pointer-events: ", "\n display: flex;\n flex-direction: column;\n justify-content: center;\n transition: 200ms ease-out opacity;\n box-sizing: border-box;\n overflow: hidden;\n ", " {\n opacity: ", "\n }\n"])), function (p) { return (p['data-loading'] ? 'all' : 'none'); }, SpinnerSvg, function (p) { return (p['data-loading'] ? '1' : '0'); });
|
|
40
|
+
var Spinner = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n position: relative;\n margin: 0 auto;\n width: 100px;\n &:before {\n content: '';\n display: block;\n padding-top: 100%;\n }\n"], ["\n position: relative;\n margin: 0 auto;\n width: 100px;\n &:before {\n content: '';\n display: block;\n padding-top: 100%;\n }\n"])));
|
|
41
|
+
var SpinnerCircle = styled_components_1.default.circle(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: ", " 1.5s ease-in-out infinite;\n stroke-linecap: round;\n stroke: ", ";\n stroke-width: 2px;\n"], ["\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: ", " 1.5s ease-in-out infinite;\n stroke-linecap: round;\n stroke: ", ";\n stroke-width: 2px;\n"])), dash, function (p) { var _a; return (_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.primary; });
|
|
42
|
+
var Loader = function (_a) {
|
|
43
|
+
var _b = _a.loading, loading = _b === void 0 ? false : _b;
|
|
44
|
+
return (react_1.default.createElement(exports.Wrapper, { className: "humany-loader", "data-loading": loading },
|
|
45
|
+
react_1.default.createElement(Spinner, { className: "humany-spinner" },
|
|
46
|
+
react_1.default.createElement(SpinnerSvg, { viewBox: "25 25 50 50" },
|
|
47
|
+
react_1.default.createElement(SpinnerCircle, { cx: "50", cy: "50", r: "20", fill: "none", "stroke-width": "2", "stroke-miterlimit": "10" })))));
|
|
48
|
+
};
|
|
49
|
+
exports.default = Loader;
|
|
50
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DateFormats } from '@telia-ace/widget-ui';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare type Props = {
|
|
4
|
+
className?: string;
|
|
5
|
+
modified?: string;
|
|
6
|
+
published?: string;
|
|
7
|
+
modifiedBy?: string | null;
|
|
8
|
+
publishedBy?: string | null;
|
|
9
|
+
showModified?: boolean;
|
|
10
|
+
showPublished?: boolean;
|
|
11
|
+
modifiedLabel?: string;
|
|
12
|
+
publishedLabel?: string;
|
|
13
|
+
byLabel?: string;
|
|
14
|
+
format?: DateFormats;
|
|
15
|
+
};
|
|
16
|
+
declare const Metadata: React.FC<Props>;
|
|
17
|
+
export default Metadata;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
11
|
+
var widget_utilities_1 = require("@telia-ace/widget-utilities");
|
|
12
|
+
var react_1 = __importDefault(require("react"));
|
|
13
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
14
|
+
var Metadata = function (_a) {
|
|
15
|
+
var _b = _a.format, format = _b === void 0 ? widget_ui_1.DateFormats.YYYY_MM_DD_HH_MM : _b, _c = _a.className, className = _c === void 0 ? '' : _c, _d = _a.byLabel, byLabel = _d === void 0 ? '' : _d, _e = _a.modifiedLabel, modifiedLabel = _e === void 0 ? '' : _e, _f = _a.publishedLabel, publishedLabel = _f === void 0 ? '' : _f, _g = _a.modifiedBy, modifiedBy = _g === void 0 ? '' : _g, _h = _a.publishedBy, publishedBy = _h === void 0 ? '' : _h, _j = _a.showModified, showModified = _j === void 0 ? false : _j, _k = _a.showPublished, showPublished = _k === void 0 ? false : _k, modified = _a.modified, published = _a.published;
|
|
16
|
+
var publishedTimestamp = showPublished && published ? (react_1.default.createElement(StyledTimestamp, { format: format, timestamp: published })) : null;
|
|
17
|
+
var modifiedTimestamp = showModified && modified ? react_1.default.createElement(StyledTimestamp, { format: format, timestamp: modified }) : null;
|
|
18
|
+
if (!publishedTimestamp && !modifiedTimestamp) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return (react_1.default.createElement(StyledText, { className: (0, widget_utilities_1.appendClassNames)(className, 'humany-metadata') },
|
|
22
|
+
publishedTimestamp && (react_1.default.createElement(StyledText, { className: "humany-published" },
|
|
23
|
+
publishedLabel,
|
|
24
|
+
publishedTimestamp,
|
|
25
|
+
byLabel && publishedBy && " ".concat(byLabel.replace('{{editor}}', publishedBy)))),
|
|
26
|
+
modifiedTimestamp && (react_1.default.createElement(StyledText, { className: "humany-modified" },
|
|
27
|
+
publishedTimestamp && ', ',
|
|
28
|
+
modifiedLabel,
|
|
29
|
+
modifiedTimestamp,
|
|
30
|
+
byLabel && modifiedBy && " ".concat(byLabel.replace('{{editor}}', modifiedBy))))));
|
|
31
|
+
};
|
|
32
|
+
exports.default = Metadata;
|
|
33
|
+
var StyledTimestamp = (0, styled_components_1.default)(widget_ui_1.Timestamp)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n &:not(:first-child) {\n margin-left: 4px;\n }\n &:not(:last-child) {\n margin-right: 4px;\n }\n"], ["\n &:not(:first-child) {\n margin-left: 4px;\n }\n &:not(:last-child) {\n margin-right: 4px;\n }\n"])));
|
|
34
|
+
var StyledText = (0, styled_components_1.default)(widget_ui_1.Text)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n font-style: italic;\n"], ["\n font-style: italic;\n"])));
|
|
35
|
+
var templateObject_1, templateObject_2;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as useArrowKeys } from './use-arrow-keys';
|
|
2
|
+
export { default as useDebounce } from './use-debounce';
|
|
3
|
+
export { default as useFavorites } from './use-favorites';
|
|
4
|
+
export type { FavoriteActions } from './use-favorites';
|
|
5
|
+
export { default as useHover } from './use-hover';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useHover = exports.useFavorites = exports.useDebounce = exports.useArrowKeys = void 0;
|
|
7
|
+
var use_arrow_keys_1 = require("./use-arrow-keys");
|
|
8
|
+
Object.defineProperty(exports, "useArrowKeys", { enumerable: true, get: function () { return __importDefault(use_arrow_keys_1).default; } });
|
|
9
|
+
var use_debounce_1 = require("./use-debounce");
|
|
10
|
+
Object.defineProperty(exports, "useDebounce", { enumerable: true, get: function () { return __importDefault(use_debounce_1).default; } });
|
|
11
|
+
var use_favorites_1 = require("./use-favorites");
|
|
12
|
+
Object.defineProperty(exports, "useFavorites", { enumerable: true, get: function () { return __importDefault(use_favorites_1).default; } });
|
|
13
|
+
var use_hover_1 = require("./use-hover");
|
|
14
|
+
Object.defineProperty(exports, "useHover", { enumerable: true, get: function () { return __importDefault(use_hover_1).default; } });
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
var useArrowKeys = function () {
|
|
22
|
+
// State for keeping track of whether key is pressed
|
|
23
|
+
var _a = __read((0, react_1.useState)(null), 2), keyPressed = _a[0], setKeyPressed = _a[1];
|
|
24
|
+
var left = (0, widget_ui_1.useKeyPress)('ArrowLeft');
|
|
25
|
+
var right = (0, widget_ui_1.useKeyPress)('ArrowRight');
|
|
26
|
+
var up = (0, widget_ui_1.useKeyPress)('ArrowUp');
|
|
27
|
+
var down = (0, widget_ui_1.useKeyPress)('ArrowDown');
|
|
28
|
+
var effect = function () {
|
|
29
|
+
if (left) {
|
|
30
|
+
setKeyPressed('left');
|
|
31
|
+
}
|
|
32
|
+
else if (right) {
|
|
33
|
+
setKeyPressed('right');
|
|
34
|
+
}
|
|
35
|
+
else if (up) {
|
|
36
|
+
setKeyPressed('up');
|
|
37
|
+
}
|
|
38
|
+
else if (down) {
|
|
39
|
+
setKeyPressed('down');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
setKeyPressed(null);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
(0, react_1.useEffect)(effect, [left, right, up, down]);
|
|
46
|
+
return keyPressed;
|
|
47
|
+
};
|
|
48
|
+
exports.default = useArrowKeys;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
var react_1 = require("react");
|
|
20
|
+
var useDebounce = function (value, delay) {
|
|
21
|
+
// State and setters for debounced value
|
|
22
|
+
var _a = __read((0, react_1.useState)(value), 2), debouncedValue = _a[0], setDebouncedValue = _a[1];
|
|
23
|
+
var handler = (0, react_1.useCallback)(function () {
|
|
24
|
+
// Update debounced value after delay
|
|
25
|
+
return setTimeout(function () {
|
|
26
|
+
setDebouncedValue(value);
|
|
27
|
+
}, delay);
|
|
28
|
+
}, [delay, setDebouncedValue, value]);
|
|
29
|
+
(0, react_1.useEffect)(function () {
|
|
30
|
+
var timeout = handler();
|
|
31
|
+
// Cancel the timeout if value changes (also on delay change or unmount)
|
|
32
|
+
// This is how we prevent debounced value from updating if value is changed
|
|
33
|
+
// within the delay period. Timeout gets cleared and restarted.
|
|
34
|
+
return function () {
|
|
35
|
+
clearTimeout(timeout);
|
|
36
|
+
};
|
|
37
|
+
}, [handler] // Only re-call effect if value or delay changes
|
|
38
|
+
);
|
|
39
|
+
return debouncedValue;
|
|
40
|
+
};
|
|
41
|
+
exports.default = useDebounce;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare type FavoriteActions = {
|
|
2
|
+
addFavorite: (guideId: string) => Promise<string[]>;
|
|
3
|
+
clearFavorites: () => Promise<string[]>;
|
|
4
|
+
removeFavorite: (guideId: string) => Promise<string[]>;
|
|
5
|
+
toggleFavorite: (guideId: string) => Promise<string[]>;
|
|
6
|
+
};
|
|
7
|
+
declare const useFavorites: () => [string[], FavoriteActions];
|
|
8
|
+
export default useFavorites;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
29
|
+
var react_1 = require("react");
|
|
30
|
+
var useFavorites = function () {
|
|
31
|
+
var container = (0, widget_ui_1.useContainer)();
|
|
32
|
+
var _a = __read((0, react_1.useState)([]), 2), favorites = _a[0], setFavorites = _a[1];
|
|
33
|
+
var platform = container.get('favorites');
|
|
34
|
+
(0, react_1.useEffect)(function () {
|
|
35
|
+
if (platform) {
|
|
36
|
+
setFavorites(platform.get());
|
|
37
|
+
var events = container.get('$widget').events;
|
|
38
|
+
var unsubscribe = events.subscribe('widget:favorites-updated', function (_, _a) {
|
|
39
|
+
var updated = _a.updated;
|
|
40
|
+
setFavorites(__spreadArray([], __read(updated), false));
|
|
41
|
+
});
|
|
42
|
+
return unsubscribe;
|
|
43
|
+
}
|
|
44
|
+
}, []);
|
|
45
|
+
var add = function (guideId) {
|
|
46
|
+
if (!platform) {
|
|
47
|
+
return Promise.resolve([]);
|
|
48
|
+
}
|
|
49
|
+
return platform.add(guideId);
|
|
50
|
+
};
|
|
51
|
+
var remove = function (guideId) {
|
|
52
|
+
if (!platform) {
|
|
53
|
+
return Promise.resolve([]);
|
|
54
|
+
}
|
|
55
|
+
return platform.remove(guideId);
|
|
56
|
+
};
|
|
57
|
+
var clear = function () {
|
|
58
|
+
if (!platform) {
|
|
59
|
+
return Promise.resolve([]);
|
|
60
|
+
}
|
|
61
|
+
return platform.clear();
|
|
62
|
+
};
|
|
63
|
+
var toggle = (0, react_1.useCallback)(function (guideId) {
|
|
64
|
+
if (favorites.indexOf(guideId) > -1) {
|
|
65
|
+
return remove(guideId);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return add(guideId);
|
|
69
|
+
}
|
|
70
|
+
}, [favorites]);
|
|
71
|
+
return [
|
|
72
|
+
favorites,
|
|
73
|
+
(0, react_1.useMemo)(function () { return ({
|
|
74
|
+
addFavorite: add,
|
|
75
|
+
removeFavorite: remove,
|
|
76
|
+
clearFavorites: clear,
|
|
77
|
+
toggleFavorite: toggle,
|
|
78
|
+
}); }, [favorites]),
|
|
79
|
+
];
|
|
80
|
+
};
|
|
81
|
+
exports.default = useFavorites;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
exports.default = (function () {
|
|
22
|
+
var _a = __read((0, react_1.useState)(false), 2), hovering = _a[0], setHovering = _a[1];
|
|
23
|
+
var elem = (0, react_1.useRef)();
|
|
24
|
+
var onMouseEnter = (0, react_1.useCallback)(function () { return setHovering(true); }, [setHovering]);
|
|
25
|
+
var onMouseLeave = (0, react_1.useCallback)(function () { return setHovering(false); }, [setHovering]);
|
|
26
|
+
(0, widget_ui_1.useEventListener)('mouseenter', onMouseEnter, elem.current);
|
|
27
|
+
(0, widget_ui_1.useEventListener)('mouseleave', onMouseLeave, elem.current);
|
|
28
|
+
return [hovering, elem];
|
|
29
|
+
});
|