@pingux/astro 2.216.0-alpha.0 → 2.217.1-alpha.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/lib/cjs/components/PanelHeader/PanelHeader.js +9 -2
- package/lib/cjs/components/PanelHeader/PanelHeader.stories.js +14 -2
- package/lib/cjs/components/PanelHeader/PanelHeader.test.js +115 -3
- package/lib/cjs/components/PanelHeader/stories/OnyxPanelHeaderComponent.js +8 -0
- package/lib/cjs/components/TableBase/TableBase.styles.d.ts +3 -3
- package/lib/cjs/hooks/useGetTheme/useGetTheme.d.ts +5 -5
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +8 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +74 -74
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/index.d.ts +5 -5
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/avatar.d.ts +1 -1
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/badges.d.ts +16 -16
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.d.ts +44 -44
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/cards.d.ts +1 -1
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/forms.d.ts +9 -9
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/links.d.ts +9 -9
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/listview.d.ts +7 -7
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/menu.d.ts +8 -8
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/message.d.ts +3 -3
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/text.d.ts +12 -12
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.d.ts +56 -56
- package/lib/cjs/styles/themeOverrides/onyxUiLibraryOverride.d.ts +7 -7
- package/lib/cjs/styles/themes/next-gen/colors/colors.d.ts +143 -143
- package/lib/cjs/styles/themes/next-gen/colors/iconWrapper.d.ts +30 -30
- package/lib/cjs/styles/themes/next-gen/colors/twoTone.d.ts +30 -30
- package/lib/cjs/styles/themes/next-gen/customProperties/index.d.ts +5 -5
- package/lib/cjs/styles/themes/next-gen/customProperties/tShirtSizes.d.ts +5 -5
- package/lib/cjs/styles/themes/next-gen/forms.d.ts +28 -28
- package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +525 -507
- package/lib/cjs/styles/themes/next-gen/sizes.d.ts +5 -5
- package/lib/cjs/styles/themes/next-gen/spacing.d.ts +5 -5
- package/lib/cjs/styles/themes/next-gen/text.js +1 -1
- package/lib/cjs/styles/themes/next-gen/variants/accordionGrid.d.ts +1 -1
- package/lib/cjs/styles/themes/next-gen/variants/avatar.d.ts +5 -5
- package/lib/cjs/styles/themes/next-gen/variants/badges.d.ts +22 -22
- package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +164 -146
- package/lib/cjs/styles/themes/next-gen/variants/cards.d.ts +5 -5
- package/lib/cjs/styles/themes/next-gen/variants/dataTable.d.ts +3 -3
- package/lib/cjs/styles/themes/next-gen/variants/footer.d.ts +1 -1
- package/lib/cjs/styles/themes/next-gen/variants/iconWrapper.d.ts +5 -5
- package/lib/cjs/styles/themes/next-gen/variants/input.d.ts +11 -11
- package/lib/cjs/styles/themes/next-gen/variants/links.d.ts +34 -34
- package/lib/cjs/styles/themes/next-gen/variants/listview.d.ts +14 -14
- package/lib/cjs/styles/themes/next-gen/variants/menu.d.ts +3 -3
- package/lib/cjs/styles/themes/next-gen/variants/messages.d.ts +11 -11
- package/lib/cjs/styles/themes/next-gen/variants/navbar.d.ts +18 -18
- package/lib/cjs/styles/themes/next-gen/variants/popoverMenu.d.ts +7 -7
- package/lib/cjs/styles/themes/next-gen/variants/rangeCalendar.d.ts +3 -3
- package/lib/cjs/styles/themes/next-gen/variants/stepper.d.ts +4 -4
- package/lib/cjs/styles/themes/next-gen/variants/tableBase.d.ts +11 -11
- package/lib/cjs/styles/themes/next-gen/variants/text.d.ts +25 -25
- package/lib/cjs/styles/themes/next-gen/variants/tooltip.d.ts +2 -2
- package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +121 -121
- package/lib/components/PanelHeader/PanelHeader.js +10 -3
- package/lib/components/PanelHeader/PanelHeader.stories.js +13 -1
- package/lib/components/PanelHeader/PanelHeader.test.js +113 -2
- package/lib/components/PanelHeader/stories/OnyxPanelHeaderComponent.js +8 -0
- package/lib/index.js +1 -0
- package/lib/styles/themes/next-gen/text.js +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
2
2
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["avatarProps", "children", "className", "data", "headerProps", "headerWrapperProps", "slots", "subtextProps"];
|
|
4
|
+
var _excluded = ["avatarProps", "children", "className", "data", "headerProps", "headerWrapperProps", "isCopyable", "slots", "subtextProps"];
|
|
5
5
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6
6
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
7
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
@@ -16,7 +16,7 @@ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object
|
|
|
16
16
|
import React, { forwardRef } from 'react';
|
|
17
17
|
import PropTypes from 'prop-types';
|
|
18
18
|
import { useGetTheme } from '../../hooks';
|
|
19
|
-
import { Avatar, Box, Icon, Image, Text } from '../../index';
|
|
19
|
+
import { Avatar, Box, CopyText, Icon, Image, Text } from '../../index';
|
|
20
20
|
import { SharedItemPropTypes } from '../ListViewItem/listViewItemAttributes';
|
|
21
21
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
22
22
|
export var PANEL_HEADER_ICON = '-panel-header-icon';
|
|
@@ -28,6 +28,7 @@ var PanelHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
28
28
|
data = _ref.data,
|
|
29
29
|
headerProps = _ref.headerProps,
|
|
30
30
|
headerWrapperProps = _ref.headerWrapperProps,
|
|
31
|
+
isCopyable = _ref.isCopyable,
|
|
31
32
|
slots = _ref.slots,
|
|
32
33
|
subtextProps = _ref.subtextProps,
|
|
33
34
|
others = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -91,7 +92,12 @@ var PanelHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
91
92
|
variant: text || subtext ? 'panelHeader.data' : 'panelHeader.emptyData'
|
|
92
93
|
}, renderLeftContent(), (text || subtext) && ___EmotionJSX(Box, headerWrapperPropsSpread, text && ___EmotionJSX(Text, _extends({}, headerPropsSpread, {
|
|
93
94
|
variant: "panelHeaderText"
|
|
94
|
-
}), text), subtext && ___EmotionJSX(
|
|
95
|
+
}), text), subtext && isCopyable ? ___EmotionJSX(CopyText, {
|
|
96
|
+
mode: "nonClickableContent",
|
|
97
|
+
textToCopy: subtext
|
|
98
|
+
}, ___EmotionJSX(Text, {
|
|
99
|
+
variant: "panelHeaderSubtext"
|
|
100
|
+
}, subtext)) : subtext && ___EmotionJSX(Text, {
|
|
95
101
|
variant: "panelHeaderSubtext"
|
|
96
102
|
}, subtext)));
|
|
97
103
|
return ___EmotionJSX(Box, _extends({
|
|
@@ -113,6 +119,7 @@ var PanelHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
113
119
|
}, children)));
|
|
114
120
|
});
|
|
115
121
|
PanelHeader.propTypes = _objectSpread(_objectSpread({}, SharedItemPropTypes), {}, {
|
|
122
|
+
isCopyable: PropTypes.bool,
|
|
116
123
|
slots: PropTypes.shape({
|
|
117
124
|
rightOfData: PropTypes.node
|
|
118
125
|
})
|
|
@@ -164,8 +164,20 @@ export var BreadcrumbsWithExtraLongText = function BreadcrumbsWithExtraLongText(
|
|
|
164
164
|
}
|
|
165
165
|
}, ___EmotionJSX(PanelHeaderCloseButton, null));
|
|
166
166
|
};
|
|
167
|
-
export var
|
|
167
|
+
export var WithCopyableSubtext = function WithCopyableSubtext(_ref4) {
|
|
168
168
|
var args = _extends({}, (_objectDestructuringEmpty(_ref4), _ref4));
|
|
169
|
+
return ___EmotionJSX(PanelHeader, _extends({}, args, {
|
|
170
|
+
isCopyable: true,
|
|
171
|
+
data: {
|
|
172
|
+
icon: AccountIcon,
|
|
173
|
+
subtext: 'rad_developer@pingidentity.com',
|
|
174
|
+
text: 'Fons Vernall',
|
|
175
|
+
avatarDefaultText: 'FV'
|
|
176
|
+
}
|
|
177
|
+
}));
|
|
178
|
+
};
|
|
179
|
+
export var WithExtraLongText = function WithExtraLongText(_ref5) {
|
|
180
|
+
var args = _extends({}, (_objectDestructuringEmpty(_ref5), _ref5));
|
|
169
181
|
return ___EmotionJSX(PanelHeader, _extends({}, args, {
|
|
170
182
|
data: {
|
|
171
183
|
avatarDefaultText: 'FV',
|
|
@@ -5,15 +5,36 @@ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-sta
|
|
|
5
5
|
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
|
6
6
|
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
|
7
7
|
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
|
8
|
-
import
|
|
8
|
+
import _Symbol from "@babel/runtime-corejs3/core-js-stable/symbol";
|
|
9
|
+
import _Object$create from "@babel/runtime-corejs3/core-js-stable/object/create";
|
|
10
|
+
import _bindInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/bind";
|
|
11
|
+
import _Object$getPrototypeOf from "@babel/runtime-corejs3/core-js-stable/object/get-prototype-of";
|
|
12
|
+
import _Object$setPrototypeOf from "@babel/runtime-corejs3/core-js-stable/object/set-prototype-of";
|
|
13
|
+
import _Symbol$asyncIterator from "@babel/runtime-corejs3/core-js-stable/symbol/async-iterator";
|
|
14
|
+
import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
|
|
15
|
+
import _Symbol$iterator from "@babel/runtime-corejs3/core-js-stable/symbol/iterator";
|
|
16
|
+
import _reverseInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reverse";
|
|
17
|
+
import _typeof from "@babel/runtime-corejs3/helpers/esm/typeof";
|
|
18
|
+
import _asyncToGenerator from "@babel/runtime-corejs3/helpers/esm/asyncToGenerator";
|
|
9
19
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
10
20
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
|
21
|
+
function _regeneratorRuntime() { "use strict"; var r = _regenerator(), e = r.m(_regeneratorRuntime), t = (_Object$getPrototypeOf ? _Object$getPrototypeOf(e) : e.__proto__).constructor; function n(r) { var e = "function" == typeof r && r.constructor; return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name)); } var o = { "throw": 1, "return": 2, "break": 3, "continue": 3 }; function a(r) { var e, t; return function (n) { e || (e = { stop: function stop() { return t(n.a, 2); }, "catch": function _catch() { return n.v; }, abrupt: function abrupt(r, e) { return t(n.a, o[r], e); }, delegateYield: function delegateYield(r, o, a) { return e.resultName = o, t(n.d, _regeneratorValues(r), a); }, finish: function finish(r) { return t(n.f, r); } }, t = function t(r, _t, o) { n.p = e.prev, n.n = e.next; try { return r(_t, o); } finally { e.next = n.n; } }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n; try { return r.call(this, e); } finally { n.p = e.prev, n.n = e.next; } }; } return (_regeneratorRuntime = function _regeneratorRuntime() { return { wrap: function wrap(e, t, n, o) { return r.w(a(e), t, n, o && _reverseInstanceProperty(o).call(o)); }, isGeneratorFunction: n, mark: r.m, awrap: function awrap(r, e) { return new _OverloadYield(r, e); }, AsyncIterator: _regeneratorAsyncIterator, async: function async(r, e, t, o, u) { return (n(e) ? _regeneratorAsyncGen : _regeneratorAsync)(a(r), e, t, o, u); }, keys: _regeneratorKeys, values: _regeneratorValues }; })(); }
|
|
22
|
+
function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof _Symbol && _Symbol$iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(_typeof(e) + " is not iterable"); }
|
|
23
|
+
function _regeneratorKeys(e) { var n = Object(e), r = []; for (var t in n) r.unshift(t); return function e() { for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; return e.done = !0, e; }; }
|
|
24
|
+
function _regeneratorAsync(n, e, r, t, o) { var a = _regeneratorAsyncGen(n, e, r, t, o); return a.next().then(function (n) { return n.done ? n.value : a.next(); }); }
|
|
25
|
+
function _regeneratorAsyncGen(r, e, t, o, n) { return new _regeneratorAsyncIterator(_regenerator().w(r, e, t, o), n || _Promise); }
|
|
26
|
+
function _regeneratorAsyncIterator(t, e) { function n(r, o, i, f) { try { var c = t[r](o), u = c.value; return u instanceof _OverloadYield ? e.resolve(u.v).then(function (t) { n("next", t, i, f); }, function (t) { n("throw", t, i, f); }) : e.resolve(u).then(function (t) { c.value = t, i(c); }, function (t) { return n("throw", t, i, f); }); } catch (t) { f(t); } } var r; this.next || (_regeneratorDefine2(_regeneratorAsyncIterator.prototype), _regeneratorDefine2(_regeneratorAsyncIterator.prototype, "function" == typeof _Symbol && _Symbol$asyncIterator || "@asyncIterator", function () { return this; })), _regeneratorDefine2(this, "_invoke", function (t, o, i) { function f() { return new e(function (e, r) { n(t, i, e, r); }); } return r = r ? r.then(f, f) : f(); }, !0); }
|
|
27
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof _Symbol ? _Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = _Object$create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: _bindInstanceProperty(d).call(d, e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = _Object$getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(c); function f(e) { return _Object$setPrototypeOf ? _Object$setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = _Object$create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
28
|
+
function _regeneratorDefine2(e, r, n, t) { var i = _Object$defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
29
|
+
function _OverloadYield(e, d) { this.v = e, this.k = d; }
|
|
11
30
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
31
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
|
12
32
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var
|
|
33
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context4, _context5; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context4 = ownKeys(Object(t), !0)).call(_context4, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context5 = ownKeys(Object(t))).call(_context5, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
34
|
import React from 'react';
|
|
15
35
|
import AccountIcon from '@pingux/mdi-react/AccountIcon';
|
|
16
36
|
import { act } from '@testing-library/react';
|
|
37
|
+
import userEvent from '@testing-library/user-event';
|
|
17
38
|
import { AstroProvider, OnyxTheme, PanelHeader, PanelHeaderSwitchField } from '../../index';
|
|
18
39
|
import { pingImg } from '../../utils/devUtils/constants/images';
|
|
19
40
|
import { render, screen } from '../../utils/testUtils/testWrapper';
|
|
@@ -75,6 +96,96 @@ describe('PanelHeader', function () {
|
|
|
75
96
|
});
|
|
76
97
|
screen.getByRole('switch');
|
|
77
98
|
});
|
|
99
|
+
describe('isCopyable', function () {
|
|
100
|
+
var originalClipboard = _objectSpread({}, global.navigator.clipboard);
|
|
101
|
+
beforeEach(function () {
|
|
102
|
+
var mockClipboard = {
|
|
103
|
+
writeText: jest.fn()
|
|
104
|
+
};
|
|
105
|
+
_Object$defineProperty(window, 'navigator', {
|
|
106
|
+
value: {
|
|
107
|
+
clipboard: mockClipboard
|
|
108
|
+
},
|
|
109
|
+
configurable: true
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
afterEach(function () {
|
|
113
|
+
_Object$defineProperty(window, 'navigator', {
|
|
114
|
+
value: {
|
|
115
|
+
clipboard: originalClipboard
|
|
116
|
+
},
|
|
117
|
+
configurable: true
|
|
118
|
+
});
|
|
119
|
+
jest.resetAllMocks();
|
|
120
|
+
});
|
|
121
|
+
test('renders copy button when isCopyable is true and subtext is present', function () {
|
|
122
|
+
render(___EmotionJSX(PanelHeader, _extends({}, defaultProps, {
|
|
123
|
+
isCopyable: true
|
|
124
|
+
})));
|
|
125
|
+
expect(screen.getByRole('button', {
|
|
126
|
+
name: 'copy to clipboard'
|
|
127
|
+
})).toBeInTheDocument();
|
|
128
|
+
});
|
|
129
|
+
test('does not render copy button when isCopyable is omitted and subtext is present', function () {
|
|
130
|
+
render(___EmotionJSX(PanelHeader, defaultProps));
|
|
131
|
+
expect(screen.queryByRole('button', {
|
|
132
|
+
name: 'copy to clipboard'
|
|
133
|
+
})).not.toBeInTheDocument();
|
|
134
|
+
});
|
|
135
|
+
test('does not render copy button when isCopyable is false and subtext is present', function () {
|
|
136
|
+
render(___EmotionJSX(PanelHeader, _extends({}, defaultProps, {
|
|
137
|
+
isCopyable: false
|
|
138
|
+
})));
|
|
139
|
+
expect(screen.queryByRole('button', {
|
|
140
|
+
name: 'copy to clipboard'
|
|
141
|
+
})).not.toBeInTheDocument();
|
|
142
|
+
});
|
|
143
|
+
test('does not render copy button when isCopyable is true and subtext is absent', function () {
|
|
144
|
+
var propsWithoutSubtext = {
|
|
145
|
+
data: {
|
|
146
|
+
text: 'testText'
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
render(___EmotionJSX(PanelHeader, _extends({}, propsWithoutSubtext, {
|
|
150
|
+
isCopyable: true
|
|
151
|
+
})));
|
|
152
|
+
expect(screen.queryByRole('button', {
|
|
153
|
+
name: 'copy to clipboard'
|
|
154
|
+
})).not.toBeInTheDocument();
|
|
155
|
+
});
|
|
156
|
+
test('clicking copy button calls navigator.clipboard.writeText with the subtext value', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
157
|
+
var copyButton;
|
|
158
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context3) {
|
|
159
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
160
|
+
case 0:
|
|
161
|
+
render(___EmotionJSX(PanelHeader, _extends({}, defaultProps, {
|
|
162
|
+
isCopyable: true
|
|
163
|
+
})));
|
|
164
|
+
copyButton = screen.getByRole('button', {
|
|
165
|
+
name: 'copy to clipboard'
|
|
166
|
+
});
|
|
167
|
+
_context3.next = 4;
|
|
168
|
+
return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
169
|
+
return _regeneratorRuntime().wrap(function _callee$(_context2) {
|
|
170
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
171
|
+
case 0:
|
|
172
|
+
return _context2.abrupt("return", userEvent.click(copyButton));
|
|
173
|
+
case 1:
|
|
174
|
+
case "end":
|
|
175
|
+
return _context2.stop();
|
|
176
|
+
}
|
|
177
|
+
}, _callee);
|
|
178
|
+
})));
|
|
179
|
+
case 4:
|
|
180
|
+
expect(navigator.clipboard.writeText).toHaveBeenCalledTimes(1);
|
|
181
|
+
expect(navigator.clipboard.writeText).toHaveBeenCalledWith(defaultProps.data.subtext);
|
|
182
|
+
case 6:
|
|
183
|
+
case "end":
|
|
184
|
+
return _context3.stop();
|
|
185
|
+
}
|
|
186
|
+
}, _callee2);
|
|
187
|
+
})));
|
|
188
|
+
});
|
|
78
189
|
});
|
|
79
190
|
test('renders icon if both icon and image are passed', function () {
|
|
80
191
|
getComponent();
|
|
@@ -63,6 +63,14 @@ var PanelHeaderComponent = function PanelHeaderComponent() {
|
|
|
63
63
|
rightOfData: breadcrumbs
|
|
64
64
|
}
|
|
65
65
|
}, ___EmotionJSX(PanelHeaderCloseButton, null)), ___EmotionJSX(PanelHeader, {
|
|
66
|
+
isCopyable: true,
|
|
67
|
+
data: {
|
|
68
|
+
icon: AccountIcon,
|
|
69
|
+
subtext: 'rad_developer@pingidentity.com',
|
|
70
|
+
text: 'Fons Vernall',
|
|
71
|
+
avatarDefaultText: 'FV'
|
|
72
|
+
}
|
|
73
|
+
}), ___EmotionJSX(PanelHeader, {
|
|
66
74
|
data: {
|
|
67
75
|
avatarDefaultText: 'FV',
|
|
68
76
|
icon: AccountIcon,
|
package/lib/index.js
CHANGED
|
@@ -73,6 +73,7 @@ export * from './components/CollapsiblePanelItem';
|
|
|
73
73
|
export { default as ColorField } from './components/ColorField';
|
|
74
74
|
export { default as ComboBoxField } from './components/ComboBoxField';
|
|
75
75
|
export { default as CopyText } from './components/CopyText';
|
|
76
|
+
export { default as CopyButton } from './components/CopyText/CopyButton';
|
|
76
77
|
export { default as DataTable } from './components/DataTable';
|
|
77
78
|
export * from './components/DataTable';
|
|
78
79
|
export { default as DatePicker } from './components/DatePicker';
|
|
@@ -12,7 +12,7 @@ export var fontSizes = {
|
|
|
12
12
|
},
|
|
13
13
|
'xs': '11px',
|
|
14
14
|
'tiny': "".concat(fontSize.tiny, "px"),
|
|
15
|
-
'sm': "".concat(fontSize.small
|
|
15
|
+
'sm': "".concat(fontSize.small, "px"),
|
|
16
16
|
'small': "".concat(fontSize.small, "px"),
|
|
17
17
|
'md': "".concat(fontSizeBase * 1, "rem"),
|
|
18
18
|
'lg': "".concat(fontSizeBase * 1.25, "rem"),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pingux/astro",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.217.1-alpha.0",
|
|
4
4
|
"description": "React component library for Ping Identity's design system",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@internationalized/number": "^3.6.0",
|
|
47
47
|
"@monaco-editor/react": "4.4.2",
|
|
48
48
|
"@pingux/mdi-react": "^1.2.0",
|
|
49
|
-
"@pingux/onyx-tokens": "^0.
|
|
49
|
+
"@pingux/onyx-tokens": "^0.41.1-alpha.0",
|
|
50
50
|
"@react-aria/accordion": "~3.0.0-alpha.11",
|
|
51
51
|
"@react-aria/breadcrumbs": "^3.1.4",
|
|
52
52
|
"@react-aria/button": "^3.13.2",
|