no-frills-ui 0.0.14-alpha.7 → 0.0.14-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -3
- package/dist/index.js +926 -795
- package/dist/index.js.map +1 -1
- package/lib-esm/components/Accordion/Accordion.d.ts +9 -13
- package/lib-esm/components/Accordion/Accordion.js +4 -10
- package/lib-esm/components/Accordion/Accordion.js.map +1 -0
- package/lib-esm/components/Accordion/AccordionStep.d.ts +22 -22
- package/lib-esm/components/Accordion/AccordionStep.js +41 -35
- package/lib-esm/components/Accordion/AccordionStep.js.map +1 -0
- package/lib-esm/components/Badge/Badge.d.ts +13 -16
- package/lib-esm/components/Badge/Badge.js +12 -21
- package/lib-esm/components/Badge/Badge.js.map +1 -0
- package/lib-esm/components/Button/ActionButton.d.ts +9 -5
- package/lib-esm/components/Button/ActionButton.js +20 -4
- package/lib-esm/components/Button/ActionButton.js.map +1 -0
- package/lib-esm/components/Button/Button.d.ts +9 -5
- package/lib-esm/components/Button/Button.js +19 -6
- package/lib-esm/components/Button/Button.js.map +1 -0
- package/lib-esm/components/Button/IconButton.d.ts +9 -5
- package/lib-esm/components/Button/IconButton.js +20 -4
- package/lib-esm/components/Button/IconButton.js.map +1 -0
- package/lib-esm/components/Button/LinkButton.d.ts +9 -5
- package/lib-esm/components/Button/LinkButton.js +20 -4
- package/lib-esm/components/Button/LinkButton.js.map +1 -0
- package/lib-esm/components/Button/RaisedButton.d.ts +9 -5
- package/lib-esm/components/Button/RaisedButton.js +20 -4
- package/lib-esm/components/Button/RaisedButton.js.map +1 -0
- package/lib-esm/components/Card/Card.d.ts +4 -6
- package/lib-esm/components/Card/Card.js +18 -4
- package/lib-esm/components/Card/Card.js.map +1 -0
- package/lib-esm/components/Chip/Chip.d.ts +2 -2
- package/lib-esm/components/Chip/Chip.js +17 -10
- package/lib-esm/components/Chip/Chip.js.map +1 -0
- package/lib-esm/components/ChipInput/ChipInput.d.ts +28 -39
- package/lib-esm/components/ChipInput/ChipInput.js +39 -39
- package/lib-esm/components/ChipInput/ChipInput.js.map +1 -0
- package/lib-esm/components/Dialog/AlertDialog.d.ts +11 -12
- package/lib-esm/components/Dialog/AlertDialog.js +5 -11
- package/lib-esm/components/Dialog/AlertDialog.js.map +1 -0
- package/lib-esm/components/Dialog/ConfirmDialog.d.ts +13 -14
- package/lib-esm/components/Dialog/ConfirmDialog.js +5 -12
- package/lib-esm/components/Dialog/ConfirmDialog.js.map +1 -0
- package/lib-esm/components/Dialog/Dialog.d.ts +8 -14
- package/lib-esm/components/Dialog/Dialog.js +13 -10
- package/lib-esm/components/Dialog/Dialog.js.map +1 -0
- package/lib-esm/components/Dialog/PromptDialog.d.ts +18 -19
- package/lib-esm/components/Dialog/PromptDialog.js +14 -21
- package/lib-esm/components/Dialog/PromptDialog.js.map +1 -0
- package/lib-esm/components/DragAndDrop/DragAndDrop.d.ts +37 -59
- package/lib-esm/components/DragAndDrop/DragAndDrop.js +26 -28
- package/lib-esm/components/DragAndDrop/DragAndDrop.js.map +1 -0
- package/lib-esm/components/DragAndDrop/DragItem.d.ts +2 -2
- package/lib-esm/components/DragAndDrop/DragItem.js +43 -40
- package/lib-esm/components/DragAndDrop/DragItem.js.map +1 -0
- package/lib-esm/components/DragAndDrop/types.d.ts +3 -3
- package/lib-esm/components/DragAndDrop/types.js +1 -0
- package/lib-esm/components/DragAndDrop/types.js.map +1 -0
- package/lib-esm/components/Drawer/Drawer.d.ts +24 -31
- package/lib-esm/components/Drawer/Drawer.js +50 -45
- package/lib-esm/components/Drawer/Drawer.js.map +1 -0
- package/lib-esm/components/Groups/Group.d.ts +6 -8
- package/lib-esm/components/Groups/Group.js +15 -12
- package/lib-esm/components/Groups/Group.js.map +1 -0
- package/lib-esm/components/Groups/GroupLabel.js +2 -1
- package/lib-esm/components/Groups/GroupLabel.js.map +1 -0
- package/lib-esm/components/Input/Checkbox.d.ts +12 -15
- package/lib-esm/components/Input/Checkbox.js +34 -29
- package/lib-esm/components/Input/Checkbox.js.map +1 -0
- package/lib-esm/components/Input/Dropdown.d.ts +8 -18
- package/lib-esm/components/Input/Dropdown.js +44 -18
- package/lib-esm/components/Input/Dropdown.js.map +1 -0
- package/lib-esm/components/Input/Input.d.ts +8 -3
- package/lib-esm/components/Input/Input.js +24 -22
- package/lib-esm/components/Input/Input.js.map +1 -0
- package/lib-esm/components/Input/Radio.d.ts +4 -8
- package/lib-esm/components/Input/Radio.js +20 -16
- package/lib-esm/components/Input/Radio.js.map +1 -0
- package/lib-esm/components/Input/RadioButton.d.ts +4 -8
- package/lib-esm/components/Input/RadioButton.js +19 -15
- package/lib-esm/components/Input/RadioButton.js.map +1 -0
- package/lib-esm/components/Input/Select.d.ts +6 -13
- package/lib-esm/components/Input/Select.js +26 -22
- package/lib-esm/components/Input/Select.js.map +1 -0
- package/lib-esm/components/Input/TextArea.d.ts +6 -13
- package/lib-esm/components/Input/TextArea.js +33 -27
- package/lib-esm/components/Input/TextArea.js.map +1 -0
- package/lib-esm/components/Input/Toggle.d.ts +4 -9
- package/lib-esm/components/Input/Toggle.js +15 -12
- package/lib-esm/components/Input/Toggle.js.map +1 -0
- package/lib-esm/components/Menu/Menu.d.ts +4 -14
- package/lib-esm/components/Menu/Menu.js +26 -17
- package/lib-esm/components/Menu/Menu.js.map +1 -0
- package/lib-esm/components/Menu/MenuContext.d.ts +4 -4
- package/lib-esm/components/Menu/MenuContext.js +2 -0
- package/lib-esm/components/Menu/MenuContext.js.map +1 -0
- package/lib-esm/components/Menu/MenuItem.d.ts +10 -4
- package/lib-esm/components/Menu/MenuItem.js +21 -6
- package/lib-esm/components/Menu/MenuItem.js.map +1 -0
- package/lib-esm/components/Modal/Modal.d.ts +17 -23
- package/lib-esm/components/Modal/Modal.js +38 -34
- package/lib-esm/components/Modal/Modal.js.map +1 -0
- package/lib-esm/components/Notification/Notification.d.ts +39 -34
- package/lib-esm/components/Notification/Notification.js +17 -39
- package/lib-esm/components/Notification/Notification.js.map +1 -0
- package/lib-esm/components/Notification/NotificationManager.d.ts +4 -4
- package/lib-esm/components/Notification/NotificationManager.js +19 -14
- package/lib-esm/components/Notification/NotificationManager.js.map +1 -0
- package/lib-esm/components/Notification/index.d.ts +1 -0
- package/lib-esm/components/Notification/style.d.ts +2 -3
- package/lib-esm/components/Notification/style.js +21 -20
- package/lib-esm/components/Notification/style.js.map +1 -0
- package/lib-esm/components/Notification/types.js +1 -0
- package/lib-esm/components/Notification/types.js.map +1 -0
- package/lib-esm/components/Popover/Popover.d.ts +21 -20
- package/lib-esm/components/Popover/Popover.js +44 -45
- package/lib-esm/components/Popover/Popover.js.map +1 -0
- package/lib-esm/components/Spinner/Spinner.d.ts +14 -15
- package/lib-esm/components/Spinner/Spinner.js +14 -14
- package/lib-esm/components/Spinner/Spinner.js.map +1 -0
- package/lib-esm/components/Stepper/Step.d.ts +15 -12
- package/lib-esm/components/Stepper/Step.js +12 -9
- package/lib-esm/components/Stepper/Step.js.map +1 -0
- package/lib-esm/components/Stepper/Stepper.d.ts +11 -17
- package/lib-esm/components/Stepper/Stepper.js +30 -27
- package/lib-esm/components/Stepper/Stepper.js.map +1 -0
- package/lib-esm/components/Tabs/Tab.d.ts +10 -16
- package/lib-esm/components/Tabs/Tab.js +1 -8
- package/lib-esm/components/Tabs/Tab.js.map +1 -0
- package/lib-esm/components/Tabs/Tabs.d.ts +11 -22
- package/lib-esm/components/Tabs/Tabs.js +43 -34
- package/lib-esm/components/Tabs/Tabs.js.map +1 -0
- package/lib-esm/components/Toast/Toast.d.ts +7 -7
- package/lib-esm/components/Toast/Toast.js +17 -15
- package/lib-esm/components/Toast/Toast.js.map +1 -0
- package/lib-esm/components/Toast/ToastStory.d.ts +21 -24
- package/lib-esm/components/Tooltip/Tooltip.d.ts +11 -14
- package/lib-esm/components/Tooltip/Tooltip.js +14 -23
- package/lib-esm/components/Tooltip/Tooltip.js.map +1 -0
- package/lib-esm/icons/CheckCircle.js +3 -2
- package/lib-esm/icons/CheckCircle.js.map +1 -0
- package/lib-esm/icons/Close.js +1 -0
- package/lib-esm/icons/Close.js.map +1 -0
- package/lib-esm/icons/DragIndicator.js +1 -0
- package/lib-esm/icons/DragIndicator.js.map +1 -0
- package/lib-esm/icons/ErrorOutline.js +3 -2
- package/lib-esm/icons/ErrorOutline.js.map +1 -0
- package/lib-esm/icons/ExpandMore.js +1 -0
- package/lib-esm/icons/ExpandMore.js.map +1 -0
- package/lib-esm/icons/FiberManualRecord.js +1 -0
- package/lib-esm/icons/FiberManualRecord.js.map +1 -0
- package/lib-esm/icons/Info.js +3 -2
- package/lib-esm/icons/Info.js.map +1 -0
- package/lib-esm/icons/ReportProblem.js +3 -2
- package/lib-esm/icons/ReportProblem.js.map +1 -0
- package/lib-esm/index.js +43 -0
- package/lib-esm/index.js.map +1 -0
- package/lib-esm/shared/LayerManager.d.ts +5 -4
- package/lib-esm/shared/LayerManager.js +125 -112
- package/lib-esm/shared/LayerManager.js.map +1 -0
- package/lib-esm/shared/constants.js +1 -0
- package/lib-esm/shared/constants.js.map +1 -0
- package/lib-esm/shared/styles.js +9 -8
- package/lib-esm/shared/styles.js.map +1 -0
- package/package.json +66 -31
- package/lib-esm/components/index.js +0 -42
|
@@ -8,11 +8,11 @@ interface DragItemProps {
|
|
|
8
8
|
/** Whether to show a drag handle indicator instead of making the entire item draggable */
|
|
9
9
|
showIndicator: boolean;
|
|
10
10
|
/** The index of the item currently being dragged over */
|
|
11
|
-
dragOver: number;
|
|
11
|
+
dragOver: number | null;
|
|
12
12
|
/** Total number of items in the list */
|
|
13
13
|
totalItems: number;
|
|
14
14
|
/** Callback to set announcement for screen readers */
|
|
15
|
-
setAnnouncement: (message
|
|
15
|
+
setAnnouncement: (message?: string) => void;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* A draggable item component that supports both mouse and touch interactions for drag-and-drop functionality.
|
|
@@ -6,17 +6,17 @@ import { DragContext, ORIENTATION } from './types.js';
|
|
|
6
6
|
import CheckCircle from '../../icons/DragIndicator.js';
|
|
7
7
|
|
|
8
8
|
/** Styled component for the draggable item container */ const Item = /*#__PURE__*/ styled("div", {
|
|
9
|
-
target: "
|
|
9
|
+
target: "ertl9d70",
|
|
10
10
|
label: "Item"
|
|
11
|
-
})("cursor:", (props)=>props.showIndicator ? 'default' : 'move', ";display:flex;user-select:", (props)=>props.showIndicator ? 'auto' : 'none', ";border-top:2px dashed\n ", (props)=>props.orientation === ORIENTATION.VERTICAL && props.active > 0 ? getThemeValue(THEME_NAME.PRIMARY) : 'transparent', ";border-bottom:2px dashed\n ", (props)=>props.orientation === ORIENTATION.VERTICAL && props.active < 0 ? getThemeValue(THEME_NAME.PRIMARY) : 'transparent', ";border-left:2px dashed\n ", (props)=>props.orientation === ORIENTATION.HORIZONTAL && props.active > 0 ? getThemeValue(THEME_NAME.PRIMARY) : 'transparent', ";border-right:2px dashed\n ", (props)=>props.orientation === ORIENTATION.HORIZONTAL && props.active < 0 ? getThemeValue(THEME_NAME.PRIMARY) : 'transparent', ";opacity:", (props)=>props.dragging ? 0.5 : 1, ";border-radius:10px;&:focus{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:focus:not(:focus-visible){box-shadow:none;}&:focus-visible{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9EcmFnQW5kRHJvcC9EcmFnSXRlbS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL25vLWZyaWxscy11aS9uby1mcmlsbHMtdWkvc3JjL2NvbXBvbmVudHMvRHJhZ0FuZERyb3AvRHJhZ0l0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRHJhZ0V2ZW50SGFuZGxlcixcbiAgICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgICB1c2VDb250ZXh0LFxuICAgIHVzZVN0YXRlLFxuICAgIHVzZUVmZmVjdCxcbiAgICBUb3VjaEV2ZW50SGFuZGxlcixcbiAgICB1c2VSZWYsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IERyYWdJbmRpY2F0b3IgfSBmcm9tICcuLi8uLi9pY29ucyc7XG5pbXBvcnQgeyBnZXRUaGVtZVZhbHVlLCBUSEVNRV9OQU1FIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPUklFTlRBVElPTiwgRHJhZ0NvbnRleHQgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIERyYWdJdGVtUHJvcHMge1xuICAgIC8qKiBQb3NpdGlvbiBpbmRleCBvZiB0aGUgZHJhZ2dhYmxlIGl0ZW0gKi9cbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKiBPcmllbnRhdGlvbiBvZiB0aGUgZHJhZyBvcGVyYXRpb24gKFZFUlRJQ0FMIG9yIEhPUklaT05UQUwpICovXG4gICAgb3JpZW50YXRpb246IE9SSUVOVEFUSU9OO1xuICAgIC8qKiBXaGV0aGVyIHRvIHNob3cgYSBkcmFnIGhhbmRsZSBpbmRpY2F0b3IgaW5zdGVhZCBvZiBtYWtpbmcgdGhlIGVudGlyZSBpdGVtIGRyYWdnYWJsZSAqL1xuICAgIHNob3dJbmRpY2F0b3I6IGJvb2xlYW47XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZCBvdmVyICovXG4gICAgZHJhZ092ZXI6IG51bWJlcjtcbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0ICovXG4gICAgdG90YWxJdGVtczogbnVtYmVyO1xuICAgIC8qKiBDYWxsYmFjayB0byBzZXQgYW5ub3VuY2VtZW50IGZvciBzY3JlZW4gcmVhZGVycyAqL1xuICAgIHNldEFubm91bmNlbWVudDogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuLyoqIFN0eWxlZCBjb21wb25lbnQgZm9yIHRoZSBkcmFnZ2FibGUgaXRlbSBjb250YWluZXIgKi9cbmNvbnN0IEl0ZW0gPSBzdHlsZWQuZGl2PHtcbiAgICBhY3RpdmU6IG51bWJlcjtcbiAgICBvcmllbnRhdGlvbjogT1JJRU5UQVRJT047XG4gICAgc2hvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBkcmFnZ2luZzogYm9vbGVhbjtcbn0+YFxuICAgIGN1cnNvcjogJHsocHJvcHMpID0+IChwcm9wcy5zaG93SW5kaWNhdG9yID8gJ2RlZmF1bHQnIDogJ21vdmUnKX07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB1c2VyLXNlbGVjdDogJHsocHJvcHMpID0+IChwcm9wcy5zaG93SW5kaWNhdG9yID8gJ2F1dG8nIDogJ25vbmUnKX07XG4gICAgYm9yZGVyLXRvcDogMnB4IGRhc2hlZFxuICAgICAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgICAgIHByb3BzLm9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5WRVJUSUNBTCAmJiBwcm9wcy5hY3RpdmUgPiAwXG4gICAgICAgICAgICAgICAgPyBnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuUFJJTUFSWSlcbiAgICAgICAgICAgICAgICA6ICd0cmFuc3BhcmVudCd9O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBkYXNoZWRcbiAgICAgICAgJHsocHJvcHMpID0+XG4gICAgICAgICAgICBwcm9wcy5vcmllbnRhdGlvbiA9PT0gT1JJRU5UQVRJT04uVkVSVElDQUwgJiYgcHJvcHMuYWN0aXZlIDwgMFxuICAgICAgICAgICAgICAgID8gZ2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpXG4gICAgICAgICAgICAgICAgOiAndHJhbnNwYXJlbnQnfTtcbiAgICBib3JkZXItbGVmdDogMnB4IGRhc2hlZFxuICAgICAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgICAgIHByb3BzLm9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5IT1JJWk9OVEFMICYmIHByb3BzLmFjdGl2ZSA+IDBcbiAgICAgICAgICAgICAgICA/IGdldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKVxuICAgICAgICAgICAgICAgIDogJ3RyYW5zcGFyZW50J307XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggZGFzaGVkXG4gICAgICAgICR7KHByb3BzKSA9PlxuICAgICAgICAgICAgcHJvcHMub3JpZW50YXRpb24gPT09IE9SSUVOVEFUSU9OLkhPUklaT05UQUwgJiYgcHJvcHMuYWN0aXZlIDwgMFxuICAgICAgICAgICAgICAgID8gZ2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpXG4gICAgICAgICAgICAgICAgOiAndHJhbnNwYXJlbnQnfTtcbiAgICBvcGFjaXR5OiAkeyhwcm9wcykgPT4gKHByb3BzLmRyYWdnaW5nID8gMC41IDogMSl9O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUllfTElHSFQpfTtcbiAgICB9XG5cbiAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuYDtcblxuLyoqIFN0eWxlZCBjb21wb25lbnQgZm9yIHRoZSBkcmFnIGhhbmRsZSBpbmRpY2F0b3IgKi9cbmNvbnN0IERyYWdLbm9iID0gc3R5bGVkLmRpdmBcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG5gO1xuXG4vKiogQ29udGFpbmVyIGZvciB0aGUgY2hpbGRyZW4gKi9cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gICAgZmxleDogMTtcbmA7XG5cbi8qKlxuICogQSBkcmFnZ2FibGUgaXRlbSBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBib3RoIG1vdXNlIGFuZCB0b3VjaCBpbnRlcmFjdGlvbnMgZm9yIGRyYWctYW5kLWRyb3AgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBAY29tcG9uZW50XG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiA8RHJhZ0l0ZW1cbiAqICAgaW5kZXg9ezB9XG4gKiAgIG9yaWVudGF0aW9uPXtPUklFTlRBVElPTi5WRVJUSUNBTH1cbiAqICAgc2hvd0luZGljYXRvcj17dHJ1ZX1cbiAqICAgZHJhZ092ZXI9ey0xfVxuICogPlxuICogICA8ZGl2PkRyYWdnYWJsZSBjb250ZW50PC9kaXY+XG4gKiA8L0RyYWdJdGVtPlxuICogYGBgXG4gKlxuICogQHBhcmFtIHByb3BzIC0gVGhlIGNvbXBvbmVudCBwcm9wc1xuICogQHBhcmFtIHByb3BzLmluZGV4IC0gVGhlIHBvc2l0aW9uIGluZGV4IG9mIHRoaXMgaXRlbSBpbiB0aGUgZHJhZ2dhYmxlIGxpc3RcbiAqIEBwYXJhbSBwcm9wcy5vcmllbnRhdGlvbiAtIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZHJhZyBvcGVyYXRpb24gKFZFUlRJQ0FMIG9yIEhPUklaT05UQUwpXG4gKiBAcGFyYW0gcHJvcHMuc2hvd0luZGljYXRvciAtIFdoZXRoZXIgdG8gc2hvdyBhIGRyYWcgaGFuZGxlIGluZGljYXRvciBpbnN0ZWFkIG9mIG1ha2luZyB0aGUgZW50aXJlIGl0ZW0gZHJhZ2dhYmxlXG4gKiBAcGFyYW0gcHJvcHMuZHJhZ092ZXIgLSBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gY3VycmVudGx5IGJlaW5nIGRyYWdnZWQgb3ZlclxuICogQHBhcmFtIHByb3BzLmNoaWxkcmVuIC0gVGhlIGNvbnRlbnQgdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBkcmFnZ2FibGUgaXRlbVxuICpcbiAqIEByZW1hcmtzXG4gKiAtIFVzZXMgdGhlIERyYWdDb250ZXh0IHRvIG1hbmFnZSBkcmFnIHN0YXRlIGFjcm9zcyBpdGVtc1xuICogLSBQcm92aWRlcyB2aXN1YWwgZmVlZGJhY2sgd2l0aCBib3JkZXJzIGR1cmluZyBkcmFnIG9wZXJhdGlvbnNcbiAqIC0gU3VwcG9ydHMgaGFwdGljIGZlZWRiYWNrICh2aWJyYXRpb24pIG9uIHRvdWNoIGRldmljZXNcbiAqIC0gRm9yIHRvdWNoIGRldmljZXMsIHJlcXVpcmVzIGEgMjAwbXMgaG9sZCBiZWZvcmUgZHJhZyBzdGFydHNcbiAqIC0gV2hlbiBzaG93SW5kaWNhdG9yIGlzIHRydWUsIG9ubHkgdGhlIGRyYWcgaGFuZGxlIGNhbiBpbml0aWF0ZSBkcmFnIG9wZXJhdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBBIGRyYWdnYWJsZSBpdGVtIHdpdGggb3B0aW9uYWwgZHJhZyBpbmRpY2F0b3IgYW5kIHZpc3VhbCBmZWVkYmFja1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEcmFnSXRlbShwcm9wczogUHJvcHNXaXRoQ2hpbGRyZW48RHJhZ0l0ZW1Qcm9wcz4pIHtcbiAgICBjb25zdCB7IGluZGV4LCBvcmllbnRhdGlvbiwgY2hpbGRyZW4sIHNob3dJbmRpY2F0b3IsIGRyYWdPdmVyLCB0b3RhbEl0ZW1zLCBzZXRBbm5vdW5jZW1lbnQgfSA9XG4gICAgICAgIHByb3BzO1xuICAgIGNvbnN0IFthY3RpdmUsIHNldEFjdGl2ZV0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCB0b3VjaFRpbWVyUmVmID0gdXNlUmVmPE5vZGVKUy5UaW1lb3V0IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRHJhZ0NvbnRleHQpO1xuXG4gICAgLyoqXG4gICAgICogVmlicmF0ZSB0aGUgZGV2aWNlIGZvciBoYXB0aWMgZmVlZGJhY2tcbiAgICAgKiBAcGFyYW0gZHVyYXRpb24gRHVyYXRpb24gb2YgdGhlIHZpYnJhdGlvbiBpbiBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICBjb25zdCB2aWJyYXRlID0gKGR1cmF0aW9uOiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKG5hdmlnYXRvci52aWJyYXRlKSB7XG4gICAgICAgICAgICBuYXZpZ2F0b3IudmlicmF0ZShkdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRHJhZyBzdGFydCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBkcmFnU3RhcnRIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgY29udGV4dC5zZXRTdGFydEluZGV4KGluZGV4KTtcbiAgICAgICAgY29udGV4dC5zZXRJc0RyYWdnaW5nKHRydWUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEcmFnIG92ZXIgZXZlbnQgaGFuZGxlclxuICAgICAqIEBwYXJhbSBlIEV2ZW50XG4gICAgICovXG4gICAgY29uc3QgZHJhZ092ZXJIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgc2V0QWN0aXZlKGNvbnRleHQuc3RhcnRJbmRleCAtIGluZGV4KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRHJhZyBsZWF2ZSBldmVudCBoYW5kbGVyXG4gICAgICovXG4gICAgY29uc3QgZHJhZ0V4aXRIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEcm9wIGV2ZW50IGhhbmRsZXJcbiAgICAgKiBAcGFyYW0gZSBFdmVudFxuICAgICAqL1xuICAgIGNvbnN0IGRyb3BIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgICAgICBjb250ZXh0LmRyb3AoaW5kZXgpO1xuICAgICAgICBjb250ZXh0LnNldElzRHJhZ2dpbmcoZmFsc2UpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUb3VjaCBzdGFydCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaFN0YXJ0SGFuZGxlcjogVG91Y2hFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+ID0gKCkgPT4ge1xuICAgICAgICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgdGltZXIgZmlyc3RcbiAgICAgICAgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3RhcnRJbmRleChpbmRleCk7XG4gICAgICAgICAgICBjb250ZXh0LnNldElzRHJhZ2dpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb250ZXh0LnNldERyYWdPdmVyKGluZGV4KTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIHZpYnJhdGUoNTApO1xuICAgICAgICB9LCAyMDApO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUb3VjaCBtb3ZlIGV2ZW50IGhhbmRsZXJcbiAgICAgKiBAcGFyYW0gZSBFdmVudFxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaE1vdmVIYW5kbGVyOiBUb3VjaEV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCB0b3VjaCA9IGUudG91Y2hlc1swXTtcbiAgICAgICAgaWYgKCF0b3VjaCkgcmV0dXJuO1xuXG4gICAgICAgIGlmIChjb250ZXh0LmlzRHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgLy8gZ2V0IHRoZSBlbGVtZW50IHVuZGVyIHRoZSB0b3VjaCBwb2ludFxuICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KFxuICAgICAgICAgICAgICAgIHRvdWNoLmNsaWVudFgsXG4gICAgICAgICAgICAgICAgdG91Y2guY2xpZW50WSxcbiAgICAgICAgICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICAgICAgY29uc3Qgb3ZlckF0dHIgPSBlbD8uY2xvc2VzdCgnW2RhdGEtZHJhZy1pbmRleF0nKT8uZ2V0QXR0cmlidXRlKCdkYXRhLWRyYWctaW5kZXgnKTtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJJbmRleCA9IG92ZXJBdHRyICE9IG51bGwgPyBwYXJzZUludChvdmVyQXR0ciwgMTApIDogbnVsbDtcblxuICAgICAgICAgICAgLy8gaWYgd2Uga25vdyB3aGljaCBpbmRleCB3ZSdyZSBvdmVyLCB1cGRhdGUgdmlzdWFsIHN0YXRlXG4gICAgICAgICAgICBpZiAob3ZlckluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXREcmFnT3ZlcihvdmVySW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRvdWNoIGVuZCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaEVuZEhhbmRsZXI6IFRvdWNoRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQuaXNEcmFnZ2luZykge1xuICAgICAgICAgICAgY29udGV4dC5kcm9wKGRyYWdPdmVyKTtcbiAgICAgICAgICAgIHZpYnJhdGUoNTApO1xuICAgICAgICAgICAgY29udGV4dC5zZXRJc0RyYWdnaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogS2V5Ym9hcmQgbmF2aWdhdGlvbiBoYW5kbGVyIGZvciByZW9yZGVyaW5nIGl0ZW1zXG4gICAgICogQHBhcmFtIGUgS2V5Ym9hcmQgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgaXNWZXJ0aWNhbCA9IG9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5WRVJUSUNBTDtcbiAgICAgICAgY29uc3QgbW92ZVVwID0gaXNWZXJ0aWNhbCA/ICdBcnJvd1VwJyA6ICdBcnJvd0xlZnQnO1xuICAgICAgICBjb25zdCBtb3ZlRG93biA9IGlzVmVydGljYWwgPyAnQXJyb3dEb3duJyA6ICdBcnJvd1JpZ2h0JztcblxuICAgICAgICBjb25zdCBpc0dyYWJiZWQgPSBjb250ZXh0LmlzRHJhZ2dpbmcgJiYgY29udGV4dC5zdGFydEluZGV4ID09PSBpbmRleDtcblxuICAgICAgICAvLyBTcGFjZSB0byBncmFiL2Ryb3BcbiAgICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgZS5rZXkgPT09ICdTcGFjZWJhcicpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChpc0dyYWJiZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBEcm9wIGF0IGN1cnJlbnQgcG9zaXRpb25cbiAgICAgICAgICAgICAgICBjb250ZXh0LmRyb3AoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLmRyb3BwZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gR3JhYiBpdGVtXG4gICAgICAgICAgICAgICAgY29udGV4dC5zdGFydEdyYWIoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLmdyYWJiZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBFbnRlciB0byBkcm9wXG4gICAgICAgIGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInICYmIGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29udGV4dC5kcm9wKGluZGV4KTtcbiAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICBjb250ZXh0LmkxOG4ucmVwbGFjZVBsYWNlaG9sZGVycyhjb250ZXh0LmkxOG4uZHJvcHBlZEFubm91bmNlbWVudFRlbXBsYXRlLCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIEVzY2FwZSB0byBjYW5jZWxcbiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnICYmIGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29udGV4dC5jYW5jZWwoKTtcbiAgICAgICAgICAgIHNldEFubm91bmNlbWVudChjb250ZXh0LmkxOG4uY2FuY2VsbGVkQW5ub3VuY2VtZW50VGVtcGxhdGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFycm93IGtleXMgdG8gbW92ZSB3aGlsZSBncmFiYmVkXG4gICAgICAgIGVsc2UgaWYgKGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSBtb3ZlVXAgJiYgaW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIE1vdmUgd2l0aG91dCBkcm9wcGluZyAtIGp1c3QgcmVvcmRlciBhbmQgdXBkYXRlIHN0YXJ0SW5kZXhcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4IC0gMTtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRHJvcChjb250ZXh0LnN0YXJ0SW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFN0YXJ0SW5kZXgobmV3SW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLm1vdmVkQW5ub3VuY2VtZW50VGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBuZXdJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSBtb3ZlRG93biAmJiBpbmRleCA8IHRvdGFsSXRlbXMgLSAxKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIE1vdmUgd2l0aG91dCBkcm9wcGluZyAtIGp1c3QgcmVvcmRlciBhbmQgdXBkYXRlIHN0YXJ0SW5kZXhcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRHJvcChjb250ZXh0LnN0YXJ0SW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFN0YXJ0SW5kZXgobmV3SW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLm1vdmVkQW5ub3VuY2VtZW50VGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBuZXdJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIENsZWFudXAgdG91Y2ggdGltZXIgYW5kIGJvZHkgb3ZlcmZsb3cgb24gdW5tb3VudCAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodG91Y2hUaW1lclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgdG91Y2hUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgLyoqIFVwZGF0ZSBhY3RpdmUgc3RhdGUgYmFzZWQgb24gZHJhZ092ZXIgY2hhbmdlcyAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChjb250ZXh0LmlzRHJhZ2dpbmcgJiYgZHJhZ092ZXIgPT09IGluZGV4KSB7XG4gICAgICAgICAgICBzZXRBY3RpdmUoY29udGV4dC5zdGFydEluZGV4IC0gaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgICAgICB9XG4gICAgfSwgW2RyYWdPdmVyLCBjb250ZXh0LnN0YXJ0SW5kZXgsIGluZGV4LCBjb250ZXh0LmlzRHJhZ2dpbmddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxJdGVtXG4gICAgICAgICAgICBkcmFnZ2FibGU9eyFzaG93SW5kaWNhdG9yfVxuICAgICAgICAgICAgc2hvd0luZGljYXRvcj17c2hvd0luZGljYXRvcn1cbiAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZHJhZ2dpbmc9e2NvbnRleHQuaXNEcmFnZ2luZyAmJiBjb250ZXh0LnN0YXJ0SW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgICAgICAgICAgZGF0YS1kcmFnLWluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2NvbnRleHQuaTE4bi5yZXBsYWNlUGxhY2Vob2xkZXJzKGNvbnRleHQuaTE4bi5pdGVtQXJpYUxhYmVsVGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5kZXggKyAxLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBhcmlhLWdyYWJiZWQ9e2NvbnRleHQuaXNEcmFnZ2luZyAmJiBjb250ZXh0LnN0YXJ0SW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgb25EcmFnU3RhcnQ9eyFzaG93SW5kaWNhdG9yID8gZHJhZ1N0YXJ0SGFuZGxlciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uRHJhZ092ZXI9e2RyYWdPdmVySGFuZGxlcn1cbiAgICAgICAgICAgIG9uRHJhZ0xlYXZlPXtkcmFnRXhpdEhhbmRsZXJ9XG4gICAgICAgICAgICBvbkRyb3A9e2Ryb3BIYW5kbGVyfVxuICAgICAgICAgICAgb25Ub3VjaFN0YXJ0PXshc2hvd0luZGljYXRvciA/IHRvdWNoU3RhcnRIYW5kbGVyIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25Ub3VjaE1vdmU9e3RvdWNoTW92ZUhhbmRsZXJ9XG4gICAgICAgICAgICBvblRvdWNoRW5kPXt0b3VjaEVuZEhhbmRsZXJ9XG4gICAgICAgICAgICBvblRvdWNoQ2FuY2VsPXt0b3VjaEVuZEhhbmRsZXJ9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtzaG93SW5kaWNhdG9yICYmIChcbiAgICAgICAgICAgICAgICA8RHJhZ0tub2JcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtjb250ZXh0LmkxOG4uZHJhZ0hhbmRsZUFyaWFMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgb25EcmFnU3RhcnQ9e2RyYWdTdGFydEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uVG91Y2hTdGFydD17dG91Y2hTdGFydEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPERyYWdJbmRpY2F0b3IgLz5cbiAgICAgICAgICAgICAgICA8L0RyYWdLbm9iPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb250YWluZXI+e2NoaWxkcmVufTwvQ29udGFpbmVyPlxuICAgICAgICA8L0l0ZW0+XG4gICAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4QmEifQ== */");
|
|
11
|
+
})("cursor:", (props)=>props.showIndicator ? 'default' : 'move', ";display:flex;user-select:", (props)=>props.showIndicator ? 'auto' : 'none', ";border-top:2px dashed\n ", (props)=>props.orientation === ORIENTATION.VERTICAL && props.active !== null && props.active > 0 ? getThemeValue(THEME_NAME.PRIMARY) : 'transparent', ";border-bottom:2px dashed\n ", (props)=>props.orientation === ORIENTATION.VERTICAL && props.active !== null && props.active < 0 ? getThemeValue(THEME_NAME.PRIMARY) : 'transparent', ";border-left:2px dashed\n ", (props)=>props.orientation === ORIENTATION.HORIZONTAL && props.active !== null && props.active > 0 ? getThemeValue(THEME_NAME.PRIMARY) : 'transparent', ";border-right:2px dashed\n ", (props)=>props.orientation === ORIENTATION.HORIZONTAL && props.active !== null && props.active < 0 ? getThemeValue(THEME_NAME.PRIMARY) : 'transparent', ";opacity:", (props)=>props.dragging ? 0.5 : 1, ";border-radius:10px;&:focus{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:focus:not(:focus-visible){box-shadow:none;}&:focus-visible{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}");
|
|
12
12
|
/** Styled component for the drag handle indicator */ const DragKnob = /*#__PURE__*/ styled("div", {
|
|
13
|
-
target: "
|
|
13
|
+
target: "ertl9d71",
|
|
14
14
|
label: "DragKnob"
|
|
15
|
-
})("padding-top:8px;cursor:move;touch-action:none;color:", getThemeValue(THEME_NAME.DISABLED), ";", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9EcmFnQW5kRHJvcC9EcmFnSXRlbS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL25vLWZyaWxscy11aS9uby1mcmlsbHMtdWkvc3JjL2NvbXBvbmVudHMvRHJhZ0FuZERyb3AvRHJhZ0l0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRHJhZ0V2ZW50SGFuZGxlcixcbiAgICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgICB1c2VDb250ZXh0LFxuICAgIHVzZVN0YXRlLFxuICAgIHVzZUVmZmVjdCxcbiAgICBUb3VjaEV2ZW50SGFuZGxlcixcbiAgICB1c2VSZWYsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IERyYWdJbmRpY2F0b3IgfSBmcm9tICcuLi8uLi9pY29ucyc7XG5pbXBvcnQgeyBnZXRUaGVtZVZhbHVlLCBUSEVNRV9OQU1FIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPUklFTlRBVElPTiwgRHJhZ0NvbnRleHQgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIERyYWdJdGVtUHJvcHMge1xuICAgIC8qKiBQb3NpdGlvbiBpbmRleCBvZiB0aGUgZHJhZ2dhYmxlIGl0ZW0gKi9cbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKiBPcmllbnRhdGlvbiBvZiB0aGUgZHJhZyBvcGVyYXRpb24gKFZFUlRJQ0FMIG9yIEhPUklaT05UQUwpICovXG4gICAgb3JpZW50YXRpb246IE9SSUVOVEFUSU9OO1xuICAgIC8qKiBXaGV0aGVyIHRvIHNob3cgYSBkcmFnIGhhbmRsZSBpbmRpY2F0b3IgaW5zdGVhZCBvZiBtYWtpbmcgdGhlIGVudGlyZSBpdGVtIGRyYWdnYWJsZSAqL1xuICAgIHNob3dJbmRpY2F0b3I6IGJvb2xlYW47XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZCBvdmVyICovXG4gICAgZHJhZ092ZXI6IG51bWJlcjtcbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0ICovXG4gICAgdG90YWxJdGVtczogbnVtYmVyO1xuICAgIC8qKiBDYWxsYmFjayB0byBzZXQgYW5ub3VuY2VtZW50IGZvciBzY3JlZW4gcmVhZGVycyAqL1xuICAgIHNldEFubm91bmNlbWVudDogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuLyoqIFN0eWxlZCBjb21wb25lbnQgZm9yIHRoZSBkcmFnZ2FibGUgaXRlbSBjb250YWluZXIgKi9cbmNvbnN0IEl0ZW0gPSBzdHlsZWQuZGl2PHtcbiAgICBhY3RpdmU6IG51bWJlcjtcbiAgICBvcmllbnRhdGlvbjogT1JJRU5UQVRJT047XG4gICAgc2hvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBkcmFnZ2luZzogYm9vbGVhbjtcbn0+YFxuICAgIGN1cnNvcjogJHsocHJvcHMpID0+IChwcm9wcy5zaG93SW5kaWNhdG9yID8gJ2RlZmF1bHQnIDogJ21vdmUnKX07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB1c2VyLXNlbGVjdDogJHsocHJvcHMpID0+IChwcm9wcy5zaG93SW5kaWNhdG9yID8gJ2F1dG8nIDogJ25vbmUnKX07XG4gICAgYm9yZGVyLXRvcDogMnB4IGRhc2hlZFxuICAgICAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgICAgIHByb3BzLm9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5WRVJUSUNBTCAmJiBwcm9wcy5hY3RpdmUgPiAwXG4gICAgICAgICAgICAgICAgPyBnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuUFJJTUFSWSlcbiAgICAgICAgICAgICAgICA6ICd0cmFuc3BhcmVudCd9O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBkYXNoZWRcbiAgICAgICAgJHsocHJvcHMpID0+XG4gICAgICAgICAgICBwcm9wcy5vcmllbnRhdGlvbiA9PT0gT1JJRU5UQVRJT04uVkVSVElDQUwgJiYgcHJvcHMuYWN0aXZlIDwgMFxuICAgICAgICAgICAgICAgID8gZ2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpXG4gICAgICAgICAgICAgICAgOiAndHJhbnNwYXJlbnQnfTtcbiAgICBib3JkZXItbGVmdDogMnB4IGRhc2hlZFxuICAgICAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgICAgIHByb3BzLm9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5IT1JJWk9OVEFMICYmIHByb3BzLmFjdGl2ZSA+IDBcbiAgICAgICAgICAgICAgICA/IGdldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKVxuICAgICAgICAgICAgICAgIDogJ3RyYW5zcGFyZW50J307XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggZGFzaGVkXG4gICAgICAgICR7KHByb3BzKSA9PlxuICAgICAgICAgICAgcHJvcHMub3JpZW50YXRpb24gPT09IE9SSUVOVEFUSU9OLkhPUklaT05UQUwgJiYgcHJvcHMuYWN0aXZlIDwgMFxuICAgICAgICAgICAgICAgID8gZ2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpXG4gICAgICAgICAgICAgICAgOiAndHJhbnNwYXJlbnQnfTtcbiAgICBvcGFjaXR5OiAkeyhwcm9wcykgPT4gKHByb3BzLmRyYWdnaW5nID8gMC41IDogMSl9O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUllfTElHSFQpfTtcbiAgICB9XG5cbiAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuYDtcblxuLyoqIFN0eWxlZCBjb21wb25lbnQgZm9yIHRoZSBkcmFnIGhhbmRsZSBpbmRpY2F0b3IgKi9cbmNvbnN0IERyYWdLbm9iID0gc3R5bGVkLmRpdmBcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG5gO1xuXG4vKiogQ29udGFpbmVyIGZvciB0aGUgY2hpbGRyZW4gKi9cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gICAgZmxleDogMTtcbmA7XG5cbi8qKlxuICogQSBkcmFnZ2FibGUgaXRlbSBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBib3RoIG1vdXNlIGFuZCB0b3VjaCBpbnRlcmFjdGlvbnMgZm9yIGRyYWctYW5kLWRyb3AgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBAY29tcG9uZW50XG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiA8RHJhZ0l0ZW1cbiAqICAgaW5kZXg9ezB9XG4gKiAgIG9yaWVudGF0aW9uPXtPUklFTlRBVElPTi5WRVJUSUNBTH1cbiAqICAgc2hvd0luZGljYXRvcj17dHJ1ZX1cbiAqICAgZHJhZ092ZXI9ey0xfVxuICogPlxuICogICA8ZGl2PkRyYWdnYWJsZSBjb250ZW50PC9kaXY+XG4gKiA8L0RyYWdJdGVtPlxuICogYGBgXG4gKlxuICogQHBhcmFtIHByb3BzIC0gVGhlIGNvbXBvbmVudCBwcm9wc1xuICogQHBhcmFtIHByb3BzLmluZGV4IC0gVGhlIHBvc2l0aW9uIGluZGV4IG9mIHRoaXMgaXRlbSBpbiB0aGUgZHJhZ2dhYmxlIGxpc3RcbiAqIEBwYXJhbSBwcm9wcy5vcmllbnRhdGlvbiAtIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZHJhZyBvcGVyYXRpb24gKFZFUlRJQ0FMIG9yIEhPUklaT05UQUwpXG4gKiBAcGFyYW0gcHJvcHMuc2hvd0luZGljYXRvciAtIFdoZXRoZXIgdG8gc2hvdyBhIGRyYWcgaGFuZGxlIGluZGljYXRvciBpbnN0ZWFkIG9mIG1ha2luZyB0aGUgZW50aXJlIGl0ZW0gZHJhZ2dhYmxlXG4gKiBAcGFyYW0gcHJvcHMuZHJhZ092ZXIgLSBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gY3VycmVudGx5IGJlaW5nIGRyYWdnZWQgb3ZlclxuICogQHBhcmFtIHByb3BzLmNoaWxkcmVuIC0gVGhlIGNvbnRlbnQgdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBkcmFnZ2FibGUgaXRlbVxuICpcbiAqIEByZW1hcmtzXG4gKiAtIFVzZXMgdGhlIERyYWdDb250ZXh0IHRvIG1hbmFnZSBkcmFnIHN0YXRlIGFjcm9zcyBpdGVtc1xuICogLSBQcm92aWRlcyB2aXN1YWwgZmVlZGJhY2sgd2l0aCBib3JkZXJzIGR1cmluZyBkcmFnIG9wZXJhdGlvbnNcbiAqIC0gU3VwcG9ydHMgaGFwdGljIGZlZWRiYWNrICh2aWJyYXRpb24pIG9uIHRvdWNoIGRldmljZXNcbiAqIC0gRm9yIHRvdWNoIGRldmljZXMsIHJlcXVpcmVzIGEgMjAwbXMgaG9sZCBiZWZvcmUgZHJhZyBzdGFydHNcbiAqIC0gV2hlbiBzaG93SW5kaWNhdG9yIGlzIHRydWUsIG9ubHkgdGhlIGRyYWcgaGFuZGxlIGNhbiBpbml0aWF0ZSBkcmFnIG9wZXJhdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBBIGRyYWdnYWJsZSBpdGVtIHdpdGggb3B0aW9uYWwgZHJhZyBpbmRpY2F0b3IgYW5kIHZpc3VhbCBmZWVkYmFja1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEcmFnSXRlbShwcm9wczogUHJvcHNXaXRoQ2hpbGRyZW48RHJhZ0l0ZW1Qcm9wcz4pIHtcbiAgICBjb25zdCB7IGluZGV4LCBvcmllbnRhdGlvbiwgY2hpbGRyZW4sIHNob3dJbmRpY2F0b3IsIGRyYWdPdmVyLCB0b3RhbEl0ZW1zLCBzZXRBbm5vdW5jZW1lbnQgfSA9XG4gICAgICAgIHByb3BzO1xuICAgIGNvbnN0IFthY3RpdmUsIHNldEFjdGl2ZV0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCB0b3VjaFRpbWVyUmVmID0gdXNlUmVmPE5vZGVKUy5UaW1lb3V0IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRHJhZ0NvbnRleHQpO1xuXG4gICAgLyoqXG4gICAgICogVmlicmF0ZSB0aGUgZGV2aWNlIGZvciBoYXB0aWMgZmVlZGJhY2tcbiAgICAgKiBAcGFyYW0gZHVyYXRpb24gRHVyYXRpb24gb2YgdGhlIHZpYnJhdGlvbiBpbiBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICBjb25zdCB2aWJyYXRlID0gKGR1cmF0aW9uOiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKG5hdmlnYXRvci52aWJyYXRlKSB7XG4gICAgICAgICAgICBuYXZpZ2F0b3IudmlicmF0ZShkdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRHJhZyBzdGFydCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBkcmFnU3RhcnRIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgY29udGV4dC5zZXRTdGFydEluZGV4KGluZGV4KTtcbiAgICAgICAgY29udGV4dC5zZXRJc0RyYWdnaW5nKHRydWUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEcmFnIG92ZXIgZXZlbnQgaGFuZGxlclxuICAgICAqIEBwYXJhbSBlIEV2ZW50XG4gICAgICovXG4gICAgY29uc3QgZHJhZ092ZXJIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgc2V0QWN0aXZlKGNvbnRleHQuc3RhcnRJbmRleCAtIGluZGV4KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRHJhZyBsZWF2ZSBldmVudCBoYW5kbGVyXG4gICAgICovXG4gICAgY29uc3QgZHJhZ0V4aXRIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEcm9wIGV2ZW50IGhhbmRsZXJcbiAgICAgKiBAcGFyYW0gZSBFdmVudFxuICAgICAqL1xuICAgIGNvbnN0IGRyb3BIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgICAgICBjb250ZXh0LmRyb3AoaW5kZXgpO1xuICAgICAgICBjb250ZXh0LnNldElzRHJhZ2dpbmcoZmFsc2UpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUb3VjaCBzdGFydCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaFN0YXJ0SGFuZGxlcjogVG91Y2hFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+ID0gKCkgPT4ge1xuICAgICAgICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgdGltZXIgZmlyc3RcbiAgICAgICAgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3RhcnRJbmRleChpbmRleCk7XG4gICAgICAgICAgICBjb250ZXh0LnNldElzRHJhZ2dpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb250ZXh0LnNldERyYWdPdmVyKGluZGV4KTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIHZpYnJhdGUoNTApO1xuICAgICAgICB9LCAyMDApO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUb3VjaCBtb3ZlIGV2ZW50IGhhbmRsZXJcbiAgICAgKiBAcGFyYW0gZSBFdmVudFxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaE1vdmVIYW5kbGVyOiBUb3VjaEV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCB0b3VjaCA9IGUudG91Y2hlc1swXTtcbiAgICAgICAgaWYgKCF0b3VjaCkgcmV0dXJuO1xuXG4gICAgICAgIGlmIChjb250ZXh0LmlzRHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgLy8gZ2V0IHRoZSBlbGVtZW50IHVuZGVyIHRoZSB0b3VjaCBwb2ludFxuICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KFxuICAgICAgICAgICAgICAgIHRvdWNoLmNsaWVudFgsXG4gICAgICAgICAgICAgICAgdG91Y2guY2xpZW50WSxcbiAgICAgICAgICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICAgICAgY29uc3Qgb3ZlckF0dHIgPSBlbD8uY2xvc2VzdCgnW2RhdGEtZHJhZy1pbmRleF0nKT8uZ2V0QXR0cmlidXRlKCdkYXRhLWRyYWctaW5kZXgnKTtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJJbmRleCA9IG92ZXJBdHRyICE9IG51bGwgPyBwYXJzZUludChvdmVyQXR0ciwgMTApIDogbnVsbDtcblxuICAgICAgICAgICAgLy8gaWYgd2Uga25vdyB3aGljaCBpbmRleCB3ZSdyZSBvdmVyLCB1cGRhdGUgdmlzdWFsIHN0YXRlXG4gICAgICAgICAgICBpZiAob3ZlckluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXREcmFnT3ZlcihvdmVySW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRvdWNoIGVuZCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaEVuZEhhbmRsZXI6IFRvdWNoRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQuaXNEcmFnZ2luZykge1xuICAgICAgICAgICAgY29udGV4dC5kcm9wKGRyYWdPdmVyKTtcbiAgICAgICAgICAgIHZpYnJhdGUoNTApO1xuICAgICAgICAgICAgY29udGV4dC5zZXRJc0RyYWdnaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogS2V5Ym9hcmQgbmF2aWdhdGlvbiBoYW5kbGVyIGZvciByZW9yZGVyaW5nIGl0ZW1zXG4gICAgICogQHBhcmFtIGUgS2V5Ym9hcmQgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgaXNWZXJ0aWNhbCA9IG9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5WRVJUSUNBTDtcbiAgICAgICAgY29uc3QgbW92ZVVwID0gaXNWZXJ0aWNhbCA/ICdBcnJvd1VwJyA6ICdBcnJvd0xlZnQnO1xuICAgICAgICBjb25zdCBtb3ZlRG93biA9IGlzVmVydGljYWwgPyAnQXJyb3dEb3duJyA6ICdBcnJvd1JpZ2h0JztcblxuICAgICAgICBjb25zdCBpc0dyYWJiZWQgPSBjb250ZXh0LmlzRHJhZ2dpbmcgJiYgY29udGV4dC5zdGFydEluZGV4ID09PSBpbmRleDtcblxuICAgICAgICAvLyBTcGFjZSB0byBncmFiL2Ryb3BcbiAgICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgZS5rZXkgPT09ICdTcGFjZWJhcicpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChpc0dyYWJiZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBEcm9wIGF0IGN1cnJlbnQgcG9zaXRpb25cbiAgICAgICAgICAgICAgICBjb250ZXh0LmRyb3AoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLmRyb3BwZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gR3JhYiBpdGVtXG4gICAgICAgICAgICAgICAgY29udGV4dC5zdGFydEdyYWIoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLmdyYWJiZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBFbnRlciB0byBkcm9wXG4gICAgICAgIGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInICYmIGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29udGV4dC5kcm9wKGluZGV4KTtcbiAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICBjb250ZXh0LmkxOG4ucmVwbGFjZVBsYWNlaG9sZGVycyhjb250ZXh0LmkxOG4uZHJvcHBlZEFubm91bmNlbWVudFRlbXBsYXRlLCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIEVzY2FwZSB0byBjYW5jZWxcbiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnICYmIGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29udGV4dC5jYW5jZWwoKTtcbiAgICAgICAgICAgIHNldEFubm91bmNlbWVudChjb250ZXh0LmkxOG4uY2FuY2VsbGVkQW5ub3VuY2VtZW50VGVtcGxhdGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFycm93IGtleXMgdG8gbW92ZSB3aGlsZSBncmFiYmVkXG4gICAgICAgIGVsc2UgaWYgKGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSBtb3ZlVXAgJiYgaW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIE1vdmUgd2l0aG91dCBkcm9wcGluZyAtIGp1c3QgcmVvcmRlciBhbmQgdXBkYXRlIHN0YXJ0SW5kZXhcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4IC0gMTtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRHJvcChjb250ZXh0LnN0YXJ0SW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFN0YXJ0SW5kZXgobmV3SW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLm1vdmVkQW5ub3VuY2VtZW50VGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBuZXdJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSBtb3ZlRG93biAmJiBpbmRleCA8IHRvdGFsSXRlbXMgLSAxKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIE1vdmUgd2l0aG91dCBkcm9wcGluZyAtIGp1c3QgcmVvcmRlciBhbmQgdXBkYXRlIHN0YXJ0SW5kZXhcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRHJvcChjb250ZXh0LnN0YXJ0SW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFN0YXJ0SW5kZXgobmV3SW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLm1vdmVkQW5ub3VuY2VtZW50VGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBuZXdJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIENsZWFudXAgdG91Y2ggdGltZXIgYW5kIGJvZHkgb3ZlcmZsb3cgb24gdW5tb3VudCAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodG91Y2hUaW1lclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgdG91Y2hUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgLyoqIFVwZGF0ZSBhY3RpdmUgc3RhdGUgYmFzZWQgb24gZHJhZ092ZXIgY2hhbmdlcyAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChjb250ZXh0LmlzRHJhZ2dpbmcgJiYgZHJhZ092ZXIgPT09IGluZGV4KSB7XG4gICAgICAgICAgICBzZXRBY3RpdmUoY29udGV4dC5zdGFydEluZGV4IC0gaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgICAgICB9XG4gICAgfSwgW2RyYWdPdmVyLCBjb250ZXh0LnN0YXJ0SW5kZXgsIGluZGV4LCBjb250ZXh0LmlzRHJhZ2dpbmddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxJdGVtXG4gICAgICAgICAgICBkcmFnZ2FibGU9eyFzaG93SW5kaWNhdG9yfVxuICAgICAgICAgICAgc2hvd0luZGljYXRvcj17c2hvd0luZGljYXRvcn1cbiAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZHJhZ2dpbmc9e2NvbnRleHQuaXNEcmFnZ2luZyAmJiBjb250ZXh0LnN0YXJ0SW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgICAgICAgICAgZGF0YS1kcmFnLWluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2NvbnRleHQuaTE4bi5yZXBsYWNlUGxhY2Vob2xkZXJzKGNvbnRleHQuaTE4bi5pdGVtQXJpYUxhYmVsVGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5kZXggKyAxLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBhcmlhLWdyYWJiZWQ9e2NvbnRleHQuaXNEcmFnZ2luZyAmJiBjb250ZXh0LnN0YXJ0SW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgb25EcmFnU3RhcnQ9eyFzaG93SW5kaWNhdG9yID8gZHJhZ1N0YXJ0SGFuZGxlciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uRHJhZ092ZXI9e2RyYWdPdmVySGFuZGxlcn1cbiAgICAgICAgICAgIG9uRHJhZ0xlYXZlPXtkcmFnRXhpdEhhbmRsZXJ9XG4gICAgICAgICAgICBvbkRyb3A9e2Ryb3BIYW5kbGVyfVxuICAgICAgICAgICAgb25Ub3VjaFN0YXJ0PXshc2hvd0luZGljYXRvciA/IHRvdWNoU3RhcnRIYW5kbGVyIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25Ub3VjaE1vdmU9e3RvdWNoTW92ZUhhbmRsZXJ9XG4gICAgICAgICAgICBvblRvdWNoRW5kPXt0b3VjaEVuZEhhbmRsZXJ9XG4gICAgICAgICAgICBvblRvdWNoQ2FuY2VsPXt0b3VjaEVuZEhhbmRsZXJ9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtzaG93SW5kaWNhdG9yICYmIChcbiAgICAgICAgICAgICAgICA8RHJhZ0tub2JcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtjb250ZXh0LmkxOG4uZHJhZ0hhbmRsZUFyaWFMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgb25EcmFnU3RhcnQ9e2RyYWdTdGFydEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uVG91Y2hTdGFydD17dG91Y2hTdGFydEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPERyYWdJbmRpY2F0b3IgLz5cbiAgICAgICAgICAgICAgICA8L0RyYWdLbm9iPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb250YWluZXI+e2NoaWxkcmVufTwvQ29udGFpbmVyPlxuICAgICAgICA8L0l0ZW0+XG4gICAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0RWlCIn0= */");
|
|
16
|
-
/** Container for the children */ const Container = /*#__PURE__*/ styled("div", {
|
|
17
|
-
target: "
|
|
15
|
+
})("padding-top:8px;cursor:move;touch-action:none;color:", getThemeValue(THEME_NAME.DISABLED), ";");
|
|
16
|
+
/** Container for the children */ const Container$7 = /*#__PURE__*/ styled("div", {
|
|
17
|
+
target: "ertl9d72",
|
|
18
18
|
label: "Container"
|
|
19
|
-
})("flex:1;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9EcmFnQW5kRHJvcC9EcmFnSXRlbS50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL25vLWZyaWxscy11aS9uby1mcmlsbHMtdWkvc3JjL2NvbXBvbmVudHMvRHJhZ0FuZERyb3AvRHJhZ0l0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRHJhZ0V2ZW50SGFuZGxlcixcbiAgICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgICB1c2VDb250ZXh0LFxuICAgIHVzZVN0YXRlLFxuICAgIHVzZUVmZmVjdCxcbiAgICBUb3VjaEV2ZW50SGFuZGxlcixcbiAgICB1c2VSZWYsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IERyYWdJbmRpY2F0b3IgfSBmcm9tICcuLi8uLi9pY29ucyc7XG5pbXBvcnQgeyBnZXRUaGVtZVZhbHVlLCBUSEVNRV9OQU1FIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPUklFTlRBVElPTiwgRHJhZ0NvbnRleHQgfSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIERyYWdJdGVtUHJvcHMge1xuICAgIC8qKiBQb3NpdGlvbiBpbmRleCBvZiB0aGUgZHJhZ2dhYmxlIGl0ZW0gKi9cbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKiBPcmllbnRhdGlvbiBvZiB0aGUgZHJhZyBvcGVyYXRpb24gKFZFUlRJQ0FMIG9yIEhPUklaT05UQUwpICovXG4gICAgb3JpZW50YXRpb246IE9SSUVOVEFUSU9OO1xuICAgIC8qKiBXaGV0aGVyIHRvIHNob3cgYSBkcmFnIGhhbmRsZSBpbmRpY2F0b3IgaW5zdGVhZCBvZiBtYWtpbmcgdGhlIGVudGlyZSBpdGVtIGRyYWdnYWJsZSAqL1xuICAgIHNob3dJbmRpY2F0b3I6IGJvb2xlYW47XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgaXRlbSBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZCBvdmVyICovXG4gICAgZHJhZ092ZXI6IG51bWJlcjtcbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0ICovXG4gICAgdG90YWxJdGVtczogbnVtYmVyO1xuICAgIC8qKiBDYWxsYmFjayB0byBzZXQgYW5ub3VuY2VtZW50IGZvciBzY3JlZW4gcmVhZGVycyAqL1xuICAgIHNldEFubm91bmNlbWVudDogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuLyoqIFN0eWxlZCBjb21wb25lbnQgZm9yIHRoZSBkcmFnZ2FibGUgaXRlbSBjb250YWluZXIgKi9cbmNvbnN0IEl0ZW0gPSBzdHlsZWQuZGl2PHtcbiAgICBhY3RpdmU6IG51bWJlcjtcbiAgICBvcmllbnRhdGlvbjogT1JJRU5UQVRJT047XG4gICAgc2hvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBkcmFnZ2luZzogYm9vbGVhbjtcbn0+YFxuICAgIGN1cnNvcjogJHsocHJvcHMpID0+IChwcm9wcy5zaG93SW5kaWNhdG9yID8gJ2RlZmF1bHQnIDogJ21vdmUnKX07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB1c2VyLXNlbGVjdDogJHsocHJvcHMpID0+IChwcm9wcy5zaG93SW5kaWNhdG9yID8gJ2F1dG8nIDogJ25vbmUnKX07XG4gICAgYm9yZGVyLXRvcDogMnB4IGRhc2hlZFxuICAgICAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgICAgIHByb3BzLm9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5WRVJUSUNBTCAmJiBwcm9wcy5hY3RpdmUgPiAwXG4gICAgICAgICAgICAgICAgPyBnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuUFJJTUFSWSlcbiAgICAgICAgICAgICAgICA6ICd0cmFuc3BhcmVudCd9O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBkYXNoZWRcbiAgICAgICAgJHsocHJvcHMpID0+XG4gICAgICAgICAgICBwcm9wcy5vcmllbnRhdGlvbiA9PT0gT1JJRU5UQVRJT04uVkVSVElDQUwgJiYgcHJvcHMuYWN0aXZlIDwgMFxuICAgICAgICAgICAgICAgID8gZ2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpXG4gICAgICAgICAgICAgICAgOiAndHJhbnNwYXJlbnQnfTtcbiAgICBib3JkZXItbGVmdDogMnB4IGRhc2hlZFxuICAgICAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgICAgIHByb3BzLm9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5IT1JJWk9OVEFMICYmIHByb3BzLmFjdGl2ZSA+IDBcbiAgICAgICAgICAgICAgICA/IGdldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKVxuICAgICAgICAgICAgICAgIDogJ3RyYW5zcGFyZW50J307XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggZGFzaGVkXG4gICAgICAgICR7KHByb3BzKSA9PlxuICAgICAgICAgICAgcHJvcHMub3JpZW50YXRpb24gPT09IE9SSUVOVEFUSU9OLkhPUklaT05UQUwgJiYgcHJvcHMuYWN0aXZlIDwgMFxuICAgICAgICAgICAgICAgID8gZ2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpXG4gICAgICAgICAgICAgICAgOiAndHJhbnNwYXJlbnQnfTtcbiAgICBvcGFjaXR5OiAkeyhwcm9wcykgPT4gKHByb3BzLmRyYWdnaW5nID8gMC41IDogMSl9O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUllfTElHSFQpfTtcbiAgICB9XG5cbiAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuYDtcblxuLyoqIFN0eWxlZCBjb21wb25lbnQgZm9yIHRoZSBkcmFnIGhhbmRsZSBpbmRpY2F0b3IgKi9cbmNvbnN0IERyYWdLbm9iID0gc3R5bGVkLmRpdmBcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG5gO1xuXG4vKiogQ29udGFpbmVyIGZvciB0aGUgY2hpbGRyZW4gKi9cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gICAgZmxleDogMTtcbmA7XG5cbi8qKlxuICogQSBkcmFnZ2FibGUgaXRlbSBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBib3RoIG1vdXNlIGFuZCB0b3VjaCBpbnRlcmFjdGlvbnMgZm9yIGRyYWctYW5kLWRyb3AgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiBAY29tcG9uZW50XG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiA8RHJhZ0l0ZW1cbiAqICAgaW5kZXg9ezB9XG4gKiAgIG9yaWVudGF0aW9uPXtPUklFTlRBVElPTi5WRVJUSUNBTH1cbiAqICAgc2hvd0luZGljYXRvcj17dHJ1ZX1cbiAqICAgZHJhZ092ZXI9ey0xfVxuICogPlxuICogICA8ZGl2PkRyYWdnYWJsZSBjb250ZW50PC9kaXY+XG4gKiA8L0RyYWdJdGVtPlxuICogYGBgXG4gKlxuICogQHBhcmFtIHByb3BzIC0gVGhlIGNvbXBvbmVudCBwcm9wc1xuICogQHBhcmFtIHByb3BzLmluZGV4IC0gVGhlIHBvc2l0aW9uIGluZGV4IG9mIHRoaXMgaXRlbSBpbiB0aGUgZHJhZ2dhYmxlIGxpc3RcbiAqIEBwYXJhbSBwcm9wcy5vcmllbnRhdGlvbiAtIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZHJhZyBvcGVyYXRpb24gKFZFUlRJQ0FMIG9yIEhPUklaT05UQUwpXG4gKiBAcGFyYW0gcHJvcHMuc2hvd0luZGljYXRvciAtIFdoZXRoZXIgdG8gc2hvdyBhIGRyYWcgaGFuZGxlIGluZGljYXRvciBpbnN0ZWFkIG9mIG1ha2luZyB0aGUgZW50aXJlIGl0ZW0gZHJhZ2dhYmxlXG4gKiBAcGFyYW0gcHJvcHMuZHJhZ092ZXIgLSBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gY3VycmVudGx5IGJlaW5nIGRyYWdnZWQgb3ZlclxuICogQHBhcmFtIHByb3BzLmNoaWxkcmVuIC0gVGhlIGNvbnRlbnQgdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBkcmFnZ2FibGUgaXRlbVxuICpcbiAqIEByZW1hcmtzXG4gKiAtIFVzZXMgdGhlIERyYWdDb250ZXh0IHRvIG1hbmFnZSBkcmFnIHN0YXRlIGFjcm9zcyBpdGVtc1xuICogLSBQcm92aWRlcyB2aXN1YWwgZmVlZGJhY2sgd2l0aCBib3JkZXJzIGR1cmluZyBkcmFnIG9wZXJhdGlvbnNcbiAqIC0gU3VwcG9ydHMgaGFwdGljIGZlZWRiYWNrICh2aWJyYXRpb24pIG9uIHRvdWNoIGRldmljZXNcbiAqIC0gRm9yIHRvdWNoIGRldmljZXMsIHJlcXVpcmVzIGEgMjAwbXMgaG9sZCBiZWZvcmUgZHJhZyBzdGFydHNcbiAqIC0gV2hlbiBzaG93SW5kaWNhdG9yIGlzIHRydWUsIG9ubHkgdGhlIGRyYWcgaGFuZGxlIGNhbiBpbml0aWF0ZSBkcmFnIG9wZXJhdGlvbnNcbiAqXG4gKiBAcmV0dXJucyBBIGRyYWdnYWJsZSBpdGVtIHdpdGggb3B0aW9uYWwgZHJhZyBpbmRpY2F0b3IgYW5kIHZpc3VhbCBmZWVkYmFja1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEcmFnSXRlbShwcm9wczogUHJvcHNXaXRoQ2hpbGRyZW48RHJhZ0l0ZW1Qcm9wcz4pIHtcbiAgICBjb25zdCB7IGluZGV4LCBvcmllbnRhdGlvbiwgY2hpbGRyZW4sIHNob3dJbmRpY2F0b3IsIGRyYWdPdmVyLCB0b3RhbEl0ZW1zLCBzZXRBbm5vdW5jZW1lbnQgfSA9XG4gICAgICAgIHByb3BzO1xuICAgIGNvbnN0IFthY3RpdmUsIHNldEFjdGl2ZV0gPSB1c2VTdGF0ZSgwKTtcbiAgICBjb25zdCB0b3VjaFRpbWVyUmVmID0gdXNlUmVmPE5vZGVKUy5UaW1lb3V0IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRHJhZ0NvbnRleHQpO1xuXG4gICAgLyoqXG4gICAgICogVmlicmF0ZSB0aGUgZGV2aWNlIGZvciBoYXB0aWMgZmVlZGJhY2tcbiAgICAgKiBAcGFyYW0gZHVyYXRpb24gRHVyYXRpb24gb2YgdGhlIHZpYnJhdGlvbiBpbiBtaWxsaXNlY29uZHNcbiAgICAgKi9cbiAgICBjb25zdCB2aWJyYXRlID0gKGR1cmF0aW9uOiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKG5hdmlnYXRvci52aWJyYXRlKSB7XG4gICAgICAgICAgICBuYXZpZ2F0b3IudmlicmF0ZShkdXJhdGlvbik7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRHJhZyBzdGFydCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBkcmFnU3RhcnRIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgY29udGV4dC5zZXRTdGFydEluZGV4KGluZGV4KTtcbiAgICAgICAgY29udGV4dC5zZXRJc0RyYWdnaW5nKHRydWUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEcmFnIG92ZXIgZXZlbnQgaGFuZGxlclxuICAgICAqIEBwYXJhbSBlIEV2ZW50XG4gICAgICovXG4gICAgY29uc3QgZHJhZ092ZXJIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgc2V0QWN0aXZlKGNvbnRleHQuc3RhcnRJbmRleCAtIGluZGV4KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRHJhZyBsZWF2ZSBldmVudCBoYW5kbGVyXG4gICAgICovXG4gICAgY29uc3QgZHJhZ0V4aXRIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEcm9wIGV2ZW50IGhhbmRsZXJcbiAgICAgKiBAcGFyYW0gZSBFdmVudFxuICAgICAqL1xuICAgIGNvbnN0IGRyb3BIYW5kbGVyOiBEcmFnRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgICAgICBjb250ZXh0LmRyb3AoaW5kZXgpO1xuICAgICAgICBjb250ZXh0LnNldElzRHJhZ2dpbmcoZmFsc2UpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUb3VjaCBzdGFydCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaFN0YXJ0SGFuZGxlcjogVG91Y2hFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+ID0gKCkgPT4ge1xuICAgICAgICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgdGltZXIgZmlyc3RcbiAgICAgICAgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnRleHQuc2V0U3RhcnRJbmRleChpbmRleCk7XG4gICAgICAgICAgICBjb250ZXh0LnNldElzRHJhZ2dpbmcodHJ1ZSk7XG4gICAgICAgICAgICBjb250ZXh0LnNldERyYWdPdmVyKGluZGV4KTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIHZpYnJhdGUoNTApO1xuICAgICAgICB9LCAyMDApO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBUb3VjaCBtb3ZlIGV2ZW50IGhhbmRsZXJcbiAgICAgKiBAcGFyYW0gZSBFdmVudFxuICAgICAqIEByZXR1cm5zIHZvaWRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaE1vdmVIYW5kbGVyOiBUb3VjaEV2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCB0b3VjaCA9IGUudG91Y2hlc1swXTtcbiAgICAgICAgaWYgKCF0b3VjaCkgcmV0dXJuO1xuXG4gICAgICAgIGlmIChjb250ZXh0LmlzRHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgLy8gZ2V0IHRoZSBlbGVtZW50IHVuZGVyIHRoZSB0b3VjaCBwb2ludFxuICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KFxuICAgICAgICAgICAgICAgIHRvdWNoLmNsaWVudFgsXG4gICAgICAgICAgICAgICAgdG91Y2guY2xpZW50WSxcbiAgICAgICAgICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICAgICAgY29uc3Qgb3ZlckF0dHIgPSBlbD8uY2xvc2VzdCgnW2RhdGEtZHJhZy1pbmRleF0nKT8uZ2V0QXR0cmlidXRlKCdkYXRhLWRyYWctaW5kZXgnKTtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJJbmRleCA9IG92ZXJBdHRyICE9IG51bGwgPyBwYXJzZUludChvdmVyQXR0ciwgMTApIDogbnVsbDtcblxuICAgICAgICAgICAgLy8gaWYgd2Uga25vdyB3aGljaCBpbmRleCB3ZSdyZSBvdmVyLCB1cGRhdGUgdmlzdWFsIHN0YXRlXG4gICAgICAgICAgICBpZiAob3ZlckluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29udGV4dC5zZXREcmFnT3ZlcihvdmVySW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFRvdWNoIGVuZCBldmVudCBoYW5kbGVyXG4gICAgICogQHBhcmFtIGUgRXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCB0b3VjaEVuZEhhbmRsZXI6IFRvdWNoRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRvdWNoVGltZXJSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB0b3VjaFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRleHQuaXNEcmFnZ2luZykge1xuICAgICAgICAgICAgY29udGV4dC5kcm9wKGRyYWdPdmVyKTtcbiAgICAgICAgICAgIHZpYnJhdGUoNTApO1xuICAgICAgICAgICAgY29udGV4dC5zZXRJc0RyYWdnaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogS2V5Ym9hcmQgbmF2aWdhdGlvbiBoYW5kbGVyIGZvciByZW9yZGVyaW5nIGl0ZW1zXG4gICAgICogQHBhcmFtIGUgS2V5Ym9hcmQgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGU6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgaXNWZXJ0aWNhbCA9IG9yaWVudGF0aW9uID09PSBPUklFTlRBVElPTi5WRVJUSUNBTDtcbiAgICAgICAgY29uc3QgbW92ZVVwID0gaXNWZXJ0aWNhbCA/ICdBcnJvd1VwJyA6ICdBcnJvd0xlZnQnO1xuICAgICAgICBjb25zdCBtb3ZlRG93biA9IGlzVmVydGljYWwgPyAnQXJyb3dEb3duJyA6ICdBcnJvd1JpZ2h0JztcblxuICAgICAgICBjb25zdCBpc0dyYWJiZWQgPSBjb250ZXh0LmlzRHJhZ2dpbmcgJiYgY29udGV4dC5zdGFydEluZGV4ID09PSBpbmRleDtcblxuICAgICAgICAvLyBTcGFjZSB0byBncmFiL2Ryb3BcbiAgICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgZS5rZXkgPT09ICdTcGFjZWJhcicpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChpc0dyYWJiZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBEcm9wIGF0IGN1cnJlbnQgcG9zaXRpb25cbiAgICAgICAgICAgICAgICBjb250ZXh0LmRyb3AoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLmRyb3BwZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gR3JhYiBpdGVtXG4gICAgICAgICAgICAgICAgY29udGV4dC5zdGFydEdyYWIoaW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLmdyYWJiZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBFbnRlciB0byBkcm9wXG4gICAgICAgIGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInICYmIGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29udGV4dC5kcm9wKGluZGV4KTtcbiAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICBjb250ZXh0LmkxOG4ucmVwbGFjZVBsYWNlaG9sZGVycyhjb250ZXh0LmkxOG4uZHJvcHBlZEFubm91bmNlbWVudFRlbXBsYXRlLCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIC8vIEVzY2FwZSB0byBjYW5jZWxcbiAgICAgICAgZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnICYmIGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29udGV4dC5jYW5jZWwoKTtcbiAgICAgICAgICAgIHNldEFubm91bmNlbWVudChjb250ZXh0LmkxOG4uY2FuY2VsbGVkQW5ub3VuY2VtZW50VGVtcGxhdGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFycm93IGtleXMgdG8gbW92ZSB3aGlsZSBncmFiYmVkXG4gICAgICAgIGVsc2UgaWYgKGlzR3JhYmJlZCkge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSBtb3ZlVXAgJiYgaW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIE1vdmUgd2l0aG91dCBkcm9wcGluZyAtIGp1c3QgcmVvcmRlciBhbmQgdXBkYXRlIHN0YXJ0SW5kZXhcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4IC0gMTtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRHJvcChjb250ZXh0LnN0YXJ0SW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFN0YXJ0SW5kZXgobmV3SW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLm1vdmVkQW5ub3VuY2VtZW50VGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBuZXdJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSBtb3ZlRG93biAmJiBpbmRleCA8IHRvdGFsSXRlbXMgLSAxKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIC8vIE1vdmUgd2l0aG91dCBkcm9wcGluZyAtIGp1c3QgcmVvcmRlciBhbmQgdXBkYXRlIHN0YXJ0SW5kZXhcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICBjb250ZXh0Lm9uRHJvcChjb250ZXh0LnN0YXJ0SW5kZXgsIG5ld0luZGV4KTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnNldFN0YXJ0SW5kZXgobmV3SW5kZXgpO1xuICAgICAgICAgICAgICAgIHNldEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5pMThuLnJlcGxhY2VQbGFjZWhvbGRlcnMoY29udGV4dC5pMThuLm1vdmVkQW5ub3VuY2VtZW50VGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBuZXdJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIENsZWFudXAgdG91Y2ggdGltZXIgYW5kIGJvZHkgb3ZlcmZsb3cgb24gdW5tb3VudCAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodG91Y2hUaW1lclJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRvdWNoVGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgdG91Y2hUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgLyoqIFVwZGF0ZSBhY3RpdmUgc3RhdGUgYmFzZWQgb24gZHJhZ092ZXIgY2hhbmdlcyAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChjb250ZXh0LmlzRHJhZ2dpbmcgJiYgZHJhZ092ZXIgPT09IGluZGV4KSB7XG4gICAgICAgICAgICBzZXRBY3RpdmUoY29udGV4dC5zdGFydEluZGV4IC0gaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0QWN0aXZlKDApO1xuICAgICAgICB9XG4gICAgfSwgW2RyYWdPdmVyLCBjb250ZXh0LnN0YXJ0SW5kZXgsIGluZGV4LCBjb250ZXh0LmlzRHJhZ2dpbmddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxJdGVtXG4gICAgICAgICAgICBkcmFnZ2FibGU9eyFzaG93SW5kaWNhdG9yfVxuICAgICAgICAgICAgc2hvd0luZGljYXRvcj17c2hvd0luZGljYXRvcn1cbiAgICAgICAgICAgIGFjdGl2ZT17YWN0aXZlfVxuICAgICAgICAgICAgZHJhZ2dpbmc9e2NvbnRleHQuaXNEcmFnZ2luZyAmJiBjb250ZXh0LnN0YXJ0SW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgICAgICAgICAgZGF0YS1kcmFnLWluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9e2NvbnRleHQuaTE4bi5yZXBsYWNlUGxhY2Vob2xkZXJzKGNvbnRleHQuaTE4bi5pdGVtQXJpYUxhYmVsVGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5kZXggKyAxLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBhcmlhLWdyYWJiZWQ9e2NvbnRleHQuaXNEcmFnZ2luZyAmJiBjb250ZXh0LnN0YXJ0SW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgb25EcmFnU3RhcnQ9eyFzaG93SW5kaWNhdG9yID8gZHJhZ1N0YXJ0SGFuZGxlciA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIG9uRHJhZ092ZXI9e2RyYWdPdmVySGFuZGxlcn1cbiAgICAgICAgICAgIG9uRHJhZ0xlYXZlPXtkcmFnRXhpdEhhbmRsZXJ9XG4gICAgICAgICAgICBvbkRyb3A9e2Ryb3BIYW5kbGVyfVxuICAgICAgICAgICAgb25Ub3VjaFN0YXJ0PXshc2hvd0luZGljYXRvciA/IHRvdWNoU3RhcnRIYW5kbGVyIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25Ub3VjaE1vdmU9e3RvdWNoTW92ZUhhbmRsZXJ9XG4gICAgICAgICAgICBvblRvdWNoRW5kPXt0b3VjaEVuZEhhbmRsZXJ9XG4gICAgICAgICAgICBvblRvdWNoQ2FuY2VsPXt0b3VjaEVuZEhhbmRsZXJ9XG4gICAgICAgID5cbiAgICAgICAgICAgIHtzaG93SW5kaWNhdG9yICYmIChcbiAgICAgICAgICAgICAgICA8RHJhZ0tub2JcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtjb250ZXh0LmkxOG4uZHJhZ0hhbmRsZUFyaWFMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgb25EcmFnU3RhcnQ9e2RyYWdTdGFydEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uVG91Y2hTdGFydD17dG91Y2hTdGFydEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPERyYWdJbmRpY2F0b3IgLz5cbiAgICAgICAgICAgICAgICA8L0RyYWdLbm9iPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxDb250YWluZXI+e2NoaWxkcmVufTwvQ29udGFpbmVyPlxuICAgICAgICA8L0l0ZW0+XG4gICAgKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvRmtCIn0= */");
|
|
19
|
+
})("flex:1;");
|
|
20
20
|
/**
|
|
21
21
|
* A draggable item component that supports both mouse and touch interactions for drag-and-drop functionality.
|
|
22
22
|
*
|
|
@@ -65,8 +65,8 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
65
65
|
* Drag start event handler
|
|
66
66
|
* @param e Event
|
|
67
67
|
*/ const dragStartHandler = ()=>{
|
|
68
|
-
context
|
|
69
|
-
context
|
|
68
|
+
context?.setStartIndex(index);
|
|
69
|
+
context?.setIsDragging(true);
|
|
70
70
|
};
|
|
71
71
|
/**
|
|
72
72
|
* Drag over event handler
|
|
@@ -74,7 +74,9 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
74
74
|
*/ const dragOverHandler = (e)=>{
|
|
75
75
|
e.preventDefault();
|
|
76
76
|
e.stopPropagation();
|
|
77
|
-
|
|
77
|
+
if (context && context.startIndex !== null) {
|
|
78
|
+
setActive(context.startIndex - index);
|
|
79
|
+
}
|
|
78
80
|
};
|
|
79
81
|
/**
|
|
80
82
|
* Drag leave event handler
|
|
@@ -87,8 +89,8 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
87
89
|
*/ const dropHandler = (e)=>{
|
|
88
90
|
e.preventDefault();
|
|
89
91
|
setActive(0);
|
|
90
|
-
context
|
|
91
|
-
context
|
|
92
|
+
context?.drop(index);
|
|
93
|
+
context?.setIsDragging(false);
|
|
92
94
|
};
|
|
93
95
|
/**
|
|
94
96
|
* Touch start event handler
|
|
@@ -99,9 +101,9 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
99
101
|
clearTimeout(touchTimerRef.current);
|
|
100
102
|
}
|
|
101
103
|
touchTimerRef.current = setTimeout(()=>{
|
|
102
|
-
context
|
|
103
|
-
context
|
|
104
|
-
context
|
|
104
|
+
context?.setStartIndex(index);
|
|
105
|
+
context?.setIsDragging(true);
|
|
106
|
+
context?.setDragOver(index);
|
|
105
107
|
document.body.style.overflow = 'hidden';
|
|
106
108
|
vibrate(50);
|
|
107
109
|
}, 200);
|
|
@@ -113,7 +115,7 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
113
115
|
*/ const touchMoveHandler = (e)=>{
|
|
114
116
|
const touch = e.touches[0];
|
|
115
117
|
if (!touch) return;
|
|
116
|
-
if (context
|
|
118
|
+
if (context?.isDragging) {
|
|
117
119
|
e.preventDefault();
|
|
118
120
|
// get the element under the touch point
|
|
119
121
|
const el = document.elementFromPoint(touch.clientX, touch.clientY);
|
|
@@ -121,7 +123,7 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
121
123
|
const overIndex = overAttr != null ? parseInt(overAttr, 10) : null;
|
|
122
124
|
// if we know which index we're over, update visual state
|
|
123
125
|
if (overIndex !== null) {
|
|
124
|
-
context
|
|
126
|
+
context?.setDragOver(overIndex);
|
|
125
127
|
}
|
|
126
128
|
} else if (touchTimerRef.current) {
|
|
127
129
|
clearTimeout(touchTimerRef.current);
|
|
@@ -136,10 +138,10 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
136
138
|
clearTimeout(touchTimerRef.current);
|
|
137
139
|
touchTimerRef.current = null;
|
|
138
140
|
}
|
|
139
|
-
if (context
|
|
140
|
-
context
|
|
141
|
+
if (context?.isDragging) {
|
|
142
|
+
context?.drop(dragOver);
|
|
141
143
|
vibrate(50);
|
|
142
|
-
context
|
|
144
|
+
context?.setIsDragging(false);
|
|
143
145
|
document.body.style.overflow = 'auto';
|
|
144
146
|
}
|
|
145
147
|
};
|
|
@@ -150,35 +152,35 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
150
152
|
const isVertical = orientation === ORIENTATION.VERTICAL;
|
|
151
153
|
const moveUp = isVertical ? 'ArrowUp' : 'ArrowLeft';
|
|
152
154
|
const moveDown = isVertical ? 'ArrowDown' : 'ArrowRight';
|
|
153
|
-
const isGrabbed = context
|
|
155
|
+
const isGrabbed = context?.isDragging && context?.startIndex === index;
|
|
154
156
|
// Space to grab/drop
|
|
155
157
|
if (e.key === ' ' || e.key === 'Spacebar') {
|
|
156
158
|
e.preventDefault();
|
|
157
159
|
if (isGrabbed) {
|
|
158
160
|
// Drop at current position
|
|
159
|
-
context
|
|
160
|
-
setAnnouncement(context
|
|
161
|
+
context?.drop(index);
|
|
162
|
+
setAnnouncement(context?.i18n.replacePlaceholders(context?.i18n.droppedAnnouncementTemplate, {
|
|
161
163
|
position: index + 1
|
|
162
164
|
}));
|
|
163
165
|
} else {
|
|
164
166
|
// Grab item
|
|
165
|
-
context
|
|
166
|
-
setAnnouncement(context
|
|
167
|
+
context?.startGrab(index);
|
|
168
|
+
setAnnouncement(context?.i18n.replacePlaceholders(context?.i18n.grabbedAnnouncementTemplate, {
|
|
167
169
|
position: index + 1
|
|
168
170
|
}));
|
|
169
171
|
}
|
|
170
172
|
} else if (e.key === 'Enter' && isGrabbed) {
|
|
171
173
|
e.preventDefault();
|
|
172
|
-
context
|
|
173
|
-
setAnnouncement(context
|
|
174
|
+
context?.drop(index);
|
|
175
|
+
setAnnouncement(context?.i18n.replacePlaceholders(context?.i18n.droppedAnnouncementTemplate, {
|
|
174
176
|
position: index + 1
|
|
175
177
|
}));
|
|
176
178
|
} else if (e.key === 'Escape' && isGrabbed) {
|
|
177
179
|
e.preventDefault();
|
|
178
|
-
context
|
|
179
|
-
setAnnouncement(context
|
|
180
|
+
context?.cancel();
|
|
181
|
+
setAnnouncement(context?.i18n.cancelledAnnouncementTemplate);
|
|
180
182
|
} else if (isGrabbed) {
|
|
181
|
-
if (e.key === moveUp && index > 0) {
|
|
183
|
+
if (e.key === moveUp && index > 0 && context.startIndex !== null) {
|
|
182
184
|
e.preventDefault();
|
|
183
185
|
// Move without dropping - just reorder and update startIndex
|
|
184
186
|
const newIndex = index - 1;
|
|
@@ -187,7 +189,7 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
187
189
|
setAnnouncement(context.i18n.replacePlaceholders(context.i18n.movedAnnouncementTemplate, {
|
|
188
190
|
position: newIndex + 1
|
|
189
191
|
}));
|
|
190
|
-
} else if (e.key === moveDown && index < totalItems - 1) {
|
|
192
|
+
} else if (e.key === moveDown && index < totalItems - 1 && context.startIndex !== null) {
|
|
191
193
|
e.preventDefault();
|
|
192
194
|
// Move without dropping - just reorder and update startIndex
|
|
193
195
|
const newIndex = index + 1;
|
|
@@ -209,30 +211,30 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
209
211
|
};
|
|
210
212
|
}, []);
|
|
211
213
|
/** Update active state based on dragOver changes */ useEffect(()=>{
|
|
212
|
-
if (context
|
|
213
|
-
setActive(context
|
|
214
|
+
if (context?.isDragging && context?.startIndex !== null && dragOver === index) {
|
|
215
|
+
setActive(context?.startIndex - index);
|
|
214
216
|
} else {
|
|
215
217
|
setActive(0);
|
|
216
218
|
}
|
|
217
219
|
}, [
|
|
218
220
|
dragOver,
|
|
219
|
-
context
|
|
221
|
+
context?.startIndex,
|
|
220
222
|
index,
|
|
221
|
-
context
|
|
223
|
+
context?.isDragging
|
|
222
224
|
]);
|
|
223
225
|
return /*#__PURE__*/ jsxs(Item, {
|
|
224
226
|
draggable: !showIndicator,
|
|
225
227
|
showIndicator: showIndicator,
|
|
226
228
|
active: active,
|
|
227
|
-
dragging: context
|
|
229
|
+
dragging: !!(context?.isDragging && context.startIndex === index),
|
|
228
230
|
orientation: orientation,
|
|
229
231
|
"data-drag-index": index,
|
|
230
232
|
tabIndex: 0,
|
|
231
233
|
role: "listitem",
|
|
232
|
-
"aria-label": context
|
|
234
|
+
"aria-label": context?.i18n.replacePlaceholders(context.i18n.itemAriaLabelTemplate, {
|
|
233
235
|
position: index + 1
|
|
234
236
|
}),
|
|
235
|
-
"aria-grabbed": context
|
|
237
|
+
"aria-grabbed": context?.isDragging && context.startIndex === index,
|
|
236
238
|
onKeyDown: handleKeyDown,
|
|
237
239
|
onDragStart: !showIndicator ? dragStartHandler : undefined,
|
|
238
240
|
onDragOver: dragOverHandler,
|
|
@@ -246,14 +248,14 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
246
248
|
showIndicator && /*#__PURE__*/ jsx(DragKnob, {
|
|
247
249
|
draggable: true,
|
|
248
250
|
role: "button",
|
|
249
|
-
"aria-label": context
|
|
251
|
+
"aria-label": context?.i18n.dragHandleAriaLabel,
|
|
250
252
|
onDragStart: dragStartHandler,
|
|
251
253
|
onTouchStart: touchStartHandler,
|
|
252
254
|
onKeyDown: handleKeyDown,
|
|
253
255
|
tabIndex: -1,
|
|
254
256
|
children: /*#__PURE__*/ jsx(CheckCircle, {})
|
|
255
257
|
}),
|
|
256
|
-
/*#__PURE__*/ jsx(Container, {
|
|
258
|
+
/*#__PURE__*/ jsx(Container$7, {
|
|
257
259
|
children: children
|
|
258
260
|
})
|
|
259
261
|
]
|
|
@@ -261,3 +263,4 @@ import CheckCircle from '../../icons/DragIndicator.js';
|
|
|
261
263
|
}
|
|
262
264
|
|
|
263
265
|
export { DragItem as default };
|
|
266
|
+
//# sourceMappingURL=DragItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DragItem.js","sources":["../../../src/components/DragAndDrop/DragItem.tsx"],"sourcesContent":["import {\n DragEventHandler,\n PropsWithChildren,\n useContext,\n useState,\n useEffect,\n TouchEventHandler,\n useRef,\n} from 'react';\nimport styled from '@emotion/styled';\nimport { DragIndicator } from '../../icons';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\nimport { ORIENTATION, DragContext } from './types';\n\ninterface DragItemProps {\n /** Position index of the draggable item */\n index: number;\n /** Orientation of the drag operation (VERTICAL or HORIZONTAL) */\n orientation: ORIENTATION;\n /** Whether to show a drag handle indicator instead of making the entire item draggable */\n showIndicator: boolean;\n /** The index of the item currently being dragged over */\n dragOver: number | null;\n /** Total number of items in the list */\n totalItems: number;\n /** Callback to set announcement for screen readers */\n setAnnouncement: (message?: string) => void;\n}\n\n/** Styled component for the draggable item container */\nconst Item = styled.div<{\n active: number | null;\n orientation: ORIENTATION;\n showIndicator: boolean;\n dragging: boolean;\n}>`\n cursor: ${(props) => (props.showIndicator ? 'default' : 'move')};\n display: flex;\n user-select: ${(props) => (props.showIndicator ? 'auto' : 'none')};\n border-top: 2px dashed\n ${(props) =>\n props.orientation === ORIENTATION.VERTICAL && props.active !== null && props.active > 0\n ? getThemeValue(THEME_NAME.PRIMARY)\n : 'transparent'};\n border-bottom: 2px dashed\n ${(props) =>\n props.orientation === ORIENTATION.VERTICAL && props.active !== null && props.active < 0\n ? getThemeValue(THEME_NAME.PRIMARY)\n : 'transparent'};\n border-left: 2px dashed\n ${(props) =>\n props.orientation === ORIENTATION.HORIZONTAL &&\n props.active !== null &&\n props.active > 0\n ? getThemeValue(THEME_NAME.PRIMARY)\n : 'transparent'};\n border-right: 2px dashed\n ${(props) =>\n props.orientation === ORIENTATION.HORIZONTAL &&\n props.active !== null &&\n props.active < 0\n ? getThemeValue(THEME_NAME.PRIMARY)\n : 'transparent'};\n opacity: ${(props) => (props.dragging ? 0.5 : 1)};\n border-radius: 10px;\n\n &:focus {\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n\n &:focus-visible {\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n`;\n\n/** Styled component for the drag handle indicator */\nconst DragKnob = styled.div`\n padding-top: 8px;\n cursor: move;\n touch-action: none;\n color: ${getThemeValue(THEME_NAME.DISABLED)};\n`;\n\n/** Container for the children */\nconst Container = styled.div`\n flex: 1;\n`;\n\n/**\n * A draggable item component that supports both mouse and touch interactions for drag-and-drop functionality.\n *\n * @component\n * @example\n * ```tsx\n * <DragItem\n * index={0}\n * orientation={ORIENTATION.VERTICAL}\n * showIndicator={true}\n * dragOver={-1}\n * >\n * <div>Draggable content</div>\n * </DragItem>\n * ```\n *\n * @param props - The component props\n * @param props.index - The position index of this item in the draggable list\n * @param props.orientation - The orientation of the drag operation (VERTICAL or HORIZONTAL)\n * @param props.showIndicator - Whether to show a drag handle indicator instead of making the entire item draggable\n * @param props.dragOver - The index of the item currently being dragged over\n * @param props.children - The content to be rendered inside the draggable item\n *\n * @remarks\n * - Uses the DragContext to manage drag state across items\n * - Provides visual feedback with borders during drag operations\n * - Supports haptic feedback (vibration) on touch devices\n * - For touch devices, requires a 200ms hold before drag starts\n * - When showIndicator is true, only the drag handle can initiate drag operations\n *\n * @returns A draggable item with optional drag indicator and visual feedback\n */\nexport default function DragItem(props: PropsWithChildren<DragItemProps>) {\n const { index, orientation, children, showIndicator, dragOver, totalItems, setAnnouncement } =\n props;\n const [active, setActive] = useState<number | null>(0);\n const touchTimerRef = useRef<NodeJS.Timeout | null>(null);\n const context = useContext(DragContext);\n\n /**\n * Vibrate the device for haptic feedback\n * @param duration Duration of the vibration in milliseconds\n */\n const vibrate = (duration: number) => {\n if (navigator.vibrate) {\n navigator.vibrate(duration);\n }\n };\n\n /**\n * Drag start event handler\n * @param e Event\n */\n const dragStartHandler: DragEventHandler<HTMLDivElement> = () => {\n context?.setStartIndex(index);\n context?.setIsDragging(true);\n };\n\n /**\n * Drag over event handler\n * @param e Event\n */\n const dragOverHandler: DragEventHandler<HTMLDivElement> = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (context && context.startIndex !== null) {\n setActive(context.startIndex - index);\n }\n };\n\n /**\n * Drag leave event handler\n */\n const dragExitHandler: DragEventHandler<HTMLDivElement> = () => {\n setActive(0);\n };\n\n /**\n * Drop event handler\n * @param e Event\n */\n const dropHandler: DragEventHandler<HTMLDivElement> = (e) => {\n e.preventDefault();\n setActive(0);\n context?.drop(index);\n context?.setIsDragging(false);\n };\n\n /**\n * Touch start event handler\n * @param e Event\n */\n const touchStartHandler: TouchEventHandler<HTMLDivElement> = () => {\n // Clear any existing timer first\n if (touchTimerRef.current) {\n clearTimeout(touchTimerRef.current);\n }\n\n touchTimerRef.current = setTimeout(() => {\n context?.setStartIndex(index);\n context?.setIsDragging(true);\n context?.setDragOver(index);\n document.body.style.overflow = 'hidden';\n vibrate(50);\n }, 200);\n };\n\n /**\n * Touch move event handler\n * @param e Event\n * @returns void\n */\n const touchMoveHandler: TouchEventHandler<HTMLDivElement> = (e) => {\n const touch = e.touches[0];\n if (!touch) return;\n\n if (context?.isDragging) {\n e.preventDefault();\n\n // get the element under the touch point\n const el = document.elementFromPoint(\n touch.clientX,\n touch.clientY,\n ) as HTMLElement | null;\n const overAttr = el?.closest('[data-drag-index]')?.getAttribute('data-drag-index');\n const overIndex = overAttr != null ? parseInt(overAttr, 10) : null;\n\n // if we know which index we're over, update visual state\n if (overIndex !== null) {\n context?.setDragOver(overIndex);\n }\n } else if (touchTimerRef.current) {\n clearTimeout(touchTimerRef.current);\n touchTimerRef.current = null;\n }\n };\n\n /**\n * Touch end event handler\n * @param e Event\n */\n const touchEndHandler: TouchEventHandler<HTMLDivElement> = () => {\n if (touchTimerRef.current) {\n clearTimeout(touchTimerRef.current);\n touchTimerRef.current = null;\n }\n\n if (context?.isDragging) {\n context?.drop(dragOver);\n vibrate(50);\n context?.setIsDragging(false);\n document.body.style.overflow = 'auto';\n }\n };\n\n /**\n * Keyboard navigation handler for reordering items\n * @param e Keyboard event\n */\n const handleKeyDown = (e: React.KeyboardEvent) => {\n const isVertical = orientation === ORIENTATION.VERTICAL;\n const moveUp = isVertical ? 'ArrowUp' : 'ArrowLeft';\n const moveDown = isVertical ? 'ArrowDown' : 'ArrowRight';\n\n const isGrabbed = context?.isDragging && context?.startIndex === index;\n\n // Space to grab/drop\n if (e.key === ' ' || e.key === 'Spacebar') {\n e.preventDefault();\n if (isGrabbed) {\n // Drop at current position\n context?.drop(index);\n setAnnouncement(\n context?.i18n.replacePlaceholders(context?.i18n.droppedAnnouncementTemplate, {\n position: index + 1,\n }),\n );\n } else {\n // Grab item\n context?.startGrab(index);\n setAnnouncement(\n context?.i18n.replacePlaceholders(context?.i18n.grabbedAnnouncementTemplate, {\n position: index + 1,\n }),\n );\n }\n }\n // Enter to drop\n else if (e.key === 'Enter' && isGrabbed) {\n e.preventDefault();\n context?.drop(index);\n setAnnouncement(\n context?.i18n.replacePlaceholders(context?.i18n.droppedAnnouncementTemplate, {\n position: index + 1,\n }),\n );\n }\n // Escape to cancel\n else if (e.key === 'Escape' && isGrabbed) {\n e.preventDefault();\n context?.cancel();\n setAnnouncement(context?.i18n.cancelledAnnouncementTemplate);\n }\n // Arrow keys to move while grabbed\n else if (isGrabbed) {\n if (e.key === moveUp && index > 0 && context.startIndex !== null) {\n e.preventDefault();\n // Move without dropping - just reorder and update startIndex\n const newIndex = index - 1;\n context.onDrop(context.startIndex, newIndex);\n context.setStartIndex(newIndex);\n setAnnouncement(\n context.i18n.replacePlaceholders(context.i18n.movedAnnouncementTemplate, {\n position: newIndex + 1,\n }),\n );\n } else if (\n e.key === moveDown &&\n index < totalItems - 1 &&\n context.startIndex !== null\n ) {\n e.preventDefault();\n // Move without dropping - just reorder and update startIndex\n const newIndex = index + 1;\n context.onDrop(context.startIndex, newIndex);\n context.setStartIndex(newIndex);\n setAnnouncement(\n context.i18n.replacePlaceholders(context.i18n.movedAnnouncementTemplate, {\n position: newIndex + 1,\n }),\n );\n }\n }\n };\n\n /** Cleanup touch timer and body overflow on unmount */\n useEffect(() => {\n return () => {\n if (touchTimerRef.current) {\n clearTimeout(touchTimerRef.current);\n touchTimerRef.current = null;\n }\n document.body.style.overflow = 'auto';\n };\n }, []);\n\n /** Update active state based on dragOver changes */\n useEffect(() => {\n if (context?.isDragging && context?.startIndex !== null && dragOver === index) {\n setActive(context?.startIndex - index);\n } else {\n setActive(0);\n }\n }, [dragOver, context?.startIndex, index, context?.isDragging]);\n\n return (\n <Item\n draggable={!showIndicator}\n showIndicator={showIndicator}\n active={active}\n dragging={!!(context?.isDragging && context.startIndex === index)}\n orientation={orientation}\n data-drag-index={index}\n tabIndex={0}\n role=\"listitem\"\n aria-label={context?.i18n.replacePlaceholders(context.i18n.itemAriaLabelTemplate, {\n position: index + 1,\n })}\n aria-grabbed={context?.isDragging && context.startIndex === index}\n onKeyDown={handleKeyDown}\n onDragStart={!showIndicator ? dragStartHandler : undefined}\n onDragOver={dragOverHandler}\n onDragLeave={dragExitHandler}\n onDrop={dropHandler}\n onTouchStart={!showIndicator ? touchStartHandler : undefined}\n onTouchMove={touchMoveHandler}\n onTouchEnd={touchEndHandler}\n onTouchCancel={touchEndHandler}\n >\n {showIndicator && (\n <DragKnob\n draggable\n role=\"button\"\n aria-label={context?.i18n.dragHandleAriaLabel}\n onDragStart={dragStartHandler}\n onTouchStart={touchStartHandler}\n onKeyDown={handleKeyDown}\n tabIndex={-1}\n >\n <DragIndicator />\n </DragKnob>\n )}\n <Container>{children}</Container>\n </Item>\n );\n}\n"],"names":["Item","styled","props","showIndicator","orientation","ORIENTATION","VERTICAL","active","getThemeValue","THEME_NAME","PRIMARY","HORIZONTAL","dragging","PRIMARY_LIGHT","DragKnob","DISABLED","Container","DragItem","index","children","dragOver","totalItems","setAnnouncement","setActive","useState","touchTimerRef","useRef","context","useContext","DragContext","vibrate","duration","navigator","dragStartHandler","setStartIndex","setIsDragging","dragOverHandler","e","preventDefault","stopPropagation","startIndex","dragExitHandler","dropHandler","drop","touchStartHandler","current","clearTimeout","setTimeout","setDragOver","document","body","style","overflow","touchMoveHandler","touch","touches","isDragging","el","elementFromPoint","clientX","clientY","overAttr","closest","getAttribute","overIndex","parseInt","touchEndHandler","handleKeyDown","isVertical","moveUp","moveDown","isGrabbed","key","i18n","replacePlaceholders","droppedAnnouncementTemplate","position","startGrab","grabbedAnnouncementTemplate","cancel","cancelledAnnouncementTemplate","newIndex","onDrop","movedAnnouncementTemplate","useEffect","_jsxs","draggable","data-drag-index","tabIndex","role","aria-label","itemAriaLabelTemplate","aria-grabbed","onKeyDown","onDragStart","undefined","onDragOver","onDragLeave","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","_jsx","dragHandleAriaLabel","DragIndicator"],"mappings":"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"}
|
|
@@ -3,9 +3,9 @@ export declare enum ORIENTATION {
|
|
|
3
3
|
VERTICAL = "vertical"
|
|
4
4
|
}
|
|
5
5
|
export declare const DragContext: import("react").Context<{
|
|
6
|
-
startIndex: number;
|
|
6
|
+
startIndex: number | null;
|
|
7
7
|
setStartIndex: (value: number) => void;
|
|
8
|
-
drop: (index: number) => void;
|
|
8
|
+
drop: (index: number | null) => void;
|
|
9
9
|
onDrop: (start: number, end: number) => void;
|
|
10
10
|
cancel: () => void;
|
|
11
11
|
startGrab: (index: number) => void;
|
|
@@ -28,4 +28,4 @@ export declare const DragContext: import("react").Context<{
|
|
|
28
28
|
moveKeys?: string;
|
|
29
29
|
}) => string;
|
|
30
30
|
};
|
|
31
|
-
}>;
|
|
31
|
+
} | null>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/DragAndDrop/types.ts"],"sourcesContent":["import { createContext } from 'react';\n\nexport enum ORIENTATION {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n\nexport const DragContext = createContext<{\n startIndex: number | null;\n setStartIndex: (value: number) => void;\n drop: (index: number | null) => void;\n onDrop: (start: number, end: number) => void;\n cancel: () => void;\n startGrab: (index: number) => void;\n isDragging: boolean;\n setIsDragging: (value: boolean) => void;\n setDragOver: (value: number) => void;\n i18n: {\n itemAriaLabelTemplate: string;\n dragHandleAriaLabel: string;\n grabbedAnnouncementTemplate: string;\n movedAnnouncementTemplate: string;\n droppedAnnouncementTemplate: string;\n cancelledAnnouncementTemplate: string;\n replacePlaceholders: (\n template: string,\n data: {\n position?: number;\n grabKey?: string;\n dropKey?: string;\n altDropKey?: string;\n cancelKey?: string;\n moveKeys?: string;\n },\n ) => string;\n };\n} | null>(null);\n"],"names":["ORIENTATION","DragContext","createContext"],"mappings":";;AAEO,IAAA,WAAKA,iBAAAA,SAAAA,WAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,WAAAA;AAGX,CAAA,CAAA,EAAA;AAEM,MAAMC,WAAAA,GAAcC,aAAAA,CA6BjB,IAAA;;;;"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
export { Header as DrawerHeader, Body as DrawerBody, Footer as DrawerFooter, } from '../../shared/styles';
|
|
4
3
|
export declare enum DRAWER_POSITION {
|
|
5
4
|
LEFT = "LEFT",
|
|
6
5
|
RIGHT = "RIGHT",
|
|
7
6
|
BOTTOM = "BOTTOM"
|
|
8
7
|
}
|
|
9
|
-
|
|
8
|
+
type DrawerProps = {
|
|
10
9
|
/** Opens the drawer */
|
|
11
|
-
open:
|
|
10
|
+
open: boolean;
|
|
12
11
|
/** position of the drawer */
|
|
13
|
-
position:
|
|
12
|
+
position: DRAWER_POSITION;
|
|
14
13
|
/** size of the drawer */
|
|
15
|
-
size
|
|
14
|
+
size?: string;
|
|
16
15
|
/** Shows an overlay behind the drawer. */
|
|
17
|
-
overlay
|
|
16
|
+
overlay?: boolean;
|
|
18
17
|
/** Closes the drawer on esc */
|
|
19
|
-
closeOnEsc
|
|
18
|
+
closeOnEsc?: boolean;
|
|
20
19
|
/** Closes the drawer on overlay click */
|
|
21
|
-
closeOnOverlayClick
|
|
20
|
+
closeOnOverlayClick?: boolean;
|
|
22
21
|
/** Call back function called when the drawer closes. */
|
|
23
|
-
onClose
|
|
22
|
+
onClose?: () => void;
|
|
23
|
+
/** Ref forwarded to the underlying HTMLDivElement of the drawer container */
|
|
24
|
+
forwardRef?: React.Ref<HTMLDivElement> | React.MutableRefObject<HTMLDivElement | null>;
|
|
24
25
|
};
|
|
25
|
-
type DrawerProps = PropTypes.InferProps<typeof drawerPropTypes>;
|
|
26
26
|
interface DrawerState {
|
|
27
27
|
open: boolean;
|
|
28
28
|
}
|
|
@@ -42,22 +42,6 @@ export default class Drawer extends React.Component<React.PropsWithChildren<Draw
|
|
|
42
42
|
state: {
|
|
43
43
|
open: boolean;
|
|
44
44
|
};
|
|
45
|
-
static propTypes: {
|
|
46
|
-
/** Opens the drawer */
|
|
47
|
-
open: PropTypes.Validator<boolean>;
|
|
48
|
-
/** position of the drawer */
|
|
49
|
-
position: PropTypes.Requireable<DRAWER_POSITION>;
|
|
50
|
-
/** size of the drawer */
|
|
51
|
-
size: PropTypes.Requireable<string>;
|
|
52
|
-
/** Shows an overlay behind the drawer. */
|
|
53
|
-
overlay: PropTypes.Requireable<boolean>;
|
|
54
|
-
/** Closes the drawer on esc */
|
|
55
|
-
closeOnEsc: PropTypes.Requireable<boolean>;
|
|
56
|
-
/** Closes the drawer on overlay click */
|
|
57
|
-
closeOnOverlayClick: PropTypes.Requireable<boolean>;
|
|
58
|
-
/** Call back function called when the drawer closes. */
|
|
59
|
-
onClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
60
|
-
};
|
|
61
45
|
static defaultProps: {
|
|
62
46
|
overlay: boolean;
|
|
63
47
|
position: DRAWER_POSITION;
|
|
@@ -69,9 +53,9 @@ export default class Drawer extends React.Component<React.PropsWithChildren<Draw
|
|
|
69
53
|
*/
|
|
70
54
|
static getDerivedStateFromProps(props: DrawerProps): {
|
|
71
55
|
open: boolean;
|
|
72
|
-
};
|
|
73
|
-
private layer
|
|
74
|
-
private closeCallback
|
|
56
|
+
} | null;
|
|
57
|
+
private layer?;
|
|
58
|
+
private closeCallback?;
|
|
75
59
|
/**
|
|
76
60
|
* Internal close handler.
|
|
77
61
|
* Restores focus and calls the external onClose callback.
|
|
@@ -92,6 +76,10 @@ export default class Drawer extends React.Component<React.PropsWithChildren<Draw
|
|
|
92
76
|
* Lifecycle method to save the currently focused element when the drawer mounts while open.
|
|
93
77
|
*/
|
|
94
78
|
componentDidMount(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Handles opening the drawer by creating the layer.
|
|
81
|
+
*/
|
|
82
|
+
private handleOpen;
|
|
95
83
|
/**
|
|
96
84
|
* Lifecycle method to restore focus when the drawer unmounts.
|
|
97
85
|
*/
|
|
@@ -114,9 +102,14 @@ export default class Drawer extends React.Component<React.PropsWithChildren<Draw
|
|
|
114
102
|
* Lifecycle method to handle Drawer updates.
|
|
115
103
|
* Manages opening/closing logic via LayerManager and focus preservation.
|
|
116
104
|
*/
|
|
117
|
-
getSnapshotBeforeUpdate(prevProps: DrawerProps):
|
|
105
|
+
getSnapshotBeforeUpdate(prevProps: DrawerProps): null;
|
|
106
|
+
/**
|
|
107
|
+
* Sets the ref prop passed to the Drawer Container component.
|
|
108
|
+
* @param node
|
|
109
|
+
*/
|
|
110
|
+
setRefProp: (node: HTMLDivElement | null) => void;
|
|
118
111
|
/**
|
|
119
112
|
* Renders the Drawer component via the LayerManager portal.
|
|
120
113
|
*/
|
|
121
|
-
render(): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
114
|
+
render(): import("@emotion/react/jsx-runtime").JSX.Element | null;
|
|
122
115
|
}
|