@1money/component-ui 0.1.1 → 0.1.2

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.
@@ -10,10 +10,11 @@ var __rest = this && this.__rest || function (s, e) {
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import { memo } from 'react';
12
12
  import { Copy } from '../../../components/Copy';
13
+ import { Skeleton } from '../../../components/Skeleton';
13
14
  import { Tag } from '../../../components/Tag';
14
15
  import { Typography } from '../../../components/Typography';
15
16
  import { default as classnames, joinCls } from '../../../utils/classnames';
16
- import { DESCRIPTIONS_DEFAULTS, DESCRIPTIONS_PREFIX, DESCRIPTIONS_SLOT, DESCRIPTIONS_TONE_COLOR, DESCRIPTIONS_TONE_TAG } from './constants';
17
+ import { DESCRIPTIONS_DEFAULTS, DESCRIPTIONS_PREFIX, DESCRIPTIONS_SKELETON, DESCRIPTIONS_SLOT, DESCRIPTIONS_TONE_COLOR, DESCRIPTIONS_TONE_TAG } from './constants';
17
18
  import './style';
18
19
  var copyTextOf = function copyTextOf(row) {
19
20
  if (!row.copyable) return null;
@@ -72,6 +73,32 @@ var Row = function Row(_ref2) {
72
73
  })]
73
74
  });
74
75
  };
76
+ /**
77
+ * A row-shaped placeholder: one bar per CELL, so the row's own layout places
78
+ * them, against the same hairline and padding as a real row. The two cells
79
+ * split the row evenly (see `-row-skeleton`) and each bar fills its cell —
80
+ * there is no label text to size the left one to.
81
+ */
82
+ var SkeletonRow = function SkeletonRow(_ref3) {
83
+ var classes = _ref3.classes;
84
+ return _jsxs("div", {
85
+ className: joinCls(classes(DESCRIPTIONS_SLOT.row), classes("".concat(DESCRIPTIONS_SLOT.row, "-skeleton"))),
86
+ children: [_jsx("div", {
87
+ className: classes(DESCRIPTIONS_SLOT.label),
88
+ children: _jsx(Skeleton, {
89
+ height: DESCRIPTIONS_SKELETON.height,
90
+ borderRadius: DESCRIPTIONS_SKELETON.borderRadius
91
+ })
92
+ }), _jsx("div", {
93
+ className: classes(DESCRIPTIONS_SLOT.value),
94
+ children: _jsx(Skeleton, {
95
+ height: DESCRIPTIONS_SKELETON.height,
96
+ borderRadius: DESCRIPTIONS_SKELETON.borderRadius
97
+ })
98
+ })]
99
+ });
100
+ };
101
+ SkeletonRow.displayName = 'DescriptionsSkeletonRow';
75
102
  /**
76
103
  * Hairline-separated label/value rows. Rows are pure data — typography,
77
104
  * spacing, hairlines, copy buttons, tags, tones, and the highlight state are
@@ -81,13 +108,32 @@ var Row = function Row(_ref2) {
81
108
  var DescriptionsBase = function DescriptionsBase(_a) {
82
109
  var rows = _a.rows,
83
110
  copyContained = _a.copyContained,
111
+ loading = _a.loading,
112
+ _a$loadingRows = _a.loadingRows,
113
+ loadingRows = _a$loadingRows === void 0 ? DESCRIPTIONS_DEFAULTS.loadingRows : _a$loadingRows,
84
114
  onCopySuccess = _a.onCopySuccess,
85
115
  onCopyError = _a.onCopyError,
86
116
  _a$prefixCls = _a.prefixCls,
87
117
  prefixCls = _a$prefixCls === void 0 ? DESCRIPTIONS_PREFIX : _a$prefixCls,
88
118
  className = _a.className,
89
- rest = __rest(_a, ["rows", "copyContained", "onCopySuccess", "onCopyError", "prefixCls", "className"]);
119
+ rest = __rest(_a, ["rows", "copyContained", "loading", "loadingRows", "onCopySuccess", "onCopyError", "prefixCls", "className"]);
90
120
  var classes = classnames(prefixCls);
121
+ // Ahead of the empty-rows guard below: a list that is still loading has no
122
+ // rows yet by definition, so the caller passes the real (empty) array and
123
+ // the placeholder is what there is to show.
124
+ if (loading) {
125
+ return _jsx("div", Object.assign({}, rest, {
126
+ "aria-busy": 'true',
127
+ className: joinCls(classes(), className),
128
+ children: Array.from({
129
+ length: loadingRows
130
+ }, function (_, index) {
131
+ return _jsx(SkeletonRow, {
132
+ classes: classes
133
+ }, index);
134
+ })
135
+ }));
136
+ }
91
137
  // No rows → render NOTHING, not an empty container. A zero-height div is
92
138
  // still a flex/grid item in whatever lays the host out, so it silently eats
93
139
  // an extra `gap` between the siblings on either side of it: a details dialog
@@ -110,4 +156,4 @@ var DescriptionsBase = function DescriptionsBase(_a) {
110
156
  }));
111
157
  };
112
158
  export var Descriptions = /*#__PURE__*/memo(DescriptionsBase);
113
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9EZXNjcmlwdGlvbnMvRGVzY3JpcHRpb25zLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvRGVzY3JpcHRpb25zL0Rlc2NyaXB0aW9ucy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsIkNvcHkiLCJUYWciLCJUeXBvZ3JhcGh5IiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiREVTQ1JJUFRJT05TX0RFRkFVTFRTIiwiREVTQ1JJUFRJT05TX1BSRUZJWCIsIkRFU0NSSVBUSU9OU19TTE9UIiwiREVTQ1JJUFRJT05TX1RPTkVfQ09MT1IiLCJERVNDUklQVElPTlNfVE9ORV9UQUciLCJjb3B5VGV4dE9mIiwicm93IiwiY29weWFibGUiLCJfdHlwZW9mIiwidGV4dCIsInZhbHVlIiwiU3RyaW5nIiwiUm93VmFsdWUiLCJfcmVmIiwiX2EiLCJ0b25lIiwidGFnIiwiY29sb3IiLCJzaXplIiwibGFiZWwiLCJCb2R5IiwiZW1waGFzaXMiLCJzdHJvbmciLCJjaGlsZHJlbiIsIlJvdyIsIl9yZWYyIiwiY2xhc3NlcyIsIl9yZWYyJGNvcHlDb250YWluZWQiLCJjb3B5Q29udGFpbmVkIiwib25Db3B5U3VjY2VzcyIsIm9uQ29weUVycm9yIiwiY29weVRleHQiLCJjbGFzc05hbWUiLCJoaWdobGlnaHQiLCJjb25jYXQiLCJsYWJlbENscyIsInZhbHVlQ2xzIiwiY29udGFpbmVkIiwiaWNvblNpemUiLCJjb3B5SWNvblNpemUiLCJvblN1Y2Nlc3MiLCJvbkVycm9yIiwiRGVzY3JpcHRpb25zQmFzZSIsInJvd3MiLCJfYSRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiYXNzaWduIiwibWFwIiwiaW5kZXgiLCJrZXkiLCJEZXNjcmlwdGlvbnMiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FB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RztRQUNSb0IsT0FBTyxFQUFFQSxPQUFPO1FBQ2hCRSxhQUFhLEVBQUVBLGFBQWE7UUFDNUJDLGFBQWEsRUFBRUEsYUFBYTtRQUM1QkMsV0FBVyxFQUFFQTtNQUFXLENBQUEsRUFMbkIsQ0FBQWhCLEVBQUEsR0FBQVIsR0FBRyxDQUFDNEMsR0FBRyxNQUFBLElBQUEsSUFBQXBDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJbUMsS0FBSyxDQU1yQjtJRHpERixDQzBERDtFQUFDLENBQUEsQ0FBQSxDQUNFO0FBRVYsQ0FBQztBQUVELE9BQU8sSUFBTUUsWUFBWSxnQkFBRzFELElBQUksQ0FBQ2lELGdCQUFnQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy9EZXNjcmlwdGlvbnMvRGVzY3JpcHRpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb3B5IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9Db3B5JztcbmltcG9ydCB7IFRhZyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVGFnJztcbmltcG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBERVNDUklQVElPTlNfREVGQVVMVFMsIERFU0NSSVBUSU9OU19QUkVGSVgsIERFU0NSSVBUSU9OU19TTE9ULCBERVNDUklQVElPTlNfVE9ORV9DT0xPUiwgREVTQ1JJUFRJT05TX1RPTkVfVEFHLCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBjb3B5VGV4dE9mID0gKHJvdykgPT4ge1xuICAgIGlmICghcm93LmNvcHlhYmxlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIHJvdy5jb3B5YWJsZSA9PT0gJ29iamVjdCcpXG4gICAgICAgIHJldHVybiByb3cuY29weWFibGUudGV4dDtcbiAgICByZXR1cm4gdHlwZW9mIHJvdy52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHJvdy52YWx1ZSA9PT0gJ251bWJlcidcbiAgICAgICAgPyBTdHJpbmcocm93LnZhbHVlKVxuICAgICAgICA6IG51bGw7XG59O1xuY29uc3QgUm93VmFsdWUgPSAoeyByb3cgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB0b25lID0gKF9hID0gcm93LnRvbmUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdkZWZhdWx0JztcbiAgICAvLyBUYWcgcmVuZGVyaW5nIG5lZWRzIGEgcGxhaW4tdGV4dCB2YWx1ZSAodGhlIFRhZyBgbGFiZWxgIGNvbnRyYWN0KTtcbiAgICAvLyBub24tdGV4dCB2YWx1ZXMgZmFsbCBiYWNrIHRvIHRoZSByZWd1bGFyIHR5cG9ncmFwaHkgcmVuZGVyaW5nLlxuICAgIGlmIChyb3cudGFnICYmICh0eXBlb2Ygcm93LnZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygcm93LnZhbHVlID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KFRhZywgeyBjb2xvcjogdHlwZW9mIHJvdy50YWcgPT09ICdzdHJpbmcnID8gcm93LnRhZyA6IERFU0NSSVBUSU9OU19UT05FX1RBR1t0b25lXSwgc2l6ZTogJ21lZGl1bScsIGxhYmVsOiBTdHJpbmcocm93LnZhbHVlKSB9KSk7XG4gICAgfVxuICAgIC8vIERldGFpbHMgcm93cyBhcmUgQm9keSBTbWFsbCAoMTIvMTYpOyBgZW1waGFzaXNgIGJ1bXBzIHRvIEJvZHkgTWVkaXVtLlxuICAgIHJldHVybiAoX2pzeChUeXBvZ3JhcGh5LkJvZHksIHsgc2l6ZTogcm93LmVtcGhhc2lzID8gJ21kJyA6ICdzbScsIHN0cm9uZzogdHJ1ZSwgY29sb3I6IERFU0NSSVBUSU9OU19UT05FX0NPTE9SW3RvbmVdLCBjaGlsZHJlbjogcm93LnZhbHVlIH0pKTtcbn07XG5jb25zdCBSb3cgPSAoeyByb3csIGNsYXNzZXMsIGNvcHlDb250YWluZWQgPSBmYWxzZSwgb25Db3B5U3VjY2Vzcywgb25Db3B5RXJyb3IgfSkgPT4ge1xuICAgIGNvbnN0IGNvcHlUZXh0ID0gY29weVRleHRPZihyb3cpO1xuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcyhERVNDUklQVElPTlNfU0xPVC5yb3cpLCByb3cuaGlnaGxpZ2h0ICYmIGNsYXNzZXMoYCR7REVTQ1JJUFRJT05TX1NMT1Qucm93fS1oaWdobGlnaHRgKSksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKERFU0NSSVBUSU9OU19TTE9ULmxhYmVsKSwgcm93LmxhYmVsQ2xzKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC10ZXJ0aWFyeScsIGNoaWxkcmVuOiByb3cubGFiZWwgfSkgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoREVTQ1JJUFRJT05TX1NMT1QudmFsdWUpLCByb3cudmFsdWVDbHMpLCBjaGlsZHJlbjogW19qc3goUm93VmFsdWUsIHsgcm93OiByb3cgfSksIGNvcHlUZXh0ICE9IG51bGwgJiYgKF9qc3goQ29weSwgeyB2YWx1ZTogY29weVRleHQsIGNvbnRhaW5lZDogY29weUNvbnRhaW5lZCwgaWNvblNpemU6IERFU0NSSVBUSU9OU19ERUZBVUxUUy5jb3B5SWNvblNpemUsIG9uU3VjY2Vzczogb25Db3B5U3VjY2Vzcywgb25FcnJvcjogb25Db3B5RXJyb3IgfSkpXSB9KV0gfSkpO1xufTtcbi8qKlxuICogSGFpcmxpbmUtc2VwYXJhdGVkIGxhYmVsL3ZhbHVlIHJvd3MuIFJvd3MgYXJlIHB1cmUgZGF0YSDigJQgdHlwb2dyYXBoeSxcbiAqIHNwYWNpbmcsIGhhaXJsaW5lcywgY29weSBidXR0b25zLCB0YWdzLCB0b25lcywgYW5kIHRoZSBoaWdobGlnaHQgc3RhdGUgYXJlXG4gKiBhbGwgbG9ja2VkIGhlcmUsIHNvIGV2ZXJ5IGRldGFpbHMgc3VyZmFjZSBpbiB0aGUgcHJvZHVjdCByZW5kZXJzXG4gKiBpZGVudGljYWxseSAoZGlhbG9ncyB2aWEgQmFzZURpYWxvZyBjb21wb3NpdGlvbiwgcmVjZWlwdHMsIHBhZ2Ugc2VjdGlvbnMpLlxuICovXG5jb25zdCBEZXNjcmlwdGlvbnNCYXNlID0gKF9hKSA9PiB7XG4gICAgdmFyIHsgcm93cywgY29weUNvbnRhaW5lZCwgb25Db3B5U3VjY2Vzcywgb25Db3B5RXJyb3IsIHByZWZpeENscyA9IERFU0NSSVBUSU9OU19QUkVGSVgsIGNsYXNzTmFtZSB9ID0gX2EsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInJvd3NcIiwgXCJjb3B5Q29udGFpbmVkXCIsIFwib25Db3B5U3VjY2Vzc1wiLCBcIm9uQ29weUVycm9yXCIsIFwicHJlZml4Q2xzXCIsIFwiY2xhc3NOYW1lXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIC8vIE5vIHJvd3Mg4oaSIHJlbmRlciBOT1RISU5HLCBub3QgYW4gZW1wdHkgY29udGFpbmVyLiBBIHplcm8taGVpZ2h0IGRpdiBpc1xuICAgIC8vIHN0aWxsIGEgZmxleC9ncmlkIGl0ZW0gaW4gd2hhdGV2ZXIgbGF5cyB0aGUgaG9zdCBvdXQsIHNvIGl0IHNpbGVudGx5IGVhdHNcbiAgICAvLyBhbiBleHRyYSBgZ2FwYCBiZXR3ZWVuIHRoZSBzaWJsaW5ncyBvbiBlaXRoZXIgc2lkZSBvZiBpdDogYSBkZXRhaWxzIGRpYWxvZ1xuICAgIC8vIHRoYXQgY2FycmllcyBpdHMgb3duIHJvd3MgaW4gYGNoaWxkcmVuYCBwYXNzZXMgYHJvd3M9e1tdfWAgYW5kIHRoZSBzZWFtXG4gICAgLy8gdW5kZXIgdGhlIGJlZm9yZS1yb3dzIHNsb3QgY29tZXMgb3V0IGRvdWJsZWQgKDEyIOKGkiAyNCBpbiB0aGUgbW9kYWxcbiAgICAvLyBkZW5zaXR5KS4gQSBsaXN0IHdpdGggbm90aGluZyB0byBsaXN0IGhhcyBubyBib3guXG4gICAgaWYgKCEocm93cyA9PT0gbnVsbCB8fCByb3dzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dzLmxlbmd0aCkpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiByb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4KFJvdywgeyByb3c6IHJvdywgY2xhc3NlczogY2xhc3NlcywgY29weUNvbnRhaW5lZDogY29weUNvbnRhaW5lZCwgb25Db3B5U3VjY2Vzczogb25Db3B5U3VjY2Vzcywgb25Db3B5RXJyb3I6IG9uQ29weUVycm9yIH0sIChfYSA9IHJvdy5rZXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGluZGV4KSk7XG4gICAgICAgIH0pIH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IERlc2NyaXB0aW9ucyA9IG1lbW8oRGVzY3JpcHRpb25zQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
159
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9EZXNjcmlwdGlvbnMvRGVzY3JpcHRpb25zLmpzIiwiYnVzaW5lc3MvRGlhbG9nL3NyYy9idXNpbmVzcy9EaWFsb2cvRGVzY3JpcHRpb25zL0Rlc2NyaXB0aW9ucy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsIkNvcHkiLCJTa2VsZXRvbiIsIlRhZyIsIlR5cG9ncmFwaHkiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJERVNDUklQVElPTlNfREVGQVVMVFMiLCJERVNDUklQVElPTlNfUFJFRklYIiwiREVTQ1JJUFRJT05TX1NLRUxFVE9OIiwiREVTQ1JJUFRJT05TX1NMT1QiLCJERVNDUklQVElPTlNfVE9ORV9DT0xPUiIsIkRFU0NSSVBUSU9OU19UT05FX1RBRyIsImNvcHlUZXh0T2YiLCJyb3ciLCJjb3B5YWJsZSIsIl90eXBlb2YiLCJ0ZXh0IiwidmFsdWUiLCJTdHJpbmciLCJSb3dWYWx1ZSIsIl9yZWYiLCJfYSIsInRvbmUiLCJ0YWciLCJjb2xvciIsInNpemUiLCJsYWJlbCIsIkJvZHkiLCJlbXBoYXNpcyIsInN0cm9uZyIsImNoaWxkcmVuIiwiUm93IiwiX3JlZjIiLCJjbGFzc2VzIiwiX3JlZjIkY29weUNvbnRhaW5lZCIsImNvcHlDb250YWluZWQiLCJvbkNvcHlTdWNjZXNzIiwib25Db3B5RXJyb3IiLCJjb3B5VGV4dCIsImNsYXNzTmFtZSIsImhpZ2hsaWdodCIsImNvbmNhdCIsImxhYmVsQ2xzIiwidmFsdWVDbHMiLCJjb250YWluZWQiLCJpY29uU2l6ZSIsImNvcHlJY29uU2l6ZSIsIm9uU3VjY2VzcyIsIm9uRXJyb3IiLCJTa2VsZXRvblJvdyIsIl9yZWYzIiwiaGVpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiZGlzcGxheU5hbWUiLCJEZXNjcmlwdGlvbnNCYXNlIiwicm93cyIsImxvYWRpbmciLCJfYSRsb2FkaW5nUm93cyIsImxvYWRpbmdSb3dzIiwiX2EkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsImFzc2lnbiIsIkFycmF5IiwiZnJvbSIsIl8iLCJpbmRleCIsIm1hcCIsImtleSIsIkRlc2NyaXB0aW9ucyJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FB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RTtBQUVWLENBQUM7QUFFRCxPQUFPLElBQU1HLFlBQVksZ0JBQUd2RSxJQUFJLENBQUN3RCxnQkFBZ0IsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9EaWFsb2cvRGVzY3JpcHRpb25zL0Rlc2NyaXB0aW9ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ29weSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQ29weSc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2tlbGV0b24nO1xuaW1wb3J0IHsgVGFnIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UYWcnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IERFU0NSSVBUSU9OU19ERUZBVUxUUywgREVTQ1JJUFRJT05TX1BSRUZJWCwgREVTQ1JJUFRJT05TX1NLRUxFVE9OLCBERVNDUklQVElPTlNfU0xPVCwgREVTQ1JJUFRJT05TX1RPTkVfQ09MT1IsIERFU0NSSVBUSU9OU19UT05FX1RBRywgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgY29weVRleHRPZiA9IChyb3cpID0+IHtcbiAgICBpZiAoIXJvdy5jb3B5YWJsZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiByb3cuY29weWFibGUgPT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gcm93LmNvcHlhYmxlLnRleHQ7XG4gICAgcmV0dXJuIHR5cGVvZiByb3cudmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiByb3cudmFsdWUgPT09ICdudW1iZXInXG4gICAgICAgID8gU3RyaW5nKHJvdy52YWx1ZSlcbiAgICAgICAgOiBudWxsO1xufTtcbmNvbnN0IFJvd1ZhbHVlID0gKHsgcm93IH0pID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgdG9uZSA9IChfYSA9IHJvdy50b25lKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnZGVmYXVsdCc7XG4gICAgLy8gVGFnIHJlbmRlcmluZyBuZWVkcyBhIHBsYWluLXRleHQgdmFsdWUgKHRoZSBUYWcgYGxhYmVsYCBjb250cmFjdCk7XG4gICAgLy8gbm9uLXRleHQgdmFsdWVzIGZhbGwgYmFjayB0byB0aGUgcmVndWxhciB0eXBvZ3JhcGh5IHJlbmRlcmluZy5cbiAgICBpZiAocm93LnRhZyAmJiAodHlwZW9mIHJvdy52YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHJvdy52YWx1ZSA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChUYWcsIHsgY29sb3I6IHR5cGVvZiByb3cudGFnID09PSAnc3RyaW5nJyA/IHJvdy50YWcgOiBERVNDUklQVElPTlNfVE9ORV9UQUdbdG9uZV0sIHNpemU6ICdtZWRpdW0nLCBsYWJlbDogU3RyaW5nKHJvdy52YWx1ZSkgfSkpO1xuICAgIH1cbiAgICAvLyBEZXRhaWxzIHJvd3MgYXJlIEJvZHkgU21hbGwgKDEyLzE2KTsgYGVtcGhhc2lzYCBidW1wcyB0byBCb2R5IE1lZGl1bS5cbiAgICByZXR1cm4gKF9qc3goVHlwb2dyYXBoeS5Cb2R5LCB7IHNpemU6IHJvdy5lbXBoYXNpcyA/ICdtZCcgOiAnc20nLCBzdHJvbmc6IHRydWUsIGNvbG9yOiBERVNDUklQVElPTlNfVE9ORV9DT0xPUlt0b25lXSwgY2hpbGRyZW46IHJvdy52YWx1ZSB9KSk7XG59O1xuY29uc3QgUm93ID0gKHsgcm93LCBjbGFzc2VzLCBjb3B5Q29udGFpbmVkID0gZmFsc2UsIG9uQ29weVN1Y2Nlc3MsIG9uQ29weUVycm9yIH0pID0+IHtcbiAgICBjb25zdCBjb3B5VGV4dCA9IGNvcHlUZXh0T2Yocm93KTtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoREVTQ1JJUFRJT05TX1NMT1Qucm93KSwgcm93LmhpZ2hsaWdodCAmJiBjbGFzc2VzKGAke0RFU0NSSVBUSU9OU19TTE9ULnJvd30taGlnaGxpZ2h0YCkpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcyhERVNDUklQVElPTlNfU0xPVC5sYWJlbCksIHJvdy5sYWJlbENscyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHkuQm9keSwgeyBzaXplOiAnc20nLCBjb2xvcjogJ2RlZmF1bHQtdGVydGlhcnknLCBjaGlsZHJlbjogcm93LmxhYmVsIH0pIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKERFU0NSSVBUSU9OU19TTE9ULnZhbHVlKSwgcm93LnZhbHVlQ2xzKSwgY2hpbGRyZW46IFtfanN4KFJvd1ZhbHVlLCB7IHJvdzogcm93IH0pLCBjb3B5VGV4dCAhPSBudWxsICYmIChfanN4KENvcHksIHsgdmFsdWU6IGNvcHlUZXh0LCBjb250YWluZWQ6IGNvcHlDb250YWluZWQsIGljb25TaXplOiBERVNDUklQVElPTlNfREVGQVVMVFMuY29weUljb25TaXplLCBvblN1Y2Nlc3M6IG9uQ29weVN1Y2Nlc3MsIG9uRXJyb3I6IG9uQ29weUVycm9yIH0pKV0gfSldIH0pKTtcbn07XG4vKipcbiAqIEEgcm93LXNoYXBlZCBwbGFjZWhvbGRlcjogb25lIGJhciBwZXIgQ0VMTCwgc28gdGhlIHJvdydzIG93biBsYXlvdXQgcGxhY2VzXG4gKiB0aGVtLCBhZ2FpbnN0IHRoZSBzYW1lIGhhaXJsaW5lIGFuZCBwYWRkaW5nIGFzIGEgcmVhbCByb3cuIFRoZSB0d28gY2VsbHNcbiAqIHNwbGl0IHRoZSByb3cgZXZlbmx5IChzZWUgYC1yb3ctc2tlbGV0b25gKSBhbmQgZWFjaCBiYXIgZmlsbHMgaXRzIGNlbGwg4oCUXG4gKiB0aGVyZSBpcyBubyBsYWJlbCB0ZXh0IHRvIHNpemUgdGhlIGxlZnQgb25lIHRvLlxuICovXG5jb25zdCBTa2VsZXRvblJvdyA9ICh7IGNsYXNzZXMgfSkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoREVTQ1JJUFRJT05TX1NMT1Qucm93KSwgY2xhc3NlcyhgJHtERVNDUklQVElPTlNfU0xPVC5yb3d9LXNrZWxldG9uYCkpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoREVTQ1JJUFRJT05TX1NMT1QubGFiZWwpLCBjaGlsZHJlbjogX2pzeChTa2VsZXRvbiwgeyBoZWlnaHQ6IERFU0NSSVBUSU9OU19TS0VMRVRPTi5oZWlnaHQsIGJvcmRlclJhZGl1czogREVTQ1JJUFRJT05TX1NLRUxFVE9OLmJvcmRlclJhZGl1cyB9KSB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcyhERVNDUklQVElPTlNfU0xPVC52YWx1ZSksIGNoaWxkcmVuOiBfanN4KFNrZWxldG9uLCB7IGhlaWdodDogREVTQ1JJUFRJT05TX1NLRUxFVE9OLmhlaWdodCwgYm9yZGVyUmFkaXVzOiBERVNDUklQVElPTlNfU0tFTEVUT04uYm9yZGVyUmFkaXVzIH0pIH0pXSB9KSk7XG5Ta2VsZXRvblJvdy5kaXNwbGF5TmFtZSA9ICdEZXNjcmlwdGlvbnNTa2VsZXRvblJvdyc7XG4vKipcbiAqIEhhaXJsaW5lLXNlcGFyYXRlZCBsYWJlbC92YWx1ZSByb3dzLiBSb3dzIGFyZSBwdXJlIGRhdGEg4oCUIHR5cG9ncmFwaHksXG4gKiBzcGFjaW5nLCBoYWlybGluZXMsIGNvcHkgYnV0dG9ucywgdGFncywgdG9uZXMsIGFuZCB0aGUgaGlnaGxpZ2h0IHN0YXRlIGFyZVxuICogYWxsIGxvY2tlZCBoZXJlLCBzbyBldmVyeSBkZXRhaWxzIHN1cmZhY2UgaW4gdGhlIHByb2R1Y3QgcmVuZGVyc1xuICogaWRlbnRpY2FsbHkgKGRpYWxvZ3MgdmlhIEJhc2VEaWFsb2cgY29tcG9zaXRpb24sIHJlY2VpcHRzLCBwYWdlIHNlY3Rpb25zKS5cbiAqL1xuY29uc3QgRGVzY3JpcHRpb25zQmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IHJvd3MsIGNvcHlDb250YWluZWQsIGxvYWRpbmcsIGxvYWRpbmdSb3dzID0gREVTQ1JJUFRJT05TX0RFRkFVTFRTLmxvYWRpbmdSb3dzLCBvbkNvcHlTdWNjZXNzLCBvbkNvcHlFcnJvciwgcHJlZml4Q2xzID0gREVTQ1JJUFRJT05TX1BSRUZJWCwgY2xhc3NOYW1lIH0gPSBfYSwgcmVzdCA9IF9fcmVzdChfYSwgW1wicm93c1wiLCBcImNvcHlDb250YWluZWRcIiwgXCJsb2FkaW5nXCIsIFwibG9hZGluZ1Jvd3NcIiwgXCJvbkNvcHlTdWNjZXNzXCIsIFwib25Db3B5RXJyb3JcIiwgXCJwcmVmaXhDbHNcIiwgXCJjbGFzc05hbWVcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgLy8gQWhlYWQgb2YgdGhlIGVtcHR5LXJvd3MgZ3VhcmQgYmVsb3c6IGEgbGlzdCB0aGF0IGlzIHN0aWxsIGxvYWRpbmcgaGFzIG5vXG4gICAgLy8gcm93cyB5ZXQgYnkgZGVmaW5pdGlvbiwgc28gdGhlIGNhbGxlciBwYXNzZXMgdGhlIHJlYWwgKGVtcHR5KSBhcnJheSBhbmRcbiAgICAvLyB0aGUgcGxhY2Vob2xkZXIgaXMgd2hhdCB0aGVyZSBpcyB0byBzaG93LlxuICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICAgIHJldHVybiAoX2pzeChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IFwiYXJpYS1idXN5XCI6ICd0cnVlJywgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IEFycmF5LmZyb20oeyBsZW5ndGg6IGxvYWRpbmdSb3dzIH0sIChfLCBpbmRleCkgPT4gKF9qc3goU2tlbGV0b25Sb3csIHsgY2xhc3NlczogY2xhc3NlcyB9LCBpbmRleCkpKSB9KSkpO1xuICAgIH1cbiAgICAvLyBObyByb3dzIOKGkiByZW5kZXIgTk9USElORywgbm90IGFuIGVtcHR5IGNvbnRhaW5lci4gQSB6ZXJvLWhlaWdodCBkaXYgaXNcbiAgICAvLyBzdGlsbCBhIGZsZXgvZ3JpZCBpdGVtIGluIHdoYXRldmVyIGxheXMgdGhlIGhvc3Qgb3V0LCBzbyBpdCBzaWxlbnRseSBlYXRzXG4gICAgLy8gYW4gZXh0cmEgYGdhcGAgYmV0d2VlbiB0aGUgc2libGluZ3Mgb24gZWl0aGVyIHNpZGUgb2YgaXQ6IGEgZGV0YWlscyBkaWFsb2dcbiAgICAvLyB0aGF0IGNhcnJpZXMgaXRzIG93biByb3dzIGluIGBjaGlsZHJlbmAgcGFzc2VzIGByb3dzPXtbXX1gIGFuZCB0aGUgc2VhbVxuICAgIC8vIHVuZGVyIHRoZSBiZWZvcmUtcm93cyBzbG90IGNvbWVzIG91dCBkb3VibGVkICgxMiDihpIgMjQgaW4gdGhlIG1vZGFsXG4gICAgLy8gZGVuc2l0eSkuIEEgbGlzdCB3aXRoIG5vdGhpbmcgdG8gbGlzdCBoYXMgbm8gYm94LlxuICAgIGlmICghKHJvd3MgPT09IG51bGwgfHwgcm93cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcm93cy5sZW5ndGgpKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogcm93cy5tYXAoKHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeChSb3csIHsgcm93OiByb3csIGNsYXNzZXM6IGNsYXNzZXMsIGNvcHlDb250YWluZWQ6IGNvcHlDb250YWluZWQsIG9uQ29weVN1Y2Nlc3M6IG9uQ29weVN1Y2Nlc3MsIG9uQ29weUVycm9yOiBvbkNvcHlFcnJvciB9LCAoX2EgPSByb3cua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICB9KSB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBEZXNjcmlwdGlvbnMgPSBtZW1vKERlc2NyaXB0aW9uc0Jhc2UpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -7,10 +7,30 @@ export declare const DESCRIPTIONS_SLOT: {
7
7
  readonly label: "label";
8
8
  readonly value: "value";
9
9
  };
10
+ /**
11
+ * Placeholder geometry for the loading state.
12
+ *
13
+ * These live here, not at the call site, because a placeholder row has to be
14
+ * laid out by the ROW — label cell left, value cell right. A consumer building
15
+ * its own skeleton has to guess that structure, and guessing it as a single
16
+ * full-width flex row (which is what a details list looks like from outside)
17
+ * puts both bars in the value cell and leaves the label side blank.
18
+ */
19
+ export declare const DESCRIPTIONS_SKELETON: {
20
+ /** Matches Body Small's 16px line box, so rows keep their real height. */
21
+ readonly height: 16;
22
+ readonly borderRadius: 4;
23
+ };
10
24
  /** Row value tone → Typography color. Locked here; rows are pure data. */
11
25
  export declare const DESCRIPTIONS_TONE_COLOR: Record<DescriptionsRowTone, TypographyColor>;
12
26
  /** Row tone → Tag color when a row renders as a status tag. */
13
27
  export declare const DESCRIPTIONS_TONE_TAG: Record<DescriptionsRowTone, TagColor>;
14
28
  export declare const DESCRIPTIONS_DEFAULTS: {
15
29
  readonly copyIconSize: 16;
30
+ /**
31
+ * Placeholder row count while `loading`. Six rows is the shortest list that
32
+ * still reads as "a details list is coming" and holds a plausible panel
33
+ * height, so the dialog does not jump when the data lands.
34
+ */
35
+ readonly loadingRows: 6;
16
36
  };
@@ -4,6 +4,20 @@ export var DESCRIPTIONS_SLOT = {
4
4
  label: 'label',
5
5
  value: 'value'
6
6
  };
7
+ /**
8
+ * Placeholder geometry for the loading state.
9
+ *
10
+ * These live here, not at the call site, because a placeholder row has to be
11
+ * laid out by the ROW — label cell left, value cell right. A consumer building
12
+ * its own skeleton has to guess that structure, and guessing it as a single
13
+ * full-width flex row (which is what a details list looks like from outside)
14
+ * puts both bars in the value cell and leaves the label side blank.
15
+ */
16
+ export var DESCRIPTIONS_SKELETON = {
17
+ /** Matches Body Small's 16px line box, so rows keep their real height. */
18
+ height: 16,
19
+ borderRadius: 4
20
+ };
7
21
  /** Row value tone → Typography color. Locked here; rows are pure data. */
8
22
  export var DESCRIPTIONS_TONE_COLOR = {
9
23
  "default": 'default',
@@ -19,6 +33,12 @@ export var DESCRIPTIONS_TONE_TAG = {
19
33
  danger: 'negative'
20
34
  };
21
35
  export var DESCRIPTIONS_DEFAULTS = {
22
- copyIconSize: 16
36
+ copyIconSize: 16,
37
+ /**
38
+ * Placeholder row count while `loading`. Six rows is the shortest list that
39
+ * still reads as "a details list is coming" and holds a plausible panel
40
+ * height, so the dialog does not jump when the data lands.
41
+ */
42
+ loadingRows: 6
23
43
  };
24
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9zcmMvYnVzaW5lc3MvRGlhbG9nL0Rlc2NyaXB0aW9ucy9jb25zdGFudHMudHMiLCJidXNpbmVzcy9EaWFsb2cvRGVzY3JpcHRpb25zL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJERVNDUklQVElPTlNfUFJFRklYIiwiREVTQ1JJUFRJT05TX1NMT1QiLCJyb3ciLCJsYWJlbCIsInZhbHVlIiwiREVTQ1JJUFRJT05TX1RPTkVfQ09MT1IiLCJzdWNjZXNzIiwid2FybmluZyIsImRhbmdlciIsIkRFU0NSSVBUSU9OU19UT05FX1RBRyIsIkRFU0NSSVBUSU9OU19ERUZBVUxUUyIsImNvcHlJY29uU2l6ZSJdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxJQUFNQSxtQkFBbUIsR0FBRyxjQUFjO0FBRWpELE9BQU8sSUFBTUMsaUJBQWlCLEdBQUc7RUFDL0JDLEdBQUcsRUFBRSxLQUFLO0VBQ1ZDLEtBQUssRUFBRSxPQUFPO0VBQ2RDLEtBQUssRUFBRTtBQ0pULENES1U7QUFFVjtBQUNBLE9BQU8sSUFBTUMsdUJBQXVCLEdBQWlEO0VBQ25GLFdBQVMsU0FBUztFQUNsQkMsT0FBTyxFQUFFLFVBQVU7RUFDbkJDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxNQUFNLEVBQUU7QUNMVixDRE1DO0FBRUQ7QUFDQSxPQUFPLElBQU1DLHFCQUFxQixHQUEwQztFQUMxRSxXQUFTLFNBQVM7RUFDbEJILE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxPQUFPLEVBQUUsU0FBUztFQUNsQkMsTUFBTSxFQUFFO0FDTlYsQ0RPQztBQUVELE9BQU8sSUFBTUUscUJBQXFCLEdBQUc7RUFDbkNDLFlBQVksRUFBRTtBQ1BoQixDRFFVIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy9EZXNjcmlwdGlvbnMvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJleHBvcnQgY29uc3QgREVTQ1JJUFRJT05TX1BSRUZJWCA9ICdkZXNjcmlwdGlvbnMnO1xuZXhwb3J0IGNvbnN0IERFU0NSSVBUSU9OU19TTE9UID0ge1xuICAgIHJvdzogJ3JvdycsXG4gICAgbGFiZWw6ICdsYWJlbCcsXG4gICAgdmFsdWU6ICd2YWx1ZScsXG59O1xuLyoqIFJvdyB2YWx1ZSB0b25lIOKGkiBUeXBvZ3JhcGh5IGNvbG9yLiBMb2NrZWQgaGVyZTsgcm93cyBhcmUgcHVyZSBkYXRhLiAqL1xuZXhwb3J0IGNvbnN0IERFU0NSSVBUSU9OU19UT05FX0NPTE9SID0ge1xuICAgIGRlZmF1bHQ6ICdkZWZhdWx0JyxcbiAgICBzdWNjZXNzOiAncG9zaXRpdmUnLFxuICAgIHdhcm5pbmc6ICd3YXJuaW5nJyxcbiAgICBkYW5nZXI6ICdkYW5nZXInLFxufTtcbi8qKiBSb3cgdG9uZSDihpIgVGFnIGNvbG9yIHdoZW4gYSByb3cgcmVuZGVycyBhcyBhIHN0YXR1cyB0YWcuICovXG5leHBvcnQgY29uc3QgREVTQ1JJUFRJT05TX1RPTkVfVEFHID0ge1xuICAgIGRlZmF1bHQ6ICduZXV0cmFsJyxcbiAgICBzdWNjZXNzOiAnc3VjY2VzcycsXG4gICAgd2FybmluZzogJ3dhcm5pbmcnLFxuICAgIGRhbmdlcjogJ25lZ2F0aXZlJyxcbn07XG5leHBvcnQgY29uc3QgREVTQ1JJUFRJT05TX0RFRkFVTFRTID0ge1xuICAgIGNvcHlJY29uU2l6ZTogMTYsXG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
44
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9zcmMvYnVzaW5lc3MvRGlhbG9nL0Rlc2NyaXB0aW9ucy9jb25zdGFudHMudHMiLCJidXNpbmVzcy9EaWFsb2cvRGVzY3JpcHRpb25zL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJERVNDUklQVElPTlNfUFJFRklYIiwiREVTQ1JJUFRJT05TX1NMT1QiLCJyb3ciLCJsYWJlbCIsInZhbHVlIiwiREVTQ1JJUFRJT05TX1NLRUxFVE9OIiwiaGVpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiREVTQ1JJUFRJT05TX1RPTkVfQ09MT1IiLCJzdWNjZXNzIiwid2FybmluZyIsImRhbmdlciIsIkRFU0NSSVBUSU9OU19UT05FX1RBRyIsIkRFU0NSSVBUSU9OU19ERUZBVUxUUyIsImNvcHlJY29uU2l6ZSIsImxvYWRpbmdSb3dzIl0sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLElBQU1BLG1CQUFtQixHQUFHLGNBQWM7QUFFakQsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRztFQUMvQkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsS0FBSyxFQUFFLE9BQU87RUFDZEMsS0FBSyxFQUFFO0FDSlQsQ0RLVTtBQUVWO0FDTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRE9BLE9BQU8sSUFBTUMscUJBQXFCLEdBQUc7RUFDbkM7RUFDQUMsTUFBTSxFQUFFLEVBQUU7RUFDVkMsWUFBWSxFQUFFO0FDTGhCLENETVU7QUFFVjtBQUNBLE9BQU8sSUFBTUMsdUJBQXVCLEdBQWlEO0VBQ25GLFdBQVMsU0FBUztFQUNsQkMsT0FBTyxFQUFFLFVBQVU7RUFDbkJDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxNQUFNLEVBQUU7QUNOVixDRE9DO0FBRUQ7QUFDQSxPQUFPLElBQU1DLHFCQUFxQixHQUEwQztFQUMxRSxXQUFTLFNBQVM7RUFDbEJILE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxPQUFPLEVBQUUsU0FBUztFQUNsQkMsTUFBTSxFQUFFO0FDUFYsQ0RRQztBQUVELE9BQU8sSUFBTUUscUJBQXFCLEdBQUc7RUFDbkNDLFlBQVksRUFBRSxFQUFFO0VBQ2hCO0FDUkY7QUFDQTtBQUNBO0FBQ0E7RURVRUMsV0FBVyxFQUFFO0FDUmYsQ0RTVSIsImZpbGUiOiJidXNpbmVzcy9EaWFsb2cvRGVzY3JpcHRpb25zL2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiZXhwb3J0IGNvbnN0IERFU0NSSVBUSU9OU19QUkVGSVggPSAnZGVzY3JpcHRpb25zJztcbmV4cG9ydCBjb25zdCBERVNDUklQVElPTlNfU0xPVCA9IHtcbiAgICByb3c6ICdyb3cnLFxuICAgIGxhYmVsOiAnbGFiZWwnLFxuICAgIHZhbHVlOiAndmFsdWUnLFxufTtcbi8qKlxuICogUGxhY2Vob2xkZXIgZ2VvbWV0cnkgZm9yIHRoZSBsb2FkaW5nIHN0YXRlLlxuICpcbiAqIFRoZXNlIGxpdmUgaGVyZSwgbm90IGF0IHRoZSBjYWxsIHNpdGUsIGJlY2F1c2UgYSBwbGFjZWhvbGRlciByb3cgaGFzIHRvIGJlXG4gKiBsYWlkIG91dCBieSB0aGUgUk9XIOKAlCBsYWJlbCBjZWxsIGxlZnQsIHZhbHVlIGNlbGwgcmlnaHQuIEEgY29uc3VtZXIgYnVpbGRpbmdcbiAqIGl0cyBvd24gc2tlbGV0b24gaGFzIHRvIGd1ZXNzIHRoYXQgc3RydWN0dXJlLCBhbmQgZ3Vlc3NpbmcgaXQgYXMgYSBzaW5nbGVcbiAqIGZ1bGwtd2lkdGggZmxleCByb3cgKHdoaWNoIGlzIHdoYXQgYSBkZXRhaWxzIGxpc3QgbG9va3MgbGlrZSBmcm9tIG91dHNpZGUpXG4gKiBwdXRzIGJvdGggYmFycyBpbiB0aGUgdmFsdWUgY2VsbCBhbmQgbGVhdmVzIHRoZSBsYWJlbCBzaWRlIGJsYW5rLlxuICovXG5leHBvcnQgY29uc3QgREVTQ1JJUFRJT05TX1NLRUxFVE9OID0ge1xuICAgIC8qKiBNYXRjaGVzIEJvZHkgU21hbGwncyAxNnB4IGxpbmUgYm94LCBzbyByb3dzIGtlZXAgdGhlaXIgcmVhbCBoZWlnaHQuICovXG4gICAgaGVpZ2h0OiAxNixcbiAgICBib3JkZXJSYWRpdXM6IDQsXG59O1xuLyoqIFJvdyB2YWx1ZSB0b25lIOKGkiBUeXBvZ3JhcGh5IGNvbG9yLiBMb2NrZWQgaGVyZTsgcm93cyBhcmUgcHVyZSBkYXRhLiAqL1xuZXhwb3J0IGNvbnN0IERFU0NSSVBUSU9OU19UT05FX0NPTE9SID0ge1xuICAgIGRlZmF1bHQ6ICdkZWZhdWx0JyxcbiAgICBzdWNjZXNzOiAncG9zaXRpdmUnLFxuICAgIHdhcm5pbmc6ICd3YXJuaW5nJyxcbiAgICBkYW5nZXI6ICdkYW5nZXInLFxufTtcbi8qKiBSb3cgdG9uZSDihpIgVGFnIGNvbG9yIHdoZW4gYSByb3cgcmVuZGVycyBhcyBhIHN0YXR1cyB0YWcuICovXG5leHBvcnQgY29uc3QgREVTQ1JJUFRJT05TX1RPTkVfVEFHID0ge1xuICAgIGRlZmF1bHQ6ICduZXV0cmFsJyxcbiAgICBzdWNjZXNzOiAnc3VjY2VzcycsXG4gICAgd2FybmluZzogJ3dhcm5pbmcnLFxuICAgIGRhbmdlcjogJ25lZ2F0aXZlJyxcbn07XG5leHBvcnQgY29uc3QgREVTQ1JJUFRJT05TX0RFRkFVTFRTID0ge1xuICAgIGNvcHlJY29uU2l6ZTogMTYsXG4gICAgLyoqXG4gICAgICogUGxhY2Vob2xkZXIgcm93IGNvdW50IHdoaWxlIGBsb2FkaW5nYC4gU2l4IHJvd3MgaXMgdGhlIHNob3J0ZXN0IGxpc3QgdGhhdFxuICAgICAqIHN0aWxsIHJlYWRzIGFzIFwiYSBkZXRhaWxzIGxpc3QgaXMgY29taW5nXCIgYW5kIGhvbGRzIGEgcGxhdXNpYmxlIHBhbmVsXG4gICAgICogaGVpZ2h0LCBzbyB0aGUgZGlhbG9nIGRvZXMgbm90IGp1bXAgd2hlbiB0aGUgZGF0YSBsYW5kcy5cbiAgICAgKi9cbiAgICBsb2FkaW5nUm93czogNixcbn07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -51,6 +51,21 @@ export interface DescriptionsProps extends HTMLAttributes<HTMLDivElement> {
51
51
  * `copyable` row in the list.
52
52
  */
53
53
  copyContained?: boolean;
54
+ /**
55
+ * Render placeholder rows instead of `rows`.
56
+ *
57
+ * The placeholder is the component's own job: a row is a label cell plus a
58
+ * value cell, and only this component knows that. Left to the caller, the
59
+ * skeleton gets built against whatever the list looks like from outside —
60
+ * typically one full-width flex row — which lands both bars in the value
61
+ * cell with the label side empty.
62
+ *
63
+ * Takes precedence over `rows`, so a caller can pass the (still empty) real
64
+ * rows straight through while the request is in flight.
65
+ */
66
+ loading?: boolean;
67
+ /** Placeholder row count while `loading`. Defaults to 6. */
68
+ loadingRows?: number;
54
69
  /**
55
70
  * Fires after a row's copy button copies successfully, with the copied
56
71
  * text. The component shows NO toast of its own — surface feedback here at
@@ -35,6 +35,14 @@
35
35
  .om-component-ui-descriptions-row:not(:last-child) {
36
36
  border-bottom: 1px solid var(--om-border-neutral, #e3e4e4);
37
37
  }
38
+ .om-component-ui-descriptions-row-skeleton {
39
+ gap: var(--om-spacing-300, 12px);
40
+ }
41
+ .om-component-ui-descriptions-row-skeleton .om-component-ui-descriptions-label,
42
+ .om-component-ui-descriptions-row-skeleton .om-component-ui-descriptions-value {
43
+ flex: 1;
44
+ min-width: 0;
45
+ }
38
46
  .om-component-ui-descriptions-row-highlight {
39
47
  padding-inline: var(--om-spacing-300, 12px);
40
48
  margin-inline: calc(var(--om-spacing-300, 12px) * -1);
@@ -70,6 +70,8 @@ var DetailsDialogBase = function DetailsDialogBase(_a) {
70
70
  var rows = _a.rows,
71
71
  listCls = _a.listCls,
72
72
  copyContained = _a.copyContained,
73
+ loading = _a.loading,
74
+ loadingRows = _a.loadingRows,
73
75
  beforeRows = _a.beforeRows,
74
76
  primary = _a.primary,
75
77
  secondary = _a.secondary,
@@ -81,7 +83,7 @@ var DetailsDialogBase = function DetailsDialogBase(_a) {
81
83
  onCopyError = _a.onCopyError,
82
84
  _a$fixed = _a.fixed,
83
85
  fixed = _a$fixed === void 0 ? true : _a$fixed,
84
- rest = __rest(_a, ["rows", "listCls", "copyContained", "beforeRows", "primary", "secondary", "className", "children", "showCloseIcon", "onCopySuccess", "onCopyError", "fixed"]);
86
+ rest = __rest(_a, ["rows", "listCls", "copyContained", "loading", "loadingRows", "beforeRows", "primary", "secondary", "className", "children", "showCloseIcon", "onCopySuccess", "onCopyError", "fixed"]);
85
87
  var locale = useLocale('DetailsDialog');
86
88
  var classes = classnames(PREFIX);
87
89
  var resolvedPrimary = useAsyncAction(withDownloadDefaults(primary, locale.download));
@@ -96,10 +98,12 @@ var DetailsDialogBase = function DetailsDialogBase(_a) {
96
98
  className: listCls,
97
99
  rows: rows,
98
100
  copyContained: copyContained,
101
+ loading: loading,
102
+ loadingRows: loadingRows,
99
103
  onCopySuccess: onCopySuccess,
100
104
  onCopyError: onCopyError
101
105
  }), children]
102
106
  }));
103
107
  };
104
108
  export var DetailsDialog = /*#__PURE__*/memo(DetailsDialogBase);
105
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9EZXRhaWxzRGlhbG9nL0RldGFpbHNEaWFsb2cuanMiLCJidXNpbmVzcy9EaWFsb2cvc3JjL2J1c2luZXNzL0RpYWxvZy9EZXRhaWxzRGlhbG9nL0RldGFpbHNEaWFsb2cudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VTdGF0ZSIsInVzZUxvY2FsZSIsIkljb25zIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiQmFzZURpYWxvZyIsIkRlc2NyaXB0aW9ucyIsIlBSRUZJWCIsIkRPV05MT0FEX0lDT05fU0laRSIsIndpdGhEb3dubG9hZERlZmF1bHRzIiwiYWN0aW9uIiwiZG93bmxvYWRMYWJlbCIsImFzc2lnbiIsImljb24iLCJuYW1lIiwic2l6ZSIsImNvbG9yIiwibGFiZWwiLCJ1c2VBc3luY0FjdGlvbiIsIl9hIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYnVzeSIsInNldEJ1c3kiLCJ1bmRlZmluZWQiLCJsb2FkaW5nIiwib25DbGljayIsInJlc3VsdCIsIlByb21pc2UiLCJEZXRhaWxzRGlhbG9nQmFzZSIsInJvd3MiLCJsaXN0Q2xzIiwiY29weUNvbnRhaW5lZCIsImJlZm9yZVJvd3MiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5IiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJfYSRzaG93Q2xvc2VJY29uIiwic2hvd0Nsb3NlSWNvbiIsIm9uQ29weVN1Y2Nlc3MiLCJvbkNvcHlFcnJvciIsIl9hJGZpeGVkIiwiZml4ZWQiLCJyZXN0IiwibG9jYWxlIiwiY2xhc3NlcyIsInJl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VUFBVSxFQUNYdkMsSUFBQSxDQUFDVyxZQUFZLEVBQUE7TUFDWCtCLFNBQVMsRUFBRUwsT0FBTztNQUNsQkQsSUFBSSxFQUFFQSxJQUFJO01BQ1ZFLGFBQWEsRUFBRUEsYUFBYTtNQUM1QlEsYUFBYSxFQUFFQSxhQUFhO01BQzVCQyxXQUFXLEVBQUVBO0lBQVcsQ0FBQSxDQUN4QixFQUNESixRQUFRO0VBQUEsQ0FBQSxDQUFBLENBQ0U7QUFFakIsQ0FBQztBQUVELE9BQU8sSUFBTWEsYUFBYSxnQkFBR3JELElBQUksQ0FBQ2dDLGlCQUFpQixDQUFDIiwiZmlsZSI6ImJ1c2luZXNzL0RpYWxvZy9EZXRhaWxzRGlhbG9nL0RldGFpbHNEaWFsb2cuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VMb2NhbGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9JY29ucyc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEJhc2VEaWFsb2cgfSBmcm9tICcuLi9CYXNlRGlhbG9nJztcbmltcG9ydCB7IERlc2NyaXB0aW9ucyB9IGZyb20gJy4uL0Rlc2NyaXB0aW9ucyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgUFJFRklYID0gJ2RldGFpbHMtZGlhbG9nJztcbmNvbnN0IERPV05MT0FEX0lDT05fU0laRSA9IDIwO1xuLyoqXG4gKiBGaWxsIHRoZSBkZXRhaWxzLWZhbWlseSBkZWZhdWx0IGRvd25sb2FkIENUQSDigJQgaWNvbiwgbGFiZWwsIGFuZCBzZWNvbmRhcnlcbiAqIHRvbmUg4oCUIGxlYXZpbmcgYW55IGV4cGxpY2l0bHktc2V0IGZpZWxkIHVudG91Y2hlZC4gVGhlIGNvbnN1bWVyIHVzdWFsbHlcbiAqIG9ubHkgd2lyZXMgYG9uQ2xpY2tgLlxuICovXG5jb25zdCB3aXRoRG93bmxvYWREZWZhdWx0cyA9IChhY3Rpb24sIGRvd25sb2FkTGFiZWwpID0+IGFjdGlvbiAmJiBPYmplY3QuYXNzaWduKHsgaWNvbjogX2pzeChJY29ucywgeyBuYW1lOiAnbWVudURlcG9zaXQnLCBzaXplOiBET1dOTE9BRF9JQ09OX1NJWkUgfSksIGNvbG9yOiAnc2Vjb25kYXJ5JywgbGFiZWw6IGRvd25sb2FkTGFiZWwgfSwgYWN0aW9uKTtcbi8qKlxuICogV3JhcHMgYW4gYWN0aW9uIHNvIGEgUHJvbWlzZS1yZXR1cm5pbmcgYG9uQ2xpY2tgIGRyaXZlcyB0aGUgYnV0dG9uJ3NcbiAqIGxvYWRpbmcgc3RhdGUgdW50aWwgaXQgc2V0dGxlcyAoZXJyb3JzIGFyZSByZXRocm93biB0byB0aGUgY29uc29sZSDigJQgdGhlXG4gKiBjYWxsZXIgb3ducyBzdXJmYWNpbmcgdGhlbSkuXG4gKi9cbmNvbnN0IHVzZUFzeW5jQWN0aW9uID0gKGFjdGlvbikgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBbYnVzeSwgc2V0QnVzeV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgaWYgKCFhY3Rpb24pXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgYWN0aW9uKSwgeyBsb2FkaW5nOiAoX2EgPSBhY3Rpb24ubG9hZGluZykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogYnVzeSwgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gKF9hID0gYWN0aW9uLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGFjdGlvbik7XG4gICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIHNldEJ1c3kodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdm9pZCByZXN1bHQuZmluYWxseSgoKSA9PiBzZXRCdXN5KGZhbHNlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gfSk7XG59O1xuLyoqXG4gKiBSZWFkLW9ubHkgZGV0YWlscyBzY2VuYXJpbyBzaGVsbCDigJQgYEJhc2VEaWFsb2dgICsgYERlc2NyaXB0aW9uc2AsIHdpdGggdGhlXG4gKiBkZXRhaWxzLWZhbWlseSBzcGVjIChGaWdtYSAzOTk1Ni05ODk3KSBzY29wZWQgb24gdG9wOiB0aXRsZeKGlHJvd3MgZ2FwIDAgYW5kXG4gKiBjb21wYWN0IHJvd3MuIE1pcnJvcnMgdGhlIGxlZ2FjeSBgTW9kYWwvRGV0YWlsc2AgY29udHJhY3QgdXNlZCBieSB0aGVcbiAqIFRyYW5zYWN0aW9ucyByZWNlaXB0czogYXJiaXRyYXJ5IFJlYWN0Tm9kZSByb3cgdmFsdWVzLCBhIGJlZm9yZS1yb3dzIHNsb3QsXG4gKiBhbmQgYXN5bmMtbG9hZGluZyBDVEFzLiBDb3B5YWJsZSByb3dzIHN1cmZhY2UgYG9uQ29weVN1Y2Nlc3NgL2BvbkNvcHlFcnJvcmBcbiAqIOKAlCB0aGUgc2hlbGwgc2hvd3Mgbm8gdG9hc3QgaXRzZWxmLlxuICovXG5jb25zdCBEZXRhaWxzRGlhbG9nQmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IHJvd3MsIGxpc3RDbHMsIGNvcHlDb250YWluZWQsIGJlZm9yZVJvd3MsIHByaW1hcnksIHNlY29uZGFyeSwgY2xhc3NOYW1lLCBjaGlsZHJlbiwgc2hvd0Nsb3NlSWNvbiA9IHRydWUsIG9uQ29weVN1Y2Nlc3MsIG9uQ29weUVycm9yLCBcbiAgICAvLyBEZXRhaWxzIGxpc3RzIGNhbiBiZSBsb25nIOKAlCBwaW4gdGhlIHRpdGxlICsgRG93bmxvYWQsIHNjcm9sbCB0aGUgcm93cy5cbiAgICBmaXhlZCA9IHRydWUgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJyb3dzXCIsIFwibGlzdENsc1wiLCBcImNvcHlDb250YWluZWRcIiwgXCJiZWZvcmVSb3dzXCIsIFwicHJpbWFyeVwiLCBcInNlY29uZGFyeVwiLCBcImNsYXNzTmFtZVwiLCBcImNoaWxkcmVuXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcIm9uQ29weVN1Y2Nlc3NcIiwgXCJvbkNvcHlFcnJvclwiLCBcImZpeGVkXCJdKTtcbiAgICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoJ0RldGFpbHNEaWFsb2cnKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhQUkVGSVgpO1xuICAgIGNvbnN0IHJlc29sdmVkUHJpbWFyeSA9IHVzZUFzeW5jQWN0aW9uKHdpdGhEb3dubG9hZERlZmF1bHRzKHByaW1hcnksIGxvY2FsZS5kb3dubG9hZCkpO1xuICAgIGNvbnN0IHJlc29sdmVkU2Vjb25kYXJ5ID0gdXNlQXN5bmNBY3Rpb24oc2Vjb25kYXJ5KTtcbiAgICByZXR1cm4gKF9qc3hzKEJhc2VEaWFsb2csIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgc2hvd0Nsb3NlSWNvbjogc2hvd0Nsb3NlSWNvbiwgZml4ZWQ6IGZpeGVkLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpLCBwcmltYXJ5OiByZXNvbHZlZFByaW1hcnksIHNlY29uZGFyeTogcmVzb2x2ZWRTZWNvbmRhcnksIGNoaWxkcmVuOiBbYmVmb3JlUm93cywgX2pzeChEZXNjcmlwdGlvbnMsIHsgY2xhc3NOYW1lOiBsaXN0Q2xzLCByb3dzOiByb3dzLCBjb3B5Q29udGFpbmVkOiBjb3B5Q29udGFpbmVkLCBvbkNvcHlTdWNjZXNzOiBvbkNvcHlTdWNjZXNzLCBvbkNvcHlFcnJvcjogb25Db3B5RXJyb3IgfSksIGNoaWxkcmVuXSB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBEZXRhaWxzRGlhbG9nID0gbWVtbyhEZXRhaWxzRGlhbG9nQmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
109
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL0RpYWxvZy9EZXRhaWxzRGlhbG9nL0RldGFpbHNEaWFsb2cuanMiLCJidXNpbmVzcy9EaWFsb2cvc3JjL2J1c2luZXNzL0RpYWxvZy9EZXRhaWxzRGlhbG9nL0RldGFpbHNEaWFsb2cudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VTdGF0ZSIsInVzZUxvY2FsZSIsIkljb25zIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiQmFzZURpYWxvZyIsIkRlc2NyaXB0aW9ucyIsIlBSRUZJWCIsIkRPV05MT0FEX0lDT05fU0laRSIsIndpdGhEb3dubG9hZERlZmF1bHRzIiwiYWN0aW9uIiwiZG93bmxvYWRMYWJlbCIsImFzc2lnbiIsImljb24iLCJuYW1lIiwic2l6ZSIsImNvbG9yIiwibGFiZWwiLCJ1c2VBc3luY0FjdGlvbiIsIl9hIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYnVzeSIsInNldEJ1c3kiLCJ1bmRlZmluZWQiLCJsb2FkaW5nIiwib25DbGljayIsInJlc3VsdCIsIlByb21pc2UiLCJEZXRhaWxzRGlhbG9nQmFzZSIsInJvd3MiLCJsaXN0Q2xzIiwiY29weUNvbnRhaW5lZCIsImxvYWRpbmdSb3dzIiwiYmVmb3JlUm93cyIsInByaW1hcnkiLCJzZWNvbmRhcnkiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsIl9hJHNob3dDbG9zZUljb24iLCJzaG93Q2xvc2VJY29uIiwib25Db3B5U3VjY2VzcyIsIm9uQ29weUVycm9yIiwiX2EkZml4ZWQiLCJmaXhlZCIsInJlc3QiLCJsb2NhbGUiLCJjbGFzc2VzIiwicmVzb2x2ZWRQcmltYXJ5IiwiZG93bmxvYWQiLCJyZXNvbHZlZFNlY29uZGFyeSIsIkRldGFpbHNEaWFsb2ciXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FB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QzRDLE9BQU8sQ0FBQSxDQUFFLEVBQUVWLFNBQVMsQ0FBQztJQUN4Q0YsT0FBTyxFQUFFYSxlQUFlO0lBQ3hCWixTQUFTLEVBQUVjLGlCQUFpQjtJQUFBWixRQUFBLEVBQUEsQ0FFM0JKLFVBQVUsRUFDWHhDLElBQUEsQ0FBQ1csWUFBWSxFQUFBO01BQ1hnQyxTQUFTLEVBQUVOLE9BQU87TUFDbEJELElBQUksRUFBRUEsSUFBSTtNQUNWRSxhQUFhLEVBQUVBLGFBQWE7TUFDNUJQLE9BQU8sRUFBRUEsT0FBTztNQUNoQlEsV0FBVyxFQUFFQSxXQUFXO01BQ3hCUSxhQUFhLEVBQUVBLGFBQWE7TUFDNUJDLFdBQVcsRUFBRUE7SUFBVyxDQUFBLENBQ3hCLEVBQ0RKLFFBQVE7RUFBQSxDQUFBLENBQUEsQ0FDRTtBQUVqQixDQUFDO0FBRUQsT0FBTyxJQUFNYSxhQUFhLGdCQUFHdEQsSUFBSSxDQUFDZ0MsaUJBQWlCLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvRGlhbG9nL0RldGFpbHNEaWFsb2cvRGV0YWlsc0RpYWxvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQ29uZmlnUHJvdmlkZXInO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0ljb25zJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQmFzZURpYWxvZyB9IGZyb20gJy4uL0Jhc2VEaWFsb2cnO1xuaW1wb3J0IHsgRGVzY3JpcHRpb25zIH0gZnJvbSAnLi4vRGVzY3JpcHRpb25zJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBQUkVGSVggPSAnZGV0YWlscy1kaWFsb2cnO1xuY29uc3QgRE9XTkxPQURfSUNPTl9TSVpFID0gMjA7XG4vKipcbiAqIEZpbGwgdGhlIGRldGFpbHMtZmFtaWx5IGRlZmF1bHQgZG93bmxvYWQgQ1RBIOKAlCBpY29uLCBsYWJlbCwgYW5kIHNlY29uZGFyeVxuICogdG9uZSDigJQgbGVhdmluZyBhbnkgZXhwbGljaXRseS1zZXQgZmllbGQgdW50b3VjaGVkLiBUaGUgY29uc3VtZXIgdXN1YWxseVxuICogb25seSB3aXJlcyBgb25DbGlja2AuXG4gKi9cbmNvbnN0IHdpdGhEb3dubG9hZERlZmF1bHRzID0gKGFjdGlvbiwgZG93bmxvYWRMYWJlbCkgPT4gYWN0aW9uICYmIE9iamVjdC5hc3NpZ24oeyBpY29uOiBfanN4KEljb25zLCB7IG5hbWU6ICdtZW51RGVwb3NpdCcsIHNpemU6IERPV05MT0FEX0lDT05fU0laRSB9KSwgY29sb3I6ICdzZWNvbmRhcnknLCBsYWJlbDogZG93bmxvYWRMYWJlbCB9LCBhY3Rpb24pO1xuLyoqXG4gKiBXcmFwcyBhbiBhY3Rpb24gc28gYSBQcm9taXNlLXJldHVybmluZyBgb25DbGlja2AgZHJpdmVzIHRoZSBidXR0b24nc1xuICogbG9hZGluZyBzdGF0ZSB1bnRpbCBpdCBzZXR0bGVzIChlcnJvcnMgYXJlIHJldGhyb3duIHRvIHRoZSBjb25zb2xlIOKAlCB0aGVcbiAqIGNhbGxlciBvd25zIHN1cmZhY2luZyB0aGVtKS5cbiAqL1xuY29uc3QgdXNlQXN5bmNBY3Rpb24gPSAoYWN0aW9uKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IFtidXN5LCBzZXRCdXN5XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBpZiAoIWFjdGlvbilcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhY3Rpb24pLCB7IGxvYWRpbmc6IChfYSA9IGFjdGlvbi5sb2FkaW5nKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBidXN5LCBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSAoX2EgPSBhY3Rpb24ub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoYWN0aW9uKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgc2V0QnVzeSh0cnVlKTtcbiAgICAgICAgICAgICAgICB2b2lkIHJlc3VsdC5maW5hbGx5KCgpID0+IHNldEJ1c3koZmFsc2UpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSB9KTtcbn07XG4vKipcbiAqIFJlYWQtb25seSBkZXRhaWxzIHNjZW5hcmlvIHNoZWxsIOKAlCBgQmFzZURpYWxvZ2AgKyBgRGVzY3JpcHRpb25zYCwgd2l0aCB0aGVcbiAqIGRldGFpbHMtZmFtaWx5IHNwZWMgKEZpZ21hIDM5OTU2LTk4OTcpIHNjb3BlZCBvbiB0b3A6IHRpdGxl4oaUcm93cyBnYXAgMCBhbmRcbiAqIGNvbXBhY3Qgcm93cy4gTWlycm9ycyB0aGUgbGVnYWN5IGBNb2RhbC9EZXRhaWxzYCBjb250cmFjdCB1c2VkIGJ5IHRoZVxuICogVHJhbnNhY3Rpb25zIHJlY2VpcHRzOiBhcmJpdHJhcnkgUmVhY3ROb2RlIHJvdyB2YWx1ZXMsIGEgYmVmb3JlLXJvd3Mgc2xvdCxcbiAqIGFuZCBhc3luYy1sb2FkaW5nIENUQXMuIENvcHlhYmxlIHJvd3Mgc3VyZmFjZSBgb25Db3B5U3VjY2Vzc2AvYG9uQ29weUVycm9yYFxuICog4oCUIHRoZSBzaGVsbCBzaG93cyBubyB0b2FzdCBpdHNlbGYuXG4gKi9cbmNvbnN0IERldGFpbHNEaWFsb2dCYXNlID0gKF9hKSA9PiB7XG4gICAgdmFyIHsgcm93cywgbGlzdENscywgY29weUNvbnRhaW5lZCwgbG9hZGluZywgbG9hZGluZ1Jvd3MsIGJlZm9yZVJvd3MsIHByaW1hcnksIHNlY29uZGFyeSwgY2xhc3NOYW1lLCBjaGlsZHJlbiwgc2hvd0Nsb3NlSWNvbiA9IHRydWUsIG9uQ29weVN1Y2Nlc3MsIG9uQ29weUVycm9yLCBcbiAgICAvLyBEZXRhaWxzIGxpc3RzIGNhbiBiZSBsb25nIOKAlCBwaW4gdGhlIHRpdGxlICsgRG93bmxvYWQsIHNjcm9sbCB0aGUgcm93cy5cbiAgICBmaXhlZCA9IHRydWUgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJyb3dzXCIsIFwibGlzdENsc1wiLCBcImNvcHlDb250YWluZWRcIiwgXCJsb2FkaW5nXCIsIFwibG9hZGluZ1Jvd3NcIiwgXCJiZWZvcmVSb3dzXCIsIFwicHJpbWFyeVwiLCBcInNlY29uZGFyeVwiLCBcImNsYXNzTmFtZVwiLCBcImNoaWxkcmVuXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcIm9uQ29weVN1Y2Nlc3NcIiwgXCJvbkNvcHlFcnJvclwiLCBcImZpeGVkXCJdKTtcbiAgICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoJ0RldGFpbHNEaWFsb2cnKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhQUkVGSVgpO1xuICAgIGNvbnN0IHJlc29sdmVkUHJpbWFyeSA9IHVzZUFzeW5jQWN0aW9uKHdpdGhEb3dubG9hZERlZmF1bHRzKHByaW1hcnksIGxvY2FsZS5kb3dubG9hZCkpO1xuICAgIGNvbnN0IHJlc29sdmVkU2Vjb25kYXJ5ID0gdXNlQXN5bmNBY3Rpb24oc2Vjb25kYXJ5KTtcbiAgICByZXR1cm4gKF9qc3hzKEJhc2VEaWFsb2csIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgc2hvd0Nsb3NlSWNvbjogc2hvd0Nsb3NlSWNvbiwgZml4ZWQ6IGZpeGVkLCBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpLCBwcmltYXJ5OiByZXNvbHZlZFByaW1hcnksIHNlY29uZGFyeTogcmVzb2x2ZWRTZWNvbmRhcnksIGNoaWxkcmVuOiBbYmVmb3JlUm93cywgX2pzeChEZXNjcmlwdGlvbnMsIHsgY2xhc3NOYW1lOiBsaXN0Q2xzLCByb3dzOiByb3dzLCBjb3B5Q29udGFpbmVkOiBjb3B5Q29udGFpbmVkLCBsb2FkaW5nOiBsb2FkaW5nLCBsb2FkaW5nUm93czogbG9hZGluZ1Jvd3MsIG9uQ29weVN1Y2Nlc3M6IG9uQ29weVN1Y2Nlc3MsIG9uQ29weUVycm9yOiBvbkNvcHlFcnJvciB9KSwgY2hpbGRyZW5dIH0pKSk7XG59O1xuZXhwb3J0IGNvbnN0IERldGFpbHNEaWFsb2cgPSBtZW1vKERldGFpbHNEaWFsb2dCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -20,6 +20,14 @@ export interface DetailsDialogProps extends Omit<BaseDialogProps, 'preset' | 'pr
20
20
  * bare glyph. Defaults to `false`.
21
21
  */
22
22
  copyContained?: boolean;
23
+ /**
24
+ * Render placeholder rows instead of `rows` — for the window between opening
25
+ * the dialog and the details arriving. Forwarded to `Descriptions`, which
26
+ * owns the placeholder's shape; pass the still-empty `rows` straight through.
27
+ */
28
+ loading?: boolean;
29
+ /** Placeholder row count while `loading`. Defaults to 6. */
30
+ loadingRows?: number;
23
31
  /** Content rendered between the description and the rows (alerts, QR cards…). */
24
32
  beforeRows?: ReactNode;
25
33
  /** Primary action; an async `onClick` shows the built-in loading spinner. */