@1money/component-ui 0.0.28 → 0.0.30

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/README.md CHANGED
@@ -36,8 +36,8 @@ import {
36
36
  Checkbox,
37
37
  CheckboxGroup,
38
38
  Grid,
39
- Notification,
40
39
  Icons,
40
+ notification,
41
41
  Tag,
42
42
  Tooltip,
43
43
  } from '@1money/components-ui';
@@ -68,11 +68,20 @@ export function Example() {
68
68
  </button>
69
69
  <Tooltip anchorSelect="#help-trigger" body="More details" />
70
70
 
71
- <Notification
72
- status="success"
73
- title="Saved"
74
- body="Settings were updated."
75
- />
71
+ {/*
72
+ notification is a static API. Call it from event handlers,
73
+ effects, or other client-side actions.
74
+ */}
75
+ <Button
76
+ onClick={() =>
77
+ notification.success({
78
+ title: 'Saved',
79
+ body: 'Settings were updated.',
80
+ })
81
+ }
82
+ >
83
+ Show notification
84
+ </Button>
76
85
  </>
77
86
  );
78
87
  }
@@ -89,19 +98,58 @@ import { Spinner } from '@1money/components-ui/Spinner';
89
98
 
90
99
  The current source tree includes these component modules:
91
100
 
101
+ - `Accordion`
102
+ - `Alert`
92
103
  - `Button`
104
+ - `Calendar`
105
+ - `Carousel`
106
+ - `Cell`
93
107
  - `Checkbox`
94
108
  - `CheckboxGroup`
109
+ - `CoachMark`
110
+ - `Copy`
111
+ - `Dialog`
112
+ - `Divider`
113
+ - `Drawer`
114
+ - `Dropdown`
115
+ - `Empty`
95
116
  - `Flex`
96
117
  - `Grid`
97
118
  - `Icons`
119
+ - `Input`
120
+ - `Link`
121
+ - `Navigation`
122
+ - `Nav`
98
123
  - `Notification`
124
+ - `Pagination`
125
+ - `Popconfirm`
126
+ - `Portal`
127
+ - `ProForm`
128
+ - `Progress`
129
+ - `Radio`
130
+ - `RadioGroup`
131
+ - `ResizeObserver`
132
+ - `Segment`
133
+ - `Select`
134
+ - `Skeleton`
135
+ - `Slider`
99
136
  - `Space`
100
137
  - `Spinner`
138
+ - `Step`
139
+ - `Switch`
140
+ - `Table`
141
+ - `VirtualTable`
142
+ - `Tabs`
101
143
  - `Tag`
102
144
  - `Tooltip`
103
-
104
- The package manifest also defines additional subpath exports for published builds.
145
+ - `Tour`
146
+ - `Trigger`
147
+ - `Typography`
148
+ - `Upload`
149
+ - `UploadFileBar`
150
+ - `VirtualList`
151
+
152
+ The package manifest also defines matching subpath exports for published builds.
105
153
 
106
154
  ## Styling
107
155
 
@@ -11,7 +11,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import React, { memo, useState } from 'react';
12
12
  import { Calendar as PrimeCalendar } from 'primereact/calendar';
13
13
  import { useControlledState, useEventCallback } from '@1money/hooks';
14
- import Icons from '../Icons';
14
+ import { Icons } from '../Icons';
15
15
  import { default as classnames, joinCls } from '../../utils/classnames';
16
16
  import './style';
17
17
  var isSameDay = function isSameDay(d1, d2) {
@@ -124,4 +124,4 @@ export var Calendar = function Calendar(props) {
124
124
  };
125
125
  Calendar.displayName = 'Calendar';
126
126
  export default /*#__PURE__*/memo(Calendar);
127
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvQ2FsZW5kYXIvQ2FsZW5kYXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0NhbGVuZGFyL0NhbGVuZGFyLnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJSZWFjdCIsIm1lbW8iLCJ1c2VTdGF0ZSIsIkNhbGVuZGFyIiwiUHJpbWVDYWxlbmRhciIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJJY29ucyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsImlzU2FtZURheSIsImQxIiwiZDIiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldFJhbmdlRGF0ZVN0eWxlcyIsInBhcmFtcyIsInNlbGVjdGVkRGF0ZXMiLCJjbGFzc2VzIiwiX2EiLCJfYiIsIl9yZWYiLCJjb250ZXh0IiwiX3JlZjIiLCJkYXRlIiwiQXJyYXkiLCJpc0FycmF5IiwiY2VsbERhdGUiLCJEYXRlIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiaGFzUmFuZ2UiLCJpc1N0YXJ0IiwidW5kZWZpbmVkIiwiaXNFbmQiLCJpblJhbmdlIiwicHJvcHMiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwibWVzc2FnZUNscyIsImNsYXNzTmFtZSIsInBhbmVsQ2xhc3NOYW1lIiwibGFiZWwiLCJtZXNzYWdlIiwicmVxdWlyZWQiLCJzdWNjZXNzIiwiaW52YWxpZCIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiZGVmYXVsdFZhbHVlIiwidmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc2VsZWN0aW9uTW9kZSIsInNlbGVjdGlvbk1vZGUiLCJjb250ZW50V2lkdGgiLCJwYW5lbFN0eWxlIiwidmlld0RhdGVQcm9wIiwidmlld0RhdGUiLCJvblZpZXdEYXRlQ2hhbmdlIiwib25DaGFuZ2UiLCJyZWYiLCJyZXN0IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXREYXRlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsInNldFZpZXdEYXRlIiwiaGFuZGxlVmlld0RhdGVDaGFuZ2UiLCJoYW5kbGVDaGFuZ2UiLCJldmVudCIsIkV2ZW50IiwiYnViYmxlcyIsIm9yaWdpbmFsRXZlbnQiLCJ0YXJnZXQiLCJkaXNwYXRjaEV2ZW50IiwiY2hpbGRyZW4iLCJhc3NpZ24iLCJwcmV2SWNvbiIsIm5hbWUiLCJuZXh0SWNvbiIsInB0IiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJB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YXIvQ2FsZW5kYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2FsZW5kYXIgYXMgUHJpbWVDYWxlbmRhciB9IGZyb20gJ3ByaW1lcmVhY3QvY2FsZW5kYXInO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgSWNvbnMgZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgaXNTYW1lRGF5ID0gKGQxLCBkMikgPT4ge1xuICAgIGlmICghZDEgfHwgIWQyKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIChkMS5nZXRGdWxsWWVhcigpID09PSBkMi5nZXRGdWxsWWVhcigpICYmXG4gICAgICAgIGQxLmdldE1vbnRoKCkgPT09IGQyLmdldE1vbnRoKCkgJiZcbiAgICAgICAgZDEuZ2V0RGF0ZSgpID09PSBkMi5nZXREYXRlKCkpO1xufTtcbmNvbnN0IGdldFJhbmdlRGF0ZVN0eWxlcyA9IChwYXJhbXMsIHNlbGVjdGVkRGF0ZXMsIGNsYXNzZXMpID0+IHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgY29udGV4dCB9ID0gcGFyYW1zIHx8IHt9O1xuICAgIGNvbnN0IHsgZGF0ZSB9ID0gY29udGV4dCB8fCB7fTtcbiAgICBpZiAoIWRhdGUgfHwgIUFycmF5LmlzQXJyYXkoc2VsZWN0ZWREYXRlcykpXG4gICAgICAgIHJldHVybiAnJztcbiAgICBjb25zdCBjZWxsRGF0ZSA9IG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCwgZGF0ZS5kYXkpO1xuICAgIGNvbnN0IGhhc1JhbmdlID0gc2VsZWN0ZWREYXRlc1swXSAmJlxuICAgICAgICBzZWxlY3RlZERhdGVzWzFdICYmXG4gICAgICAgICFpc1NhbWVEYXkoc2VsZWN0ZWREYXRlc1swXSwgc2VsZWN0ZWREYXRlc1sxXSk7XG4gICAgY29uc3QgaXNTdGFydCA9IGhhc1JhbmdlICYmIGlzU2FtZURheShjZWxsRGF0ZSwgKF9hID0gc2VsZWN0ZWREYXRlc1swXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBpc0VuZCA9IGhhc1JhbmdlICYmIGlzU2FtZURheShjZWxsRGF0ZSwgKF9iID0gc2VsZWN0ZWREYXRlc1sxXSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBpblJhbmdlID0gc2VsZWN0ZWREYXRlc1swXSAmJlxuICAgICAgICBzZWxlY3RlZERhdGVzWzFdICYmXG4gICAgICAgIGNlbGxEYXRlID4gc2VsZWN0ZWREYXRlc1swXSAmJlxuICAgICAgICBjZWxsRGF0ZSA8IHNlbGVjdGVkRGF0ZXNbMV07XG4gICAgcmV0dXJuIGpvaW5DbHMoaXNTdGFydCAmJiBjbGFzc2VzKCdwLXN0YXJ0JyksIGlzRW5kICYmIGNsYXNzZXMoJ3AtZW5kJyksIGluUmFuZ2UgJiYgY2xhc3NlcygncC1yYW5nZScpKTtcbn07XG5leHBvcnQgY29uc3QgQ2FsZW5kYXIgPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMgPSAnY2FsZW5kYXInLCB3cmFwcGVyQ2xzLCBsYWJlbENscywgbWVzc2FnZUNscywgY2xhc3NOYW1lLCBwYW5lbENsYXNzTmFtZSwgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBzdWNjZXNzLCBpbnZhbGlkLCBwbGFjZWhvbGRlciA9ICdNTS9ERC9ZWVlZJywgZGVmYXVsdFZhbHVlLCB2YWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHNlbGVjdGlvbk1vZGUgPSAnc2luZ2xlJywgY29udGVudFdpZHRoLCBwYW5lbFN0eWxlLCB2aWV3RGF0ZTogdmlld0RhdGVQcm9wLCBvblZpZXdEYXRlQ2hhbmdlLCBvbkNoYW5nZSwgcmVmIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wicHJlZml4Q2xzXCIsIFwid3JhcHBlckNsc1wiLCBcImxhYmVsQ2xzXCIsIFwibWVzc2FnZUNsc1wiLCBcImNsYXNzTmFtZVwiLCBcInBhbmVsQ2xhc3NOYW1lXCIsIFwibGFiZWxcIiwgXCJtZXNzYWdlXCIsIFwicmVxdWlyZWRcIiwgXCJzdWNjZXNzXCIsIFwiaW52YWxpZFwiLCBcInBsYWNlaG9sZGVyXCIsIFwiZGVmYXVsdFZhbHVlXCIsIFwidmFsdWVcIiwgXCJzaXplXCIsIFwic2VsZWN0aW9uTW9kZVwiLCBcImNvbnRlbnRXaWR0aFwiLCBcInBhbmVsU3R5bGVcIiwgXCJ2aWV3RGF0ZVwiLCBcIm9uVmlld0RhdGVDaGFuZ2VcIiwgXCJvbkNoYW5nZVwiLCBcInJlZlwiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbZGF0ZSwgc2V0RGF0ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogbnVsbCwgdmFsdWUpO1xuICAgIGNvbnN0IFt2aWV3RGF0ZSwgc2V0Vmlld0RhdGVdID0gdXNlU3RhdGUodmlld0RhdGVQcm9wICE9PSBudWxsICYmIHZpZXdEYXRlUHJvcCAhPT0gdm9pZCAwID8gdmlld0RhdGVQcm9wIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBoYW5kbGVWaWV3RGF0ZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgc2V0Vmlld0RhdGUoZS52YWx1ZSk7XG4gICAgICAgIG9uVmlld0RhdGVDaGFuZ2UgPT09IG51bGwgfHwgb25WaWV3RGF0ZUNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WaWV3RGF0ZUNoYW5nZShlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHNldERhdGUoZS52YWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShlKTtcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KTtcbiAgICAgICAgKF9iID0gKF9hID0gZS5vcmlnaW5hbEV2ZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGFyZ2V0KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IHJlZjogcmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3dyYXBwZXInLCB3cmFwcGVyQ2xzKSwgY2hpbGRyZW46IFtsYWJlbCAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJywgam9pbkNscyhyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENscykpLCBjaGlsZHJlbjogbGFiZWwgfSkpLCBfanN4KFByaW1lQ2FsZW5kYXIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgaW52YWxpZDogaW52YWxpZCwgdmFsdWU6IGRhdGUsIHZpZXdEYXRlOiB2aWV3RGF0ZSwgb25WaWV3RGF0ZUNoYW5nZTogaGFuZGxlVmlld0RhdGVDaGFuZ2UsIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIHBhbmVsU3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFuZWxTdHlsZSksIHsgJy0tY29udGVudC13aWR0aCc6IGNvbnRlbnRXaWR0aCB9KSwgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgam9pbkNscyhjbGFzc05hbWUsIGNsYXNzZXMoc2l6ZSksIGRhdGUgJiYgY2xhc3NlcygnZmlsbGVkJyksIHN1Y2Nlc3MgJiYgY2xhc3Nlcygnc3VjY2VzcycpKSksIHBhbmVsQ2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbCcsIHBhbmVsQ2xhc3NOYW1lKSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBwcmV2SWNvbjogX2pzeChJY29ucywgeyBuYW1lOiBcImNoZXZyb25MZWZ0XCIsIHNpemU6IDI0IH0pLCBuZXh0SWNvbjogX2pzeChJY29ucywgeyBuYW1lOiBcImNoZXZyb25SaWdodFwiLCBzaXplOiAyNCB9KSwgc2VsZWN0aW9uTW9kZTogc2VsZWN0aW9uTW9kZSwgcHQ6IHNlbGVjdGlvbk1vZGUgPT09ICdyYW5nZSdcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXk6IHBhcmFtcyA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogZ2V0UmFuZ2VEYXRlU3R5bGVzKHBhcmFtcywgZGF0ZSwgY2xhc3NlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCB9KSksIG1lc3NhZ2UgJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdtZXNzYWdlJywgam9pbkNscyhzdWNjZXNzICYmIGNsYXNzZXMoJ21lc3NhZ2Utc3VjY2VzcycpLCBpbnZhbGlkICYmIGNsYXNzZXMoJ21lc3NhZ2UtZXJyb3InKSwgbWVzc2FnZUNscykpLCBjaGlsZHJlbjogbWVzc2FnZSB9KSldIH0pKTtcbn07XG5DYWxlbmRhci5kaXNwbGF5TmFtZSA9ICdDYWxlbmRhcic7XG5leHBvcnQgZGVmYXVsdCBtZW1vKENhbGVuZGFyKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
127
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvQ2FsZW5kYXIvQ2FsZW5kYXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0NhbGVuZGFyL0NhbGVuZGFyLnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJSZWFjdCIsIm1lbW8iLCJ1c2VTdGF0ZSIsIkNhbGVuZGFyIiwiUHJpbWVDYWxlbmRhciIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJJY29ucyIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwiam9pbkNscyIsImlzU2FtZURheSIsImQxIiwiZDIiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldFJhbmdlRGF0ZVN0eWxlcyIsInBhcmFtcyIsInNlbGVjdGVkRGF0ZXMiLCJjbGFzc2VzIiwiX2EiLCJfYiIsIl9yZWYiLCJjb250ZXh0IiwiX3JlZjIiLCJkYXRlIiwiQXJyYXkiLCJpc0FycmF5IiwiY2VsbERhdGUiLCJEYXRlIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiaGFzUmFuZ2UiLCJpc1N0YXJ0IiwidW5kZWZpbmVkIiwiaXNFbmQiLCJpblJhbmdlIiwicHJvcHMiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwibWVzc2FnZUNscyIsImNsYXNzTmFtZSIsInBhbmVsQ2xhc3NOYW1lIiwibGFiZWwiLCJtZXNzYWdlIiwicmVxdWlyZWQiLCJzdWNjZXNzIiwiaW52YWxpZCIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiZGVmYXVsdFZhbHVlIiwidmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc2VsZWN0aW9uTW9kZSIsInNlbGVjdGlvbk1vZGUiLCJjb250ZW50V2lkdGgiLCJwYW5lbFN0eWxlIiwidmlld0RhdGVQcm9wIiwidmlld0RhdGUiLCJvblZpZXdEYXRlQ2hhbmdlIiwib25DaGFuZ2UiLCJyZWYiLCJyZXN0IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXREYXRlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsInNldFZpZXdEYXRlIiwiaGFuZGxlVmlld0RhdGVDaGFuZ2UiLCJoYW5kbGVDaGFuZ2UiLCJldmVudCIsIkV2ZW50IiwiYnViYmxlcyIsIm9yaWdpbmFsRXZlbnQiLCJ0YXJnZXQiLCJkaXNwYXRjaEV2ZW50IiwiY2hpbGRyZW4iLCJhc3NpZ24iLCJwcmV2SWNvbiIsIm5hbWUiLCJuZXh0SWNvbiIsInB0IiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJB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YXIvQ2FsZW5kYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2FsZW5kYXIgYXMgUHJpbWVDYWxlbmRhciB9IGZyb20gJ3ByaW1lcmVhY3QvY2FsZW5kYXInO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IGlzU2FtZURheSA9IChkMSwgZDIpID0+IHtcbiAgICBpZiAoIWQxIHx8ICFkMilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAoZDEuZ2V0RnVsbFllYXIoKSA9PT0gZDIuZ2V0RnVsbFllYXIoKSAmJlxuICAgICAgICBkMS5nZXRNb250aCgpID09PSBkMi5nZXRNb250aCgpICYmXG4gICAgICAgIGQxLmdldERhdGUoKSA9PT0gZDIuZ2V0RGF0ZSgpKTtcbn07XG5jb25zdCBnZXRSYW5nZURhdGVTdHlsZXMgPSAocGFyYW1zLCBzZWxlY3RlZERhdGVzLCBjbGFzc2VzKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IGNvbnRleHQgfSA9IHBhcmFtcyB8fCB7fTtcbiAgICBjb25zdCB7IGRhdGUgfSA9IGNvbnRleHQgfHwge307XG4gICAgaWYgKCFkYXRlIHx8ICFBcnJheS5pc0FycmF5KHNlbGVjdGVkRGF0ZXMpKVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgY29uc3QgY2VsbERhdGUgPSBuZXcgRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGgsIGRhdGUuZGF5KTtcbiAgICBjb25zdCBoYXNSYW5nZSA9IHNlbGVjdGVkRGF0ZXNbMF0gJiZcbiAgICAgICAgc2VsZWN0ZWREYXRlc1sxXSAmJlxuICAgICAgICAhaXNTYW1lRGF5KHNlbGVjdGVkRGF0ZXNbMF0sIHNlbGVjdGVkRGF0ZXNbMV0pO1xuICAgIGNvbnN0IGlzU3RhcnQgPSBoYXNSYW5nZSAmJiBpc1NhbWVEYXkoY2VsbERhdGUsIChfYSA9IHNlbGVjdGVkRGF0ZXNbMF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgaXNFbmQgPSBoYXNSYW5nZSAmJiBpc1NhbWVEYXkoY2VsbERhdGUsIChfYiA9IHNlbGVjdGVkRGF0ZXNbMV0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgaW5SYW5nZSA9IHNlbGVjdGVkRGF0ZXNbMF0gJiZcbiAgICAgICAgc2VsZWN0ZWREYXRlc1sxXSAmJlxuICAgICAgICBjZWxsRGF0ZSA+IHNlbGVjdGVkRGF0ZXNbMF0gJiZcbiAgICAgICAgY2VsbERhdGUgPCBzZWxlY3RlZERhdGVzWzFdO1xuICAgIHJldHVybiBqb2luQ2xzKGlzU3RhcnQgJiYgY2xhc3NlcygncC1zdGFydCcpLCBpc0VuZCAmJiBjbGFzc2VzKCdwLWVuZCcpLCBpblJhbmdlICYmIGNsYXNzZXMoJ3AtcmFuZ2UnKSk7XG59O1xuZXhwb3J0IGNvbnN0IENhbGVuZGFyID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzID0gJ2NhbGVuZGFyJywgd3JhcHBlckNscywgbGFiZWxDbHMsIG1lc3NhZ2VDbHMsIGNsYXNzTmFtZSwgcGFuZWxDbGFzc05hbWUsIGxhYmVsLCBtZXNzYWdlLCByZXF1aXJlZCwgc3VjY2VzcywgaW52YWxpZCwgcGxhY2Vob2xkZXIgPSAnTU0vREQvWVlZWScsIGRlZmF1bHRWYWx1ZSwgdmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzZWxlY3Rpb25Nb2RlID0gJ3NpbmdsZScsIGNvbnRlbnRXaWR0aCwgcGFuZWxTdHlsZSwgdmlld0RhdGU6IHZpZXdEYXRlUHJvcCwgb25WaWV3RGF0ZUNoYW5nZSwgb25DaGFuZ2UsIHJlZiB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInByZWZpeENsc1wiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJjbGFzc05hbWVcIiwgXCJwYW5lbENsYXNzTmFtZVwiLCBcImxhYmVsXCIsIFwibWVzc2FnZVwiLCBcInJlcXVpcmVkXCIsIFwic3VjY2Vzc1wiLCBcImludmFsaWRcIiwgXCJwbGFjZWhvbGRlclwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcInZhbHVlXCIsIFwic2l6ZVwiLCBcInNlbGVjdGlvbk1vZGVcIiwgXCJjb250ZW50V2lkdGhcIiwgXCJwYW5lbFN0eWxlXCIsIFwidmlld0RhdGVcIiwgXCJvblZpZXdEYXRlQ2hhbmdlXCIsIFwib25DaGFuZ2VcIiwgXCJyZWZcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW2RhdGUsIHNldERhdGVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSAhPT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09IHZvaWQgMCA/IGRlZmF1bHRWYWx1ZSA6IG51bGwsIHZhbHVlKTtcbiAgICBjb25zdCBbdmlld0RhdGUsIHNldFZpZXdEYXRlXSA9IHVzZVN0YXRlKHZpZXdEYXRlUHJvcCAhPT0gbnVsbCAmJiB2aWV3RGF0ZVByb3AgIT09IHZvaWQgMCA/IHZpZXdEYXRlUHJvcCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgaGFuZGxlVmlld0RhdGVDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIHNldFZpZXdEYXRlKGUudmFsdWUpO1xuICAgICAgICBvblZpZXdEYXRlQ2hhbmdlID09PSBudWxsIHx8IG9uVmlld0RhdGVDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmlld0RhdGVDaGFuZ2UoZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBzZXREYXRlKGUudmFsdWUpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICAgIChfYiA9IChfYSA9IGUub3JpZ2luYWxFdmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRhcmdldCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyByZWY6IHJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCd3cmFwcGVyJywgd3JhcHBlckNscyksIGNoaWxkcmVuOiBbbGFiZWwgJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIGpvaW5DbHMocmVxdWlyZWQgJiYgY2xhc3NlcygnbGFiZWwtcmVxdWlyZWQnKSwgbGFiZWxDbHMpKSwgY2hpbGRyZW46IGxhYmVsIH0pKSwgX2pzeChQcmltZUNhbGVuZGFyLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IGludmFsaWQ6IGludmFsaWQsIHZhbHVlOiBkYXRlLCB2aWV3RGF0ZTogdmlld0RhdGUsIG9uVmlld0RhdGVDaGFuZ2U6IGhhbmRsZVZpZXdEYXRlQ2hhbmdlLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBwYW5lbFN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHBhbmVsU3R5bGUpLCB7ICctLWNvbnRlbnQtd2lkdGgnOiBjb250ZW50V2lkdGggfSksIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY2xhc3NOYW1lLCBjbGFzc2VzKHNpemUpLCBkYXRlICYmIGNsYXNzZXMoJ2ZpbGxlZCcpLCBzdWNjZXNzICYmIGNsYXNzZXMoJ3N1Y2Nlc3MnKSkpLCBwYW5lbENsYXNzTmFtZTogY2xhc3NlcygncGFuZWwnLCBwYW5lbENsYXNzTmFtZSksIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcHJldkljb246IF9qc3goSWNvbnMsIHsgbmFtZTogXCJjaGV2cm9uTGVmdFwiLCBzaXplOiAyNCB9KSwgbmV4dEljb246IF9qc3goSWNvbnMsIHsgbmFtZTogXCJjaGV2cm9uUmlnaHRcIiwgc2l6ZTogMjQgfSksIHNlbGVjdGlvbk1vZGU6IHNlbGVjdGlvbk1vZGUsIHB0OiBzZWxlY3Rpb25Nb2RlID09PSAncmFuZ2UnXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF5OiBwYXJhbXMgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGdldFJhbmdlRGF0ZVN0eWxlcyhwYXJhbXMsIGRhdGUsIGNsYXNzZXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQgfSkpLCBtZXNzYWdlICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIGpvaW5DbHMoc3VjY2VzcyAmJiBjbGFzc2VzKCdtZXNzYWdlLXN1Y2Nlc3MnKSwgaW52YWxpZCAmJiBjbGFzc2VzKCdtZXNzYWdlLWVycm9yJyksIG1lc3NhZ2VDbHMpKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSkpXSB9KSk7XG59O1xuQ2FsZW5kYXIuZGlzcGxheU5hbWUgPSAnQ2FsZW5kYXInO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhDYWxlbmRhcik7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9