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.
Files changed (165) hide show
  1. package/README.md +2 -3
  2. package/dist/index.js +926 -795
  3. package/dist/index.js.map +1 -1
  4. package/lib-esm/components/Accordion/Accordion.d.ts +9 -13
  5. package/lib-esm/components/Accordion/Accordion.js +4 -10
  6. package/lib-esm/components/Accordion/Accordion.js.map +1 -0
  7. package/lib-esm/components/Accordion/AccordionStep.d.ts +22 -22
  8. package/lib-esm/components/Accordion/AccordionStep.js +41 -35
  9. package/lib-esm/components/Accordion/AccordionStep.js.map +1 -0
  10. package/lib-esm/components/Badge/Badge.d.ts +13 -16
  11. package/lib-esm/components/Badge/Badge.js +12 -21
  12. package/lib-esm/components/Badge/Badge.js.map +1 -0
  13. package/lib-esm/components/Button/ActionButton.d.ts +9 -5
  14. package/lib-esm/components/Button/ActionButton.js +20 -4
  15. package/lib-esm/components/Button/ActionButton.js.map +1 -0
  16. package/lib-esm/components/Button/Button.d.ts +9 -5
  17. package/lib-esm/components/Button/Button.js +19 -6
  18. package/lib-esm/components/Button/Button.js.map +1 -0
  19. package/lib-esm/components/Button/IconButton.d.ts +9 -5
  20. package/lib-esm/components/Button/IconButton.js +20 -4
  21. package/lib-esm/components/Button/IconButton.js.map +1 -0
  22. package/lib-esm/components/Button/LinkButton.d.ts +9 -5
  23. package/lib-esm/components/Button/LinkButton.js +20 -4
  24. package/lib-esm/components/Button/LinkButton.js.map +1 -0
  25. package/lib-esm/components/Button/RaisedButton.d.ts +9 -5
  26. package/lib-esm/components/Button/RaisedButton.js +20 -4
  27. package/lib-esm/components/Button/RaisedButton.js.map +1 -0
  28. package/lib-esm/components/Card/Card.d.ts +4 -6
  29. package/lib-esm/components/Card/Card.js +18 -4
  30. package/lib-esm/components/Card/Card.js.map +1 -0
  31. package/lib-esm/components/Chip/Chip.d.ts +2 -2
  32. package/lib-esm/components/Chip/Chip.js +17 -10
  33. package/lib-esm/components/Chip/Chip.js.map +1 -0
  34. package/lib-esm/components/ChipInput/ChipInput.d.ts +28 -39
  35. package/lib-esm/components/ChipInput/ChipInput.js +39 -39
  36. package/lib-esm/components/ChipInput/ChipInput.js.map +1 -0
  37. package/lib-esm/components/Dialog/AlertDialog.d.ts +11 -12
  38. package/lib-esm/components/Dialog/AlertDialog.js +5 -11
  39. package/lib-esm/components/Dialog/AlertDialog.js.map +1 -0
  40. package/lib-esm/components/Dialog/ConfirmDialog.d.ts +13 -14
  41. package/lib-esm/components/Dialog/ConfirmDialog.js +5 -12
  42. package/lib-esm/components/Dialog/ConfirmDialog.js.map +1 -0
  43. package/lib-esm/components/Dialog/Dialog.d.ts +8 -14
  44. package/lib-esm/components/Dialog/Dialog.js +13 -10
  45. package/lib-esm/components/Dialog/Dialog.js.map +1 -0
  46. package/lib-esm/components/Dialog/PromptDialog.d.ts +18 -19
  47. package/lib-esm/components/Dialog/PromptDialog.js +14 -21
  48. package/lib-esm/components/Dialog/PromptDialog.js.map +1 -0
  49. package/lib-esm/components/DragAndDrop/DragAndDrop.d.ts +37 -59
  50. package/lib-esm/components/DragAndDrop/DragAndDrop.js +26 -28
  51. package/lib-esm/components/DragAndDrop/DragAndDrop.js.map +1 -0
  52. package/lib-esm/components/DragAndDrop/DragItem.d.ts +2 -2
  53. package/lib-esm/components/DragAndDrop/DragItem.js +43 -40
  54. package/lib-esm/components/DragAndDrop/DragItem.js.map +1 -0
  55. package/lib-esm/components/DragAndDrop/types.d.ts +3 -3
  56. package/lib-esm/components/DragAndDrop/types.js +1 -0
  57. package/lib-esm/components/DragAndDrop/types.js.map +1 -0
  58. package/lib-esm/components/Drawer/Drawer.d.ts +24 -31
  59. package/lib-esm/components/Drawer/Drawer.js +50 -45
  60. package/lib-esm/components/Drawer/Drawer.js.map +1 -0
  61. package/lib-esm/components/Groups/Group.d.ts +6 -8
  62. package/lib-esm/components/Groups/Group.js +15 -12
  63. package/lib-esm/components/Groups/Group.js.map +1 -0
  64. package/lib-esm/components/Groups/GroupLabel.js +2 -1
  65. package/lib-esm/components/Groups/GroupLabel.js.map +1 -0
  66. package/lib-esm/components/Input/Checkbox.d.ts +12 -15
  67. package/lib-esm/components/Input/Checkbox.js +34 -29
  68. package/lib-esm/components/Input/Checkbox.js.map +1 -0
  69. package/lib-esm/components/Input/Dropdown.d.ts +8 -18
  70. package/lib-esm/components/Input/Dropdown.js +44 -18
  71. package/lib-esm/components/Input/Dropdown.js.map +1 -0
  72. package/lib-esm/components/Input/Input.d.ts +8 -3
  73. package/lib-esm/components/Input/Input.js +24 -22
  74. package/lib-esm/components/Input/Input.js.map +1 -0
  75. package/lib-esm/components/Input/Radio.d.ts +4 -8
  76. package/lib-esm/components/Input/Radio.js +20 -16
  77. package/lib-esm/components/Input/Radio.js.map +1 -0
  78. package/lib-esm/components/Input/RadioButton.d.ts +4 -8
  79. package/lib-esm/components/Input/RadioButton.js +19 -15
  80. package/lib-esm/components/Input/RadioButton.js.map +1 -0
  81. package/lib-esm/components/Input/Select.d.ts +6 -13
  82. package/lib-esm/components/Input/Select.js +26 -22
  83. package/lib-esm/components/Input/Select.js.map +1 -0
  84. package/lib-esm/components/Input/TextArea.d.ts +6 -13
  85. package/lib-esm/components/Input/TextArea.js +33 -27
  86. package/lib-esm/components/Input/TextArea.js.map +1 -0
  87. package/lib-esm/components/Input/Toggle.d.ts +4 -9
  88. package/lib-esm/components/Input/Toggle.js +15 -12
  89. package/lib-esm/components/Input/Toggle.js.map +1 -0
  90. package/lib-esm/components/Menu/Menu.d.ts +4 -14
  91. package/lib-esm/components/Menu/Menu.js +26 -17
  92. package/lib-esm/components/Menu/Menu.js.map +1 -0
  93. package/lib-esm/components/Menu/MenuContext.d.ts +4 -4
  94. package/lib-esm/components/Menu/MenuContext.js +2 -0
  95. package/lib-esm/components/Menu/MenuContext.js.map +1 -0
  96. package/lib-esm/components/Menu/MenuItem.d.ts +10 -4
  97. package/lib-esm/components/Menu/MenuItem.js +21 -6
  98. package/lib-esm/components/Menu/MenuItem.js.map +1 -0
  99. package/lib-esm/components/Modal/Modal.d.ts +17 -23
  100. package/lib-esm/components/Modal/Modal.js +38 -34
  101. package/lib-esm/components/Modal/Modal.js.map +1 -0
  102. package/lib-esm/components/Notification/Notification.d.ts +39 -34
  103. package/lib-esm/components/Notification/Notification.js +17 -39
  104. package/lib-esm/components/Notification/Notification.js.map +1 -0
  105. package/lib-esm/components/Notification/NotificationManager.d.ts +4 -4
  106. package/lib-esm/components/Notification/NotificationManager.js +19 -14
  107. package/lib-esm/components/Notification/NotificationManager.js.map +1 -0
  108. package/lib-esm/components/Notification/index.d.ts +1 -0
  109. package/lib-esm/components/Notification/style.d.ts +2 -3
  110. package/lib-esm/components/Notification/style.js +21 -20
  111. package/lib-esm/components/Notification/style.js.map +1 -0
  112. package/lib-esm/components/Notification/types.js +1 -0
  113. package/lib-esm/components/Notification/types.js.map +1 -0
  114. package/lib-esm/components/Popover/Popover.d.ts +21 -20
  115. package/lib-esm/components/Popover/Popover.js +44 -45
  116. package/lib-esm/components/Popover/Popover.js.map +1 -0
  117. package/lib-esm/components/Spinner/Spinner.d.ts +14 -15
  118. package/lib-esm/components/Spinner/Spinner.js +14 -14
  119. package/lib-esm/components/Spinner/Spinner.js.map +1 -0
  120. package/lib-esm/components/Stepper/Step.d.ts +15 -12
  121. package/lib-esm/components/Stepper/Step.js +12 -9
  122. package/lib-esm/components/Stepper/Step.js.map +1 -0
  123. package/lib-esm/components/Stepper/Stepper.d.ts +11 -17
  124. package/lib-esm/components/Stepper/Stepper.js +30 -27
  125. package/lib-esm/components/Stepper/Stepper.js.map +1 -0
  126. package/lib-esm/components/Tabs/Tab.d.ts +10 -16
  127. package/lib-esm/components/Tabs/Tab.js +1 -8
  128. package/lib-esm/components/Tabs/Tab.js.map +1 -0
  129. package/lib-esm/components/Tabs/Tabs.d.ts +11 -22
  130. package/lib-esm/components/Tabs/Tabs.js +43 -34
  131. package/lib-esm/components/Tabs/Tabs.js.map +1 -0
  132. package/lib-esm/components/Toast/Toast.d.ts +7 -7
  133. package/lib-esm/components/Toast/Toast.js +17 -15
  134. package/lib-esm/components/Toast/Toast.js.map +1 -0
  135. package/lib-esm/components/Toast/ToastStory.d.ts +21 -24
  136. package/lib-esm/components/Tooltip/Tooltip.d.ts +11 -14
  137. package/lib-esm/components/Tooltip/Tooltip.js +14 -23
  138. package/lib-esm/components/Tooltip/Tooltip.js.map +1 -0
  139. package/lib-esm/icons/CheckCircle.js +3 -2
  140. package/lib-esm/icons/CheckCircle.js.map +1 -0
  141. package/lib-esm/icons/Close.js +1 -0
  142. package/lib-esm/icons/Close.js.map +1 -0
  143. package/lib-esm/icons/DragIndicator.js +1 -0
  144. package/lib-esm/icons/DragIndicator.js.map +1 -0
  145. package/lib-esm/icons/ErrorOutline.js +3 -2
  146. package/lib-esm/icons/ErrorOutline.js.map +1 -0
  147. package/lib-esm/icons/ExpandMore.js +1 -0
  148. package/lib-esm/icons/ExpandMore.js.map +1 -0
  149. package/lib-esm/icons/FiberManualRecord.js +1 -0
  150. package/lib-esm/icons/FiberManualRecord.js.map +1 -0
  151. package/lib-esm/icons/Info.js +3 -2
  152. package/lib-esm/icons/Info.js.map +1 -0
  153. package/lib-esm/icons/ReportProblem.js +3 -2
  154. package/lib-esm/icons/ReportProblem.js.map +1 -0
  155. package/lib-esm/index.js +43 -0
  156. package/lib-esm/index.js.map +1 -0
  157. package/lib-esm/shared/LayerManager.d.ts +5 -4
  158. package/lib-esm/shared/LayerManager.js +125 -112
  159. package/lib-esm/shared/LayerManager.js.map +1 -0
  160. package/lib-esm/shared/constants.js +1 -0
  161. package/lib-esm/shared/constants.js.map +1 -0
  162. package/lib-esm/shared/styles.js +9 -8
  163. package/lib-esm/shared/styles.js.map +1 -0
  164. package/package.json +66 -31
  165. 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: string) => void;
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: "ews8uza0",
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: "ews8uza1",
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: "ews8uza2",
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.setStartIndex(index);
69
- context.setIsDragging(true);
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
- setActive(context.startIndex - index);
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.drop(index);
91
- context.setIsDragging(false);
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.setStartIndex(index);
103
- context.setIsDragging(true);
104
- context.setDragOver(index);
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.isDragging) {
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.setDragOver(overIndex);
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.isDragging) {
140
- context.drop(dragOver);
141
+ if (context?.isDragging) {
142
+ context?.drop(dragOver);
141
143
  vibrate(50);
142
- context.setIsDragging(false);
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.isDragging && context.startIndex === index;
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.drop(index);
160
- setAnnouncement(context.i18n.replacePlaceholders(context.i18n.droppedAnnouncementTemplate, {
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.startGrab(index);
166
- setAnnouncement(context.i18n.replacePlaceholders(context.i18n.grabbedAnnouncementTemplate, {
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.drop(index);
173
- setAnnouncement(context.i18n.replacePlaceholders(context.i18n.droppedAnnouncementTemplate, {
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.cancel();
179
- setAnnouncement(context.i18n.cancelledAnnouncementTemplate);
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.isDragging && dragOver === index) {
213
- setActive(context.startIndex - index);
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.startIndex,
221
+ context?.startIndex,
220
222
  index,
221
- context.isDragging
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.isDragging && context.startIndex === index,
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.i18n.replacePlaceholders(context.i18n.itemAriaLabelTemplate, {
234
+ "aria-label": context?.i18n.replacePlaceholders(context.i18n.itemAriaLabelTemplate, {
233
235
  position: index + 1
234
236
  }),
235
- "aria-grabbed": context.isDragging && context.startIndex === index,
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.i18n.dragHandleAriaLabel,
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>;
@@ -8,3 +8,4 @@ var ORIENTATION = /*#__PURE__*/ function(ORIENTATION) {
8
8
  const DragContext = createContext(null);
9
9
 
10
10
  export { DragContext, ORIENTATION };
11
+ //# sourceMappingURL=types.js.map
@@ -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
- declare const drawerPropTypes: {
8
+ type DrawerProps = {
10
9
  /** Opens the drawer */
11
- open: PropTypes.Validator<boolean>;
10
+ open: boolean;
12
11
  /** position of the drawer */
13
- position: PropTypes.Requireable<DRAWER_POSITION>;
12
+ position: DRAWER_POSITION;
14
13
  /** size of the drawer */
15
- size: PropTypes.Requireable<string>;
14
+ size?: string;
16
15
  /** Shows an overlay behind the drawer. */
17
- overlay: PropTypes.Requireable<boolean>;
16
+ overlay?: boolean;
18
17
  /** Closes the drawer on esc */
19
- closeOnEsc: PropTypes.Requireable<boolean>;
18
+ closeOnEsc?: boolean;
20
19
  /** Closes the drawer on overlay click */
21
- closeOnOverlayClick: PropTypes.Requireable<boolean>;
20
+ closeOnOverlayClick?: boolean;
22
21
  /** Call back function called when the drawer closes. */
23
- onClose: PropTypes.Requireable<(...args: any[]) => any>;
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): void;
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
  }