@pingux/astro 2.210.6-alpha.0 → 2.212.0-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/ComboBoxField/ComboBoxField.js +2 -1
- package/lib/cjs/components/LabelValuePairs/LabelValuePairs.d.ts +14 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairs.js +70 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairs.mdx +69 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairs.stories.js +109 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairs.styles.d.ts +18 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairs.styles.js +28 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairs.test.js +315 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairsLabel.d.ts +4 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairsLabel.js +47 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairsRow.d.ts +3 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairsRow.js +40 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairsSubvalue.d.ts +4 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairsSubvalue.js +29 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairsValue.d.ts +4 -0
- package/lib/cjs/components/LabelValuePairs/LabelValuePairsValue.js +120 -0
- package/lib/cjs/components/LabelValuePairs/constants.d.ts +5 -0
- package/lib/cjs/components/LabelValuePairs/constants.js +12 -0
- package/lib/cjs/components/LabelValuePairs/index.d.ts +2 -0
- package/lib/cjs/components/LabelValuePairs/index.js +62 -0
- package/lib/cjs/components/LabelValuePairs/labelValuePairsAttributes.d.ts +74 -0
- package/lib/cjs/components/LabelValuePairs/labelValuePairsAttributes.js +20 -0
- package/lib/cjs/components/Popover/Popover.js +3 -2
- package/lib/cjs/components/Popover/Popover.test.js +8 -0
- package/lib/cjs/components/PopoverMenu/PopoverMenu.js +2 -1
- package/lib/cjs/components/SearchField/SearchAutoComplete.js +2 -1
- package/lib/cjs/hooks/useSelectField/useSelectField.js +1 -1
- package/lib/cjs/index.d.ts +3 -0
- package/lib/cjs/index.js +79 -52
- package/lib/cjs/recipes/ListAndPanel.stories.js +1 -16
- package/lib/cjs/recipes/PanelContent.stories.js +11 -47
- package/lib/cjs/recipes/items.js +38 -30
- package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
- package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +17 -0
- package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +17 -0
- package/lib/cjs/styles/themes/next-gen/variants/variants.js +2 -0
- package/lib/cjs/styles/variants/variants.js +2 -0
- package/lib/cjs/types/index.d.ts +1 -0
- package/lib/cjs/types/index.js +46 -35
- package/lib/cjs/types/labelValuePairs.d.ts +35 -0
- package/lib/cjs/types/labelValuePairs.js +6 -0
- package/lib/cjs/utils/designUtils/figmaLinks.d.ts +3 -0
- package/lib/cjs/utils/designUtils/figmaLinks.js +3 -0
- package/lib/components/ComboBoxField/ComboBoxField.js +2 -1
- package/lib/components/LabelValuePairs/LabelValuePairs.js +35 -0
- package/lib/components/LabelValuePairs/LabelValuePairs.mdx +69 -0
- package/lib/components/LabelValuePairs/LabelValuePairs.stories.js +102 -0
- package/lib/components/LabelValuePairs/LabelValuePairs.styles.js +21 -0
- package/lib/components/LabelValuePairs/LabelValuePairs.test.js +309 -0
- package/lib/components/LabelValuePairs/LabelValuePairsLabel.js +35 -0
- package/lib/components/LabelValuePairs/LabelValuePairsRow.js +28 -0
- package/lib/components/LabelValuePairs/LabelValuePairsSubvalue.js +17 -0
- package/lib/components/LabelValuePairs/LabelValuePairsValue.js +108 -0
- package/lib/components/LabelValuePairs/constants.js +5 -0
- package/lib/components/LabelValuePairs/index.js +2 -0
- package/lib/components/LabelValuePairs/labelValuePairsAttributes.js +13 -0
- package/lib/components/Popover/Popover.js +3 -2
- package/lib/components/Popover/Popover.test.js +8 -0
- package/lib/components/PopoverMenu/PopoverMenu.js +2 -1
- package/lib/components/SearchField/SearchAutoComplete.js +2 -1
- package/lib/hooks/useSelectField/useSelectField.js +1 -1
- package/lib/index.js +3 -0
- package/lib/recipes/ListAndPanel.stories.js +3 -18
- package/lib/recipes/PanelContent.stories.js +11 -47
- package/lib/recipes/items.js +39 -31
- package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
- package/lib/styles/themes/next-gen/variants/variants.js +2 -0
- package/lib/styles/variants/variants.js +2 -0
- package/lib/types/index.js +1 -0
- package/lib/types/labelValuePairs.js +1 -0
- package/lib/utils/designUtils/figmaLinks.js +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
|
6
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
8
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
|
10
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
|
11
|
+
var _Object$defineProperty2 = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
12
|
+
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
|
|
13
|
+
var _Object$create = require("@babel/runtime-corejs3/core-js-stable/object/create");
|
|
14
|
+
var _bindInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/bind");
|
|
15
|
+
var _Object$getPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/object/get-prototype-of");
|
|
16
|
+
var _Object$setPrototypeOf = require("@babel/runtime-corejs3/core-js-stable/object/set-prototype-of");
|
|
17
|
+
var _Symbol$asyncIterator = require("@babel/runtime-corejs3/core-js-stable/symbol/async-iterator");
|
|
18
|
+
var _Promise = require("@babel/runtime-corejs3/core-js-stable/promise");
|
|
19
|
+
var _Symbol$iterator = require("@babel/runtime-corejs3/core-js-stable/symbol/iterator");
|
|
20
|
+
var _reverseInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/reverse");
|
|
21
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
22
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
23
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-property"));
|
|
24
|
+
var _repeat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/repeat"));
|
|
25
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
|
|
26
|
+
var _defineProperty3 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
27
|
+
var _react = _interopRequireDefault(require("react"));
|
|
28
|
+
var _InformationIcon = _interopRequireDefault(require("@pingux/mdi-react/InformationIcon"));
|
|
29
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
30
|
+
var _index = require("../../index");
|
|
31
|
+
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
|
32
|
+
var _universalComponentTest = require("../../utils/testUtils/universalComponentTest");
|
|
33
|
+
var _ = _interopRequireWildcard(require("."));
|
|
34
|
+
var _react2 = require("@emotion/react");
|
|
35
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = _Object$defineProperty2) && _Object$getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
36
|
+
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 }; })(); }
|
|
37
|
+
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"); }
|
|
38
|
+
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; }; }
|
|
39
|
+
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(); }); }
|
|
40
|
+
function _regeneratorAsyncGen(r, e, t, o, n) { return new _regeneratorAsyncIterator(_regenerator().w(r, e, t, o), n || _Promise); }
|
|
41
|
+
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); }
|
|
42
|
+
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 }; })(); }
|
|
43
|
+
function _regeneratorDefine2(e, r, n, t) { var i = _Object$defineProperty2; 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); }
|
|
44
|
+
function _OverloadYield(e, d) { this.v = e, this.k = d; }
|
|
45
|
+
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; }
|
|
46
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context5 = ownKeys(Object(t), !0)).call(_context5, function (r) { (0, _defineProperty3["default"])(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context6 = ownKeys(Object(t))).call(_context6, function (r) { _Object$defineProperty2(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
47
|
+
var originalClipboard = _objectSpread({}, global.navigator.clipboard);
|
|
48
|
+
var getComponent = function getComponent(children) {
|
|
49
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], null, children));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// Needs to be added to each components test file
|
|
53
|
+
(0, _universalComponentTest.universalComponentTests)({
|
|
54
|
+
renderComponent: function renderComponent(props) {
|
|
55
|
+
return (0, _react2.jsx)(_["default"], props, (0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Username"), (0, _react2.jsx)(_.PairValue, null, "jsmith")));
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
test('renders a row for each field with a value', function () {
|
|
59
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Username"), (0, _react2.jsx)(_.PairValue, null, "jsmith")));
|
|
60
|
+
expect(_testWrapper.screen.getByText('Username')).toBeInTheDocument();
|
|
61
|
+
expect(_testWrapper.screen.getByText('jsmith')).toBeInTheDocument();
|
|
62
|
+
});
|
|
63
|
+
test('rows with falsy value are not rendered unless isLoading is true', function () {
|
|
64
|
+
getComponent((0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Empty Field"), (0, _react2.jsx)(_.PairValue, null)), (0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Null Field"), (0, _react2.jsx)(_.PairValue, null, null)), (0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Visible Field"), (0, _react2.jsx)(_.PairValue, null, "some value"))));
|
|
65
|
+
expect(_testWrapper.screen.queryByText('Empty Field')).not.toBeInTheDocument();
|
|
66
|
+
expect(_testWrapper.screen.queryByText('Null Field')).not.toBeInTheDocument();
|
|
67
|
+
expect(_testWrapper.screen.getByText('Visible Field')).toBeInTheDocument();
|
|
68
|
+
});
|
|
69
|
+
test('rows with falsy value are rendered when isLoading is true', function () {
|
|
70
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Loading Field"), (0, _react2.jsx)(_.PairValue, {
|
|
71
|
+
isLoading: true
|
|
72
|
+
})));
|
|
73
|
+
expect(_testWrapper.screen.getByText('Loading Field')).toBeInTheDocument();
|
|
74
|
+
});
|
|
75
|
+
describe('valueType COPYABLE', function () {
|
|
76
|
+
beforeEach(function () {
|
|
77
|
+
var mockClipboard = {
|
|
78
|
+
writeText: jest.fn()
|
|
79
|
+
};
|
|
80
|
+
(0, _defineProperty2["default"])(window, 'navigator', {
|
|
81
|
+
value: {
|
|
82
|
+
clipboard: mockClipboard
|
|
83
|
+
},
|
|
84
|
+
configurable: true
|
|
85
|
+
});
|
|
86
|
+
global.document.execCommand = jest.fn();
|
|
87
|
+
jest.spyOn(document, 'execCommand').mockReturnValue(true);
|
|
88
|
+
});
|
|
89
|
+
afterEach(function () {
|
|
90
|
+
jest.resetAllMocks();
|
|
91
|
+
(0, _defineProperty2["default"])(window, 'navigator', {
|
|
92
|
+
value: {
|
|
93
|
+
clipboard: originalClipboard
|
|
94
|
+
},
|
|
95
|
+
configurable: true
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
test('renders a copy-to-clipboard button', function () {
|
|
99
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "API Key"), (0, _react2.jsx)(_.PairValue, {
|
|
100
|
+
valueType: _.ValueTypes.COPYABLE
|
|
101
|
+
}, "abc123")));
|
|
102
|
+
expect(_testWrapper.screen.getByLabelText('copy to clipboard')).toBeInTheDocument();
|
|
103
|
+
});
|
|
104
|
+
test('clicking the copy button writes the field value to the clipboard', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
105
|
+
var fieldValue, button;
|
|
106
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
107
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
108
|
+
case 0:
|
|
109
|
+
fieldValue = 'abc123';
|
|
110
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "API Key"), (0, _react2.jsx)(_.PairValue, {
|
|
111
|
+
valueType: _.ValueTypes.COPYABLE
|
|
112
|
+
}, fieldValue)));
|
|
113
|
+
button = _testWrapper.screen.getByLabelText('copy to clipboard');
|
|
114
|
+
_context2.next = 5;
|
|
115
|
+
return (0, _testWrapper.act)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
116
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
117
|
+
while (1) switch (_context.prev = _context.next) {
|
|
118
|
+
case 0:
|
|
119
|
+
return _context.abrupt("return", _userEvent["default"].click(button));
|
|
120
|
+
case 1:
|
|
121
|
+
case "end":
|
|
122
|
+
return _context.stop();
|
|
123
|
+
}
|
|
124
|
+
}, _callee);
|
|
125
|
+
})));
|
|
126
|
+
case 5:
|
|
127
|
+
expect(navigator.clipboard.writeText).toHaveBeenCalledTimes(1);
|
|
128
|
+
expect(navigator.clipboard.writeText).toHaveBeenCalledWith(fieldValue);
|
|
129
|
+
case 7:
|
|
130
|
+
case "end":
|
|
131
|
+
return _context2.stop();
|
|
132
|
+
}
|
|
133
|
+
}, _callee2);
|
|
134
|
+
})));
|
|
135
|
+
});
|
|
136
|
+
test('valueType ELEMENT renders the provided node directly', function () {
|
|
137
|
+
var customNode = (0, _react2.jsx)("span", {
|
|
138
|
+
"data-testid": "custom-element"
|
|
139
|
+
}, "Custom Element");
|
|
140
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Custom"), (0, _react2.jsx)(_.PairValue, {
|
|
141
|
+
valueType: _.ValueTypes.ELEMENT
|
|
142
|
+
}, customNode)));
|
|
143
|
+
expect(_testWrapper.screen.getByTestId('custom-element')).toBeInTheDocument();
|
|
144
|
+
expect(_testWrapper.screen.getByText('Custom Element')).toBeInTheDocument();
|
|
145
|
+
});
|
|
146
|
+
test('valueType MASKED renders bullet characters by default', function () {
|
|
147
|
+
var _context3;
|
|
148
|
+
var secretValue = 'secret';
|
|
149
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Password"), (0, _react2.jsx)(_.PairValue, {
|
|
150
|
+
valueType: _.ValueTypes.MASKED
|
|
151
|
+
}, secretValue)));
|
|
152
|
+
var bullets = (0, _repeat["default"])(_context3 = '•').call(_context3, secretValue.length);
|
|
153
|
+
expect(_testWrapper.screen.getByText(bullets)).toBeInTheDocument();
|
|
154
|
+
});
|
|
155
|
+
test('masked toggle has aria-label "Show content" initially, clicking reveals value and changes label to "Hide content"', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
156
|
+
var secretValue, showButton;
|
|
157
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context4) {
|
|
158
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
159
|
+
case 0:
|
|
160
|
+
secretValue = 'mypassword';
|
|
161
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Secret"), (0, _react2.jsx)(_.PairValue, {
|
|
162
|
+
valueType: _.ValueTypes.MASKED
|
|
163
|
+
}, secretValue)));
|
|
164
|
+
showButton = _testWrapper.screen.getByLabelText('Show content');
|
|
165
|
+
expect(showButton).toBeInTheDocument();
|
|
166
|
+
|
|
167
|
+
// The actual value should not be visible yet
|
|
168
|
+
expect(_testWrapper.screen.queryByText(secretValue)).not.toBeInTheDocument();
|
|
169
|
+
_context4.next = 7;
|
|
170
|
+
return _userEvent["default"].click(showButton);
|
|
171
|
+
case 7:
|
|
172
|
+
// After click: value is revealed and button label changes
|
|
173
|
+
expect(_testWrapper.screen.getByText(secretValue)).toBeInTheDocument();
|
|
174
|
+
expect(_testWrapper.screen.getByLabelText('Hide content')).toBeInTheDocument();
|
|
175
|
+
case 9:
|
|
176
|
+
case "end":
|
|
177
|
+
return _context4.stop();
|
|
178
|
+
}
|
|
179
|
+
}, _callee3);
|
|
180
|
+
})));
|
|
181
|
+
test('isLoading renders the skeleton and has role="alert" in the DOM', function () {
|
|
182
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Loading Row"), (0, _react2.jsx)(_.PairValue, {
|
|
183
|
+
isLoading: true
|
|
184
|
+
}, "will be replaced")));
|
|
185
|
+
expect(_testWrapper.screen.getByRole('alert')).toBeInTheDocument();
|
|
186
|
+
});
|
|
187
|
+
test('isLoading renders even when value is falsy', function () {
|
|
188
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Empty Loading Row"), (0, _react2.jsx)(_.PairValue, {
|
|
189
|
+
isLoading: true
|
|
190
|
+
}, undefined)));
|
|
191
|
+
expect(_testWrapper.screen.getByText('Empty Loading Row')).toBeInTheDocument();
|
|
192
|
+
expect(_testWrapper.screen.getByRole('alert')).toBeInTheDocument();
|
|
193
|
+
});
|
|
194
|
+
test('helpHint content appears and trigger button has expected aria-label', function () {
|
|
195
|
+
var helpText = 'This is some help content';
|
|
196
|
+
var fieldLabel = 'Help Field';
|
|
197
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, {
|
|
198
|
+
helpHint: helpText
|
|
199
|
+
}, fieldLabel), (0, _react2.jsx)(_.PairValue, null, "value here")));
|
|
200
|
+
var expectedAriaLabel = "".concat(fieldLabel, " help hint");
|
|
201
|
+
expect(_testWrapper.screen.getByLabelText(expectedAriaLabel)).toBeInTheDocument();
|
|
202
|
+
});
|
|
203
|
+
test('Subvalue renders when provided', function () {
|
|
204
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Main Label"), (0, _react2.jsx)(_.PairSubvalue, null, "Secondary label text"), (0, _react2.jsx)(_.PairValue, null, "some value")));
|
|
205
|
+
expect(_testWrapper.screen.getByText('Secondary label text')).toBeInTheDocument();
|
|
206
|
+
});
|
|
207
|
+
test('second child renders as an icon element when provided', function () {
|
|
208
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Icon Field", (0, _react2.jsx)(_index.Icon, {
|
|
209
|
+
"aria-hidden": "true",
|
|
210
|
+
title: {
|
|
211
|
+
name: ''
|
|
212
|
+
},
|
|
213
|
+
icon: _InformationIcon["default"]
|
|
214
|
+
})), (0, _react2.jsx)(_.PairValue, null, "icon value")));
|
|
215
|
+
// the icon is aria-hidden so must query with hidden: true
|
|
216
|
+
var icons = _testWrapper.screen.getAllByRole('img', {
|
|
217
|
+
hidden: true
|
|
218
|
+
});
|
|
219
|
+
expect(icons.length).toBeGreaterThan(0);
|
|
220
|
+
});
|
|
221
|
+
describe('sub-component prop passthrough', function () {
|
|
222
|
+
test('PairLabel forwards containerProps and textProps, and renders a second child as an icon', function () {
|
|
223
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, {
|
|
224
|
+
containerProps: {
|
|
225
|
+
'data-testid': 'label-container'
|
|
226
|
+
},
|
|
227
|
+
textProps: {
|
|
228
|
+
'data-testid': 'label-text'
|
|
229
|
+
}
|
|
230
|
+
}, "Field", (0, _react2.jsx)(_index.Icon, {
|
|
231
|
+
"data-testid": "label-icon",
|
|
232
|
+
"aria-hidden": "true",
|
|
233
|
+
title: {
|
|
234
|
+
name: ''
|
|
235
|
+
},
|
|
236
|
+
icon: _InformationIcon["default"]
|
|
237
|
+
})), (0, _react2.jsx)(_.PairValue, null, "value")));
|
|
238
|
+
expect(_testWrapper.screen.getByTestId('label-container')).toBeInTheDocument();
|
|
239
|
+
expect(_testWrapper.screen.getByTestId('label-text')).toBeInTheDocument();
|
|
240
|
+
expect(_testWrapper.screen.getByTestId('label-icon')).toBeInTheDocument();
|
|
241
|
+
});
|
|
242
|
+
test('PairLabel forwards helpHintProps to the HelpHint popover trigger', function () {
|
|
243
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, {
|
|
244
|
+
helpHint: "Help content",
|
|
245
|
+
helpHintProps: {
|
|
246
|
+
'data-testid': 'label-help-hint'
|
|
247
|
+
}
|
|
248
|
+
}, "Field"), (0, _react2.jsx)(_.PairValue, null, "value")));
|
|
249
|
+
expect(_testWrapper.screen.getByTestId('label-help-hint')).toBeInTheDocument();
|
|
250
|
+
});
|
|
251
|
+
test('PairValue forwards containerProps and textProps for the default text display', function () {
|
|
252
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Field"), (0, _react2.jsx)(_.PairValue, {
|
|
253
|
+
containerProps: {
|
|
254
|
+
'data-testid': 'value-container'
|
|
255
|
+
},
|
|
256
|
+
textProps: {
|
|
257
|
+
'data-testid': 'value-text'
|
|
258
|
+
}
|
|
259
|
+
}, "value")));
|
|
260
|
+
expect(_testWrapper.screen.getByTestId('value-text')).toBeInTheDocument();
|
|
261
|
+
});
|
|
262
|
+
test('PairValue forwards containerProps and textProps for COPYABLE values', function () {
|
|
263
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Field"), (0, _react2.jsx)(_.PairValue, {
|
|
264
|
+
valueType: _.ValueTypes.COPYABLE,
|
|
265
|
+
containerProps: {
|
|
266
|
+
'data-testid': 'copy-container'
|
|
267
|
+
},
|
|
268
|
+
textProps: {
|
|
269
|
+
'data-testid': 'copy-text'
|
|
270
|
+
}
|
|
271
|
+
}, "abc123")));
|
|
272
|
+
expect(_testWrapper.screen.getByTestId('copy-container')).toBeInTheDocument();
|
|
273
|
+
expect(_testWrapper.screen.getByTestId('copy-text')).toBeInTheDocument();
|
|
274
|
+
});
|
|
275
|
+
test('PairValue forwards containerProps, textProps, iconProps, and iconButtonProps for MASKED values', function () {
|
|
276
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Field"), (0, _react2.jsx)(_.PairValue, {
|
|
277
|
+
valueType: _.ValueTypes.MASKED,
|
|
278
|
+
containerProps: {
|
|
279
|
+
'data-testid': 'masked-container'
|
|
280
|
+
},
|
|
281
|
+
textProps: {
|
|
282
|
+
'data-testid': 'masked-text'
|
|
283
|
+
},
|
|
284
|
+
iconProps: {
|
|
285
|
+
'data-testid': 'masked-icon'
|
|
286
|
+
},
|
|
287
|
+
iconButtonProps: {
|
|
288
|
+
'data-testid': 'masked-icon-button'
|
|
289
|
+
}
|
|
290
|
+
}, "secret")));
|
|
291
|
+
expect(_testWrapper.screen.getByTestId('masked-container')).toBeInTheDocument();
|
|
292
|
+
expect(_testWrapper.screen.getByTestId('masked-text')).toBeInTheDocument();
|
|
293
|
+
expect(_testWrapper.screen.getByTestId('masked-icon')).toBeInTheDocument();
|
|
294
|
+
expect(_testWrapper.screen.getByTestId('masked-icon-button')).toBeInTheDocument();
|
|
295
|
+
});
|
|
296
|
+
test('PairValue forwards skeletonProps and containerProps when isLoading', function () {
|
|
297
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Field"), (0, _react2.jsx)(_.PairValue, {
|
|
298
|
+
isLoading: true,
|
|
299
|
+
containerProps: {
|
|
300
|
+
'data-testid': 'loading-container'
|
|
301
|
+
},
|
|
302
|
+
skeletonProps: {
|
|
303
|
+
'data-testid': 'loading-skeleton'
|
|
304
|
+
}
|
|
305
|
+
})));
|
|
306
|
+
expect(_testWrapper.screen.getByTestId('loading-container')).toBeInTheDocument();
|
|
307
|
+
expect(_testWrapper.screen.getByTestId('loading-skeleton')).toBeInTheDocument();
|
|
308
|
+
});
|
|
309
|
+
test('PairSubvalue forwards TextProps directly', function () {
|
|
310
|
+
getComponent((0, _react2.jsx)(_.Pair, null, (0, _react2.jsx)(_.PairLabel, null, "Field"), (0, _react2.jsx)(_.PairSubvalue, {
|
|
311
|
+
"data-testid": "subvalue-text"
|
|
312
|
+
}, "Secondary text"), (0, _react2.jsx)(_.PairValue, null, "value")));
|
|
313
|
+
expect(_testWrapper.screen.getByTestId('subvalue-text')).toBeInTheDocument();
|
|
314
|
+
});
|
|
315
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports["default"] = void 0;
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
|
15
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
16
|
+
var _index = require("../../index");
|
|
17
|
+
var _react2 = require("@emotion/react");
|
|
18
|
+
var _excluded = ["children", "helpHint", "containerProps", "textProps", "helpHintProps"];
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
|
+
var displayName = 'PairLabel';
|
|
21
|
+
var PairLabel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
22
|
+
var children = props.children,
|
|
23
|
+
helpHint = props.helpHint,
|
|
24
|
+
containerProps = props.containerProps,
|
|
25
|
+
textProps = props.textProps,
|
|
26
|
+
helpHintProps = props.helpHintProps,
|
|
27
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
28
|
+
var _React$Children$toArr = _react["default"].Children.toArray(children),
|
|
29
|
+
_React$Children$toArr2 = (0, _slicedToArray2["default"])(_React$Children$toArr, 2),
|
|
30
|
+
label = _React$Children$toArr2[0],
|
|
31
|
+
icon = _React$Children$toArr2[1];
|
|
32
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
|
33
|
+
ref: ref,
|
|
34
|
+
isRow: true,
|
|
35
|
+
alignItems: "center",
|
|
36
|
+
gap: "sm"
|
|
37
|
+
}, others, containerProps), (0, _react2.jsx)(_index.Text, (0, _extends2["default"])({
|
|
38
|
+
variant: "h4",
|
|
39
|
+
as: "h4"
|
|
40
|
+
}, textProps), label), icon, helpHint && (0, _react2.jsx)(_index.HelpHint, (0, _extends2["default"])({
|
|
41
|
+
iconButtonProps: {
|
|
42
|
+
'aria-label': "".concat(label, " help hint")
|
|
43
|
+
}
|
|
44
|
+
}, helpHintProps), helpHint));
|
|
45
|
+
});
|
|
46
|
+
PairLabel.displayName = displayName;
|
|
47
|
+
var _default = exports["default"] = PairLabel;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports["default"] = void 0;
|
|
12
|
+
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
13
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
|
15
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
16
|
+
var _index = require("../../index");
|
|
17
|
+
var _LabelValuePairsValue = _interopRequireDefault(require("./LabelValuePairsValue"));
|
|
18
|
+
var _react2 = require("@emotion/react");
|
|
19
|
+
var _excluded = ["children"];
|
|
20
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
21
|
+
var displayName = 'Pair';
|
|
22
|
+
var Pair = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
23
|
+
var children = props.children,
|
|
24
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
25
|
+
var childrenArray = _react["default"].Children.toArray(children);
|
|
26
|
+
var valueChild = (0, _find["default"])(childrenArray).call(childrenArray, function (child) {
|
|
27
|
+
return /*#__PURE__*/_react["default"].isValidElement(child) && child.type === _LabelValuePairsValue["default"];
|
|
28
|
+
});
|
|
29
|
+
var isLoading = valueChild === null || valueChild === void 0 ? void 0 : valueChild.props.isLoading;
|
|
30
|
+
var hasValueContent = Boolean(valueChild === null || valueChild === void 0 ? void 0 : valueChild.props.children);
|
|
31
|
+
if (!hasValueContent && !isLoading) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
|
35
|
+
ref: ref,
|
|
36
|
+
variant: "labelValuePairs.fieldItem"
|
|
37
|
+
}, others), children);
|
|
38
|
+
});
|
|
39
|
+
Pair.displayName = displayName;
|
|
40
|
+
var _default = exports["default"] = Pair;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports["default"] = void 0;
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
13
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _index = require("../../index");
|
|
16
|
+
var _react2 = require("@emotion/react");
|
|
17
|
+
var _excluded = ["children"];
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
|
+
var displayName = 'PairSubvalue';
|
|
20
|
+
var PairSubvalue = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
21
|
+
var children = props.children,
|
|
22
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
23
|
+
return (0, _react2.jsx)(_index.Text, (0, _extends2["default"])({
|
|
24
|
+
ref: ref,
|
|
25
|
+
variant: "variants.labelValuePairs.subLabel"
|
|
26
|
+
}, others), children);
|
|
27
|
+
});
|
|
28
|
+
PairSubvalue.displayName = displayName;
|
|
29
|
+
var _default = exports["default"] = PairSubvalue;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
exports["default"] = void 0;
|
|
12
|
+
var _repeat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/repeat"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
15
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
var _EyeOffOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/EyeOffOutlineIcon"));
|
|
18
|
+
var _EyeOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/EyeOutlineIcon"));
|
|
19
|
+
var _index = require("../../index");
|
|
20
|
+
var _constants = require("./constants");
|
|
21
|
+
var _react2 = require("@emotion/react");
|
|
22
|
+
var _excluded = ["children"],
|
|
23
|
+
_excluded2 = ["children", "valueType", "isLoading", "containerProps", "textProps", "iconProps", "iconButtonProps", "skeletonProps"];
|
|
24
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
25
|
+
var displayName = 'PairValue';
|
|
26
|
+
var MASKED_ARIA_LABELS = {
|
|
27
|
+
SHOW: 'Show content',
|
|
28
|
+
HIDE: 'Hide content'
|
|
29
|
+
};
|
|
30
|
+
var ValueText = function ValueText(_ref) {
|
|
31
|
+
var children = _ref.children,
|
|
32
|
+
others = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
33
|
+
return (0, _react2.jsx)(_index.Text, (0, _extends2["default"])({
|
|
34
|
+
variant: "variants.labelValuePairs.value"
|
|
35
|
+
}, others), children);
|
|
36
|
+
};
|
|
37
|
+
var MaskedValue = function MaskedValue(_ref2) {
|
|
38
|
+
var _context;
|
|
39
|
+
var value = _ref2.value,
|
|
40
|
+
containerProps = _ref2.containerProps,
|
|
41
|
+
textProps = _ref2.textProps,
|
|
42
|
+
iconProps = _ref2.iconProps,
|
|
43
|
+
iconButtonProps = _ref2.iconButtonProps;
|
|
44
|
+
var _useState = (0, _react.useState)(false),
|
|
45
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
46
|
+
isRevealed = _useState2[0],
|
|
47
|
+
setIsRevealed = _useState2[1];
|
|
48
|
+
var bullets = (0, _repeat["default"])(_context = '•').call(_context, value.length);
|
|
49
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
|
50
|
+
isRow: true,
|
|
51
|
+
alignItems: "center",
|
|
52
|
+
gap: "sm"
|
|
53
|
+
}, containerProps), (0, _react2.jsx)(ValueText, (0, _extends2["default"])({
|
|
54
|
+
sx: isRevealed ? undefined : {
|
|
55
|
+
letterSpacing: '0.25em'
|
|
56
|
+
}
|
|
57
|
+
}, textProps), isRevealed ? value : bullets), (0, _react2.jsx)(_index.IconButton, (0, _extends2["default"])({
|
|
58
|
+
"aria-label": isRevealed ? MASKED_ARIA_LABELS.HIDE : MASKED_ARIA_LABELS.SHOW,
|
|
59
|
+
onPress: function onPress() {
|
|
60
|
+
return setIsRevealed(function (prev) {
|
|
61
|
+
return !prev;
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
sx: {
|
|
65
|
+
width: 'fit-content',
|
|
66
|
+
marginLeft: 'sm',
|
|
67
|
+
alignSelf: 'auto'
|
|
68
|
+
}
|
|
69
|
+
}, iconButtonProps), (0, _react2.jsx)(_index.Icon, (0, _extends2["default"])({
|
|
70
|
+
"aria-hidden": "true",
|
|
71
|
+
title: {
|
|
72
|
+
name: isRevealed ? 'Eye Icon' : 'Eye Off Icon'
|
|
73
|
+
},
|
|
74
|
+
icon: isRevealed ? _EyeOutlineIcon["default"] : _EyeOffOutlineIcon["default"],
|
|
75
|
+
size: "sm"
|
|
76
|
+
}, iconProps))));
|
|
77
|
+
};
|
|
78
|
+
var PairValue = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
79
|
+
var children = props.children,
|
|
80
|
+
valueType = props.valueType,
|
|
81
|
+
isLoading = props.isLoading,
|
|
82
|
+
containerProps = props.containerProps,
|
|
83
|
+
textProps = props.textProps,
|
|
84
|
+
iconProps = props.iconProps,
|
|
85
|
+
iconButtonProps = props.iconButtonProps,
|
|
86
|
+
skeletonProps = props.skeletonProps,
|
|
87
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded2);
|
|
88
|
+
if (isLoading) {
|
|
89
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
|
90
|
+
ref: ref,
|
|
91
|
+
role: "alert",
|
|
92
|
+
"aria-live": "assertive",
|
|
93
|
+
"aria-label": "Loading"
|
|
94
|
+
}, others, containerProps), (0, _react2.jsx)(_index.Skeleton, (0, _extends2["default"])({
|
|
95
|
+
variant: "text"
|
|
96
|
+
}, skeletonProps)));
|
|
97
|
+
}
|
|
98
|
+
switch (valueType) {
|
|
99
|
+
case _constants.ValueTypes.COPYABLE:
|
|
100
|
+
return (0, _react2.jsx)(_index.CopyText, (0, _extends2["default"])({
|
|
101
|
+
ref: ref
|
|
102
|
+
}, others, containerProps), (0, _react2.jsx)(ValueText, textProps, children));
|
|
103
|
+
case _constants.ValueTypes.MASKED:
|
|
104
|
+
return (0, _react2.jsx)(MaskedValue, {
|
|
105
|
+
value: String(children),
|
|
106
|
+
containerProps: containerProps,
|
|
107
|
+
textProps: textProps,
|
|
108
|
+
iconProps: iconProps,
|
|
109
|
+
iconButtonProps: iconButtonProps
|
|
110
|
+
});
|
|
111
|
+
case _constants.ValueTypes.ELEMENT:
|
|
112
|
+
return children;
|
|
113
|
+
default:
|
|
114
|
+
return (0, _react2.jsx)(ValueText, (0, _extends2["default"])({
|
|
115
|
+
ref: ref
|
|
116
|
+
}, others, textProps), children);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
PairValue.displayName = displayName;
|
|
120
|
+
var _default = exports["default"] = PairValue;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
4
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ValueTypes = void 0;
|
|
8
|
+
var ValueTypes = exports.ValueTypes = {
|
|
9
|
+
COPYABLE: 'COPYABLE',
|
|
10
|
+
MASKED: 'MASKED',
|
|
11
|
+
ELEMENT: 'ELEMENT'
|
|
12
|
+
};
|