no-frills-ui 0.0.14-alpha.6 → 0.0.14-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +87 -87
- package/dist/index.js.map +1 -1
- package/lib-esm/components/Accordion/Accordion.js +1 -0
- package/lib-esm/components/Accordion/Accordion.js.map +1 -0
- package/lib-esm/components/Accordion/AccordionStep.js +9 -8
- package/lib-esm/components/Accordion/AccordionStep.js.map +1 -0
- package/lib-esm/components/Badge/Badge.js +2 -1
- package/lib-esm/components/Badge/Badge.js.map +1 -0
- package/lib-esm/components/Button/ActionButton.js +2 -1
- package/lib-esm/components/Button/ActionButton.js.map +1 -0
- package/lib-esm/components/Button/Button.js +2 -1
- package/lib-esm/components/Button/Button.js.map +1 -0
- package/lib-esm/components/Button/IconButton.js +2 -1
- package/lib-esm/components/Button/IconButton.js.map +1 -0
- package/lib-esm/components/Button/LinkButton.js +2 -1
- package/lib-esm/components/Button/LinkButton.js.map +1 -0
- package/lib-esm/components/Button/RaisedButton.js +2 -1
- package/lib-esm/components/Button/RaisedButton.js.map +1 -0
- package/lib-esm/components/Card/Card.js +2 -1
- package/lib-esm/components/Card/Card.js.map +1 -0
- package/lib-esm/components/Chip/Chip.js +3 -2
- package/lib-esm/components/Chip/Chip.js.map +1 -0
- package/lib-esm/components/ChipInput/ChipInput.js +4 -3
- package/lib-esm/components/ChipInput/ChipInput.js.map +1 -0
- package/lib-esm/components/Dialog/AlertDialog.js +1 -0
- package/lib-esm/components/Dialog/AlertDialog.js.map +1 -0
- package/lib-esm/components/Dialog/ConfirmDialog.js +1 -0
- package/lib-esm/components/Dialog/ConfirmDialog.js.map +1 -0
- package/lib-esm/components/Dialog/Dialog.js +2 -1
- package/lib-esm/components/Dialog/Dialog.js.map +1 -0
- package/lib-esm/components/Dialog/PromptDialog.js +4 -3
- package/lib-esm/components/Dialog/PromptDialog.js.map +1 -0
- package/lib-esm/components/DragAndDrop/DragAndDrop.js +3 -2
- package/lib-esm/components/DragAndDrop/DragAndDrop.js.map +1 -0
- package/lib-esm/components/DragAndDrop/DragItem.js +4 -3
- package/lib-esm/components/DragAndDrop/DragItem.js.map +1 -0
- package/lib-esm/components/DragAndDrop/types.js +1 -0
- package/lib-esm/components/DragAndDrop/types.js.map +1 -0
- package/lib-esm/components/Drawer/Drawer.js +2 -1
- package/lib-esm/components/Drawer/Drawer.js.map +1 -0
- package/lib-esm/components/Groups/Group.js +3 -2
- package/lib-esm/components/Groups/Group.js.map +1 -0
- package/lib-esm/components/Groups/GroupLabel.js +2 -1
- package/lib-esm/components/Groups/GroupLabel.js.map +1 -0
- package/lib-esm/components/Input/Checkbox.js +4 -3
- package/lib-esm/components/Input/Checkbox.js.map +1 -0
- package/lib-esm/components/Input/Dropdown.js +2 -1
- package/lib-esm/components/Input/Dropdown.js.map +1 -0
- package/lib-esm/components/Input/Input.js +4 -3
- package/lib-esm/components/Input/Input.js.map +1 -0
- package/lib-esm/components/Input/Radio.js +4 -3
- package/lib-esm/components/Input/Radio.js.map +1 -0
- package/lib-esm/components/Input/RadioButton.js +4 -3
- package/lib-esm/components/Input/RadioButton.js.map +1 -0
- package/lib-esm/components/Input/Select.js +5 -4
- package/lib-esm/components/Input/Select.js.map +1 -0
- package/lib-esm/components/Input/TextArea.js +4 -3
- package/lib-esm/components/Input/TextArea.js.map +1 -0
- package/lib-esm/components/Input/Toggle.js +3 -2
- package/lib-esm/components/Input/Toggle.js.map +1 -0
- package/lib-esm/components/Menu/Menu.js +2 -1
- package/lib-esm/components/Menu/Menu.js.map +1 -0
- package/lib-esm/components/Menu/MenuContext.js +1 -0
- package/lib-esm/components/Menu/MenuContext.js.map +1 -0
- package/lib-esm/components/Menu/MenuItem.js +2 -1
- package/lib-esm/components/Menu/MenuItem.js.map +1 -0
- package/lib-esm/components/Modal/Modal.js +1 -0
- package/lib-esm/components/Modal/Modal.js.map +1 -0
- package/lib-esm/components/Notification/Notification.js +1 -0
- package/lib-esm/components/Notification/Notification.js.map +1 -0
- package/lib-esm/components/Notification/NotificationManager.js +1 -0
- package/lib-esm/components/Notification/NotificationManager.js.map +1 -0
- package/lib-esm/components/Notification/style.js +10 -9
- package/lib-esm/components/Notification/style.js.map +1 -0
- package/lib-esm/components/Notification/types.js +1 -0
- package/lib-esm/components/Notification/types.js.map +1 -0
- package/lib-esm/components/Popover/Popover.js +3 -2
- package/lib-esm/components/Popover/Popover.js.map +1 -0
- package/lib-esm/components/Spinner/Spinner.js +2 -1
- package/lib-esm/components/Spinner/Spinner.js.map +1 -0
- package/lib-esm/components/Stepper/Step.js +2 -1
- package/lib-esm/components/Stepper/Step.js.map +1 -0
- package/lib-esm/components/Stepper/Stepper.js +5 -4
- package/lib-esm/components/Stepper/Stepper.js.map +1 -0
- package/lib-esm/components/Tabs/Tab.js +1 -0
- package/lib-esm/components/Tabs/Tab.js.map +1 -0
- package/lib-esm/components/Tabs/Tabs.js +4 -3
- package/lib-esm/components/Tabs/Tabs.js.map +1 -0
- package/lib-esm/components/Toast/Toast.js +4 -3
- package/lib-esm/components/Toast/Toast.js.map +1 -0
- package/lib-esm/components/Tooltip/Tooltip.js +3 -2
- package/lib-esm/components/Tooltip/Tooltip.js.map +1 -0
- package/lib-esm/components/index.js +1 -0
- package/lib-esm/components/index.js.map +1 -0
- package/lib-esm/icons/CheckCircle.js +1 -0
- package/lib-esm/icons/CheckCircle.js.map +1 -0
- package/lib-esm/icons/Close.js +1 -0
- package/lib-esm/icons/Close.js.map +1 -0
- package/lib-esm/icons/DragIndicator.js +1 -0
- package/lib-esm/icons/DragIndicator.js.map +1 -0
- package/lib-esm/icons/ErrorOutline.js +1 -0
- package/lib-esm/icons/ErrorOutline.js.map +1 -0
- package/lib-esm/icons/ExpandMore.js +1 -0
- package/lib-esm/icons/ExpandMore.js.map +1 -0
- package/lib-esm/icons/FiberManualRecord.js +1 -0
- package/lib-esm/icons/FiberManualRecord.js.map +1 -0
- package/lib-esm/icons/Info.js +1 -0
- package/lib-esm/icons/Info.js.map +1 -0
- package/lib-esm/icons/ReportProblem.js +1 -0
- package/lib-esm/icons/ReportProblem.js.map +1 -0
- package/lib-esm/shared/LayerManager.js +2 -1
- package/lib-esm/shared/LayerManager.js.map +1 -0
- package/lib-esm/shared/constants.js +1 -0
- package/lib-esm/shared/constants.js.map +1 -0
- package/lib-esm/shared/styles.js +5 -4
- package/lib-esm/shared/styles.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Info.js","sources":["../../src/icons/Info.tsx"],"sourcesContent":["export default function CheckCircle(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" fill=\"currentColor\" {...props}>\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\" />\n </svg>\n );\n}\n"],"names":["CheckCircle","props","_jsxs","svg","height","viewBox","width","fill","_jsx","path","d"],"mappings":";;AAAe,SAASA,YAAYC,KAAoC,EAAA;AACpE,IAAA,qBACIC,IAAA,CAACC,KAAAA,EAAAA;QAAIC,MAAAA,EAAO,IAAA;QAAKC,OAAAA,EAAQ,WAAA;QAAYC,KAAAA,EAAM,IAAA;QAAKC,IAAAA,EAAK,cAAA;AAAgB,QAAA,GAAGN,KAAK;;0BACzEO,GAAA,CAACC,MAAAA,EAAAA;gBAAKC,CAAAA,EAAE,iBAAA;gBAAkBH,IAAAA,EAAK;;0BAC/BC,GAAA,CAACC,MAAAA,EAAAA;gBAAKC,CAAAA,EAAE;;;;AAGpB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportProblem.js","sources":["../../src/icons/ReportProblem.tsx"],"sourcesContent":["export default function CheckCircle(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" fill=\"currentColor\" {...props}>\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path d=\"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\" />\n </svg>\n );\n}\n"],"names":["CheckCircle","props","_jsxs","svg","height","viewBox","width","fill","_jsx","path","d"],"mappings":";;AAAe,SAASA,YAAYC,KAAoC,EAAA;AACpE,IAAA,qBACIC,IAAA,CAACC,KAAAA,EAAAA;QAAIC,MAAAA,EAAO,IAAA;QAAKC,OAAAA,EAAQ,WAAA;QAAYC,KAAAA,EAAM,IAAA;QAAKC,IAAAA,EAAK,cAAA;AAAgB,QAAA,GAAGN,KAAK;;0BACzEO,GAAA,CAACC,MAAAA,EAAAA;gBAAKC,CAAAA,EAAE,iBAAA;gBAAkBH,IAAAA,EAAK;;0BAC/BC,GAAA,CAACC,MAAAA,EAAAA;gBAAKC,CAAAA,EAAE;;;;AAGpB;;;;"}
|
|
@@ -43,7 +43,7 @@ import { getThemeValue, THEME_NAME } from './constants.js';
|
|
|
43
43
|
pointer-events: all;
|
|
44
44
|
`, " z-index:", (props)=>props.zIndex, ";.nf-layer-enter &{opacity:1;", (props)=>props.overlay && `
|
|
45
45
|
backdrop-filter: blur(3px);
|
|
46
|
-
`, "}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvc2hhcmVkL0xheWVyTWFuYWdlci50c3giLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL25vLWZyaWxscy11aS9uby1mcmlsbHMtdWkvc3JjL3NoYXJlZC9MYXllck1hbmFnZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdFBvcnRhbCwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBnZXRUaGVtZVZhbHVlLCBUSEVNRV9OQU1FIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vKiogRW51bXMgZm9yIGxheWVyIHBvc2l0aW9uIG9uIHNjcmVlbi4gKi9cbmV4cG9ydCBlbnVtIExBWUVSX1BPU0lUSU9OIHtcbiAgICBUT1BfTEVGVCxcbiAgICBUT1BfQ0VOVEVSLFxuICAgIFRPUF9SSUdIVCxcbiAgICBCT1RUT01fTEVGVCxcbiAgICBCT1RUT01fQ0VOVEVSLFxuICAgIEJPVFRPTV9SSUdIVCxcbiAgICBESUFMT0csXG59XG5cbmludGVyZmFjZSBMYXllckNvbmZpZyB7XG4gICAgLyoqIFNob3cgYW4gb3ZlcmxheSAqL1xuICAgIG92ZXJsYXk/OiBib29sZWFuO1xuICAgIC8qKiBFbGVtZW50IHRvIHJlbmRlciBpbnNpZGUgdGhlIGxheWVyLiAqL1xuICAgIGNvbXBvbmVudDogSlNYLkVsZW1lbnQ7XG4gICAgLyoqIFBvc2l0aW9uIG9mIHRoZSBsYXllciAqL1xuICAgIHBvc2l0aW9uPzogTEFZRVJfUE9TSVRJT047XG4gICAgLyoqIERlbGF5IGZvciBleGl0ICovXG4gICAgZXhpdERlbGF5PzogbnVtYmVyO1xuICAgIC8qKiBDbG9zZSBsYXllciBvbiBgZXNjYCBrZXkgcHJlc3MuICovXG4gICAgY2xvc2VPbkVzYz86IGJvb2xlYW47XG4gICAgLyoqIENsb3NlIGxheWVyIG92ZXJsYXkgaXMgY2xpY2tlZC4gKi9cbiAgICBjbG9zZU9uT3ZlcmxheUNsaWNrPzogYm9vbGVhbjtcbiAgICAvKiogQ2FsbGJhY2sgY2FsbGVkIHdoZW4gbW9kYWwgY2xvc2VzICovXG4gICAgY2xvc2VDYWxsYmFjaz86IDxUPihyZXNwOiBUKSA9PiB2b2lkO1xuICAgIC8qKiBMYXllciBpcyBjcmVhdGVkIHdpdGggbWF4IHotaW5kZXggKi9cbiAgICBhbHdheXNPblRvcD86IGJvb2xlYW47XG59XG5cbi8qKiBEZWZhdWx0IHZhbHVlIG9mIGNvbmZpZyAqL1xuY29uc3QgZGVmYXVsdENvbmZpZzogTGF5ZXJDb25maWcgPSB7XG4gICAgY2xvc2VPbkVzYzogdHJ1ZSxcbiAgICBvdmVybGF5OiBmYWxzZSxcbiAgICBwb3NpdGlvbjogTEFZRVJfUE9TSVRJT04uVE9QX0xFRlQsXG4gICAgY29tcG9uZW50OiBudWxsLFxuICAgIGV4aXREZWxheTogMCxcbiAgICBjbG9zZU9uT3ZlcmxheUNsaWNrOiB0cnVlLFxuICAgIGFsd2F5c09uVG9wOiBmYWxzZSxcbn07XG5cbi8qKiBNZXRhZGF0YSBvZiBlYWNoIGxheWVyICovXG5pbnRlcmZhY2UgTGF5ZXIge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY29uZmlnOiBMYXllckNvbmZpZztcbiAgICBlbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbn1cblxuLyoqIFN0eWxlcyBmb3IgZWFjaCBwb3NpdGlvbiAqL1xuY29uc3QgUE9TSVRJT05fU1RZTEUgPSB7XG4gICAgW0xBWUVSX1BPU0lUSU9OLlRPUF9MRUZUXTogJ3RvcDogMDsgbGVmdDogMDsnLFxuICAgIFtMQVlFUl9QT1NJVElPTi5UT1BfQ0VOVEVSXTogJ3RvcDogMDsgbGVmdDogNTAlOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsnLFxuICAgIFtMQVlFUl9QT1NJVElPTi5UT1BfUklHSFRdOiAndG9wOiAwOyByaWdodDogMDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsnLFxuICAgIFtMQVlFUl9QT1NJVElPTi5CT1RUT01fTEVGVF06ICdib3R0b206IDA7IGxlZnQ6IDA7JyxcbiAgICBbTEFZRVJfUE9TSVRJT04uQk9UVE9NX0NFTlRFUl06ICdib3R0b206IDA7IGxlZnQ6IDUwJTsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7JyxcbiAgICBbTEFZRVJfUE9TSVRJT04uQk9UVE9NX1JJR0hUXTogJ2JvdHRvbTogMDsgcmlnaHQ6IDA7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7JyxcbiAgICBbTEFZRVJfUE9TSVRJT04uRElBTE9HXTogJ3RvcDogMDsgbGVmdDogMDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Jyxcbn07XG5cbi8qKiBMYXllciBjb250YWluZXIgY29tcG9uZW50LiAqL1xuY29uc3QgQ29udGFpbmVyID0gc3R5bGVkLmRpdjxMYXllckNvbmZpZyAmIHsgekluZGV4OiBudW1iZXIgfT5gXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgICAkeyhwcm9wcykgPT4gUE9TSVRJT05fU1RZTEVbcHJvcHMucG9zaXRpb25dfVxuICAgICR7KHByb3BzKSA9PlxuICAgICAgICBwcm9wcy5vdmVybGF5ICYmXG4gICAgICAgIGBcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkJBQ0tEUk9QX0NPTE9SKX07XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwcHgpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIGB9XG4gICAgei1pbmRleDogJHsocHJvcHMpID0+IHByb3BzLnpJbmRleH07XG5cbiAgICAubmYtbGF5ZXItZW50ZXIgJiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICR7KHByb3BzKSA9PlxuICAgICAgICAgICAgcHJvcHMub3ZlcmxheSAmJlxuICAgICAgICAgICAgYFxuICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDNweCk7XG4gICAgICAgIGB9XG4gICAgfVxuYDtcblxuLyoqIEtleSBjb2RlIGZvciBkaWZmZXJlbnQga2V5cy4gKi9cbmNvbnN0IEtFWV9DT0RFUyA9IHtcbiAgICBFU0M6IDI3LFxufTtcblxuLyoqXG4gKiBUaGlzIGlzIGEgc2hhcmVkIGhlbHBlciBjbGFzcyB3aGljaCBtYW5hZ2VzIHRoZSB6LWluZGV4IG9mIGVhY2ggbGF5ZXIuXG4gKiBJZiBhIGNvbXBvbmVudCBuZWVkcyB0byBiZSByZW5kZXJlZCBpbiBhIGRpZmZlcmVudCBsYXllciB0aGVuIHRoaXMgY2xhc3NcbiAqIHNob3VsZCBiZSB1c2VkLiBJdCBpbnRlcm5hbGx5IG1haW50YWlucyB0aGUgc3RhY2sgb2Ygb3BlbmVkIGxheWVyIGFuZCBlYWNoXG4gKiBgcmVuZGVyTGF5ZXJgIGNhbGwgd2lsbCBwdXNoIGEgbmV3IGxheWVyIGluIHN0YWNrLlxuICpcbiAqIFRoaXMgd2F5IHdlIG5lZWQgbm90IHdvcnJ5IGFib3V0IHRoZSB6LWluZGV4IGFuZCBjYW4gZnJlZWx5IGtlZXAgb24gY3JlYXRpbmdcbiAqIG5ldyBsYXllcnMuIFRoZSBzdGFyaW5nIGxheWVyIHotaW5kZXggaXMgMTAwMDAuIExlYXZpbmcgZW5vdWdoIHotaW5kZXggZm9yIHRoZVxuICogdXNlciBpZiB0aGV5IGRlc2lyZXMgc28uXG4gKlxuICogQGltcG9ydGFudCBVc2FnZSBQYXR0ZXJuXG4gKiBUbyBhdm9pZCBjcmVhdGluZyBkdXBsaWNhdGUgbGF5ZXJzIChlc3BlY2lhbGx5IGluIFJlYWN0IFN0cmljdCBNb2RlIG9yIE5leHQuanMpLFxuICogYWx3YXlzIGNhbGwgYHJlbmRlckxheWVyYCBvbmx5IG9uY2UgLSBlaXRoZXIgaW4gYSBsaWZlY3ljbGUgbWV0aG9kIChsaWtlIGBjb21wb25lbnREaWRVcGRhdGVgKVxuICogb3IgaW4gYW4gaW1wZXJhdGl2ZSBtZXRob2QgKGxpa2UgYG9wZW4oKWApLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyDinYwgRG9uJ3QgY2FsbCByZW5kZXJMYXllciBpbiByZW5kZXIoKSBtZXRob2RcbiAqIHJlbmRlcigpIHtcbiAqICAgaWYgKHRoaXMuc3RhdGUuc2hvdykge1xuICogICAgIGNvbnN0IFtDb21wb25lbnQsIGNsb3NlRm5dID0gTGF5ZXJNYW5hZ2VyLnJlbmRlckxheWVyKHsgLi4uIH0pOyAvLyBDcmVhdGVzIG5ldyBsYXllciBvbiBldmVyeSByZW5kZXJcbiAqICAgICByZXR1cm4gPENvbXBvbmVudCAvPjtcbiAqICAgfVxuICogfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyDinIUgRG8gY2FsbCByZW5kZXJMYXllciBvbmNlIGluIGEgbWV0aG9kIGFuZCBzdG9yZSB0aGUgY29tcG9uZW50XG4gKiBvcGVuKCkge1xuICogICBjb25zdCBbQ29tcG9uZW50LCBjbG9zZUZuXSA9IExheWVyTWFuYWdlci5yZW5kZXJMYXllcih7IC4uLiB9KTtcbiAqICAgdGhpcy5zZXRTdGF0ZSh7IExheWVyQ29tcG9uZW50OiBDb21wb25lbnQgfSk7XG4gKiB9XG4gKlxuICogcmVuZGVyKCkge1xuICogICBjb25zdCB7IExheWVyQ29tcG9uZW50IH0gPSB0aGlzLnN0YXRlO1xuICogICByZXR1cm4gTGF5ZXJDb21wb25lbnQgPyA8TGF5ZXJDb21wb25lbnQgLz4gOiBudWxsO1xuICogfVxuICovXG5jbGFzcyBMYXllck1hbmFnZXIge1xuICAgIC8qKiBMYXllciBzdGFjayAqL1xuICAgIHByaXZhdGUgbGF5ZXJzOiBMYXllcltdID0gW107XG4gICAgLyoqIHotaW5kZXggb2YgdGhlIG5leHQgbGF5ZXIgKi9cbiAgICBwcml2YXRlIG5leHRJbmRleCA9IDEwMDAwO1xuICAgIHByaXZhdGUga2V5dXBIYW5kbGVyOiAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIHRpbWVvdXRJZHMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpOyAvLyBUcmFjayB0aW1lb3V0c1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3Igc2ltcGx5IHJlZ2lzdGVycyBhIGV2ZW50IGxpc3RlbmVyIG9uIGJvZHkgdG9cbiAgICAgKiByZWFjdCB0byBlc2Mga2V5IHByZXNzLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgLy8gU3RvcmUgaGFuZGxlciByZWZlcmVuY2UgZm9yIGNsZWFudXBcbiAgICAgICAgICAgIHRoaXMua2V5dXBIYW5kbGVyID0gKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXllcnMubGVuZ3RoICYmIGUua2V5Q29kZSA9PT0gS0VZX0NPREVTLkVTQykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0TGF5ZXIgPSB0aGlzLmxheWVycy5zbGljZSgtMSlbMF07XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0TGF5ZXIuY29uZmlnLmNsb3NlT25Fc2MgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVubW91bnQobGFzdExheWVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5rZXl1cEhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkIGNsZWFudXAgbWV0aG9kXG4gICAgcHVibGljIGRlc3Ryb3kgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMua2V5dXBIYW5kbGVyKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5rZXl1cEhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIENsZWFyIGFsbCBwZW5kaW5nIHRpbWVvdXRzXG4gICAgICAgIHRoaXMudGltZW91dElkcy5mb3JFYWNoKChpZCkgPT4gY2xlYXJUaW1lb3V0KGlkKSk7XG4gICAgICAgIHRoaXMudGltZW91dElkcy5jbGVhcigpO1xuICAgICAgICAvLyBDbGVhbiB1cCByZW1haW5pbmcgbGF5ZXJzXG4gICAgICAgIHRoaXMubGF5ZXJzLmZvckVhY2goKGxheWVyKSA9PiB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jb250YWlucyhsYXllci5lbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGF5ZXIuZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxheWVycyA9IFtdO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBVbi1tb3VudHMgYSBsYXllci5cbiAgICAgKlxuICAgICAqIEl0IGZpcnN0IGFkZHMgYSBjbGFzcyAnbmYtbGF5ZXItZXhpdCcgYW5kIHRoZW4gdW4tbW91bnRzIHRoZVxuICAgICAqIGxheWVyIGFmdGVyIHRoZSBgZXhpdERlbGF5YCBtZW50aW9uZWQgaW4gdGhlIGxheWVyIGNvbmZpZy5cbiAgICAgKiBUaGlzIGNsYXNzIHdpbGwgaGVscCBjb21wb25lbnQgaW4gdHJpZ2dlcmluZyB0aGUgZW50cnkgYW5pbWF0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIGxheWVyXG4gICAgICovXG4gICAgcHJpdmF0ZSB1bm1vdW50ID0gKGxheWVyOiBMYXllciwgcmVzcD86IHVua25vd24pID0+IHtcbiAgICAgICAgbGF5ZXIuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ25mLWxheWVyLWV4aXQnKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxheWVycy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IGxheWVyKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5sYXllcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGltZW91dElkcy5kZWxldGUobGF5ZXIuaWQpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsYXllci5jb25maWcuY2xvc2VDYWxsYmFjaz8uKHJlc3ApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2xlYXIgcmVmZXJlbmNlIHRvIGhlbHAgR0NcbiAgICAgICAgICAgIGxheWVyLmNvbmZpZy5jb21wb25lbnQgPSBudWxsO1xuICAgICAgICB9LCBsYXllci5jb25maWcuZXhpdERlbGF5KTtcblxuICAgICAgICB0aGlzLnRpbWVvdXRJZHMuc2V0KGxheWVyLmlkLCB0aW1lb3V0SWQpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIGEgbGF5ZXIuXG4gICAgICogQHBhcmFtIGNvbmZpZ1xuICAgICAqL1xuICAgIHB1YmxpYyByZW5kZXJMYXllciA9IChcbiAgICAgICAgY29uZmlnOiBMYXllckNvbmZpZyxcbiAgICApOiBbKCkgPT4gUmVhY3QuUmVhY3RQb3J0YWwgfCBudWxsLCAocmVzcD86IHVua25vd24pID0+IHZvaWRdID0+IHtcbiAgICAgICAgLy8gU1NSIGd1YXJkXG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gWygpID0+IG51bGwsICgpID0+IHt9XTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1lcmdlIGRlZmF1bHQgY29uZmlnIHdpdGggdGhlIHByb3ZpZGVkIGNvbmZpZy5cbiAgICAgICAgY29uc3QgbGF5ZXJDb25maWcgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0Q29uZmlnLFxuICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIEdldCB0aGUgei1pbmRleCBmb3IgdGhlIG5ldyBsYXllclxuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBsYXllckNvbmZpZy5hbHdheXNPblRvcCA/IDIxNDc0ODM2NDcgOiB0aGlzLm5leHRJbmRleCsrO1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBsYXllckNvbmZpZy5hbHdheXNPblRvcCA/ICduZi1sYXllci1tYW5hZ2VyLXRvcCcgOiAnbmYtbGF5ZXItbWFuYWdlcic7XG5cbiAgICAgICAgLy8gQ3JlYXRlIGEgdW5pcXVlIElEIGZvciB0cmFja2luZyB0aGlzIGxheWVyXG4gICAgICAgIGNvbnN0IGxheWVySWQgPSBgbmYtbGF5ZXItbWFuYWdlci0ke2N1cnJlbnRJbmRleH1gO1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDbGlja0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXllciA9IHRoaXMubGF5ZXJzLmZpbmQoKGwpID0+IGwuaWQgPT09IGxheWVySWQpO1xuICAgICAgICAgICAgaWYgKGxheWVyICYmIGxheWVyLmNvbmZpZy5jbG9zZU9uT3ZlcmxheUNsaWNrICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudW5tb3VudChsYXllcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY2xvc2VGbiA9IChyZXNwPzogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGF5ZXIgPSB0aGlzLmxheWVycy5maW5kKChsKSA9PiBsLmlkID09PSBsYXllcklkKTtcbiAgICAgICAgICAgIGlmIChsYXllcikge1xuICAgICAgICAgICAgICAgIHRoaXMudW5tb3VudChsYXllciwgcmVzcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gUmV0dXJuIGNhbGxiYWNrIHdoaWNoIHdpbGwgdHJpZ2dlciB0aGUgdW4tbW91bnQuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAoKTogUmVhY3RQb3J0YWwgfCBudWxsID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbZGl2RWxlbWVudCwgc2V0RGl2RWxlbWVudF0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gICAgICAgICAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBkaXYgZWxlbWVudCBvbmx5IG9uY2Ugd2hlbiBjb21wb25lbnQgbW91bnRzXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdjbGFzcycsIGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ2lkJywgbGF5ZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBBZGQgbGF5ZXIgdG8gc3RhY2tcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudExheWVyID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGxheWVySWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IGxheWVyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogZGl2LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVycy5wdXNoKGN1cnJlbnRMYXllcik7XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0RGl2RWxlbWVudChkaXYpO1xuICAgICAgICAgICAgICAgICAgICAvLyBBZGQgZW50cnkgYW5pbWF0aW9uIGNsYXNzIGFmdGVyIGEgc2hvcnQgZGVsYXlcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdjbGFzcycsICduZi1sYXllci1lbnRlcicpO1xuICAgICAgICAgICAgICAgICAgICB9LCAxMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVHJhY2sgZWxlbWVudHMgbW9kaWZpZWQgZm9yIGFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kaWZpZWRFbGVtZW50czogQXJyYXk8e1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudDogRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhZEFyaWFIaWRkZW46IGJvb2xlYW47XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1ZhbHVlOiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9PiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxCb2R5T3ZlcmZsb3c6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxCb2R5UG9zaXRpb246IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxCb2R5V2lkdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxCb2R5VG9wOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFkgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IGFyaWEtaGlkZGVuIHRvIHNpYmxpbmdzIGFuZCBib2R5IHNjcm9sbCBsb2NrIGZvciBvdmVybGF5IG1vZGFsc1xuICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJDb25maWcub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGlkZSBhbGwgYm9keSBjaGlsZHJlbiBleGNlcHQgdGhpcyBsYXllciBwb3J0YWwsIHNjcmlwdHMsIGFuZCBzdHlsZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHlDaGlsZHJlbiA9IEFycmF5LmZyb20oZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5Q2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkICE9PSBkaXYgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuY2xhc3NOYW1lICE9PSAnbmYtbGF5ZXItbWFuYWdlci10b3AnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnRhZ05hbWUgIT09ICdTQ1JJUFQnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnRhZ05hbWUgIT09ICdTVFlMRSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFkQXJpYUhpZGRlbiA9IGNoaWxkLmhhc0F0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGNoaWxkLmdldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHNldCBhcmlhLWhpZGRlbiBpZiBub3QgYWxyZWFkeSBoaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVmFsdWUgIT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZEVsZW1lbnRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGNoaWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhZEFyaWFIaWRkZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByZXZlbnQgYm9keSBzY3JvbGwgb24gaU9TXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxZID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEJvZHlPdmVyZmxvdyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEJvZHlQb3NpdGlvbiA9IGRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEJvZHlXaWR0aCA9IGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEJvZHlUb3AgPSBkb2N1bWVudC5ib2R5LnN0eWxlLnRvcDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS50b3AgPSBgLSR7c2Nyb2xsWX1weGA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBDbGVhbnVwIGZ1bmN0aW9uIC0gcmVtb3ZlIGRpdiB3aGVuIGNvbXBvbmVudCB1bm1vdW50c1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzdG9yZSBhcmlhLWhpZGRlbiBhdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZEVsZW1lbnRzLmZvckVhY2goKHsgZWxlbWVudCwgaGFkQXJpYUhpZGRlbiwgcHJldmlvdXNWYWx1ZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY29udGFpbnMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhZEFyaWFIaWRkZW4gJiYgcHJldmlvdXNWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgcHJldmlvdXNWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIGJvZHkgc2Nyb2xsXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJDb25maWcub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBvcmlnaW5hbEJvZHlPdmVyZmxvdyB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gb3JpZ2luYWxCb2R5UG9zaXRpb24gfHwgJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9IG9yaWdpbmFsQm9keVdpZHRoIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudG9wID0gb3JpZ2luYWxCb2R5VG9wIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCBzY3JvbGxZKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY29udGFpbnMoZGl2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBmcm9tIGxheWVycyBhcnJheVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxheWVycy5maW5kSW5kZXgoKGxheWVyKSA9PiBsYXllci5pZCA9PT0gbGF5ZXJJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXllcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LCBbXSk7IC8vIEVtcHR5IGRlcGVuZGVuY3kgYXJyYXkgLSBydW4gb25seSBvbmNlXG5cbiAgICAgICAgICAgICAgICBpZiAoIWRpdkVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgICAgICAgPENvbnRhaW5lciBvbkNsaWNrPXtvdmVybGF5Q2xpY2tIYW5kbGVyfSB6SW5kZXg9e2N1cnJlbnRJbmRleH0gey4uLmxheWVyQ29uZmlnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsYXllckNvbmZpZy5jb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIDwvQ29udGFpbmVyPixcbiAgICAgICAgICAgICAgICAgICAgZGl2RWxlbWVudCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsb3NlRm4sXG4gICAgICAgIF07XG4gICAgfTtcbn1cblxuLy8gUmV0dXJuIHRoZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgdG8gY3JlYXRlIGEgU2luZ2xldG9uLlxuZXhwb3J0IGRlZmF1bHQgbmV3IExheWVyTWFuYWdlcigpO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlFa0IifQ== */");
|
|
46
|
+
`, "}");
|
|
47
47
|
/** Key code for different keys. */ const KEY_CODES = {
|
|
48
48
|
ESC: 27
|
|
49
49
|
};
|
|
@@ -285,3 +285,4 @@ import { getThemeValue, THEME_NAME } from './constants.js';
|
|
|
285
285
|
var LayerManager$1 = new LayerManager();
|
|
286
286
|
|
|
287
287
|
export { LAYER_POSITION, LayerManager$1 as default };
|
|
288
|
+
//# sourceMappingURL=LayerManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayerManager.js","sources":["../../src/shared/LayerManager.tsx"],"sourcesContent":["import React, { ReactPortal, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from './constants';\n\n/** Enums for layer position on screen. */\nexport enum LAYER_POSITION {\n TOP_LEFT,\n TOP_CENTER,\n TOP_RIGHT,\n BOTTOM_LEFT,\n BOTTOM_CENTER,\n BOTTOM_RIGHT,\n DIALOG,\n}\n\ninterface LayerConfig {\n /** Show an overlay */\n overlay?: boolean;\n /** Element to render inside the layer. */\n component: JSX.Element;\n /** Position of the layer */\n position?: LAYER_POSITION;\n /** Delay for exit */\n exitDelay?: number;\n /** Close layer on `esc` key press. */\n closeOnEsc?: boolean;\n /** Close layer overlay is clicked. */\n closeOnOverlayClick?: boolean;\n /** Callback called when modal closes */\n closeCallback?: <T>(resp: T) => void;\n /** Layer is created with max z-index */\n alwaysOnTop?: boolean;\n}\n\n/** Default value of config */\nconst defaultConfig: LayerConfig = {\n closeOnEsc: true,\n overlay: false,\n position: LAYER_POSITION.TOP_LEFT,\n component: null,\n exitDelay: 0,\n closeOnOverlayClick: true,\n alwaysOnTop: false,\n};\n\n/** Metadata of each layer */\ninterface Layer {\n id: string;\n config: LayerConfig;\n element: HTMLDivElement;\n}\n\n/** Styles for each position */\nconst POSITION_STYLE = {\n [LAYER_POSITION.TOP_LEFT]: 'top: 0; left: 0;',\n [LAYER_POSITION.TOP_CENTER]: 'top: 0; left: 50%; justify-content: center;',\n [LAYER_POSITION.TOP_RIGHT]: 'top: 0; right: 0; justify-content: flex-end;',\n [LAYER_POSITION.BOTTOM_LEFT]: 'bottom: 0; left: 0;',\n [LAYER_POSITION.BOTTOM_CENTER]: 'bottom: 0; left: 50%; justify-content: center;',\n [LAYER_POSITION.BOTTOM_RIGHT]: 'bottom: 0; right: 0; justify-content: flex-end;',\n [LAYER_POSITION.DIALOG]: 'top: 0; left: 0; justify-content: center; align-items: center;',\n};\n\n/** Layer container component. */\nconst Container = styled.div<LayerConfig & { zIndex: number }>`\n position: fixed;\n display: flex;\n opacity: 0;\n transition: opacity 0.3s ease;\n ${(props) => POSITION_STYLE[props.position]}\n ${(props) =>\n props.overlay &&\n `\n width: 100%;\n height: 100vh;\n background-color: ${getThemeValue(THEME_NAME.BACKDROP_COLOR)};\n backdrop-filter: blur(0px);\n pointer-events: all;\n `}\n z-index: ${(props) => props.zIndex};\n\n .nf-layer-enter & {\n opacity: 1;\n ${(props) =>\n props.overlay &&\n `\n backdrop-filter: blur(3px);\n `}\n }\n`;\n\n/** Key code for different keys. */\nconst KEY_CODES = {\n ESC: 27,\n};\n\n/**\n * This is a shared helper class which manages the z-index of each layer.\n * If a component needs to be rendered in a different layer then this class\n * should be used. It internally maintains the stack of opened layer and each\n * `renderLayer` call will push a new layer in stack.\n *\n * This way we need not worry about the z-index and can freely keep on creating\n * new layers. The staring layer z-index is 10000. Leaving enough z-index for the\n * user if they desires so.\n *\n * @important Usage Pattern\n * To avoid creating duplicate layers (especially in React Strict Mode or Next.js),\n * always call `renderLayer` only once - either in a lifecycle method (like `componentDidUpdate`)\n * or in an imperative method (like `open()`).\n *\n * @example\n * // ❌ Don't call renderLayer in render() method\n * render() {\n * if (this.state.show) {\n * const [Component, closeFn] = LayerManager.renderLayer({ ... }); // Creates new layer on every render\n * return <Component />;\n * }\n * }\n *\n * @example\n * // ✅ Do call renderLayer once in a method and store the component\n * open() {\n * const [Component, closeFn] = LayerManager.renderLayer({ ... });\n * this.setState({ LayerComponent: Component });\n * }\n *\n * render() {\n * const { LayerComponent } = this.state;\n * return LayerComponent ? <LayerComponent /> : null;\n * }\n */\nclass LayerManager {\n /** Layer stack */\n private layers: Layer[] = [];\n /** z-index of the next layer */\n private nextIndex = 10000;\n private keyupHandler: (e: KeyboardEvent) => void;\n private timeoutIds = new Map<string, number>(); // Track timeouts\n\n /**\n * Constructor simply registers a event listener on body to\n * react to esc key press.\n */\n constructor() {\n if (typeof document !== 'undefined') {\n // Store handler reference for cleanup\n this.keyupHandler = (e) => {\n if (this.layers.length && e.keyCode === KEY_CODES.ESC) {\n const lastLayer = this.layers.slice(-1)[0];\n if (lastLayer.config.closeOnEsc !== false) {\n this.unmount(lastLayer);\n }\n }\n };\n document.body.addEventListener('keyup', this.keyupHandler);\n }\n }\n\n // Add cleanup method\n public destroy = () => {\n if (typeof document !== 'undefined' && this.keyupHandler) {\n document.body.removeEventListener('keyup', this.keyupHandler);\n }\n // Clear all pending timeouts\n this.timeoutIds.forEach((id) => clearTimeout(id));\n this.timeoutIds.clear();\n // Clean up remaining layers\n this.layers.forEach((layer) => {\n if (document.body.contains(layer.element)) {\n document.body.removeChild(layer.element);\n }\n });\n this.layers = [];\n };\n\n /**\n * Un-mounts a layer.\n *\n * It first adds a class 'nf-layer-exit' and then un-mounts the\n * layer after the `exitDelay` mentioned in the layer config.\n * This class will help component in triggering the entry animation.\n *\n * @param layer\n */\n private unmount = (layer: Layer, resp?: unknown) => {\n layer.element.setAttribute('class', 'nf-layer-exit');\n const index = this.layers.findIndex((item) => item === layer);\n if (index !== -1) {\n this.layers.splice(index, 1);\n }\n\n const timeoutId = window.setTimeout(() => {\n this.timeoutIds.delete(layer.id);\n try {\n layer.config.closeCallback?.(resp);\n } catch (e) {\n console.warn(e.message);\n }\n // Clear reference to help GC\n layer.config.component = null;\n }, layer.config.exitDelay);\n\n this.timeoutIds.set(layer.id, timeoutId);\n };\n\n /**\n * Renders a layer.\n * @param config\n */\n public renderLayer = (\n config: LayerConfig,\n ): [() => React.ReactPortal | null, (resp?: unknown) => void] => {\n // SSR guard\n if (typeof document === 'undefined') {\n return [() => null, () => {}];\n }\n\n // Merge default config with the provided config.\n const layerConfig = {\n ...defaultConfig,\n ...config,\n };\n\n // Get the z-index for the new layer\n const currentIndex = layerConfig.alwaysOnTop ? 2147483647 : this.nextIndex++;\n const className = layerConfig.alwaysOnTop ? 'nf-layer-manager-top' : 'nf-layer-manager';\n\n // Create a unique ID for tracking this layer\n const layerId = `nf-layer-manager-${currentIndex}`;\n\n const overlayClickHandler = () => {\n const layer = this.layers.find((l) => l.id === layerId);\n if (layer && layer.config.closeOnOverlayClick !== false) {\n this.unmount(layer);\n }\n };\n\n const closeFn = (resp?: unknown) => {\n const layer = this.layers.find((l) => l.id === layerId);\n if (layer) {\n this.unmount(layer, resp);\n }\n };\n\n // Return callback which will trigger the un-mount.\n return [\n (): ReactPortal | null => {\n const [divElement, setDivElement] = React.useState<HTMLDivElement | null>(null);\n\n useEffect(() => {\n // Create the div element only once when component mounts\n const div = document.createElement('div');\n div.setAttribute('class', className);\n div.setAttribute('id', layerId);\n document.body.appendChild(div);\n\n // Add layer to stack\n const currentLayer = {\n id: layerId,\n config: layerConfig,\n element: div,\n };\n this.layers.push(currentLayer);\n\n setDivElement(div);\n // Add entry animation class after a short delay\n setTimeout(() => {\n div.setAttribute('class', 'nf-layer-enter');\n }, 10);\n\n // Track elements modified for accessibility\n const modifiedElements: Array<{\n element: Element;\n hadAriaHidden: boolean;\n previousValue: string | null;\n }> = [];\n let originalBodyOverflow: string | null = null;\n let originalBodyPosition: string | null = null;\n let originalBodyWidth: string | null = null;\n let originalBodyTop: string | null = null;\n let scrollY = 0;\n\n // Apply aria-hidden to siblings and body scroll lock for overlay modals\n if (layerConfig.overlay) {\n // Hide all body children except this layer portal, scripts, and styles\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach((child) => {\n if (\n child !== div &&\n child.className !== 'nf-layer-manager-top' &&\n child.tagName !== 'SCRIPT' &&\n child.tagName !== 'STYLE'\n ) {\n const hadAriaHidden = child.hasAttribute('aria-hidden');\n const previousValue = child.getAttribute('aria-hidden');\n\n // Only set aria-hidden if not already hidden\n if (previousValue !== 'true') {\n child.setAttribute('aria-hidden', 'true');\n modifiedElements.push({\n element: child,\n hadAriaHidden,\n previousValue,\n });\n }\n }\n });\n\n // Prevent body scroll on iOS\n scrollY = window.scrollY;\n originalBodyOverflow = document.body.style.overflow;\n originalBodyPosition = document.body.style.position;\n originalBodyWidth = document.body.style.width;\n originalBodyTop = document.body.style.top;\n\n document.body.style.overflow = 'hidden';\n document.body.style.position = 'fixed';\n document.body.style.width = '100%';\n document.body.style.top = `-${scrollY}px`;\n }\n\n // Cleanup function - remove div when component unmounts\n return () => {\n // Restore aria-hidden attributes\n modifiedElements.forEach(({ element, hadAriaHidden, previousValue }) => {\n if (document.body.contains(element)) {\n if (hadAriaHidden && previousValue !== null) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n }\n });\n\n // Restore body scroll\n if (layerConfig.overlay) {\n document.body.style.overflow = originalBodyOverflow || '';\n document.body.style.position = originalBodyPosition || '';\n document.body.style.width = originalBodyWidth || '';\n document.body.style.top = originalBodyTop || '';\n window.scrollTo(0, scrollY);\n }\n\n if (document.body.contains(div)) {\n document.body.removeChild(div);\n }\n // Remove from layers array\n const index = this.layers.findIndex((layer) => layer.id === layerId);\n if (index !== -1) {\n this.layers.splice(index, 1);\n }\n };\n }, []); // Empty dependency array - run only once\n\n if (!divElement) {\n return null;\n }\n\n return ReactDOM.createPortal(\n <Container onClick={overlayClickHandler} zIndex={currentIndex} {...layerConfig}>\n {layerConfig.component}\n </Container>,\n divElement,\n );\n },\n closeFn,\n ];\n };\n}\n\n// Return the instance of the class to create a Singleton.\nexport default new LayerManager();\n"],"names":["LAYER_POSITION","defaultConfig","closeOnEsc","overlay","position","component","exitDelay","closeOnOverlayClick","alwaysOnTop","POSITION_STYLE","Container","styled","props","getThemeValue","THEME_NAME","BACKDROP_COLOR","zIndex","KEY_CODES","ESC","LayerManager","layers","nextIndex","timeoutIds","Map","destroy","document","keyupHandler","body","removeEventListener","forEach","id","clearTimeout","clear","layer","contains","element","removeChild","unmount","resp","setAttribute","index","findIndex","item","splice","timeoutId","window","setTimeout","delete","config","closeCallback","e","console","warn","message","set","renderLayer","layerConfig","currentIndex","className","layerId","overlayClickHandler","find","l","closeFn","divElement","setDivElement","React","useState","useEffect","div","createElement","appendChild","currentLayer","push","modifiedElements","originalBodyOverflow","originalBodyPosition","originalBodyWidth","originalBodyTop","scrollY","bodyChildren","Array","from","children","child","tagName","hadAriaHidden","hasAttribute","previousValue","getAttribute","style","overflow","width","top","removeAttribute","scrollTo","ReactDOM","createPortal","_jsx","onClick","length","keyCode","lastLayer","slice","addEventListener"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../src/shared/constants.ts"],"sourcesContent":["export enum THEME_CONSTANTS {\n PRIMARY = '#1f7ac5',\n PRIMARY_LIGHT = '#64baff',\n PRIMARY_LIGHTER = '#cfe9ff',\n BACKDROP_COLOR = '#2681da80',\n INFO = '#1f7ac5ff',\n INFO_LIGHT = '#64baffff',\n SUCCESS = '#1a835f',\n SUCCESS_LIGHT = '#80eac6',\n WARNING = '#916b01',\n WARNING_LIGHT = '#ffba00',\n ERROR = '#bb2828',\n ERROR_LIGHT = '#f1a5a5',\n BORDER_COLOR = '#555555',\n TOAST = '#5f5f5f',\n TOOLTIP_COLOR = 'rgba(0,0,0,0.6)',\n BORDER_LIGHT_COLOR = '#eeeeee',\n BACKGROUND = '#ffffff',\n DISABLED_BACKGROUND = '#fafafa',\n DISABLED_BORDER = '#aaa',\n LIGHT_GREY = '#ccc',\n DISABLED = '#737373',\n TEXT_COLOR_LIGHT = '#fff',\n TEXT_COLOR_DARK = '#000',\n SHADOW = '0px 1px 3px 0px rgba(0,0,0,0.1), 0px 1px 2px 0px rgba(0,0,0,0.06)',\n HOVER_SHADOW = '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n MODAL_SHADOW = '0px 8px 17px 2px rgba(0,0,0,0.14), 0px 3px 14px 2px rgba(0,0,0,0.12), 0px 5px 5px -3px rgba(0,0,0,0.2)',\n}\n\nexport enum THEME_NAME {\n PRIMARY = '--nfui-primary',\n PRIMARY_LIGHT = '--nfui-primary-light',\n PRIMARY_LIGHTER = '--nfui-primary-lighter',\n INFO = '--nfui-info',\n INFO_LIGHT = '--nfui-info-light',\n SUCCESS = '--nfui-success',\n SUCCESS_LIGHT = '--nfui-success-light',\n WARNING = '--nfui-warning',\n WARNING_LIGHT = '--nfui-warning-light',\n ERROR = '--nfui-error',\n ERROR_LIGHT = '--nfui-error-light',\n BORDER_COLOR = '--nfui-border-color',\n TOAST = '--nfui-toast',\n TOOLTIP_COLOR = '--nfui-tooltip-color',\n BORDER_LIGHT_COLOR = '--nfui-border-light-color',\n BACKGROUND = '--nfui-background',\n DISABLED_BACKGROUND = '--nfui-disabled-background',\n DISABLED_BORDER = '--nfui-disabled-border',\n LIGHT_GREY = '--nfui-light-grey',\n DISABLED = '--nfui-disabled',\n TEXT_COLOR_LIGHT = '--nfui-text-color-light',\n TEXT_COLOR_DARK = '--nfui-text-color-dark',\n SHADOW = '--nfui-shadow',\n HOVER_SHADOW = '--nfui-hover-shadow',\n MODAL_SHADOW = '--nfui-modal-shadow',\n BACKDROP_COLOR = '--nfui-backdrop-color',\n}\n\nexport const themeNameMap: Record<THEME_NAME, THEME_CONSTANTS> = {\n [THEME_NAME.PRIMARY]: THEME_CONSTANTS.PRIMARY,\n [THEME_NAME.PRIMARY_LIGHT]: THEME_CONSTANTS.PRIMARY_LIGHT,\n [THEME_NAME.PRIMARY_LIGHTER]: THEME_CONSTANTS.PRIMARY_LIGHTER,\n [THEME_NAME.INFO]: THEME_CONSTANTS.INFO,\n [THEME_NAME.INFO_LIGHT]: THEME_CONSTANTS.INFO_LIGHT,\n [THEME_NAME.SUCCESS]: THEME_CONSTANTS.SUCCESS,\n [THEME_NAME.SUCCESS_LIGHT]: THEME_CONSTANTS.SUCCESS_LIGHT,\n [THEME_NAME.WARNING]: THEME_CONSTANTS.WARNING,\n [THEME_NAME.WARNING_LIGHT]: THEME_CONSTANTS.WARNING_LIGHT,\n [THEME_NAME.ERROR]: THEME_CONSTANTS.ERROR,\n [THEME_NAME.ERROR_LIGHT]: THEME_CONSTANTS.ERROR_LIGHT,\n [THEME_NAME.BACKDROP_COLOR]: THEME_CONSTANTS.BACKDROP_COLOR,\n [THEME_NAME.BORDER_COLOR]: THEME_CONSTANTS.BORDER_COLOR,\n [THEME_NAME.TOAST]: THEME_CONSTANTS.TOAST,\n [THEME_NAME.TOOLTIP_COLOR]: THEME_CONSTANTS.TOOLTIP_COLOR,\n [THEME_NAME.BORDER_LIGHT_COLOR]: THEME_CONSTANTS.BORDER_LIGHT_COLOR,\n [THEME_NAME.BACKGROUND]: THEME_CONSTANTS.BACKGROUND,\n [THEME_NAME.DISABLED_BACKGROUND]: THEME_CONSTANTS.DISABLED_BACKGROUND,\n [THEME_NAME.DISABLED_BORDER]: THEME_CONSTANTS.DISABLED_BORDER,\n [THEME_NAME.LIGHT_GREY]: THEME_CONSTANTS.LIGHT_GREY,\n [THEME_NAME.DISABLED]: THEME_CONSTANTS.DISABLED,\n [THEME_NAME.TEXT_COLOR_LIGHT]: THEME_CONSTANTS.TEXT_COLOR_LIGHT,\n [THEME_NAME.TEXT_COLOR_DARK]: THEME_CONSTANTS.TEXT_COLOR_DARK,\n [THEME_NAME.SHADOW]: THEME_CONSTANTS.SHADOW,\n [THEME_NAME.HOVER_SHADOW]: THEME_CONSTANTS.HOVER_SHADOW,\n [THEME_NAME.MODAL_SHADOW]: THEME_CONSTANTS.MODAL_SHADOW,\n};\n\nexport const getThemeValue = (key: THEME_NAME) => {\n return `var(${key}, ${themeNameMap[key]})`;\n};\n"],"names":["THEME_NAME","themeNameMap","getThemeValue","key"],"mappings":"AA6BO,IAAA,UAAKA,iBAAAA,SAAAA,UAAAA,EAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAAA,IAAAA,OAAAA,UAAAA;AA2BX,CAAA,CAAA,EAAA;MAEYC,YAAAA,GAAoD;IAC7D,CAAA,gBAAA,GAAoB,SAAA;IACpB,CAAA,sBAAA,GAA0B,SAAA;IAC1B,CAAA,wBAAA,GAA4B,SAAA;IAC5B,CAAA,aAAA,GAAiB,WAAA;IACjB,CAAA,mBAAA,GAAuB,WAAA;IACvB,CAAA,gBAAA,GAAoB,SAAA;IACpB,CAAA,sBAAA,GAA0B,SAAA;IAC1B,CAAA,gBAAA,GAAoB,SAAA;IACpB,CAAA,sBAAA,GAA0B,SAAA;IAC1B,CAAA,cAAA,GAAkB,SAAA;IAClB,CAAA,oBAAA,GAAwB,SAAA;IACxB,CAAA,uBAAA,GAA2B,WAAA;IAC3B,CAAA,qBAAA,GAAyB,SAAA;IACzB,CAAA,cAAA,GAAkB,SAAA;IAClB,CAAA,sBAAA,GAA0B,iBAAA;IAC1B,CAAA,2BAAA,GAA+B,SAAA;IAC/B,CAAA,mBAAA,GAAuB,SAAA;IACvB,CAAA,4BAAA,GAAgC,SAAA;IAChC,CAAA,wBAAA,GAA4B,MAAA;IAC5B,CAAA,mBAAA,GAAuB,MAAA;IACvB,CAAA,iBAAA,GAAqB,SAAA;IACrB,CAAA,yBAAA,GAA6B,MAAA;IAC7B,CAAA,wBAAA,GAA4B,MAAA;IAC5B,CAAA,eAAA,GAAmB,mEAAA;IACnB,CAAA,qBAAA,GAAyB,uEAAA;IACzB,CAAA,qBAAA,GAAyB;AAC7B;AAEO,MAAMC,gBAAgB,CAACC,GAAAA,GAAAA;IAC1B,OAAO,CAAC,IAAI,EAAEA,GAAAA,CAAI,EAAE,EAAEF,YAAY,CAACE,GAAAA,CAAI,CAAC,CAAC,CAAC;AAC9C;;;;"}
|
package/lib-esm/shared/styles.js
CHANGED
|
@@ -4,18 +4,19 @@ import { getThemeValue, THEME_NAME } from './constants.js';
|
|
|
4
4
|
const Ellipsis = /*#__PURE__*/ styled("span", {
|
|
5
5
|
target: "e126ntv90",
|
|
6
6
|
label: "Ellipsis"
|
|
7
|
-
})("white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;"
|
|
7
|
+
})("white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1;");
|
|
8
8
|
const Header = /*#__PURE__*/ styled("h1", {
|
|
9
9
|
target: "e126ntv91",
|
|
10
10
|
label: "Header"
|
|
11
|
-
})("padding:10px 15px;line-height:26px;border-bottom:1px solid ", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";font-size:16px;font-weight:bold;"
|
|
11
|
+
})("padding:10px 15px;line-height:26px;border-bottom:1px solid ", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";font-size:16px;font-weight:bold;");
|
|
12
12
|
const Body = /*#__PURE__*/ styled("div", {
|
|
13
13
|
target: "e126ntv92",
|
|
14
14
|
label: "Body"
|
|
15
|
-
})("padding:20px 15px;flex:1;overflow:auto;"
|
|
15
|
+
})("padding:20px 15px;flex:1;overflow:auto;");
|
|
16
16
|
const Footer = /*#__PURE__*/ styled("div", {
|
|
17
17
|
target: "e126ntv93",
|
|
18
18
|
label: "Footer"
|
|
19
|
-
})("padding:10px 15px;border-top:1px solid ", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";display:flex;justify-content:flex-end;"
|
|
19
|
+
})("padding:10px 15px;border-top:1px solid ", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";display:flex;justify-content:flex-end;");
|
|
20
20
|
|
|
21
21
|
export { Body, Ellipsis, Footer, Header };
|
|
22
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../src/shared/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from './constants';\n\nexport const Ellipsis = styled.span`\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 1;\n`;\n\nexport const Header = styled.h1`\n padding: 10px 15px;\n line-height: 26px;\n border-bottom: 1px solid ${getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR)};\n font-size: 16px;\n font-weight: bold;\n`;\n\nexport const Body = styled.div`\n padding: 20px 15px;\n flex: 1;\n overflow: auto;\n`;\n\nexport const Footer = styled.div`\n padding: 10px 15px;\n border-top: 1px solid ${getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR)};\n display: flex;\n justify-content: flex-end;\n`;\n"],"names":["Ellipsis","styled","Header","getThemeValue","THEME_NAME","BORDER_LIGHT_COLOR","Body","Footer"],"mappings":";;;MAGaA,QAAAA,iBAAWC,MAAAA,CAAAA,MAAAA,EAAAA;;;AAKtB,CAAA,CAAA,CAAA,mEAAA;MAEWC,MAAAA,iBAASD,MAAAA,CAAAA,IAAAA,EAAAA;;;kEAGSE,aAAAA,CAAcC,UAAAA,CAAWC,kBAAkB,CAAA,EAAA,mCAAA;MAK7DC,IAAAA,iBAAOL,MAAAA,CAAAA,KAAAA,EAAAA;;;AAIlB,CAAA,CAAA,CAAA,yCAAA;MAEWM,MAAAA,iBAASN,MAAAA,CAAAA,KAAAA,EAAAA;;;8CAEME,aAAAA,CAAcC,UAAAA,CAAWC,kBAAkB,CAAA,EAAA,yCAAA;;;;"}
|
package/package.json
CHANGED