@1money/component-ui 0.0.76 → 0.0.78
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/es/components/Dialog/Dialog.js +11 -3
- package/es/components/Dialog/interface.d.ts +1 -0
- package/es/components/Grid/Col.js +60 -4
- package/es/components/Grid/Grid.d.ts +4 -1
- package/es/components/Grid/Grid.js +5 -4
- package/es/components/Grid/Row.js +7 -5
- package/es/components/Grid/constants.d.ts +5 -3
- package/es/components/Grid/constants.js +13 -4
- package/es/components/Grid/helper.d.ts +8 -6
- package/es/components/Grid/helper.js +63 -15
- package/es/components/Grid/interface.d.ts +2 -1
- package/es/components/Grid/style/Grid.css +240 -196
- package/es/components/ProForm/ProForm.d.ts +1 -1
- package/es/components/ProForm/ProForm.js +4 -5
- package/es/components/ProForm/ProFormDependency.d.ts +2 -1
- package/es/components/ProForm/ProFormDependency.js +1 -1
- package/es/components/ProForm/ProFormItem.d.ts +7 -2
- package/es/components/ProForm/ProFormItem.js +1 -1
- package/es/components/ProForm/ProFormList.d.ts +6 -1
- package/es/components/ProForm/ProFormList.js +13 -5
- package/es/components/ProForm/SchemaForm.d.ts +1 -1
- package/es/components/ProForm/SchemaForm.js +8 -5
- package/es/components/ProForm/constants.d.ts +1 -1
- package/es/components/ProForm/constants.js +5 -2
- package/es/components/ProForm/context.d.ts +8 -7
- package/es/components/ProForm/context.js +1 -1
- package/es/components/ProForm/core/constants.d.ts +1 -1
- package/es/components/ProForm/core/constants.js +2 -2
- package/es/components/ProForm/core/devWarning.d.ts +1 -3
- package/es/components/ProForm/core/devWarning.js +5 -15
- package/es/components/ProForm/core/formStore.d.ts +4 -4
- package/es/components/ProForm/core/formStore.js +1 -1
- package/es/components/ProForm/core/hooks/useForm.d.ts +1 -1
- package/es/components/ProForm/core/hooks/useForm.js +34 -9
- package/es/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
- package/es/components/ProForm/core/hooks/useFormCore.js +17 -123
- package/es/components/ProForm/core/interface.d.ts +70 -91
- package/es/components/ProForm/core/namePathType.d.ts +25 -0
- package/es/components/ProForm/core/namePathType.js +2 -0
- package/es/components/ProForm/core/pathUtils.d.ts +5 -3
- package/es/components/ProForm/core/pathUtils.js +19 -1
- package/es/components/ProForm/core/runRules.d.ts +8 -17
- package/es/components/ProForm/core/runRules.js +22 -129
- package/es/components/ProForm/core/useFormItem.d.ts +1 -1
- package/es/components/ProForm/core/useFormItem.js +14 -66
- package/es/components/ProForm/core/validationError.d.ts +2 -2
- package/es/components/ProForm/core/validationError.js +1 -1
- package/es/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormCheckboxGroup.js +1 -1
- package/es/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormDatePicker.js +1 -1
- package/es/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
- package/es/components/ProForm/fields/ProFormFieldSet.js +5 -7
- package/es/components/ProForm/fields/ProFormPassword.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormRadioGroup.js +1 -1
- package/es/components/ProForm/fields/ProFormSelect.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormSelect.js +1 -1
- package/es/components/ProForm/fields/ProFormSlider.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormText.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormUpload.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormUpload.js +1 -1
- package/es/components/ProForm/fields/createProFormField.d.ts +8 -2
- package/es/components/ProForm/fields/createProFormField.js +3 -3
- package/es/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
- package/es/components/ProForm/hooks/useFieldRequest.js +1 -1
- package/es/components/ProForm/hooks/useUrlSync.d.ts +8 -7
- package/es/components/ProForm/hooks/useUrlSync.js +1 -1
- package/es/components/ProForm/index.d.ts +35 -26
- package/es/components/ProForm/index.js +1 -1
- package/es/components/ProForm/interface.d.ts +96 -91
- package/es/components/ProForm/layouts/DialogForm.d.ts +1 -1
- package/es/components/ProForm/layouts/DialogForm.js +2 -4
- package/es/components/ProForm/layouts/DrawerForm.d.ts +1 -1
- package/es/components/ProForm/layouts/DrawerForm.js +1 -1
- package/es/components/ProForm/layouts/QueryFilter.d.ts +1 -1
- package/es/components/ProForm/layouts/QueryFilter.js +1 -1
- package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +1 -1
- package/es/components/ProForm/utils.d.ts +8 -8
- package/es/components/ProForm/utils.js +1 -1
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/utils/devWarn.d.ts +4 -0
- package/es/utils/devWarn.js +23 -0
- package/lib/components/Dialog/Dialog.js +11 -3
- package/lib/components/Dialog/interface.d.ts +1 -0
- package/lib/components/Grid/Col.js +59 -3
- package/lib/components/Grid/Grid.d.ts +4 -1
- package/lib/components/Grid/Grid.js +5 -4
- package/lib/components/Grid/Row.js +6 -4
- package/lib/components/Grid/constants.d.ts +5 -3
- package/lib/components/Grid/constants.js +14 -5
- package/lib/components/Grid/helper.d.ts +8 -6
- package/lib/components/Grid/helper.js +63 -15
- package/lib/components/Grid/interface.d.ts +2 -1
- package/lib/components/Grid/style/Grid.css +240 -196
- package/lib/components/ProForm/ProForm.d.ts +1 -1
- package/lib/components/ProForm/ProForm.js +3 -4
- package/lib/components/ProForm/ProFormDependency.d.ts +2 -1
- package/lib/components/ProForm/ProFormDependency.js +1 -1
- package/lib/components/ProForm/ProFormItem.d.ts +7 -2
- package/lib/components/ProForm/ProFormItem.js +1 -1
- package/lib/components/ProForm/ProFormList.d.ts +6 -1
- package/lib/components/ProForm/ProFormList.js +13 -5
- package/lib/components/ProForm/SchemaForm.d.ts +1 -1
- package/lib/components/ProForm/SchemaForm.js +8 -5
- package/lib/components/ProForm/constants.d.ts +1 -1
- package/lib/components/ProForm/constants.js +5 -2
- package/lib/components/ProForm/context.d.ts +8 -7
- package/lib/components/ProForm/context.js +1 -1
- package/lib/components/ProForm/core/constants.d.ts +1 -1
- package/lib/components/ProForm/core/constants.js +2 -2
- package/lib/components/ProForm/core/devWarning.d.ts +1 -3
- package/lib/components/ProForm/core/devWarning.js +23 -24
- package/lib/components/ProForm/core/formStore.d.ts +4 -4
- package/lib/components/ProForm/core/formStore.js +1 -1
- package/lib/components/ProForm/core/hooks/useForm.d.ts +1 -1
- package/lib/components/ProForm/core/hooks/useForm.js +34 -9
- package/lib/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
- package/lib/components/ProForm/core/hooks/useFormCore.js +16 -122
- package/lib/components/ProForm/core/interface.d.ts +70 -91
- package/lib/components/ProForm/core/namePathType.d.ts +25 -0
- package/lib/components/ProForm/core/namePathType.js +6 -0
- package/lib/components/ProForm/core/pathUtils.d.ts +5 -3
- package/lib/components/ProForm/core/pathUtils.js +20 -1
- package/lib/components/ProForm/core/runRules.d.ts +8 -17
- package/lib/components/ProForm/core/runRules.js +22 -130
- package/lib/components/ProForm/core/useFormItem.d.ts +1 -1
- package/lib/components/ProForm/core/useFormItem.js +17 -69
- package/lib/components/ProForm/core/validationError.d.ts +2 -2
- package/lib/components/ProForm/core/validationError.js +1 -1
- package/lib/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +1 -1
- package/lib/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormDatePicker.js +1 -1
- package/lib/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
- package/lib/components/ProForm/fields/ProFormFieldSet.js +5 -7
- package/lib/components/ProForm/fields/ProFormPassword.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormRadioGroup.js +1 -1
- package/lib/components/ProForm/fields/ProFormSelect.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormSelect.js +1 -1
- package/lib/components/ProForm/fields/ProFormSlider.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormText.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormUpload.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormUpload.js +1 -1
- package/lib/components/ProForm/fields/createProFormField.d.ts +8 -2
- package/lib/components/ProForm/fields/createProFormField.js +3 -3
- package/lib/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
- package/lib/components/ProForm/hooks/useFieldRequest.js +1 -1
- package/lib/components/ProForm/hooks/useUrlSync.d.ts +8 -7
- package/lib/components/ProForm/hooks/useUrlSync.js +1 -1
- package/lib/components/ProForm/index.d.ts +35 -26
- package/lib/components/ProForm/index.js +1 -1
- package/lib/components/ProForm/interface.d.ts +96 -91
- package/lib/components/ProForm/layouts/DialogForm.d.ts +1 -1
- package/lib/components/ProForm/layouts/DialogForm.js +2 -4
- package/lib/components/ProForm/layouts/DrawerForm.d.ts +1 -1
- package/lib/components/ProForm/layouts/DrawerForm.js +1 -1
- package/lib/components/ProForm/layouts/QueryFilter.d.ts +1 -1
- package/lib/components/ProForm/layouts/QueryFilter.js +1 -1
- package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/lib/components/ProForm/layouts/useOverlayForm.js +1 -1
- package/lib/components/ProForm/utils.d.ts +8 -8
- package/lib/components/ProForm/utils.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/utils/devWarn.d.ts +4 -0
- package/lib/utils/devWarn.js +31 -0
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +224 -74
- package/scripts/mcp-server/index.generated.json +1758 -100
|
@@ -177,6 +177,7 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
177
177
|
fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
|
|
178
178
|
_props$fixed = props.fixed,
|
|
179
179
|
fixed = _props$fixed === void 0 ? false : _props$fixed,
|
|
180
|
+
width = props.width,
|
|
180
181
|
title = props.title,
|
|
181
182
|
children = props.children,
|
|
182
183
|
illustration = props.illustration,
|
|
@@ -199,7 +200,7 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
199
200
|
footerStyle = props.footerStyle,
|
|
200
201
|
cancelButtonProps = props.cancelButtonProps,
|
|
201
202
|
okButtonProps = props.okButtonProps,
|
|
202
|
-
rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
|
|
203
|
+
rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "width", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
|
|
203
204
|
var dialogRef = useRef(null);
|
|
204
205
|
var titleId = useId();
|
|
205
206
|
var handleSetDialogRef = useCallback(function (node) {
|
|
@@ -269,6 +270,13 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
269
270
|
cancelButton: cancelButton,
|
|
270
271
|
okButton: okButton
|
|
271
272
|
});
|
|
273
|
+
// `width` is a convenience that sets the panel's width inline, overriding the
|
|
274
|
+
// `size` preset's class-level width. An explicit `style.width` still wins (it is
|
|
275
|
+
// spread last). Note: `width` is not meant to be combined with `fullWidth`, whose
|
|
276
|
+
// `max-width: none` / `width: 100%` rules govern sizing on their own.
|
|
277
|
+
var panelStyle = Object.assign({
|
|
278
|
+
width: width
|
|
279
|
+
}, style);
|
|
272
280
|
if (!open) return null;
|
|
273
281
|
return _jsx(Portal, {
|
|
274
282
|
children: _jsxs("div", {
|
|
@@ -287,7 +295,7 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
287
295
|
"aria-modal": "true",
|
|
288
296
|
"aria-labelledby": title ? titleId : undefined,
|
|
289
297
|
tabIndex: -1,
|
|
290
|
-
style:
|
|
298
|
+
style: panelStyle,
|
|
291
299
|
className: classNames(getClassName(prefixCls), getClassName(prefixCls, undefined, size), fullWidth && getClassName(prefixCls, undefined, DIALOG_MODIFIER.fullWidth), fixed && getClassName(prefixCls, undefined, DIALOG_MODIFIER.fixed), hasMedia && getClassName(prefixCls, undefined, DIALOG_MODIFIER.withMedia), className),
|
|
292
300
|
children: [closeControlNode, hasMedia && _jsx("div", {
|
|
293
301
|
className: getClassName(prefixCls, DIALOG_SLOT.media),
|
|
@@ -335,4 +343,4 @@ DialogBase.displayName = 'Dialog';
|
|
|
335
343
|
export var Dialog = /*#__PURE__*/memo(DialogBase);
|
|
336
344
|
Dialog.displayName = 'Dialog';
|
|
337
345
|
export default Dialog;
|
|
338
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2xhc3NOYW1lcyIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlUmVmIiwiQnV0dG9uIiwiSWNvbnMiLCJQb3J0YWwiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlIZWFkbGluZSIsImZpbGxSZWYiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJESUFMT0dfQ09OVFJPTF9UWVBFIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiRElBTE9HX0RFRkFVTFRTIiwiRElBTE9HX01PRElGSUVSIiwiRElBTE9HX05BTUVTUEFDRSIsIkRJQUxPR19TSVpFIiwiRElBTE9HX1NMT1QiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRGlhbG9nRm9jdXMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwidXNlRXNjYXBlQ2xvc2UiLCJlbmFibGVkIiwib25DbG9zZSIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsImVzY2FwZUtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWRvd25FdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJUeXBvZ3JhcGh5Tm9kZSIsIm5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNvbnRyb2wiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiYWN0aW9uQnV0dG9uIiwicmVzb2x2ZUZvb3Rlck5vZGUiLCJfcmVmMiIsImZvb3RlciIsImNhbmNlbEJ1dHRvbiIsIm9rQnV0dG9uIiwibGFyZ2UiLCJEaWFsb2dCYXNlIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwidGl0bGUiLCJtZWRpYSIsImNsb3NlSWNvbiIsImJhY2tJY29uIiwib25PayIsIm9uQ2FuY2VsIiwib25CYWNrIiwiX3Byb3BzJG9rVGV4dCIsIm9rVGV4dCIsIl9wcm9wcyRjYW5jZWxUZXh0IiwiY2FuY2VsVGV4dCIsInJvb3RTdHlsZSIsIndyYXBwZXJTdHlsZSIsImJvZHlTdHlsZSIsImhlYWRlclN0eWxlIiwiY29udGVudFN0eWxlIiwiZm9vdGVyU3R5bGUiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm9rQnV0dG9uUHJvcHMiLCJyZXN0IiwidGl0bGVJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsImhhbmRsZUNhbmNlbCIsImhhbmRsZU9rIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsImhhc01lZGlhIiwiY2xvc2VDb250cm9sTm9kZSIsImNsb3NlIiwiY29udHJvbEljb25TaXplIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImlsbHVzdHJhdGlvbk5vZGUiLCJ0aXRsZU5vZGUiLCJhcyIsImNoaWxkcmVuTm9kZSIsInN0cm9uZyIsImNhbmNlbCIsIm9rIiwiZm9vdGVyTm9kZSIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ0YWJJbmRleCIsIndpdGhNZWRpYSIsImlubmVyIiwiaGVhZGVyIiwiaWQiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJEaWFsb2ciXSwibWFwcGluZ3MiOiJB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QztnQkFBQWxDLFFBQUEsRUFDcEVtRTtjQUFTLENBQUEsQ0FFYixFQUNBRSxZQUFZLElBQ1h4SyxJQUFBLENBQUEsS0FBQSxFQUFBO2dCQUNFMEMsS0FBSyxFQUFFMEcsWUFBWTtnQkFDbkJuRCxTQUFTLEVBQUVqRSxZQUFZLENBQUNDLFNBQVMsRUFBRUgsV0FBVyxDQUFDd0osT0FBTyxDQUFDO2dCQUFBbkYsUUFBQSxFQUV0RHFFO2NBQVksQ0FBQSxDQUVoQjtZQUFBLENBQUEsQ0FDRyxFQUNMSSxVQUFVLElBQ1Q1SyxJQUFBLENBQUEsS0FBQSxFQUFBO2NBQ0UwQyxLQUFLLEVBQUUyRyxXQUFXO2NBQ2xCcEQsU0FBUyxFQUFFM0YsVUFBVSxDQUNuQjBCLFlBQVksQ0FBQ0MsU0FBUyxFQUFFSCxXQUFXLENBQUNpRixNQUFNLENBQUMsRUFDM0MvRSxZQUFZLENBQUNDLFNBQVMsRUFBRUgsV0FBVyxDQUFDaUYsTUFBTSxFQUFFMUIsSUFBSSxDQUFDLENBQ2xEO2NBQUFjLFFBQUEsRUFFQXlFO1lBQVUsQ0FBQSxDQUVkO1VBQUEsQ0FBQSxDQUNHO1FBQUEsQ0FBQSxDQUFBO01BQ0YsQ0FBQSxDQUNGO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FDQztBQUViLENBQUMsQ0FBQztBQUVGekQsVUFBVSxDQUFDb0UsV0FBVyxHQUFHLFFBQVE7QUFFakMsT0FBTyxJQUFNQyxNQUFNLGdCQUFHL0ssSUFBSSxDQUFDMEcsVUFBVSxDQUFDO0FBRXRDcUUsTUFBTSxDQUFDRCxXQUFXLEdBQUcsUUFBUTtBQUU3QixlQUFlQyxNQUFNIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmLCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUhlYWRsaW5lIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IERJQUxPR19BQ1RJT05fS0lORCwgRElBTE9HX0NPTlRST0xfTEFCRUxTLCBESUFMT0dfQ09OVFJPTF9UWVBFLCBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTLCBESUFMT0dfREVGQVVMVF9JQ09OUywgRElBTE9HX0RFRkFVTFRfUFJFRklYLCBESUFMT0dfREVGQVVMVFMsIERJQUxPR19NT0RJRklFUiwgRElBTE9HX05BTUVTUEFDRSwgRElBTE9HX1NJWkUsIERJQUxPR19TTE9ULCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5sZXQgc2Nyb2xsTG9ja0NvdW50ID0gMDtcbmNvbnN0IGdldENsYXNzTmFtZSA9IChwcmVmaXhDbHMsIHNsb3QsIG1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGAke0RJQUxPR19OQU1FU1BBQ0V9LSR7cHJlZml4Q2xzfSR7c2xvdCA/IGAtJHtzbG90fWAgOiAnJ31gO1xuICAgIHJldHVybiBtb2RpZmllciA/IGAke2Jhc2VDbGFzc05hbWV9LSR7bW9kaWZpZXJ9YCA6IGJhc2VDbGFzc05hbWU7XG59O1xuY29uc3Qgc2V0Qm9keU92ZXJmbG93ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdmFsdWU7XG59O1xuY29uc3QgbG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ICs9IDE7XG4gICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd0hpZGRlbik7XG59O1xuY29uc3QgdW5sb2NrQm9keVNjcm9sbCA9ICgpID0+IHtcbiAgICBzY3JvbGxMb2NrQ291bnQgPSBNYXRoLm1heCgwLCBzY3JvbGxMb2NrQ291bnQgLSAxKTtcbiAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd1Jlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNvbnN0IHVzZUJvZHlTY3JvbGxMb2NrID0gKGxvY2tlZCkgPT4ge1xuICAgIGNvbnN0IGlzTG9ja2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWxvY2tlZCB8fCBpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTG9ja2VkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdW5sb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICB9O1xuICAgIH0sIFtsb2NrZWRdKTtcbn07XG5jb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59O1xuY29uc3QgdXNlRXNjYXBlQ2xvc2UgPSAoZW5hYmxlZCwgb25DbG9zZSkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW5hYmxlZCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRElBTE9HX0RFRkFVTFRTLmVzY2FwZUtleSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdm9pZCAob25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCkpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKERJQUxPR19ERUZBVUxUUy5rZXlkb3duRXZlbnQsIGhhbmRsZUtleURvd24pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW5hYmxlZCwgb25DbG9zZV0pO1xufTtcbmNvbnN0IHJlbmRlclR5cG9ncmFwaHlOb2RlID0gKG5vZGUsIHJlbmRlclRleHQpID0+IHtcbiAgICBpZiAobm9kZSA9PSBudWxsIHx8IHR5cGVvZiBub2RlID09PSAnYm9vbGVhbicpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiByZW5kZXJUZXh0KG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5jb25zdCByZW5kZXJJbGx1c3RyYXRpb25Ob2RlID0gKGlsbHVzdHJhdGlvbikgPT4ge1xuICAgIGlmICghaWxsdXN0cmF0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGlsbHVzdHJhdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogaWxsdXN0cmF0aW9uLCBzaXplOiBESUFMT0dfREVGQVVMVFMuaWxsdXN0cmF0aW9uU2l6ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWRFbGVtZW50KGlsbHVzdHJhdGlvbikgPyBpbGx1c3RyYXRpb24gOiBudWxsO1xufTtcbmNvbnN0IHRvVm9pZEhhbmRsZXIgPSAoYWN0aW9uKSA9PiAoKSA9PiB7XG4gICAgdm9pZCAoYWN0aW9uID09PSBudWxsIHx8IGFjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uKCkpO1xufTtcbmNvbnN0IGNyZWF0ZUFjdGlvbkhhbmRsZXIgPSAoYWN0aW9uLCBidXR0b25DbGljaykgPT4gKGV2ZW50KSA9PiB7XG4gICAgYnV0dG9uQ2xpY2sgPT09IG51bGwgfHwgYnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvbkNsaWNrKGV2ZW50KTtcbiAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm47XG4gICAgdm9pZCBhY3Rpb24oKTtcbn07XG5jb25zdCByZW5kZXJDb250cm9sQnV0dG9uID0gKHByZWZpeENscywgdHlwZSwgaWNvbk5vZGUsIG9uQ2xpY2spID0+IChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvbkh0bWxUeXBlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udHJvbCksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wsIHR5cGUpKSwgXCJhcmlhLWxhYmVsXCI6IERJQUxPR19DT05UUk9MX0xBQkVMU1t0eXBlXSwgb25DbGljazogdG9Wb2lkSGFuZGxlcihvbkNsaWNrKSwgY2hpbGRyZW46IGljb25Ob2RlIH0pKTtcbmNvbnN0IHJlbmRlckFjdGlvbkJ1dHRvbiA9ICh7IHByZWZpeENscywga2luZCwgdGV4dCwgYWN0aW9uLCBidXR0b25Qcm9wcywgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBpZiAodGV4dCA9PSBudWxsIHx8ICFhY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIGJ1dHRvblByb3BzLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvblNpemUsIGNvbG9yOiAoX2EgPSBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERJQUxPR19ERUZBVUxUX0JVVFRPTl9DT0xPUlNba2luZF0sIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24pLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24sIGtpbmQpLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY2xhc3NOYW1lKSwgc3R5bGU6IGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5zdHlsZSwgb25DbGljazogY3JlYXRlQWN0aW9uSGFuZGxlcihhY3Rpb24sIGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5vbkNsaWNrKSwgY2hpbGRyZW46IHRleHQgfSkpKTtcbn07XG5jb25zdCByZXNvbHZlRm9vdGVyTm9kZSA9ICh7IGZvb3Rlciwgc2l6ZSwgY2FuY2VsQnV0dG9uLCBva0J1dHRvbiwgfSkgPT4ge1xuICAgIGlmIChmb290ZXIgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgZm9vdGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gZm9vdGVyKGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24pO1xuICAgIGlmIChmb290ZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIGZvb3RlcjtcbiAgICBpZiAoIWNhbmNlbEJ1dHRvbiAmJiAhb2tCdXR0b24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzaXplID09PSBESUFMT0dfU0laRS5sYXJnZVxuICAgICAgICA/IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtjYW5jZWxCdXR0b24sIG9rQnV0dG9uXSB9KSlcbiAgICAgICAgOiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbb2tCdXR0b24sIGNhbmNlbEJ1dHRvbl0gfSkpO1xufTtcbmNvbnN0IERpYWxvZ0Jhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBESUFMT0dfREVGQVVMVF9QUkVGSVgsIG9wZW4gPSBmYWxzZSwgc2l6ZSA9IERJQUxPR19TSVpFLnNtYWxsLCBtYXNrQ2xvc2FibGUgPSB0cnVlLCBzaG93Q2xvc2VJY29uID0gdHJ1ZSwgc2hvd0JhY2tJY29uID0gZmFsc2UsIGZ1bGxXaWR0aCA9IGZhbHNlLCBmaXhlZCA9IGZhbHNlLCB0aXRsZSwgY2hpbGRyZW4sIGlsbHVzdHJhdGlvbiwgbWVkaWEsIGNsb3NlSWNvbiwgYmFja0ljb24sIGZvb3Rlciwgb25Paywgb25DYW5jZWwsIG9uQmFjaywgb2tUZXh0ID0gRElBTE9HX0RFRkFVTFRTLm9rVGV4dCwgY2FuY2VsVGV4dCA9IERJQUxPR19ERUZBVUxUUy5jYW5jZWxUZXh0LCByb290U3R5bGUsIHdyYXBwZXJTdHlsZSwgYm9keVN0eWxlLCBoZWFkZXJTdHlsZSwgY29udGVudFN0eWxlLCBmb290ZXJTdHlsZSwgY2FuY2VsQnV0dG9uUHJvcHMsIG9rQnV0dG9uUHJvcHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcInByZWZpeENsc1wiLCBcIm9wZW5cIiwgXCJzaXplXCIsIFwibWFza0Nsb3NhYmxlXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcInNob3dCYWNrSWNvblwiLCBcImZ1bGxXaWR0aFwiLCBcImZpeGVkXCIsIFwidGl0bGVcIiwgXCJjaGlsZHJlblwiLCBcImlsbHVzdHJhdGlvblwiLCBcIm1lZGlhXCIsIFwiY2xvc2VJY29uXCIsIFwiYmFja0ljb25cIiwgXCJmb290ZXJcIiwgXCJvbk9rXCIsIFwib25DYW5jZWxcIiwgXCJvbkJhY2tcIiwgXCJva1RleHRcIiwgXCJjYW5jZWxUZXh0XCIsIFwicm9vdFN0eWxlXCIsIFwid3JhcHBlclN0eWxlXCIsIFwiYm9keVN0eWxlXCIsIFwiaGVhZGVyU3R5bGVcIiwgXCJjb250ZW50U3R5bGVcIiwgXCJmb290ZXJTdHlsZVwiLCBcImNhbmNlbEJ1dHRvblByb3BzXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRpdGxlSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGhhbmRsZVNldERpYWxvZ1JlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0sIFtyZWZdKTtcbiAgICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25DYW5jZWwgPT09IG51bGwgfHwgb25DYW5jZWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2FuY2VsKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9rID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uT2sgPT09IG51bGwgfHwgb25PayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCYWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQmFjayA9PT0gbnVsbCB8fCBvbkJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmFjaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuICAgIHVzZUJvZHlTY3JvbGxMb2NrKG9wZW4pO1xuICAgIHVzZURpYWxvZ0ZvY3VzKG9wZW4sIGRpYWxvZ1JlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2Uob3BlbiwgaGFuZGxlQ2FuY2VsKTtcbiAgICBjb25zdCBoYXNNZWRpYSA9IG1lZGlhICE9IG51bGw7XG4gICAgY29uc3QgY2xvc2VDb250cm9sTm9kZSA9IHNob3dDbG9zZUljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZSwgY2xvc2VJY29uICE9PSBudWxsICYmIGNsb3NlSWNvbiAhPT0gdm9pZCAwID8gY2xvc2VJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZV0sIHNpemU6IERJQUxPR19ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSkpLCBoYW5kbGVDYW5jZWwpXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBiYWNrQ29udHJvbE5vZGUgPSBzaG93QmFja0ljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrLCBiYWNrSWNvbiAhPT0gbnVsbCAmJiBiYWNrSWNvbiAhPT0gdm9pZCAwID8gYmFja0ljb24gOiAoX2pzeChJY29ucywgeyBuYW1lOiBESUFMT0dfREVGQVVMVF9JQ09OU1tESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2tdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQmFjaylcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGlsbHVzdHJhdGlvbk5vZGUgPSByZW5kZXJJbGx1c3RyYXRpb25Ob2RlKGlsbHVzdHJhdGlvbik7XG4gICAgY29uc3QgdGl0bGVOb2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUodGl0bGUsICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUhlYWRsaW5lLCB7IHNpemU6IFwibWRcIiwgYXM6IFwiaDJcIiwgY29sb3I6IFwiZGVmYXVsdFwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZShjaGlsZHJlbiwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcInBcIiwgc3Ryb25nOiB0cnVlLCBjb2xvcjogXCJkZWZhdWx0LXNlY29uZGFyeVwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5jYW5jZWwsXG4gICAgICAgIHRleHQ6IGNhbmNlbFRleHQsXG4gICAgICAgIGFjdGlvbjogb25DYW5jZWwsXG4gICAgICAgIGJ1dHRvblByb3BzOiBjYW5jZWxCdXR0b25Qcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IHJlbmRlckFjdGlvbkJ1dHRvbih7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAga2luZDogRElBTE9HX0FDVElPTl9LSU5ELm9rLFxuICAgICAgICB0ZXh0OiBva1RleHQsXG4gICAgICAgIGFjdGlvbjogb25PayxcbiAgICAgICAgYnV0dG9uUHJvcHM6IG9rQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3QgZm9vdGVyTm9kZSA9IHJlc29sdmVGb290ZXJOb2RlKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBzaXplLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIGlmICghb3BlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChfanN4KFBvcnRhbCwgeyBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogcm9vdFN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnJvb3QpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm92ZXJsYXkpLCBvbkNsaWNrOiBoYW5kbGVPdmVybGF5Q2xpY2sgfSksIF9qc3goXCJkaXZcIiwgeyBzdHlsZTogd3JhcHBlclN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULndyYXBwZXIpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGhhbmRsZVNldERpYWxvZ1JlZiwgcm9sZTogXCJkaWFsb2dcIiwgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiB0aXRsZSA/IHRpdGxlSWQgOiB1bmRlZmluZWQsIHRhYkluZGV4OiAtMSwgc3R5bGU6IHN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscyksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgc2l6ZSksIGZ1bGxXaWR0aCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5mdWxsV2lkdGgpLCBmaXhlZCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5maXhlZCksIGhhc01lZGlhICYmIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgRElBTE9HX01PRElGSUVSLndpdGhNZWRpYSksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbY2xvc2VDb250cm9sTm9kZSwgaGFzTWVkaWEgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QubWVkaWEpLCBjaGlsZHJlbjogbWVkaWEgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbm5lciksIGNoaWxkcmVuOiBbKGJhY2tDb250cm9sTm9kZSB8fCAoZml4ZWQgJiYgKGlsbHVzdHJhdGlvbk5vZGUgfHwgdGl0bGVOb2RlKSkpICYmIChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBoZWFkZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5oZWFkZXIpLCBjaGlsZHJlbjogW2JhY2tDb250cm9sTm9kZSwgZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCBmaXhlZCAmJiB0aXRsZU5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBpZDogdGl0bGVJZCwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC50aXRsZSksIGNoaWxkcmVuOiB0aXRsZU5vZGUgfSkpXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5ib2R5KSwgY2hpbGRyZW46IFshZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCAhZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKSwgY2hpbGRyZW5Ob2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGNvbnRlbnRTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5jb250ZW50KSwgY2hpbGRyZW46IGNoaWxkcmVuTm9kZSB9KSldIH0pLCBmb290ZXJOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGZvb3RlclN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyLCBzaXplKSksIGNoaWxkcmVuOiBmb290ZXJOb2RlIH0pKV0gfSldIH0pKSB9KV0gfSkgfSkpO1xufSk7XG5EaWFsb2dCYXNlLmRpc3BsYXlOYW1lID0gJ0RpYWxvZyc7XG5leHBvcnQgY29uc3QgRGlhbG9nID0gbWVtbyhEaWFsb2dCYXNlKTtcbkRpYWxvZy5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGRlZmF1bHQgRGlhbG9nOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
346
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2xhc3NOYW1lcyIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlUmVmIiwiQnV0dG9uIiwiSWNvbnMiLCJQb3J0YWwiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlIZWFkbGluZSIsImZpbGxSZWYiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJESUFMT0dfQ09OVFJPTF9UWVBFIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiRElBTE9HX0RFRkFVTFRTIiwiRElBTE9HX01PRElGSUVSIiwiRElBTE9HX05BTUVTUEFDRSIsIkRJQUxPR19TSVpFIiwiRElBTE9HX1NMT1QiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRGlhbG9nRm9jdXMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwidXNlRXNjYXBlQ2xvc2UiLCJlbmFibGVkIiwib25DbG9zZSIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsImVzY2FwZUtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWRvd25FdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJUeXBvZ3JhcGh5Tm9kZSIsIm5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNvbnRyb2wiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiYWN0aW9uQnV0dG9uIiwicmVzb2x2ZUZvb3Rlck5vZGUiLCJfcmVmMiIsImZvb3RlciIsImNhbmNlbEJ1dHRvbiIsIm9rQnV0dG9uIiwibGFyZ2UiLCJEaWFsb2dCYXNlIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwid2lkdGgiLCJ0aXRsZSIsIm1lZGlhIiwiY2xvc2VJY29uIiwiYmFja0ljb24iLCJvbk9rIiwib25DYW5jZWwiLCJvbkJhY2siLCJfcHJvcHMkb2tUZXh0Iiwib2tUZXh0IiwiX3Byb3BzJGNhbmNlbFRleHQiLCJjYW5jZWxUZXh0Iiwicm9vdFN0eWxlIiwid3JhcHBlclN0eWxlIiwiYm9keVN0eWxlIiwiaGVhZGVyU3R5bGUiLCJjb250ZW50U3R5bGUiLCJmb290ZXJTdHlsZSIsImNhbmNlbEJ1dHRvblByb3BzIiwib2tCdXR0b25Qcm9wcyIsInJlc3QiLCJ0aXRsZUlkIiwiaGFuZGxlU2V0RGlhbG9nUmVmIiwiaGFuZGxlQ2FuY2VsIiwiaGFuZGxlT2siLCJoYW5kbGVCYWNrIiwiaGFuZGxlT3ZlcmxheUNsaWNrIiwiaGFzTWVkaWEiLCJjbG9zZUNvbnRyb2xOb2RlIiwiY2xvc2UiLCJjb250cm9sSWNvblNpemUiLCJiYWNrQ29udHJvbE5vZGUiLCJiYWNrIiwiaWxsdXN0cmF0aW9uTm9kZSIsInRpdGxlTm9kZSIsImFzIiwiY2hpbGRyZW5Ob2RlIiwic3Ryb25nIiwiY2FuY2VsIiwib2siLCJmb290ZXJOb2RlIiwicGFuZWxTdHlsZSIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ0YWJJbmRleCIsIndpdGhNZWRpYSIsImlubmVyIiwiaGVhZGVyIiwiaWQiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJE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cyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmLCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUhlYWRsaW5lIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IERJQUxPR19BQ1RJT05fS0lORCwgRElBTE9HX0NPTlRST0xfTEFCRUxTLCBESUFMT0dfQ09OVFJPTF9UWVBFLCBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTLCBESUFMT0dfREVGQVVMVF9JQ09OUywgRElBTE9HX0RFRkFVTFRfUFJFRklYLCBESUFMT0dfREVGQVVMVFMsIERJQUxPR19NT0RJRklFUiwgRElBTE9HX05BTUVTUEFDRSwgRElBTE9HX1NJWkUsIERJQUxPR19TTE9ULCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5sZXQgc2Nyb2xsTG9ja0NvdW50ID0gMDtcbmNvbnN0IGdldENsYXNzTmFtZSA9IChwcmVmaXhDbHMsIHNsb3QsIG1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGAke0RJQUxPR19OQU1FU1BBQ0V9LSR7cHJlZml4Q2xzfSR7c2xvdCA/IGAtJHtzbG90fWAgOiAnJ31gO1xuICAgIHJldHVybiBtb2RpZmllciA/IGAke2Jhc2VDbGFzc05hbWV9LSR7bW9kaWZpZXJ9YCA6IGJhc2VDbGFzc05hbWU7XG59O1xuY29uc3Qgc2V0Qm9keU92ZXJmbG93ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdmFsdWU7XG59O1xuY29uc3QgbG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ICs9IDE7XG4gICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd0hpZGRlbik7XG59O1xuY29uc3QgdW5sb2NrQm9keVNjcm9sbCA9ICgpID0+IHtcbiAgICBzY3JvbGxMb2NrQ291bnQgPSBNYXRoLm1heCgwLCBzY3JvbGxMb2NrQ291bnQgLSAxKTtcbiAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd1Jlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNvbnN0IHVzZUJvZHlTY3JvbGxMb2NrID0gKGxvY2tlZCkgPT4ge1xuICAgIGNvbnN0IGlzTG9ja2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWxvY2tlZCB8fCBpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTG9ja2VkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdW5sb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICB9O1xuICAgIH0sIFtsb2NrZWRdKTtcbn07XG5jb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59O1xuY29uc3QgdXNlRXNjYXBlQ2xvc2UgPSAoZW5hYmxlZCwgb25DbG9zZSkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW5hYmxlZCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRElBTE9HX0RFRkFVTFRTLmVzY2FwZUtleSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdm9pZCAob25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCkpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKERJQUxPR19ERUZBVUxUUy5rZXlkb3duRXZlbnQsIGhhbmRsZUtleURvd24pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW5hYmxlZCwgb25DbG9zZV0pO1xufTtcbmNvbnN0IHJlbmRlclR5cG9ncmFwaHlOb2RlID0gKG5vZGUsIHJlbmRlclRleHQpID0+IHtcbiAgICBpZiAobm9kZSA9PSBudWxsIHx8IHR5cGVvZiBub2RlID09PSAnYm9vbGVhbicpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiByZW5kZXJUZXh0KG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5jb25zdCByZW5kZXJJbGx1c3RyYXRpb25Ob2RlID0gKGlsbHVzdHJhdGlvbikgPT4ge1xuICAgIGlmICghaWxsdXN0cmF0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGlsbHVzdHJhdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogaWxsdXN0cmF0aW9uLCBzaXplOiBESUFMT0dfREVGQVVMVFMuaWxsdXN0cmF0aW9uU2l6ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWRFbGVtZW50KGlsbHVzdHJhdGlvbikgPyBpbGx1c3RyYXRpb24gOiBudWxsO1xufTtcbmNvbnN0IHRvVm9pZEhhbmRsZXIgPSAoYWN0aW9uKSA9PiAoKSA9PiB7XG4gICAgdm9pZCAoYWN0aW9uID09PSBudWxsIHx8IGFjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uKCkpO1xufTtcbmNvbnN0IGNyZWF0ZUFjdGlvbkhhbmRsZXIgPSAoYWN0aW9uLCBidXR0b25DbGljaykgPT4gKGV2ZW50KSA9PiB7XG4gICAgYnV0dG9uQ2xpY2sgPT09IG51bGwgfHwgYnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvbkNsaWNrKGV2ZW50KTtcbiAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm47XG4gICAgdm9pZCBhY3Rpb24oKTtcbn07XG5jb25zdCByZW5kZXJDb250cm9sQnV0dG9uID0gKHByZWZpeENscywgdHlwZSwgaWNvbk5vZGUsIG9uQ2xpY2spID0+IChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvbkh0bWxUeXBlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udHJvbCksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wsIHR5cGUpKSwgXCJhcmlhLWxhYmVsXCI6IERJQUxPR19DT05UUk9MX0xBQkVMU1t0eXBlXSwgb25DbGljazogdG9Wb2lkSGFuZGxlcihvbkNsaWNrKSwgY2hpbGRyZW46IGljb25Ob2RlIH0pKTtcbmNvbnN0IHJlbmRlckFjdGlvbkJ1dHRvbiA9ICh7IHByZWZpeENscywga2luZCwgdGV4dCwgYWN0aW9uLCBidXR0b25Qcm9wcywgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBpZiAodGV4dCA9PSBudWxsIHx8ICFhY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIGJ1dHRvblByb3BzLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvblNpemUsIGNvbG9yOiAoX2EgPSBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERJQUxPR19ERUZBVUxUX0JVVFRPTl9DT0xPUlNba2luZF0sIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24pLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24sIGtpbmQpLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY2xhc3NOYW1lKSwgc3R5bGU6IGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5zdHlsZSwgb25DbGljazogY3JlYXRlQWN0aW9uSGFuZGxlcihhY3Rpb24sIGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5vbkNsaWNrKSwgY2hpbGRyZW46IHRleHQgfSkpKTtcbn07XG5jb25zdCByZXNvbHZlRm9vdGVyTm9kZSA9ICh7IGZvb3Rlciwgc2l6ZSwgY2FuY2VsQnV0dG9uLCBva0J1dHRvbiwgfSkgPT4ge1xuICAgIGlmIChmb290ZXIgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgZm9vdGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gZm9vdGVyKGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24pO1xuICAgIGlmIChmb290ZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIGZvb3RlcjtcbiAgICBpZiAoIWNhbmNlbEJ1dHRvbiAmJiAhb2tCdXR0b24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzaXplID09PSBESUFMT0dfU0laRS5sYXJnZVxuICAgICAgICA/IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtjYW5jZWxCdXR0b24sIG9rQnV0dG9uXSB9KSlcbiAgICAgICAgOiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbb2tCdXR0b24sIGNhbmNlbEJ1dHRvbl0gfSkpO1xufTtcbmNvbnN0IERpYWxvZ0Jhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBESUFMT0dfREVGQVVMVF9QUkVGSVgsIG9wZW4gPSBmYWxzZSwgc2l6ZSA9IERJQUxPR19TSVpFLnNtYWxsLCBtYXNrQ2xvc2FibGUgPSB0cnVlLCBzaG93Q2xvc2VJY29uID0gdHJ1ZSwgc2hvd0JhY2tJY29uID0gZmFsc2UsIGZ1bGxXaWR0aCA9IGZhbHNlLCBmaXhlZCA9IGZhbHNlLCB3aWR0aCwgdGl0bGUsIGNoaWxkcmVuLCBpbGx1c3RyYXRpb24sIG1lZGlhLCBjbG9zZUljb24sIGJhY2tJY29uLCBmb290ZXIsIG9uT2ssIG9uQ2FuY2VsLCBvbkJhY2ssIG9rVGV4dCA9IERJQUxPR19ERUZBVUxUUy5va1RleHQsIGNhbmNlbFRleHQgPSBESUFMT0dfREVGQVVMVFMuY2FuY2VsVGV4dCwgcm9vdFN0eWxlLCB3cmFwcGVyU3R5bGUsIGJvZHlTdHlsZSwgaGVhZGVyU3R5bGUsIGNvbnRlbnRTdHlsZSwgZm9vdGVyU3R5bGUsIGNhbmNlbEJ1dHRvblByb3BzLCBva0J1dHRvblByb3BzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJwcmVmaXhDbHNcIiwgXCJvcGVuXCIsIFwic2l6ZVwiLCBcIm1hc2tDbG9zYWJsZVwiLCBcInNob3dDbG9zZUljb25cIiwgXCJzaG93QmFja0ljb25cIiwgXCJmdWxsV2lkdGhcIiwgXCJmaXhlZFwiLCBcIndpZHRoXCIsIFwidGl0bGVcIiwgXCJjaGlsZHJlblwiLCBcImlsbHVzdHJhdGlvblwiLCBcIm1lZGlhXCIsIFwiY2xvc2VJY29uXCIsIFwiYmFja0ljb25cIiwgXCJmb290ZXJcIiwgXCJvbk9rXCIsIFwib25DYW5jZWxcIiwgXCJvbkJhY2tcIiwgXCJva1RleHRcIiwgXCJjYW5jZWxUZXh0XCIsIFwicm9vdFN0eWxlXCIsIFwid3JhcHBlclN0eWxlXCIsIFwiYm9keVN0eWxlXCIsIFwiaGVhZGVyU3R5bGVcIiwgXCJjb250ZW50U3R5bGVcIiwgXCJmb290ZXJTdHlsZVwiLCBcImNhbmNlbEJ1dHRvblByb3BzXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRpdGxlSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGhhbmRsZVNldERpYWxvZ1JlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0sIFtyZWZdKTtcbiAgICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25DYW5jZWwgPT09IG51bGwgfHwgb25DYW5jZWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2FuY2VsKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9rID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uT2sgPT09IG51bGwgfHwgb25PayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCYWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQmFjayA9PT0gbnVsbCB8fCBvbkJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmFjaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuICAgIHVzZUJvZHlTY3JvbGxMb2NrKG9wZW4pO1xuICAgIHVzZURpYWxvZ0ZvY3VzKG9wZW4sIGRpYWxvZ1JlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2Uob3BlbiwgaGFuZGxlQ2FuY2VsKTtcbiAgICBjb25zdCBoYXNNZWRpYSA9IG1lZGlhICE9IG51bGw7XG4gICAgY29uc3QgY2xvc2VDb250cm9sTm9kZSA9IHNob3dDbG9zZUljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZSwgY2xvc2VJY29uICE9PSBudWxsICYmIGNsb3NlSWNvbiAhPT0gdm9pZCAwID8gY2xvc2VJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZV0sIHNpemU6IERJQUxPR19ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSkpLCBoYW5kbGVDYW5jZWwpXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBiYWNrQ29udHJvbE5vZGUgPSBzaG93QmFja0ljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrLCBiYWNrSWNvbiAhPT0gbnVsbCAmJiBiYWNrSWNvbiAhPT0gdm9pZCAwID8gYmFja0ljb24gOiAoX2pzeChJY29ucywgeyBuYW1lOiBESUFMT0dfREVGQVVMVF9JQ09OU1tESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2tdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQmFjaylcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGlsbHVzdHJhdGlvbk5vZGUgPSByZW5kZXJJbGx1c3RyYXRpb25Ob2RlKGlsbHVzdHJhdGlvbik7XG4gICAgY29uc3QgdGl0bGVOb2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUodGl0bGUsICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUhlYWRsaW5lLCB7IHNpemU6IFwibWRcIiwgYXM6IFwiaDJcIiwgY29sb3I6IFwiZGVmYXVsdFwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZShjaGlsZHJlbiwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcInBcIiwgc3Ryb25nOiB0cnVlLCBjb2xvcjogXCJkZWZhdWx0LXNlY29uZGFyeVwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5jYW5jZWwsXG4gICAgICAgIHRleHQ6IGNhbmNlbFRleHQsXG4gICAgICAgIGFjdGlvbjogb25DYW5jZWwsXG4gICAgICAgIGJ1dHRvblByb3BzOiBjYW5jZWxCdXR0b25Qcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IHJlbmRlckFjdGlvbkJ1dHRvbih7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAga2luZDogRElBTE9HX0FDVElPTl9LSU5ELm9rLFxuICAgICAgICB0ZXh0OiBva1RleHQsXG4gICAgICAgIGFjdGlvbjogb25PayxcbiAgICAgICAgYnV0dG9uUHJvcHM6IG9rQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3QgZm9vdGVyTm9kZSA9IHJlc29sdmVGb290ZXJOb2RlKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBzaXplLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIC8vIGB3aWR0aGAgaXMgYSBjb252ZW5pZW5jZSB0aGF0IHNldHMgdGhlIHBhbmVsJ3Mgd2lkdGggaW5saW5lLCBvdmVycmlkaW5nIHRoZVxuICAgIC8vIGBzaXplYCBwcmVzZXQncyBjbGFzcy1sZXZlbCB3aWR0aC4gQW4gZXhwbGljaXQgYHN0eWxlLndpZHRoYCBzdGlsbCB3aW5zIChpdCBpc1xuICAgIC8vIHNwcmVhZCBsYXN0KS4gTm90ZTogYHdpZHRoYCBpcyBub3QgbWVhbnQgdG8gYmUgY29tYmluZWQgd2l0aCBgZnVsbFdpZHRoYCwgd2hvc2VcbiAgICAvLyBgbWF4LXdpZHRoOiBub25lYCAvIGB3aWR0aDogMTAwJWAgcnVsZXMgZ292ZXJuIHNpemluZyBvbiB0aGVpciBvd24uXG4gICAgY29uc3QgcGFuZWxTdHlsZSA9IE9iamVjdC5hc3NpZ24oeyB3aWR0aCB9LCBzdHlsZSk7XG4gICAgaWYgKCFvcGVuKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goUG9ydGFsLCB7IGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiByb290U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qucm9vdCksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qub3ZlcmxheSksIG9uQ2xpY2s6IGhhbmRsZU92ZXJsYXlDbGljayB9KSwgX2pzeChcImRpdlwiLCB7IHN0eWxlOiB3cmFwcGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qud3JhcHBlciksIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogaGFuZGxlU2V0RGlhbG9nUmVmLCByb2xlOiBcImRpYWxvZ1wiLCBcImFyaWEtbW9kYWxcIjogXCJ0cnVlXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHRpdGxlID8gdGl0bGVJZCA6IHVuZGVmaW5lZCwgdGFiSW5kZXg6IC0xLCBzdHlsZTogcGFuZWxTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMpLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIHNpemUpLCBmdWxsV2lkdGggJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIuZnVsbFdpZHRoKSwgZml4ZWQgJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIuZml4ZWQpLCBoYXNNZWRpYSAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi53aXRoTWVkaWEpLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogW2Nsb3NlQ29udHJvbE5vZGUsIGhhc01lZGlhICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm1lZGlhKSwgY2hpbGRyZW46IG1lZGlhIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaW5uZXIpLCBjaGlsZHJlbjogWyhiYWNrQ29udHJvbE5vZGUgfHwgKGZpeGVkICYmIChpbGx1c3RyYXRpb25Ob2RlIHx8IHRpdGxlTm9kZSkpKSAmJiAoX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogaGVhZGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaGVhZGVyKSwgY2hpbGRyZW46IFtiYWNrQ29udHJvbE5vZGUsIGZpeGVkICYmIGlsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKV0gfSkpLCBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBib2R5U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuYm9keSksIGNoaWxkcmVuOiBbIWZpeGVkICYmIGlsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgIWZpeGVkICYmIHRpdGxlTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGlkOiB0aXRsZUlkLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnRpdGxlKSwgY2hpbGRyZW46IHRpdGxlTm9kZSB9KSksIGNoaWxkcmVuTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBjb250ZW50U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udGVudCksIGNoaWxkcmVuOiBjaGlsZHJlbk5vZGUgfSkpXSB9KSwgZm9vdGVyTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBmb290ZXJTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmZvb3RlciksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmZvb3Rlciwgc2l6ZSkpLCBjaGlsZHJlbjogZm9vdGVyTm9kZSB9KSldIH0pXSB9KSkgfSldIH0pIH0pKTtcbn0pO1xuRGlhbG9nQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGNvbnN0IERpYWxvZyA9IG1lbW8oRGlhbG9nQmFzZSk7XG5EaWFsb2cuZGlzcGxheU5hbWUgPSAnRGlhbG9nJztcbmV4cG9ydCBkZWZhdWx0IERpYWxvZzsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -13,6 +13,7 @@ export interface DialogProps extends Omit<HTMLAttributes<HTMLDivElement>, 'child
|
|
|
13
13
|
showBackIcon?: boolean;
|
|
14
14
|
fullWidth?: boolean;
|
|
15
15
|
fixed?: boolean;
|
|
16
|
+
width?: number | string;
|
|
16
17
|
title?: ReactNode;
|
|
17
18
|
children?: ReactNode;
|
|
18
19
|
illustration?: ReactNode | IconName;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
4
|
var __rest = this && this.__rest || function (s, e) {
|
|
4
5
|
var t = {};
|
|
5
6
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -11,8 +12,49 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
11
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
13
|
import { memo, useMemo } from 'react';
|
|
13
14
|
import classnames, { joinCls } from '../../utils/classnames';
|
|
14
|
-
import {
|
|
15
|
+
import { devWarnOnce, isProduction } from '../../utils/devWarn';
|
|
16
|
+
import { GRID_BREAKPOINTS, GRID_CLASS, GRID_COL_PREFIX, GRID_COLUMNS, GRID_CSS_VARS, GRID_RESPONSIVE_CSS_VARS } from './constants';
|
|
15
17
|
import { normalizeColSize, normalizeFlex } from './helper';
|
|
18
|
+
var COL_RANGE_KEYS = ['span', 'offset', 'order', 'push', 'pull'];
|
|
19
|
+
// Dev-only guard: span/offset/order/push/pull — both top-level AND the responsive
|
|
20
|
+
// sm/md/lg equivalents — map to classes generated for 0–GRID_COLUMNS only; values
|
|
21
|
+
// outside that range silently produce a class with no matching CSS. Warns once per
|
|
22
|
+
// distinct misuse (via the shared devWarnOnce) instead of on every render.
|
|
23
|
+
var warnColRange = function warnColRange(scope, values) {
|
|
24
|
+
COL_RANGE_KEYS.forEach(function (key) {
|
|
25
|
+
var value = values[key];
|
|
26
|
+
if (value != null && (value < 0 || value > GRID_COLUMNS)) {
|
|
27
|
+
var usage = scope ? "".concat(scope, "={{ ").concat(key, ": ").concat(value, " }}") : "".concat(key, "={").concat(value, "}");
|
|
28
|
+
devWarnOnce("grid-col-range:".concat(scope, ":").concat(key, ":").concat(value), "[Grid.Col] `".concat(usage, "` is outside the 0\u2013").concat(GRID_COLUMNS, " range; no matching style is generated."));
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
// Gated by isProduction() so the per-render arg objects are never allocated in
|
|
33
|
+
// production builds.
|
|
34
|
+
var warnColRangeInDev = function warnColRangeInDev(props) {
|
|
35
|
+
if (isProduction()) return;
|
|
36
|
+
var span = props.span,
|
|
37
|
+
offset = props.offset,
|
|
38
|
+
order = props.order,
|
|
39
|
+
push = props.push,
|
|
40
|
+
pull = props.pull,
|
|
41
|
+
sm = props.sm,
|
|
42
|
+
md = props.md,
|
|
43
|
+
lg = props.lg;
|
|
44
|
+
warnColRange('', {
|
|
45
|
+
span: span,
|
|
46
|
+
offset: offset,
|
|
47
|
+
order: order,
|
|
48
|
+
push: push,
|
|
49
|
+
pull: pull
|
|
50
|
+
});
|
|
51
|
+
[['sm', sm], ['md', md], ['lg', lg]].forEach(function (_ref) {
|
|
52
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
53
|
+
scope = _ref2[0],
|
|
54
|
+
size = _ref2[1];
|
|
55
|
+
if (size != null) warnColRange(scope, normalizeColSize(size));
|
|
56
|
+
});
|
|
57
|
+
};
|
|
16
58
|
var buildResponsiveConfig = function buildResponsiveConfig(breakpoints, classes) {
|
|
17
59
|
var classList = [];
|
|
18
60
|
var flexVars = {};
|
|
@@ -26,7 +68,10 @@ var buildResponsiveConfig = function buildResponsiveConfig(breakpoints, classes)
|
|
|
26
68
|
if (normalized.order != null) classList.push(classes("".concat(bp, "-").concat(GRID_CLASS.order, "-").concat(normalized.order)));
|
|
27
69
|
if (normalized.pull != null) classList.push(classes("".concat(bp, "-").concat(GRID_CLASS.pull, "-").concat(normalized.pull)));
|
|
28
70
|
if (normalized.push != null) classList.push(classes("".concat(bp, "-").concat(GRID_CLASS.push, "-").concat(normalized.push)));
|
|
29
|
-
if (flexValue)
|
|
71
|
+
if (flexValue) {
|
|
72
|
+
classList.push(classes("".concat(bp, "-").concat(GRID_CLASS.flex)));
|
|
73
|
+
flexVars[GRID_RESPONSIVE_CSS_VARS[bp].colFlex] = flexValue;
|
|
74
|
+
}
|
|
30
75
|
});
|
|
31
76
|
return {
|
|
32
77
|
classList: classList,
|
|
@@ -49,6 +94,16 @@ export var Col = /*#__PURE__*/memo(function (props) {
|
|
|
49
94
|
_props$prefixCls = props.prefixCls,
|
|
50
95
|
prefixCls = _props$prefixCls === void 0 ? GRID_COL_PREFIX : _props$prefixCls,
|
|
51
96
|
rest = __rest(props, ["children", "span", "offset", "order", "pull", "push", "flex", "sm", "md", "lg", "className", "style", "prefixCls"]);
|
|
97
|
+
warnColRangeInDev({
|
|
98
|
+
span: span,
|
|
99
|
+
offset: offset,
|
|
100
|
+
order: order,
|
|
101
|
+
push: push,
|
|
102
|
+
pull: pull,
|
|
103
|
+
sm: sm,
|
|
104
|
+
md: md,
|
|
105
|
+
lg: lg
|
|
106
|
+
});
|
|
52
107
|
var _useMemo = useMemo(function () {
|
|
53
108
|
var classes = classnames(prefixCls);
|
|
54
109
|
var _buildResponsiveConfi = buildResponsiveConfig({
|
|
@@ -69,8 +124,9 @@ export var Col = /*#__PURE__*/memo(function (props) {
|
|
|
69
124
|
classNameValue = _useMemo.classNameValue,
|
|
70
125
|
flexValue = _useMemo.flexValue,
|
|
71
126
|
flexVars = _useMemo.flexVars;
|
|
127
|
+
// User-supplied `style` wins over the computed flex CSS vars.
|
|
72
128
|
var mergedStyle = useMemo(function () {
|
|
73
|
-
return Object.assign(Object.assign(Object.assign({},
|
|
129
|
+
return Object.assign(Object.assign(Object.assign({}, flexValue && _defineProperty({}, GRID_CSS_VARS.colFlex, flexValue)), flexVars), style);
|
|
74
130
|
}, [style, flexValue, flexVars]);
|
|
75
131
|
return _jsx("div", Object.assign({}, rest, {
|
|
76
132
|
style: mergedStyle,
|
|
@@ -80,4 +136,4 @@ export var Col = /*#__PURE__*/memo(function (props) {
|
|
|
80
136
|
});
|
|
81
137
|
Col.displayName = 'Col';
|
|
82
138
|
export default Col;
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9Db2wuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0dyaWQvQ29sLnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJtZW1vIiwidXNlTWVtbyIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiR1JJRF9CUkVBS1BPSU5UUyIsIkdSSURfQ0xBU1MiLCJHUklEX0NPTF9QUkVGSVgiLCJHUklEX0NTU19WQVJTIiwiR1JJRF9SRVNQT05TSVZFX0NTU19WQVJTIiwibm9ybWFsaXplQ29sU2l6ZSIsIm5vcm1hbGl6ZUZsZXgiLCJidWlsZFJlc3BvbnNpdmVDb25maWciLCJicmVha3BvaW50cyIsImNsYXNzZXMiLCJjbGFzc0xpc3QiLCJmbGV4VmFycyIsImZvckVhY2giLCJicCIsInNpemUiLCJub3JtYWxpemVkIiwiZmxleFZhbHVlIiwiZmxleCIsInNwYW4iLCJwdXNoIiwiY29uY2F0Iiwib2Zmc2V0Iiwib3JkZXIiLCJwdWxsIiwiY29sRmxleCIsIkNvbCIsInByb3BzIiwiY2hpbGRyZW4iLCJzbSIsIm1kIiwibGciLCJjbGFzc05hbWUiLCJzdHlsZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiX3VzZU1lbW8iLCJfYnVpbGRSZXNwb25zaXZlQ29uZmkiLCJub3JtYWxpemVkRmxleCIsIm5leHRDbGFzc05hbWUiLCJhcHBseSIsIl90b0NvbnN1bWFibGVBcnJheSIsImNsYXNzTmFtZVZhbHVlIiwibWVyZ2VkU3R5bGUiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxNQUFN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MkQsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUM1Q1osS0FBSyxDQUFBLEVBQ0poQixTQUFTLElBQUE2QixlQUFBLEtBQU8xQyxhQUFhLENBQUNxQixPQUFPLEVBQUdSLFNBQVMsQ0FBRyxDQUFBLEVBQ3JETCxRQUFRLENBQUE7RUFBQSxDQUNYLEVBQUUsQ0FBQ3FCLEtBQUssRUFBRWhCLFNBQVMsRUFBRUwsUUFBUSxDQUFDLENBQUM7RUFFakMsT0FDRWhCLElBQUEsQ0FBQSxLQUFBLEVBQUFWLE1BQUEsQ0FBQTJELE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTVQsSUFBSSxFQUFBO0lBQ1JILEtBQUssRUFBRVcsV0FBVztJQUNsQlosU0FBUyxFQUFFVyxjQUFjO0lBQUFmLFFBQUEsRUFFeEJBO0VBQVEsQ0FBQSxDQUFBLENBQ0w7QUFFVixDQUFDLENBQUM7QUFFRkYsR0FBRyxDQUFDcUIsV0FBVyxHQUFHLEtBQUs7QUFFdkIsZUFBZXJCLEdBQUciLCJmaWxlIjoiY29tcG9uZW50cy9HcmlkL0NvbC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMsIHsgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgR1JJRF9CUkVBS1BPSU5UUywgR1JJRF9DTEFTUywgR1JJRF9DT0xfUFJFRklYLCBHUklEX0NTU19WQVJTLCBHUklEX1JFU1BPTlNJVkVfQ1NTX1ZBUlMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBub3JtYWxpemVDb2xTaXplLCBub3JtYWxpemVGbGV4IH0gZnJvbSAnLi9oZWxwZXInO1xuY29uc3QgYnVpbGRSZXNwb25zaXZlQ29uZmlnID0gKGJyZWFrcG9pbnRzLCBjbGFzc2VzKSA9PiB7XG4gICAgY29uc3QgY2xhc3NMaXN0ID0gW107XG4gICAgY29uc3QgZmxleFZhcnMgPSB7fTtcbiAgICBHUklEX0JSRUFLUE9JTlRTLmZvckVhY2goYnAgPT4ge1xuICAgICAgICBjb25zdCBzaXplID0gYnJlYWtwb2ludHNbYnBdO1xuICAgICAgICBpZiAoc2l6ZSA9PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplQ29sU2l6ZShzaXplKTtcbiAgICAgICAgY29uc3QgZmxleFZhbHVlID0gbm9ybWFsaXplRmxleChub3JtYWxpemVkLmZsZXgpO1xuICAgICAgICBpZiAobm9ybWFsaXplZC5zcGFuICE9IG51bGwgJiYgIWZsZXhWYWx1ZSlcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7bm9ybWFsaXplZC5zcGFufWApKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQub2Zmc2V0ICE9IG51bGwpXG4gICAgICAgICAgICBjbGFzc0xpc3QucHVzaChjbGFzc2VzKGAke2JwfS0ke0dSSURfQ0xBU1Mub2Zmc2V0fS0ke25vcm1hbGl6ZWQub2Zmc2V0fWApKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQub3JkZXIgIT0gbnVsbClcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7R1JJRF9DTEFTUy5vcmRlcn0tJHtub3JtYWxpemVkLm9yZGVyfWApKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQucHVsbCAhPSBudWxsKVxuICAgICAgICAgICAgY2xhc3NMaXN0LnB1c2goY2xhc3NlcyhgJHticH0tJHtHUklEX0NMQVNTLnB1bGx9LSR7bm9ybWFsaXplZC5wdWxsfWApKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQucHVzaCAhPSBudWxsKVxuICAgICAgICAgICAgY2xhc3NMaXN0LnB1c2goY2xhc3NlcyhgJHticH0tJHtHUklEX0NMQVNTLnB1c2h9LSR7bm9ybWFsaXplZC5wdXNofWApKTtcbiAgICAgICAgaWYgKGZsZXhWYWx1ZSlcbiAgICAgICAgICAgIGZsZXhWYXJzW0dSSURfUkVTUE9OU0lWRV9DU1NfVkFSU1ticF0uY29sRmxleF0gPSBmbGV4VmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgY2xhc3NMaXN0LCBmbGV4VmFycyB9O1xufTtcbmV4cG9ydCBjb25zdCBDb2wgPSBtZW1vKHByb3BzID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBzcGFuLCBvZmZzZXQsIG9yZGVyLCBwdWxsLCBwdXNoLCBmbGV4LCBzbSwgbWQsIGxnLCBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBHUklEX0NPTF9QUkVGSVggfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcInNwYW5cIiwgXCJvZmZzZXRcIiwgXCJvcmRlclwiLCBcInB1bGxcIiwgXCJwdXNoXCIsIFwiZmxleFwiLCBcInNtXCIsIFwibWRcIiwgXCJsZ1wiLCBcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZVZhbHVlLCBmbGV4VmFsdWUsIGZsZXhWYXJzIH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICAgICAgY29uc3QgeyBjbGFzc0xpc3QsIGZsZXhWYXJzIH0gPSBidWlsZFJlc3BvbnNpdmVDb25maWcoeyBzbSwgbWQsIGxnIH0sIGNsYXNzZXMpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRmxleCA9IG5vcm1hbGl6ZUZsZXgoZmxleCk7XG4gICAgICAgIGNvbnN0IG5leHRDbGFzc05hbWUgPSBqb2luQ2xzKGNsYXNzZXMoKSwgc3BhbiAhPSBudWxsICYmICFub3JtYWxpemVkRmxleCAmJiBjbGFzc2VzKGAke3NwYW59YCksIG9mZnNldCAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5vZmZzZXR9LSR7b2Zmc2V0fWApLCBvcmRlciAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5vcmRlcn0tJHtvcmRlcn1gKSwgcHVzaCAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5wdXNofS0ke3B1c2h9YCksIHB1bGwgIT0gbnVsbCAmJiBjbGFzc2VzKGAke0dSSURfQ0xBU1MucHVsbH0tJHtwdWxsfWApLCAuLi5jbGFzc0xpc3QsIGNsYXNzTmFtZSk7XG4gICAgICAgIHJldHVybiB7IGNsYXNzTmFtZVZhbHVlOiBuZXh0Q2xhc3NOYW1lLCBmbGV4VmFsdWU6IG5vcm1hbGl6ZWRGbGV4LCBmbGV4VmFycyB9O1xuICAgIH0sIFtjbGFzc05hbWUsIGZsZXgsIGxnLCBtZCwgb2Zmc2V0LCBvcmRlciwgcHJlZml4Q2xzLCBwdWxsLCBwdXNoLCBzbSwgc3Bhbl0pO1xuICAgIGNvbnN0IG1lcmdlZFN0eWxlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0eWxlKSwgKGZsZXhWYWx1ZSAmJiB7IFtHUklEX0NTU19WQVJTLmNvbEZsZXhdOiBmbGV4VmFsdWUgfSkpLCBmbGV4VmFycykpLCBbc3R5bGUsIGZsZXhWYWx1ZSwgZmxleFZhcnNdKTtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBzdHlsZTogbWVyZ2VkU3R5bGUsIGNsYXNzTmFtZTogY2xhc3NOYW1lVmFsdWUsIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSkpO1xufSk7XG5Db2wuZGlzcGxheU5hbWUgPSAnQ29sJztcbmV4cG9ydCBkZWZhdWx0IENvbDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9Db2wuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0dyaWQvQ29sLnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJtZW1vIiwidXNlTWVtbyIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiZGV2V2Fybk9uY2UiLCJpc1Byb2R1Y3Rpb24iLCJHUklEX0JSRUFLUE9JTlRTIiwiR1JJRF9DTEFTUyIsIkdSSURfQ09MX1BSRUZJWCIsIkdSSURfQ09MVU1OUyIsIkdSSURfQ1NTX1ZBUlMiLCJHUklEX1JFU1BPTlNJVkVfQ1NTX1ZBUlMiLCJub3JtYWxpemVDb2xTaXplIiwibm9ybWFsaXplRmxleCIsIkNPTF9SQU5HRV9LRVlTIiwid2FybkNvbFJhbmdlIiwic2NvcGUiLCJ2YWx1ZXMiLCJmb3JFYWNoIiwia2V5IiwidmFsdWUiLCJ1c2FnZSIsImNvbmNhdCIsIndhcm5Db2xSYW5nZUluRGV2IiwicHJvcHMiLCJzcGFuIiwib2Zmc2V0Iiwib3JkZXIiLCJwdXNoIiwicHVsbCIsInNtIiwibWQiLCJsZyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5Iiwic2l6ZSIsImJ1aWxkUmVzcG9uc2l2ZUNvbmZpZyIsImJyZWFrcG9pbnRzIiwiY2xhc3NlcyIsImNsYXNzTGlzdCIsImZsZXhWYXJzIiwiYnAiLCJub3JtYWxpemVkIiwiZmxleFZhbHVlIiwiZmxleCIsImNvbEZsZXgiLCJDb2wiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN0eWxlIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInJlc3QiLCJfdXNlTWVtbyIsIl9idWlsZFJlc3BvbnNpdmVDb25maSIsIm5vcm1hbGl6ZWRGbGV4IiwibmV4dENsYXNzTmFtZSIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY2xhc3NOYW1lVmFsdWUiLCJtZXJnZWRTdHlsZSIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eSIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FB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QUFFQyxLQUFLLEVBQUV5QixTQUFTLEVBQUV2QixJQUFJLEVBQUVELElBQUksRUFBRUUsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQztJQWpCckVtQyxjQUFjLEdBQUFOLFFBQUEsQ0FBZE0sY0FBYztJQUFFaEIsU0FBUyxHQUFBVSxRQUFBLENBQVRWLFNBQVM7SUFBRUgsUUFBUSxHQUFBYSxRQUFBLENBQVJiLFFBQVE7RUFtQjNDO0VBQ0EsSUFBTW9CLFdBQVcsR0FBa0I1RCxPQUFPLENBQUM7SUFBQSxPQUFNWixNQUFBLENBQUF5RSxNQUFBLENBQUF6RSxNQUFBLENBQUF5RSxNQUFBLENBQUF6RSxNQUFBLENBQUF5RSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQzNDbEIsU0FBUyxJQUFBbUIsZUFBQSxLQUFPckQsYUFBYSxDQUFDb0MsT0FBTyxFQUFHRixTQUFTLENBQUcsQ0FBQSxFQUNyREgsUUFBUSxDQUFBLEVBQ1JTLEtBQUssQ0FBQTtFQUFBLENBQ1IsRUFBRSxDQUFDQSxLQUFLLEVBQUVOLFNBQVMsRUFBRUgsUUFBUSxDQUFDLENBQUM7RUFFakMsT0FDRTFDLElBQUEsQ0FBQSxLQUFBLEVBQUFWLE1BQUEsQ0FBQXlFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTVQsSUFBSSxFQUFBO0lBQ1JILEtBQUssRUFBRVcsV0FBVztJQUNsQlosU0FBUyxFQUFFVyxjQUFjO0lBQUFaLFFBQUEsRUFFeEJBO0VBQVEsQ0FBQSxDQUFBLENBQ0w7QUFFVixDQUFDLENBQUM7QUFFRkQsR0FBRyxDQUFDaUIsV0FBVyxHQUFHLEtBQUs7QUFFdkIsZUFBZWpCLEdBQUciLCJmaWxlIjoiY29tcG9uZW50cy9HcmlkL0NvbC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMsIHsgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgZGV2V2Fybk9uY2UsIGlzUHJvZHVjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2Rldldhcm4nO1xuaW1wb3J0IHsgR1JJRF9CUkVBS1BPSU5UUywgR1JJRF9DTEFTUywgR1JJRF9DT0xfUFJFRklYLCBHUklEX0NPTFVNTlMsIEdSSURfQ1NTX1ZBUlMsIEdSSURfUkVTUE9OU0lWRV9DU1NfVkFSUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUNvbFNpemUsIG5vcm1hbGl6ZUZsZXggfSBmcm9tICcuL2hlbHBlcic7XG5jb25zdCBDT0xfUkFOR0VfS0VZUyA9IFsnc3BhbicsICdvZmZzZXQnLCAnb3JkZXInLCAncHVzaCcsICdwdWxsJ107XG4vLyBEZXYtb25seSBndWFyZDogc3Bhbi9vZmZzZXQvb3JkZXIvcHVzaC9wdWxsIOKAlCBib3RoIHRvcC1sZXZlbCBBTkQgdGhlIHJlc3BvbnNpdmVcbi8vIHNtL21kL2xnIGVxdWl2YWxlbnRzIOKAlCBtYXAgdG8gY2xhc3NlcyBnZW5lcmF0ZWQgZm9yIDDigJNHUklEX0NPTFVNTlMgb25seTsgdmFsdWVzXG4vLyBvdXRzaWRlIHRoYXQgcmFuZ2Ugc2lsZW50bHkgcHJvZHVjZSBhIGNsYXNzIHdpdGggbm8gbWF0Y2hpbmcgQ1NTLiBXYXJucyBvbmNlIHBlclxuLy8gZGlzdGluY3QgbWlzdXNlICh2aWEgdGhlIHNoYXJlZCBkZXZXYXJuT25jZSkgaW5zdGVhZCBvZiBvbiBldmVyeSByZW5kZXIuXG5jb25zdCB3YXJuQ29sUmFuZ2UgPSAoc2NvcGUsIHZhbHVlcykgPT4ge1xuICAgIENPTF9SQU5HRV9LRVlTLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IEdSSURfQ09MVU1OUykpIHtcbiAgICAgICAgICAgIGNvbnN0IHVzYWdlID0gc2NvcGUgPyBgJHtzY29wZX09e3sgJHtrZXl9OiAke3ZhbHVlfSB9fWAgOiBgJHtrZXl9PXske3ZhbHVlfX1gO1xuICAgICAgICAgICAgZGV2V2Fybk9uY2UoYGdyaWQtY29sLXJhbmdlOiR7c2NvcGV9OiR7a2V5fToke3ZhbHVlfWAsIGBbR3JpZC5Db2xdIFxcYCR7dXNhZ2V9XFxgIGlzIG91dHNpZGUgdGhlIDDigJMke0dSSURfQ09MVU1OU30gcmFuZ2U7IG5vIG1hdGNoaW5nIHN0eWxlIGlzIGdlbmVyYXRlZC5gKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbi8vIEdhdGVkIGJ5IGlzUHJvZHVjdGlvbigpIHNvIHRoZSBwZXItcmVuZGVyIGFyZyBvYmplY3RzIGFyZSBuZXZlciBhbGxvY2F0ZWQgaW5cbi8vIHByb2R1Y3Rpb24gYnVpbGRzLlxuY29uc3Qgd2FybkNvbFJhbmdlSW5EZXYgPSAocHJvcHMpID0+IHtcbiAgICBpZiAoaXNQcm9kdWN0aW9uKCkpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCB7IHNwYW4sIG9mZnNldCwgb3JkZXIsIHB1c2gsIHB1bGwsIHNtLCBtZCwgbGcgfSA9IHByb3BzO1xuICAgIHdhcm5Db2xSYW5nZSgnJywgeyBzcGFuLCBvZmZzZXQsIG9yZGVyLCBwdXNoLCBwdWxsIH0pO1xuICAgIFtbJ3NtJywgc21dLCBbJ21kJywgbWRdLCBbJ2xnJywgbGddXS5mb3JFYWNoKChbc2NvcGUsIHNpemVdKSA9PiB7XG4gICAgICAgIGlmIChzaXplICE9IG51bGwpXG4gICAgICAgICAgICB3YXJuQ29sUmFuZ2Uoc2NvcGUsIG5vcm1hbGl6ZUNvbFNpemUoc2l6ZSkpO1xuICAgIH0pO1xufTtcbmNvbnN0IGJ1aWxkUmVzcG9uc2l2ZUNvbmZpZyA9IChicmVha3BvaW50cywgY2xhc3NlcykgPT4ge1xuICAgIGNvbnN0IGNsYXNzTGlzdCA9IFtdO1xuICAgIGNvbnN0IGZsZXhWYXJzID0ge307XG4gICAgR1JJRF9CUkVBS1BPSU5UUy5mb3JFYWNoKGJwID0+IHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGJyZWFrcG9pbnRzW2JwXTtcbiAgICAgICAgaWYgKHNpemUgPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvbFNpemUoc2l6ZSk7XG4gICAgICAgIGNvbnN0IGZsZXhWYWx1ZSA9IG5vcm1hbGl6ZUZsZXgobm9ybWFsaXplZC5mbGV4KTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQuc3BhbiAhPSBudWxsICYmICFmbGV4VmFsdWUpXG4gICAgICAgICAgICBjbGFzc0xpc3QucHVzaChjbGFzc2VzKGAke2JwfS0ke25vcm1hbGl6ZWQuc3Bhbn1gKSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkLm9mZnNldCAhPSBudWxsKVxuICAgICAgICAgICAgY2xhc3NMaXN0LnB1c2goY2xhc3NlcyhgJHticH0tJHtHUklEX0NMQVNTLm9mZnNldH0tJHtub3JtYWxpemVkLm9mZnNldH1gKSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkLm9yZGVyICE9IG51bGwpXG4gICAgICAgICAgICBjbGFzc0xpc3QucHVzaChjbGFzc2VzKGAke2JwfS0ke0dSSURfQ0xBU1Mub3JkZXJ9LSR7bm9ybWFsaXplZC5vcmRlcn1gKSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkLnB1bGwgIT0gbnVsbClcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7R1JJRF9DTEFTUy5wdWxsfS0ke25vcm1hbGl6ZWQucHVsbH1gKSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkLnB1c2ggIT0gbnVsbClcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7R1JJRF9DTEFTUy5wdXNofS0ke25vcm1hbGl6ZWQucHVzaH1gKSk7XG4gICAgICAgIGlmIChmbGV4VmFsdWUpIHtcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7R1JJRF9DTEFTUy5mbGV4fWApKTtcbiAgICAgICAgICAgIGZsZXhWYXJzW0dSSURfUkVTUE9OU0lWRV9DU1NfVkFSU1ticF0uY29sRmxleF0gPSBmbGV4VmFsdWU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4geyBjbGFzc0xpc3QsIGZsZXhWYXJzIH07XG59O1xuZXhwb3J0IGNvbnN0IENvbCA9IG1lbW8ocHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIHNwYW4sIG9mZnNldCwgb3JkZXIsIHB1bGwsIHB1c2gsIGZsZXgsIHNtLCBtZCwgbGcsIGNsYXNzTmFtZSwgc3R5bGUsIHByZWZpeENscyA9IEdSSURfQ09MX1BSRUZJWCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNoaWxkcmVuXCIsIFwic3BhblwiLCBcIm9mZnNldFwiLCBcIm9yZGVyXCIsIFwicHVsbFwiLCBcInB1c2hcIiwgXCJmbGV4XCIsIFwic21cIiwgXCJtZFwiLCBcImxnXCIsIFwiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJwcmVmaXhDbHNcIl0pO1xuICAgIHdhcm5Db2xSYW5nZUluRGV2KHsgc3Bhbiwgb2Zmc2V0LCBvcmRlciwgcHVzaCwgcHVsbCwgc20sIG1kLCBsZyB9KTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZVZhbHVlLCBmbGV4VmFsdWUsIGZsZXhWYXJzIH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICAgICAgY29uc3QgeyBjbGFzc0xpc3QsIGZsZXhWYXJzIH0gPSBidWlsZFJlc3BvbnNpdmVDb25maWcoeyBzbSwgbWQsIGxnIH0sIGNsYXNzZXMpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRmxleCA9IG5vcm1hbGl6ZUZsZXgoZmxleCk7XG4gICAgICAgIGNvbnN0IG5leHRDbGFzc05hbWUgPSBqb2luQ2xzKGNsYXNzZXMoKSwgc3BhbiAhPSBudWxsICYmICFub3JtYWxpemVkRmxleCAmJiBjbGFzc2VzKGAke3NwYW59YCksIG9mZnNldCAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5vZmZzZXR9LSR7b2Zmc2V0fWApLCBvcmRlciAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5vcmRlcn0tJHtvcmRlcn1gKSwgcHVzaCAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5wdXNofS0ke3B1c2h9YCksIHB1bGwgIT0gbnVsbCAmJiBjbGFzc2VzKGAke0dSSURfQ0xBU1MucHVsbH0tJHtwdWxsfWApLCAuLi5jbGFzc0xpc3QsIGNsYXNzTmFtZSk7XG4gICAgICAgIHJldHVybiB7IGNsYXNzTmFtZVZhbHVlOiBuZXh0Q2xhc3NOYW1lLCBmbGV4VmFsdWU6IG5vcm1hbGl6ZWRGbGV4LCBmbGV4VmFycyB9O1xuICAgIH0sIFtjbGFzc05hbWUsIGZsZXgsIGxnLCBtZCwgb2Zmc2V0LCBvcmRlciwgcHJlZml4Q2xzLCBwdWxsLCBwdXNoLCBzbSwgc3Bhbl0pO1xuICAgIC8vIFVzZXItc3VwcGxpZWQgYHN0eWxlYCB3aW5zIG92ZXIgdGhlIGNvbXB1dGVkIGZsZXggQ1NTIHZhcnMuXG4gICAgY29uc3QgbWVyZ2VkU3R5bGUgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKGZsZXhWYWx1ZSAmJiB7IFtHUklEX0NTU19WQVJTLmNvbEZsZXhdOiBmbGV4VmFsdWUgfSkpLCBmbGV4VmFycyksIHN0eWxlKSksIFtzdHlsZSwgZmxleFZhbHVlLCBmbGV4VmFyc10pO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHN0eWxlOiBtZXJnZWRTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVWYWx1ZSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSk7XG59KTtcbkNvbC5kaXNwbGF5TmFtZSA9ICdDb2wnO1xuZXhwb3J0IGRlZmF1bHQgQ29sOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -3,7 +3,10 @@ import type { GridRowProps } from './interface';
|
|
|
3
3
|
import './style';
|
|
4
4
|
export interface GridProps extends GridRowProps {
|
|
5
5
|
}
|
|
6
|
-
export declare const Grid:
|
|
6
|
+
export declare const Grid: {
|
|
7
|
+
(props: PropsWithChildren<GridProps>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
displayName: string;
|
|
9
|
+
} & {
|
|
7
10
|
Row: import("react").NamedExoticComponent<PropsWithChildren<GridRowProps>>;
|
|
8
11
|
Col: import("react").NamedExoticComponent<PropsWithChildren<import("./interface").GridColProps>>;
|
|
9
12
|
};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from 'react';
|
|
3
2
|
import { Row } from './Row';
|
|
4
3
|
import { Col } from './Col';
|
|
5
4
|
import './style';
|
|
6
|
-
|
|
5
|
+
// `Row` is already memoized, so no extra `memo` wrapper is needed here — this
|
|
6
|
+
// thin alias just exposes `Row` under the `Grid` name with `Grid.Row`/`Grid.Col`.
|
|
7
|
+
var GridInner = function GridInner(props) {
|
|
7
8
|
return _jsx(Row, Object.assign({}, props));
|
|
8
|
-
}
|
|
9
|
+
};
|
|
9
10
|
GridInner.displayName = 'Grid';
|
|
10
11
|
export var Grid = Object.assign(GridInner, {
|
|
11
12
|
Row: Row,
|
|
12
13
|
Col: Col
|
|
13
14
|
});
|
|
14
15
|
export default Grid;
|
|
15
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9HcmlkLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9HcmlkL0dyaWQudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJSb3ciLCJDb2wiLCJHcmlkSW5uZXIiLCJwcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsImRpc3BsYXlOYW1lIiwiR3JpZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLFFBQVEsbUJBQW1CO0FDRS9DLFNBQVNDLEdBQUcsUUFBUSxPQUFPO0FBQzNCLFNBQVNDLEdBQUcsUUFBUSxPQUFPO0FBQzNCLE9BQU8sU0FBUztBQUloQjtBQUNBO0FBQ0EsSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlDLEtBQW1DO0VBQUEsT0FBS0osSUFBQSxDQUFDQyxHQUFHLEVBQUFJLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLRixLQUFLLENBQUEsQ0FBSTtBQUFBO0FBRTdFRCxTQUFTLENBQUNJLFdBQVcsR0FBRyxNQUFNO0FBRTlCLE9BQU8sSUFBTUMsSUFBSSxHQUFHSCxNQUFNLENBQUNDLE1BQU0sQ0FBQ0gsU0FBUyxFQUFFO0VBQUVGLEdBQUcsRUFBSEEsR0FBRztFQUFFQyxHQUFHLEVBQUhBO0FBQUcsQ0FBRSxDQUFDO0FBRTFELGVBQWVNLElBQUkiLCJmaWxlIjoiY29tcG9uZW50cy9HcmlkL0dyaWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi9Sb3cnO1xuaW1wb3J0IHsgQ29sIH0gZnJvbSAnLi9Db2wnO1xuaW1wb3J0ICcuL3N0eWxlJztcbi8vIGBSb3dgIGlzIGFscmVhZHkgbWVtb2l6ZWQsIHNvIG5vIGV4dHJhIGBtZW1vYCB3cmFwcGVyIGlzIG5lZWRlZCBoZXJlIOKAlCB0aGlzXG4vLyB0aGluIGFsaWFzIGp1c3QgZXhwb3NlcyBgUm93YCB1bmRlciB0aGUgYEdyaWRgIG5hbWUgd2l0aCBgR3JpZC5Sb3dgL2BHcmlkLkNvbGAuXG5jb25zdCBHcmlkSW5uZXIgPSAocHJvcHMpID0+IF9qc3goUm93LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcykpO1xuR3JpZElubmVyLmRpc3BsYXlOYW1lID0gJ0dyaWQnO1xuZXhwb3J0IGNvbnN0IEdyaWQgPSBPYmplY3QuYXNzaWduKEdyaWRJbm5lciwgeyBSb3csIENvbCB9KTtcbmV4cG9ydCBkZWZhdWx0IEdyaWQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -10,7 +10,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
10
10
|
import { memo } from 'react';
|
|
11
11
|
import classnames, { joinCls } from '../../utils/classnames';
|
|
12
12
|
import { GRID_CLASS, GRID_DEFAULT_WRAP, GRID_ROW_PREFIX } from './constants';
|
|
13
|
-
import { buildGutterVars, buildJustifyVars } from './helper';
|
|
13
|
+
import { buildAlignVars, buildGutterVars, buildJustifyVars } from './helper';
|
|
14
14
|
export var Row = /*#__PURE__*/memo(function (props) {
|
|
15
15
|
var children = props.children,
|
|
16
16
|
gutter = props.gutter,
|
|
@@ -26,10 +26,12 @@ export var Row = /*#__PURE__*/memo(function (props) {
|
|
|
26
26
|
var classes = classnames(prefixCls);
|
|
27
27
|
var gutterVars = buildGutterVars(gutter);
|
|
28
28
|
var _buildJustifyVars = buildJustifyVars(justify),
|
|
29
|
-
justifyValue = _buildJustifyVars.staticValue,
|
|
30
29
|
justifyVars = _buildJustifyVars.cssVars;
|
|
31
|
-
var
|
|
32
|
-
|
|
30
|
+
var _buildAlignVars = buildAlignVars(align),
|
|
31
|
+
alignVars = _buildAlignVars.cssVars;
|
|
32
|
+
// User-supplied `style` wins over the computed gutter/justify/align CSS vars.
|
|
33
|
+
var mergedStyle = Object.assign(Object.assign(Object.assign(Object.assign({}, gutterVars), justifyVars), alignVars), style);
|
|
34
|
+
var classNameValue = joinCls(classes(), wrap === false && classes(GRID_CLASS.noWrap), className);
|
|
33
35
|
return _jsx("div", Object.assign({}, rest, {
|
|
34
36
|
style: mergedStyle,
|
|
35
37
|
className: classNameValue,
|
|
@@ -38,4 +40,4 @@ export var Row = /*#__PURE__*/memo(function (props) {
|
|
|
38
40
|
});
|
|
39
41
|
Row.displayName = 'Row';
|
|
40
42
|
export default Row;
|
|
41
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9Sb3cuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0dyaWQvUm93LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJtZW1vIiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJHUklEX0NMQVNTIiwiR1JJRF9ERUZBVUxUX1dSQVAiLCJHUklEX1JPV19QUkVGSVgiLCJidWlsZEFsaWduVmFycyIsImJ1aWxkR3V0dGVyVmFycyIsImJ1aWxkSnVzdGlmeVZhcnMiLCJSb3ciLCJwcm9wcyIsImNoaWxkcmVuIiwiZ3V0dGVyIiwiYWxpZ24iLCJqdXN0aWZ5IiwiX3Byb3BzJHdyYXAiLCJ3cmFwIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsImNsYXNzZXMiLCJndXR0ZXJWYXJzIiwiX2J1aWxkSnVzdGlmeVZhcnMiLCJqdXN0aWZ5VmFycyIsImNzc1ZhcnMiLCJfYnVpbGRBbGlnblZhcnMiLCJhbGlnblZhcnMiLCJtZXJnZWRTdHlsZSIsImFzc2lnbiIsImNsYXNzTmFtZVZhbHVlIiwibm9XcmFwIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVBQzFFUixDQUFDLENBQUNDLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBR1YsQ0FBQyxDQUFDRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0osT0FBT1IsQ0FBQztBQUNaLENBQUM7QUFDRCxTQUFTVyxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNYL0MsU0FBU0MsSUFBSSxRQUFRLE9BQU87QUFDNUIsT0FBT0MsVUFBVSxJQUFJQyxPQUFPLFFBQVEsd0JBQXdCO0FBQzVELFNBQVNDLFVBQVUsRUFBRUMsaUJBQWlCLEVBQUVDLGVBQWUsUUFBUSxhQUFhO0FBQzVFLFNBQVNDLGNBQWMsRUFBRUMsZUFBZSxFQUFFQyxnQkFBZ0IsUUFBUSxVQUFVO0FBSTVFLE9BQU8sSUFBTUMsR0FBRyxnQkFBR1QsSUFBSSxDQUFrQyxVQUFBVSxLQUFLLEVBQUc7RUFDL0QsSUFDRUMsUUFBUSxHQVNORCxLQUFLLENBVFBDLFFBQVE7SUFDUkMsTUFBTSxHQVFKRixLQUFLLENBUlBFLE1BQU07SUFDTkMsS0FBSyxHQU9ISCxLQUFLLENBUFBHLEtBQUs7SUFDTEMsT0FBTyxHQU1MSixLQUFLLENBTlBJLE9BQU87SUFBQUMsV0FBQSxHQU1MTCxLQUFLLENBTFBNLElBQUk7SUFBSkEsSUFBSSxHQUFBRCxXQUFBLGNBQUdYLGlCQUFpQixHQUFBVyxXQUFBO0lBQ3hCRSxTQUFTLEdBSVBQLEtBQUssQ0FKUE8sU0FBUztJQUNUQyxLQUFLLEdBR0hSLEtBQUssQ0FIUFEsS0FBSztJQUFBQyxnQkFBQSxHQUdIVCxLQUFLLENBRlBVLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHZCxlQUFlLEdBQUFjLGdCQUFBO0lBQ3hCRSxJQUFJLEdBQUFyQyxNQUFBLENBQ0wwQixLQUFLLEVBVkgsQ0FBQSxVQUFBLEVBQUEsUUFBQSxFQUFBLE9BQUEsRUFBQSxTQUFBLEVBQUEsTUFBQSxFQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUEsV0FBQSxDQVVMLENBQVE7RUFFVCxJQUFNWSxPQUFPLEdBQUdyQixVQUFVLENBQUNtQixTQUFTLENBQUM7RUFDckMsSUFBTUcsVUFBVSxHQUFHaEIsZUFBZSxDQUFDSyxNQUFNLENBQUM7RUFDMUMsSUFBQVksaUJBQUEsR0FBaUNoQixnQkFBZ0IsQ0FBQ00sT0FBTyxDQUFDO0lBQXpDVyxXQUFXLEdBQUFELGlCQUFBLENBQXBCRSxPQUFPO0VBQ2YsSUFBQUMsZUFBQSxHQUErQnJCLGNBQWMsQ0FBQ08sS0FBSyxDQUFDO0lBQW5DZSxTQUFTLEdBQUFELGVBQUEsQ0FBbEJELE9BQU87RUFFZjtFQUNBLElBQU1HLFdBQVcsR0FBQXhDLE1BQUEsQ0FBQXlDLE1BQUEsQ0FBQXpDLE1BQUEsQ0FBQXlDLE1BQUEsQ0FBQXpDLE1BQUEsQ0FBQXlDLE1BQUEsQ0FBQXpDLE1BQUEsQ0FBQXlDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBdUJQLFVBQVUsQ0FBQSxFQUFLRSxXQUFXLENBQUEsRUFBS0csU0FBUyxDQUFBLEVBQUtWLEtBQUssQ0FBRTtFQUU1RixJQUFNYSxjQUFjLEdBQUc3QixPQUFPLENBQUNvQixPQUFPLENBQUEsQ0FBRSxFQUFFTixJQUFJLEtBQUssS0FBSyxJQUFJTSxPQUFPLENBQUNuQixVQUFVLENBQUM2QixNQUFNLENBQUMsRUFBRWYsU0FBUyxDQUFDO0VBRWxHLE9BQ0VsQixJQUFBLENBQUEsS0FBQSxFQUFBVixNQUFBLENBQUF5QyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ01ULElBQUksRUFBQTtJQUNSSCxLQUFLLEVBQUVXLFdBQVc7SUFDbEJaLFNBQVMsRUFBRWMsY0FBYztJQUFBcEIsUUFBQSxFQUV4QkE7RUFBUSxDQUFBLENBQUEsQ0FDTDtBQUVWLENBQUMsQ0FBQztBQUVGRixHQUFHLENBQUN3QixXQUFXLEdBQUcsS0FBSztBQUV2QixlQUFleEIsR0FBRyIsImZpbGUiOiJjb21wb25lbnRzL0dyaWQvUm93LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcywgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBHUklEX0NMQVNTLCBHUklEX0RFRkFVTFRfV1JBUCwgR1JJRF9ST1dfUFJFRklYIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRBbGlnblZhcnMsIGJ1aWxkR3V0dGVyVmFycywgYnVpbGRKdXN0aWZ5VmFycyB9IGZyb20gJy4vaGVscGVyJztcbmV4cG9ydCBjb25zdCBSb3cgPSBtZW1vKHByb3BzID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBndXR0ZXIsIGFsaWduLCBqdXN0aWZ5LCB3cmFwID0gR1JJRF9ERUZBVUxUX1dSQVAsIGNsYXNzTmFtZSwgc3R5bGUsIHByZWZpeENscyA9IEdSSURfUk9XX1BSRUZJWCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNoaWxkcmVuXCIsIFwiZ3V0dGVyXCIsIFwiYWxpZ25cIiwgXCJqdXN0aWZ5XCIsIFwid3JhcFwiLCBcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGd1dHRlclZhcnMgPSBidWlsZEd1dHRlclZhcnMoZ3V0dGVyKTtcbiAgICBjb25zdCB7IGNzc1ZhcnM6IGp1c3RpZnlWYXJzIH0gPSBidWlsZEp1c3RpZnlWYXJzKGp1c3RpZnkpO1xuICAgIGNvbnN0IHsgY3NzVmFyczogYWxpZ25WYXJzIH0gPSBidWlsZEFsaWduVmFycyhhbGlnbik7XG4gICAgLy8gVXNlci1zdXBwbGllZCBgc3R5bGVgIHdpbnMgb3ZlciB0aGUgY29tcHV0ZWQgZ3V0dGVyL2p1c3RpZnkvYWxpZ24gQ1NTIHZhcnMuXG4gICAgY29uc3QgbWVyZ2VkU3R5bGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBndXR0ZXJWYXJzKSwganVzdGlmeVZhcnMpLCBhbGlnblZhcnMpLCBzdHlsZSk7XG4gICAgY29uc3QgY2xhc3NOYW1lVmFsdWUgPSBqb2luQ2xzKGNsYXNzZXMoKSwgd3JhcCA9PT0gZmFsc2UgJiYgY2xhc3NlcyhHUklEX0NMQVNTLm5vV3JhcCksIGNsYXNzTmFtZSk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgc3R5bGU6IG1lcmdlZFN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZVZhbHVlLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuUm93LmRpc3BsYXlOYW1lID0gJ1Jvdyc7XG5leHBvcnQgZGVmYXVsdCBSb3c7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GridBreakpoint, GridJustify } from './interface';
|
|
1
|
+
import type { GridAlign, GridBreakpoint, GridJustify } from './interface';
|
|
2
2
|
export declare const GRID_ALIGN: {
|
|
3
3
|
readonly top: "top";
|
|
4
4
|
readonly middle: "middle";
|
|
@@ -22,27 +22,29 @@ export declare const GRID_DEFAULT_GUTTER: [number, number];
|
|
|
22
22
|
export declare const GRID_FLEX_AUTO = "auto";
|
|
23
23
|
export declare const GRID_BREAKPOINTS: GridBreakpoint[];
|
|
24
24
|
export declare const GRID_JUSTIFY_CSS: Record<GridJustify, string>;
|
|
25
|
+
export declare const GRID_ALIGN_CSS: Record<GridAlign, string>;
|
|
25
26
|
export declare const GRID_BREAKPOINT_MIN_WIDTH: Record<GridBreakpoint, number>;
|
|
26
27
|
export declare const GRID_CSS_VARS: {
|
|
27
28
|
readonly gutterX: "--om-grid-gutter-x";
|
|
28
29
|
readonly gutterY: "--om-grid-gutter-y";
|
|
29
30
|
readonly justify: "--om-grid-justify";
|
|
31
|
+
readonly align: "--om-grid-align";
|
|
30
32
|
readonly colFlex: "--om-grid-col-flex";
|
|
31
33
|
};
|
|
32
34
|
interface GridResponsiveCSSVars {
|
|
33
35
|
gutterX: string;
|
|
34
36
|
gutterY: string;
|
|
35
37
|
justify: string;
|
|
38
|
+
align: string;
|
|
36
39
|
colFlex: string;
|
|
37
40
|
}
|
|
38
41
|
export declare const GRID_RESPONSIVE_CSS_VARS: Record<GridBreakpoint, GridResponsiveCSSVars>;
|
|
39
42
|
export declare const GRID_CLASS: {
|
|
40
43
|
readonly noWrap: "no-wrap";
|
|
41
|
-
readonly align: "align";
|
|
42
|
-
readonly justify: "justify";
|
|
43
44
|
readonly offset: "offset";
|
|
44
45
|
readonly order: "order";
|
|
45
46
|
readonly push: "push";
|
|
46
47
|
readonly pull: "pull";
|
|
48
|
+
readonly flex: "flex";
|
|
47
49
|
};
|
|
48
50
|
export {};
|