@ytsaurus/ui 1.75.1 → 1.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/build/assets-manifest.json +75 -75
- package/dist/public/build/css/{job.c7c99207.chunk.css → job.9757ff68.chunk.css} +2 -2
- package/dist/public/build/css/job.9757ff68.chunk.css.map +1 -0
- package/dist/public/build/css/main.0efa9da5.css +10 -0
- package/dist/public/build/css/main.0efa9da5.css.map +1 -0
- package/dist/public/build/css/navigation.c199c4f2.chunk.css +2 -0
- package/dist/public/build/css/navigation.c199c4f2.chunk.css.map +1 -0
- package/dist/public/build/js/{1260.534f3f75.chunk.js → 1260.a1e22005.chunk.js} +2 -2
- package/dist/public/build/js/{1260.534f3f75.chunk.js.map → 1260.a1e22005.chunk.js.map} +1 -1
- package/dist/public/build/js/{1879.23423388.chunk.js → 1879.3975650a.chunk.js} +3 -3
- package/dist/public/build/js/{1879.23423388.chunk.js.map → 1879.3975650a.chunk.js.map} +1 -1
- package/dist/public/build/js/{1983.666923be.chunk.js → 1983.64a2e22f.chunk.js} +2 -2
- package/dist/public/build/js/{1983.666923be.chunk.js.map → 1983.64a2e22f.chunk.js.map} +1 -1
- package/dist/public/build/js/{2447.b2877275.chunk.js → 2447.eb8fde89.chunk.js} +2 -2
- package/dist/public/build/js/{2447.b2877275.chunk.js.map → 2447.eb8fde89.chunk.js.map} +1 -1
- package/dist/public/build/js/3724.3e5848f0.chunk.js +2 -0
- package/dist/public/build/js/{3724.425d01ec.chunk.js.map → 3724.3e5848f0.chunk.js.map} +1 -1
- package/dist/public/build/js/6729.39d7cf60.chunk.js +2 -0
- package/dist/public/build/js/6729.39d7cf60.chunk.js.map +1 -0
- package/dist/public/build/js/{7959.95ebd185.chunk.js → 7959.faac2ff8.chunk.js} +2 -2
- package/dist/public/build/js/{7959.95ebd185.chunk.js.map → 7959.faac2ff8.chunk.js.map} +1 -1
- package/dist/public/build/js/{8390.83f4531a.chunk.js → 8390.c3d2de6a.chunk.js} +2 -2
- package/dist/public/build/js/{8390.83f4531a.chunk.js.map → 8390.c3d2de6a.chunk.js.map} +1 -1
- package/dist/public/build/js/{8460.2d4d237e.chunk.js → 8460.fc8e2238.chunk.js} +2 -2
- package/dist/public/build/js/{8460.2d4d237e.chunk.js.map → 8460.fc8e2238.chunk.js.map} +1 -1
- package/dist/public/build/js/{8778.e18e655b.chunk.js → 8778.f3ea089f.chunk.js} +2 -2
- package/dist/public/build/js/{8778.e18e655b.chunk.js.map → 8778.f3ea089f.chunk.js.map} +1 -1
- package/dist/public/build/js/{9558.a6ea64c9.chunk.js → 9558.6a4bf9a9.chunk.js} +2 -2
- package/dist/public/build/js/{9558.a6ea64c9.chunk.js.map → 9558.6a4bf9a9.chunk.js.map} +1 -1
- package/dist/public/build/js/9569.aac48f3b.chunk.js +2 -0
- package/dist/public/build/js/9569.aac48f3b.chunk.js.map +1 -0
- package/dist/public/build/js/{accounts.2ba221c2.chunk.js → accounts.aa7ed73f.chunk.js} +2 -2
- package/dist/public/build/js/accounts.aa7ed73f.chunk.js.map +1 -0
- package/dist/public/build/js/{acl.c948c339.chunk.js → acl.4cd54663.chunk.js} +2 -2
- package/dist/public/build/js/{acl.c948c339.chunk.js.map → acl.4cd54663.chunk.js.map} +1 -1
- package/dist/public/build/js/{app-navigation.b062662b.chunk.js → app-navigation.13c65573.chunk.js} +2 -2
- package/dist/public/build/js/app-navigation.13c65573.chunk.js.map +1 -0
- package/dist/public/build/js/chyt.0ee6bfa2.chunk.js +2 -0
- package/dist/public/build/js/chyt.0ee6bfa2.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-page-wrapper.bdc8607f.chunk.js +2 -0
- package/dist/public/build/js/cluster-page-wrapper.bdc8607f.chunk.js.map +1 -0
- package/dist/public/build/js/{components.bbe331cb.chunk.js → components.b39828bc.chunk.js} +2 -2
- package/dist/public/build/js/components.b39828bc.chunk.js.map +1 -0
- package/dist/public/build/js/job.ea2ba82d.chunk.js +2 -0
- package/dist/public/build/js/job.ea2ba82d.chunk.js.map +1 -0
- package/dist/public/build/js/main.6375dbc6.js +3 -0
- package/dist/public/build/js/main.6375dbc6.js.map +1 -0
- package/dist/public/build/js/manage-tokens.e1e791fc.chunk.js +2 -0
- package/dist/public/build/js/manage-tokens.e1e791fc.chunk.js.map +1 -0
- package/dist/public/build/js/{navigation-flow.eeb01518.chunk.js → navigation-flow.6d67215a.chunk.js} +2 -2
- package/dist/public/build/js/{navigation-flow.eeb01518.chunk.js.map → navigation-flow.6d67215a.chunk.js.map} +1 -1
- package/dist/public/build/js/navigation.529208de.chunk.js +2 -0
- package/dist/public/build/js/navigation.529208de.chunk.js.map +1 -0
- package/dist/public/build/js/odin.c4c4ef6f.chunk.js +2 -0
- package/dist/public/build/js/odin.c4c4ef6f.chunk.js.map +1 -0
- package/dist/public/build/js/{path-viewer.b1b3328d.chunk.js → path-viewer.c091d9f4.chunk.js} +2 -2
- package/dist/public/build/js/{path-viewer.b1b3328d.chunk.js.map → path-viewer.c091d9f4.chunk.js.map} +1 -1
- package/dist/public/build/js/{query-navigation.9964bfcf.chunk.js → query-navigation.b1574290.chunk.js} +2 -2
- package/dist/public/build/js/{query-navigation.9964bfcf.chunk.js.map → query-navigation.b1574290.chunk.js.map} +1 -1
- package/dist/public/build/js/{query-results.733b1795.chunk.js → query-results.0a05cc41.chunk.js} +2 -2
- package/dist/public/build/js/{query-results.733b1795.chunk.js.map → query-results.0a05cc41.chunk.js.map} +1 -1
- package/dist/public/build/js/query-tracker.515069f6.chunk.js +2 -0
- package/dist/public/build/js/query-tracker.515069f6.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.481a6d3a.js → runtime.09217c31.js} +2 -2
- package/dist/public/build/js/{runtime.481a6d3a.js.map → runtime.09217c31.js.map} +1 -1
- package/dist/public/build/js/{scheduling.b70d4627.chunk.js → scheduling.6448eabd.chunk.js} +2 -2
- package/dist/public/build/js/{scheduling.b70d4627.chunk.js.map → scheduling.6448eabd.chunk.js.map} +1 -1
- package/dist/public/build/js/system.1114aa96.chunk.js +2 -0
- package/dist/public/build/js/system.1114aa96.chunk.js.map +1 -0
- package/dist/public/build/js/{yt-df-dialog.9ddda260.chunk.js → yt-df-dialog.4ad719bf.chunk.js} +2 -2
- package/dist/public/build/js/yt-df-dialog.4ad719bf.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +70 -70
- package/dist/shared/constants/settings-types.d.ts +1 -0
- package/package.json +3 -2
- package/dist/public/build/css/job.c7c99207.chunk.css.map +0 -1
- package/dist/public/build/css/main.2d3cbfcd.css +0 -10
- package/dist/public/build/css/main.2d3cbfcd.css.map +0 -1
- package/dist/public/build/css/navigation.0a9042b3.chunk.css +0 -2
- package/dist/public/build/css/navigation.0a9042b3.chunk.css.map +0 -1
- package/dist/public/build/js/3724.425d01ec.chunk.js +0 -2
- package/dist/public/build/js/5177.b4cec253.chunk.js +0 -2
- package/dist/public/build/js/5177.b4cec253.chunk.js.map +0 -1
- package/dist/public/build/js/6729.da9aa02f.chunk.js +0 -2
- package/dist/public/build/js/6729.da9aa02f.chunk.js.map +0 -1
- package/dist/public/build/js/accounts.2ba221c2.chunk.js.map +0 -1
- package/dist/public/build/js/app-navigation.b062662b.chunk.js.map +0 -1
- package/dist/public/build/js/chyt.7f99f87d.chunk.js +0 -2
- package/dist/public/build/js/chyt.7f99f87d.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-page-wrapper.894fbacc.chunk.js +0 -2
- package/dist/public/build/js/cluster-page-wrapper.894fbacc.chunk.js.map +0 -1
- package/dist/public/build/js/components.bbe331cb.chunk.js.map +0 -1
- package/dist/public/build/js/job.4fc50056.chunk.js +0 -2
- package/dist/public/build/js/job.4fc50056.chunk.js.map +0 -1
- package/dist/public/build/js/main.7981a440.js +0 -3
- package/dist/public/build/js/main.7981a440.js.map +0 -1
- package/dist/public/build/js/manage-tokens.286a4da9.chunk.js +0 -2
- package/dist/public/build/js/manage-tokens.286a4da9.chunk.js.map +0 -1
- package/dist/public/build/js/navigation.d891266d.chunk.js +0 -2
- package/dist/public/build/js/navigation.d891266d.chunk.js.map +0 -1
- package/dist/public/build/js/odin.df1cfe56.chunk.js +0 -2
- package/dist/public/build/js/odin.df1cfe56.chunk.js.map +0 -1
- package/dist/public/build/js/query-tracker.06cc4fdc.chunk.js +0 -2
- package/dist/public/build/js/query-tracker.06cc4fdc.chunk.js.map +0 -1
- package/dist/public/build/js/system.f759d3f0.chunk.js +0 -2
- package/dist/public/build/js/system.f759d3f0.chunk.js.map +0 -1
- package/dist/public/build/js/yt-df-dialog.9ddda260.chunk.js.map +0 -1
- /package/dist/public/build/js/{1879.23423388.chunk.js.LICENSE.txt → 1879.3975650a.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.7981a440.js.LICENSE.txt → main.6375dbc6.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"js/1879.23423388.chunk.js","mappings":"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IAAI,eAAuBlvC,GAAEivC,OAAOC,IAAI,qBAA6BlvC,GAAEivC,OAAOC,IAAI,mBAA2BlvC,GAAEivC,OAAOC,IAAI,6CCPjP,oBCFFL,EAAOC,QAAU,CACf,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,qBACA,wBACA,2BACA,uBACA,sBACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,0BACA,6BACA,gCACA,4BACA,2BACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,0BACA,6BACA,gCACA,4BACA,2BACA,qBACA,wBACA,2BACA,uBACA,sBACA,aACA,gBACA,mBACA,eACA,cACA,uBACA,0BACA,6BACA,yBACA,wBACA,sBACA,yBACA,4BACA,wBACA,uBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,YACA,eACA,kBACA,cACA,aACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,0BACA,6BACA,gCACA,4BACA,2BACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,gBACA,eACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,uBACA,0BACA,6BACA,yBACA,wBACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,qBACA,wBACA,2BACA,uBACA,sBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,OACA,UACA,aACA,SACA,QACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,SACA,YACA,eACA,WACA,UACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,aACA,gBACA,mBACA,eACA,cACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,uBACA,0BACA,6BACA,yBACA,wBACA,WACA,cACA,iBACA,aACA,YACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,wBACA,2BACA,8BACA,0BACA,yBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,gBACA,mBACA,sBACA,kBACA,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,SACA,YACA,eACA,WACA,UACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,UACA,aACA,gBACA,YACA,WACA,QACA,WACA,cACA,UACA,SACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,KACA,QACA,WACA,OACA,MACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,IACA,OACA,UACA,MACA,KACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,MACA,SACA,YACA,QACA,OACA,SACA,YACA,eACA,WACA,UACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,IACA,OACA,UACA,MACA,KACA,iBACA,oBACA,uBACA,mBACA,kBACA,uBACA,0BACA,6BACA,yBACA,wBACA,wBACA,2BACA,8BACA,0BACA,yBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,UACA,aACA,gBACA,YACA,WACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,wBACA,2BACA,8BACA,0BACA,yBACA,MACA,SACA,YACA,QACA,OACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,iBACA,oBACA,uBACA,mBACA,kBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,qBACA,wBACA,2BACA,uBACA,sBACA,qBACA,wBACA,2BACA,uBACA,sBACA,2BACA,8BACA,iCACA,6BACA,4BACA,OACA,UACA,aACA,SACA,QACA,cACA,iBACA,oBACA,gBACA,eACA,QACA,WACA,cACA,UACA,SACA,gBACA,mBACA,sBACA,kBACA,iBACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,cACA,iBACA,oBACA,gBACA,eACA,WACA,cACA,iBACA,aACA,YACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,WACA,cACA,iBACA,aACA,YACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,gCCljDF,IAAIiL,EAAa,EAAQ,OACrBC,EAAY,EAAQ,OAExBnL,EAAOC,QAAU,SAASliD,EAAOqtD,EAAUn9C,GACzC,IAAIuW,EAASzmB,EAAMqtD,GACnB,GAAK5mC,EAAL,CAIA,IAAI6mC,EAAW,GAMf,GALA1pD,OAAOY,KAAKiiB,GAAQxhB,SAAQ,SAASsoD,IACG,IAAlCJ,EAAW/mC,QAAQmnC,IACrBD,EAASlsD,KAAKmsD,EAElB,IACID,EAASxsD,OACX,MAAM,IAAI6O,MAAM,QAAU09C,EAAW,cAAgBn9C,EAAgB,sBAAwBo9C,EAASjlD,KAAK,MAT7G,CAWF,EAEA45C,EAAOC,QAAQ35C,WAAa,SAASvI,EAAOqtD,EAAUn9C,GACpD,IAAKlQ,EAAMqtD,GACT,MAAM,IAAI19C,MAAM,QAAU09C,EAAW,cAAgBn9C,EAAgB,gBAEvE,OAAO+xC,EAAOC,QAAQliD,EAAOqtD,EAAUn9C,EACzC,EAEA+xC,EAAOC,QAAQsL,iBAAmBJ,EAAUK,UAAU,CACpDL,EAAUM,QAAQzL,EAAOC,SACzBD,EAAOC","sources":["webpack://@ytsaurus/ui/./src/ui/components/EditAnnotationWithPreview/EditAnnotationWithPreview.tsx","webpack://@ytsaurus/ui/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://@ytsaurus/ui/./node_modules/react-split-pane/dist/index.esm.js","webpack://@ytsaurus/ui/./src/ui/components/EditTextWithPreview/TabbedContent.tsx","webpack://@ytsaurus/ui/./src/ui/components/EditTextWithPreview/EditTextWithPreview.tsx","webpack://@ytsaurus/ui/./src/ui/components/ErrorMessage/ErrorMessage.js","webpack://@ytsaurus/ui/./src/ui/components/Markdown/Markdown.tsx","webpack://@ytsaurus/ui/./src/ui/components/NumberInput/NumberInput.tsx","webpack://@ytsaurus/ui/./src/ui/components/TimeDuration/TimeDuration.tsx","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useEvent.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useLayoutEffect.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/Dom/canUseDom.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useState.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useMergedState.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/warning.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/util.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/KeyCode.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/context.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Handles/Handle.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Handles/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Marks/Mark.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Marks/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Steps/Dot.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Steps/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Tracks/Track.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Tracks/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/hooks/useDrag.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/utils/set.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Slider.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/hooks/useOffset.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/isEqual.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/index.js","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/utils.ts","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/constants.ts","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/RangeInputPicker.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/PermissionsControl/PermissionsControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/App/AppStoreProvider.tsx","webpack://@ytsaurus/ui/./src/ui/containers/PathEditor/PathEditor.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/path-editor/path-editor.js","webpack://@ytsaurus/ui/./src/ui/hooks/global-pool-trees.ts","webpack://@ytsaurus/ui/./src/ui/navigation/Navigation/PathEditorModal/CreateTableModal/CreateTableTabField/CreateTableTabField.tsx","webpack://@ytsaurus/ui/./src/ui/pages/components/OperationShortInfo/OperationShortInfo.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/content/replicated-table.js","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/index.js","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/content/table/table-mount-config.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/create-table.js","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/table-merge-sort-modal.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/tabs/annotation.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/tabs/tablet-errors/tablet-errors-background.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/content/table-mount-config.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/modals/create-table.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/modals/table-merge-sort-modal.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/navigation.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/tabs/annotation.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/tabs/tablet-errors-background.ts","webpack://@ytsaurus/ui/./src/ui/utils/navigation/path-editor.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/common.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/TabsController.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/get-root-node-polyfill/index.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/index.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/polyfill.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/code.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/cut.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/term/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/term/index.ts","webpack://@ytsaurus/ui/./node_modules/classnames/index.js","webpack://@ytsaurus/ui/./node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","webpack://@ytsaurus/ui/./node_modules/rc-util/node_modules/react-is/index.js","webpack://@ytsaurus/ui/./node_modules/react-style-proptype/src/css-properties.js","webpack://@ytsaurus/ui/./node_modules/react-style-proptype/src/index.js"],"sourcesContent":["import React from 'react';\n\nimport {DialogControlProps} from '../Dialog/Dialog.types';\nimport {EditTextWithPreview, EditTextWithPreviewProps} from '../EditTextWithPreview';\nimport {Markdown} from '../Markdown/Markdown';\n\nexport type EditAnnotationProps = DialogControlProps<\n EditTextWithPreviewProps['value'],\n {\n initialValue: EditAnnotationProps['value'];\n valuePath: string;\n hideReset?: boolean;\n className: string;\n }\n>;\n\nEditAnnotationWithPreview.isEmpty = (value: EditTextWithPreviewProps['value']) => {\n return !value;\n};\n\nEditAnnotationWithPreview.getDefaultValue = () => {\n return {value: undefined};\n};\n\nexport function EditAnnotationWithPreview(props: EditAnnotationProps) {\n const {\n value: valueProp,\n onChange: onChangeProp,\n initialValue: initialValueProp,\n valuePath: valuePathProp,\n hideReset,\n className,\n } = props;\n\n const {value: initialValue} = initialValueProp;\n const {value} = valueProp;\n const onChange = React.useCallback(\n ({value: newValue}: {value?: string} = {}) => {\n if (value !== newValue) {\n const prevIsUndefined = value === undefined;\n if (prevIsUndefined && newValue === '') {\n // nothing to do\n } else {\n onChangeProp({value: newValue});\n }\n }\n },\n [onChangeProp, value],\n );\n\n const valuePath = value === undefined ? undefined : valuePathProp;\n const changed = initialValue !== value;\n\n let editorSubTitle = value === undefined ? '(reset to inheritance)' : '';\n if (valuePath) editorSubTitle = `(from ${valuePath})`;\n\n /**\n * value === undefined means it is already inherited or user already pressed 'Reset to inheritance' button\n */\n const resetActions: EditTextWithPreviewProps['editorActions'] = [];\n if (value === undefined || value === null) {\n if (changed) {\n resetActions.push({\n text: 'Restore',\n action: () => onChangeProp(initialValueProp),\n });\n }\n } else if (!valuePath || changed) {\n resetActions.push({\n text: 'Reset to inheritance',\n action: () => {\n if (valuePath) {\n onChangeProp(initialValueProp);\n } else {\n onChange(undefined);\n }\n },\n });\n }\n\n return (\n <EditTextWithPreview\n className={className}\n value={valueProp}\n onChange={onChange}\n editorTitle={'Description'}\n editorSubTitle={editorSubTitle}\n editorActions={hideReset ? undefined : resetActions}\n editorLang={'markdown'}\n renderPreview={renderPreview}\n initialSplitSize=\"50%\"\n />\n );\n}\n\nfunction renderPreview(value?: string) {\n return <Markdown text={value || ''} />;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport stylePropType from 'react-style-proptype';\nimport { polyfill } from 'react-lifecycles-compat';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar Pane = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Pane, _React$PureComponent);\n\n var _super = _createSuper(Pane);\n\n function Pane() {\n _classCallCheck(this, Pane);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Pane, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n split = _this$props.split,\n styleProps = _this$props.style,\n size = _this$props.size,\n eleRef = _this$props.eleRef;\n var classes = ['Pane', split, className];\n var style = {\n flex: 1,\n position: 'relative',\n outline: 'none'\n };\n\n if (size !== undefined) {\n if (split === 'vertical') {\n style.width = size;\n } else {\n style.height = size;\n style.display = 'flex';\n }\n\n style.flex = 'none';\n }\n\n style = Object.assign({}, style, styleProps || {});\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: eleRef,\n className: classes.join(' '),\n style: style\n }, children);\n }\n }]);\n\n return Pane;\n}(React.PureComponent);\n\nPane.propTypes = {\n className: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n eleRef: PropTypes.func\n};\nPane.defaultProps = {};\n\nvar RESIZER_DEFAULT_CLASSNAME = 'Resizer';\n\nvar Resizer = /*#__PURE__*/function (_React$Component) {\n _inherits(Resizer, _React$Component);\n\n var _super = _createSuper(Resizer);\n\n function Resizer() {\n _classCallCheck(this, Resizer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Resizer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n _onClick = _this$props.onClick,\n _onDoubleClick = _this$props.onDoubleClick,\n _onMouseDown = _this$props.onMouseDown,\n _onTouchEnd = _this$props.onTouchEnd,\n _onTouchStart = _this$props.onTouchStart,\n resizerClassName = _this$props.resizerClassName,\n split = _this$props.split,\n style = _this$props.style;\n var classes = [resizerClassName, split, className];\n return /*#__PURE__*/React.createElement(\"span\", {\n role: \"presentation\",\n className: classes.join(' '),\n style: style,\n onMouseDown: function onMouseDown(event) {\n return _onMouseDown(event);\n },\n onTouchStart: function onTouchStart(event) {\n event.preventDefault();\n\n _onTouchStart(event);\n },\n onTouchEnd: function onTouchEnd(event) {\n event.preventDefault();\n\n _onTouchEnd(event);\n },\n onClick: function onClick(event) {\n if (_onClick) {\n event.preventDefault();\n\n _onClick(event);\n }\n },\n onDoubleClick: function onDoubleClick(event) {\n if (_onDoubleClick) {\n event.preventDefault();\n\n _onDoubleClick(event);\n }\n }\n });\n }\n }]);\n\n return Resizer;\n}(React.Component);\n\nResizer.propTypes = {\n className: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onMouseDown: PropTypes.func.isRequired,\n onTouchStart: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired,\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n resizerClassName: PropTypes.string.isRequired\n};\nResizer.defaultProps = {\n resizerClassName: RESIZER_DEFAULT_CLASSNAME\n};\n\nfunction unFocus(document, window) {\n if (document.selection) {\n document.selection.empty();\n } else {\n try {\n window.getSelection().removeAllRanges(); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {\n if (typeof draggedSize === 'number') {\n var min = typeof minSize === 'number' ? minSize : 0;\n var max = typeof maxSize === 'number' && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n\n return minSize;\n}\n\nfunction removeNullChildren(children) {\n return React.Children.toArray(children).filter(function (c) {\n return c;\n });\n}\n\nvar SplitPane = /*#__PURE__*/function (_React$Component) {\n _inherits(SplitPane, _React$Component);\n\n var _super = _createSuper(SplitPane);\n\n function SplitPane(props) {\n var _this;\n\n _classCallCheck(this, SplitPane);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onTouchStart = _this.onTouchStart.bind(_assertThisInitialized(_this));\n _this.onMouseMove = _this.onMouseMove.bind(_assertThisInitialized(_this));\n _this.onTouchMove = _this.onTouchMove.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this)); // order of setting panel sizes.\n // 1. size\n // 2. getDefaultSize(defaultSize, minsize, maxSize)\n\n var size = props.size,\n defaultSize = props.defaultSize,\n minSize = props.minSize,\n maxSize = props.maxSize,\n primary = props.primary;\n var initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);\n _this.state = {\n active: false,\n resized: false,\n pane1Size: primary === 'first' ? initialSize : undefined,\n pane2Size: primary === 'second' ? initialSize : undefined,\n // these are props that are needed in static functions. ie: gDSFP\n instanceProps: {\n size: size\n }\n };\n return _this;\n }\n\n _createClass(SplitPane, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mouseup', this.onMouseUp);\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('touchmove', this.onTouchMove);\n this.setState(SplitPane.getSizeUpdate(this.props, this.state));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mouseup', this.onMouseUp);\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('touchmove', this.onTouchMove);\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchStart(eventWithTouches);\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(event) {\n var _this$props = this.props,\n allowResize = _this$props.allowResize,\n onDragStarted = _this$props.onDragStarted,\n split = _this$props.split;\n\n if (allowResize) {\n unFocus(document, window);\n var position = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n\n if (typeof onDragStarted === 'function') {\n onDragStarted();\n }\n\n this.setState({\n active: true,\n position: position\n });\n }\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchMove(eventWithTouches);\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(event) {\n var _this$props2 = this.props,\n allowResize = _this$props2.allowResize,\n maxSize = _this$props2.maxSize,\n minSize = _this$props2.minSize,\n onChange = _this$props2.onChange,\n split = _this$props2.split,\n step = _this$props2.step;\n var _this$state = this.state,\n active = _this$state.active,\n position = _this$state.position;\n\n if (allowResize && active) {\n unFocus(document, window);\n var isPrimaryFirst = this.props.primary === 'first';\n var ref = isPrimaryFirst ? this.pane1 : this.pane2;\n var ref2 = isPrimaryFirst ? this.pane2 : this.pane1;\n\n if (ref) {\n var node = ref;\n var node2 = ref2;\n\n if (node.getBoundingClientRect) {\n var width = node.getBoundingClientRect().width;\n var height = node.getBoundingClientRect().height;\n var current = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n var size = split === 'vertical' ? width : height;\n var positionDelta = position - current;\n\n if (step) {\n if (Math.abs(positionDelta) < step) {\n return;\n } // Integer division\n // eslint-disable-next-line no-bitwise\n\n\n positionDelta = ~~(positionDelta / step) * step;\n }\n\n var sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n var pane1Order = parseInt(window.getComputedStyle(node).order);\n var pane2Order = parseInt(window.getComputedStyle(node2).order);\n\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n var newMaxSize = maxSize;\n\n if (maxSize !== undefined && maxSize <= 0) {\n var splitPane = this.splitPane;\n\n if (split === 'vertical') {\n newMaxSize = splitPane.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize = splitPane.getBoundingClientRect().height + maxSize;\n }\n }\n\n var newSize = size - sizeDelta;\n var newPosition = position - positionDelta;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (maxSize !== undefined && newSize > newMaxSize) {\n newSize = newMaxSize;\n } else {\n this.setState({\n position: newPosition,\n resized: true\n });\n }\n\n if (onChange) onChange(newSize);\n this.setState(_defineProperty({\n draggedSize: newSize\n }, isPrimaryFirst ? 'pane1Size' : 'pane2Size', newSize));\n }\n }\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp() {\n var _this$props3 = this.props,\n allowResize = _this$props3.allowResize,\n onDragFinished = _this$props3.onDragFinished;\n var _this$state2 = this.state,\n active = _this$state2.active,\n draggedSize = _this$state2.draggedSize;\n\n if (allowResize && active) {\n if (typeof onDragFinished === 'function') {\n onDragFinished(draggedSize);\n }\n\n this.setState({\n active: false\n });\n }\n } // we have to check values since gDSFP is called on every render and more in StrictMode\n\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n allowResize = _this$props4.allowResize,\n children = _this$props4.children,\n className = _this$props4.className,\n onResizerClick = _this$props4.onResizerClick,\n onResizerDoubleClick = _this$props4.onResizerDoubleClick,\n paneClassName = _this$props4.paneClassName,\n pane1ClassName = _this$props4.pane1ClassName,\n pane2ClassName = _this$props4.pane2ClassName,\n paneStyle = _this$props4.paneStyle,\n pane1StyleProps = _this$props4.pane1Style,\n pane2StyleProps = _this$props4.pane2Style,\n resizerClassName = _this$props4.resizerClassName,\n resizerStyle = _this$props4.resizerStyle,\n split = _this$props4.split,\n styleProps = _this$props4.style;\n var _this$state3 = this.state,\n pane1Size = _this$state3.pane1Size,\n pane2Size = _this$state3.pane2Size;\n var disabledClass = allowResize ? '' : 'disabled';\n var resizerClassNamesIncludingDefault = resizerClassName ? \"\".concat(resizerClassName, \" \").concat(RESIZER_DEFAULT_CLASSNAME) : resizerClassName;\n var notNullChildren = removeNullChildren(children);\n\n var style = _objectSpread2({\n display: 'flex',\n flex: 1,\n height: '100%',\n position: 'absolute',\n outline: 'none',\n overflow: 'hidden',\n MozUserSelect: 'text',\n WebkitUserSelect: 'text',\n msUserSelect: 'text',\n userSelect: 'text'\n }, styleProps);\n\n if (split === 'vertical') {\n Object.assign(style, {\n flexDirection: 'row',\n left: 0,\n right: 0\n });\n } else {\n Object.assign(style, {\n bottom: 0,\n flexDirection: 'column',\n minHeight: '100%',\n top: 0,\n width: '100%'\n });\n }\n\n var classes = ['SplitPane', className, split, disabledClass];\n\n var pane1Style = _objectSpread2({}, paneStyle, {}, pane1StyleProps);\n\n var pane2Style = _objectSpread2({}, paneStyle, {}, pane2StyleProps);\n\n var pane1Classes = ['Pane1', paneClassName, pane1ClassName].join(' ');\n var pane2Classes = ['Pane2', paneClassName, pane2ClassName].join(' ');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classes.join(' '),\n ref: function ref(node) {\n _this2.splitPane = node;\n },\n style: style\n }, /*#__PURE__*/React.createElement(Pane, {\n className: pane1Classes,\n key: \"pane1\",\n eleRef: function eleRef(node) {\n _this2.pane1 = node;\n },\n size: pane1Size,\n split: split,\n style: pane1Style\n }, notNullChildren[0]), /*#__PURE__*/React.createElement(Resizer, {\n className: disabledClass,\n onClick: onResizerClick,\n onDoubleClick: onResizerDoubleClick,\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onTouchEnd: this.onMouseUp,\n key: \"resizer\",\n resizerClassName: resizerClassNamesIncludingDefault,\n split: split,\n style: resizerStyle || {}\n }), /*#__PURE__*/React.createElement(Pane, {\n className: pane2Classes,\n key: \"pane2\",\n eleRef: function eleRef(node) {\n _this2.pane2 = node;\n },\n size: pane2Size,\n split: split,\n style: pane2Style\n }, notNullChildren[1]));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n return SplitPane.getSizeUpdate(nextProps, prevState);\n }\n }, {\n key: \"getSizeUpdate\",\n value: function getSizeUpdate(props, state) {\n var newState = {};\n var instanceProps = state.instanceProps;\n\n if (instanceProps.size === props.size && props.size !== undefined) {\n return {};\n }\n\n var newSize = props.size !== undefined ? props.size : getDefaultSize(props.defaultSize, props.minSize, props.maxSize, state.draggedSize);\n\n if (props.size !== undefined) {\n newState.draggedSize = newSize;\n }\n\n var isPanel1Primary = props.primary === 'first';\n newState[isPanel1Primary ? 'pane1Size' : 'pane2Size'] = newSize;\n newState[isPanel1Primary ? 'pane2Size' : 'pane1Size'] = undefined;\n newState.instanceProps = {\n size: props.size\n };\n return newState;\n }\n }]);\n\n return SplitPane;\n}(React.Component);\n\nSplitPane.propTypes = {\n allowResize: PropTypes.bool,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n className: PropTypes.string,\n primary: PropTypes.oneOf(['first', 'second']),\n minSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n defaultSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n onDragStarted: PropTypes.func,\n onDragFinished: PropTypes.func,\n onChange: PropTypes.func,\n onResizerClick: PropTypes.func,\n onResizerDoubleClick: PropTypes.func,\n style: stylePropType,\n resizerStyle: stylePropType,\n paneClassName: PropTypes.string,\n pane1ClassName: PropTypes.string,\n pane2ClassName: PropTypes.string,\n paneStyle: stylePropType,\n pane1Style: stylePropType,\n pane2Style: stylePropType,\n resizerClassName: PropTypes.string,\n step: PropTypes.number\n};\nSplitPane.defaultProps = {\n allowResize: true,\n minSize: 50,\n primary: 'first',\n split: 'vertical',\n paneClassName: '',\n pane1ClassName: '',\n pane2ClassName: ''\n};\npolyfill(SplitPane);\n\nexport default SplitPane;\nexport { Pane };\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport Button from '../../components/Button/Button';\n\nimport './TabbedContent.scss';\nimport {DropdownMenu, DropdownMenuItem} from '@gravity-ui/uikit';\n\nconst block = cn('yt-tabbed-content');\n\ninterface Props {\n className?: string;\n name: string;\n subTitle?: string;\n actions?: Array<DropdownMenuItem<unknown>>;\n actionAsDropdown?: boolean;\n children: React.ReactNode;\n contentClassName?: string;\n}\n\nexport default function TabbedContent(props: Props) {\n const {name, subTitle, actions, children, className, contentClassName, actionAsDropdown} =\n props;\n const growTitle = !subTitle;\n return (\n <div className={block(null, className)}>\n <div className={block('header')}>\n <span className={block('title', {growable: growTitle})} title={name}>\n {name}\n </span>\n {subTitle && (\n <React.Fragment>\n <span className={block('sub-title')} title={subTitle}>\n {subTitle}\n </span>\n </React.Fragment>\n )}\n {actions && <Actions actions={actions} useDropdown={Boolean(actionAsDropdown)} />}\n </div>\n <div className={block('content', contentClassName)}>{children}</div>\n </div>\n );\n}\n\nfunction Actions(props: {actions: Required<Props>['actions']; useDropdown: boolean}) {\n const {actions, useDropdown} = props;\n\n return !actions.length ? null : (\n <span className={block('actions')}>\n {useDropdown ? (\n <DropdownMenu items={actions} />\n ) : (\n actions.map(({text, icon, action}, index) => {\n return (\n <Button\n key={index}\n onClick={action}\n size={'m'}\n className={block('actions-item')}\n >\n {icon}\n {text}\n </Button>\n );\n })\n )}\n </span>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport SplitPane from 'react-split-pane';\n\nimport {DialogControlProps} from '../Dialog/Dialog.types';\nimport MonacoEditor from '../../components/MonacoEditor';\nimport Icon from '../../components/Icon/Icon';\n\nimport TabbedContent from './TabbedContent';\n\nimport './EditTextWithPreview.scss';\nimport {DropdownMenuItem} from '@gravity-ui/uikit';\n\nconst DEFAULT_SIZE = 350;\nconst block = cn('edit-text-with-preview');\n\nexport type EditTextWithPreviewProps = DialogControlProps<\n {value: string | undefined},\n {\n className?: string;\n editorActions?: Array<DropdownMenuItem>;\n editorTitle?: string;\n editorSubTitle?: string;\n disabled?: boolean;\n\n editorLang: 'markdown' | 'json';\n renderPreview: (value?: string) => React.ReactElement;\n\n minHeight?: number;\n\n initialShowPreview?: boolean;\n }\n> & {initialSplitSize?: number | string};\n\nEditTextWithPreview.isEmpty = (value: EditTextWithPreviewProps['value']) => {\n return !value;\n};\n\nEditTextWithPreview.getDefaultValue = () => {\n return {value: undefined};\n};\n\nexport function EditTextWithPreview({\n value: valueProp,\n onChange: onChangeProp,\n editorLang,\n editorActions,\n className,\n editorTitle = 'Text',\n editorSubTitle,\n renderPreview,\n minHeight,\n initialShowPreview,\n disabled,\n initialSplitSize,\n}: EditTextWithPreviewProps) {\n const {value} = valueProp;\n\n const [showPreview, setShowPreview] = React.useState(initialShowPreview);\n const togglePreview = React.useCallback(() => {\n setShowPreview(!showPreview);\n }, [setShowPreview, showPreview]);\n\n const showHideAction = {\n text: !showPreview ? 'Show preview' : 'Hide',\n icon: <Icon awesome={!showPreview ? 'eye' : 'eye-slash'} />,\n action: togglePreview,\n };\n\n const actions = showPreview ? editorActions : [...(editorActions ?? []), showHideAction];\n\n const onChange = React.useCallback(\n (value: string) => {\n onChangeProp({value});\n },\n [onChangeProp],\n );\n\n const left = (\n <TabbedContent\n key=\"editor\"\n className={block('panel', {growable: !showPreview})}\n contentClassName={block('left')}\n name={editorTitle}\n subTitle={editorSubTitle}\n actions={actions}\n actionAsDropdown={showPreview}\n >\n <MonacoEditor\n value={value || ''}\n language={editorLang}\n className={block('monaco')}\n onChange={onChange}\n readOnly={disabled}\n />\n </TabbedContent>\n );\n\n const sizeRef = React.useRef<number | string>(initialSplitSize || DEFAULT_SIZE);\n\n const style = React.useMemo(() => {\n return minHeight ? {minHeight} : undefined;\n }, [minHeight]);\n\n const divProps = {className: block(null, className), style: style};\n\n if (!showPreview) {\n return <div {...divProps}>{left}</div>;\n }\n\n return (\n <div {...divProps}>\n <SplitPane\n allowResize={true}\n minSize={160}\n maxSize={-160}\n defaultSize={sizeRef.current}\n onDragFinished={(size) => {\n sizeRef.current = size;\n }}\n {...{\n children: [\n left,\n !showPreview ? null : (\n <TabbedContent\n key=\"preview\"\n className={block('panel')}\n contentClassName={block('markdown')}\n name={'Preview'}\n actions={[showHideAction]}\n >\n {renderPreview ? renderPreview(value) : value}\n </TabbedContent>\n ),\n ],\n }}\n />\n </div>\n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\n\nimport Icon from '../Icon/Icon';\n\nimport './ErrorMessage.scss';\n\nconst b = block('error-message');\n\nfunction ErrorMessage({message, className}) {\n return (\n <div className={b(null, className)}>\n <Icon awesome=\"exclamation-circle\" />\n\n <span className={b('message-text')}>{message}</span>\n </div>\n );\n}\n\nErrorMessage.propTypes = {\n message: PropTypes.string.isRequired,\n className: PropTypes.string,\n};\n\nexport default ErrorMessage;\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport axios from 'axios';\n\nimport {wrapApiPromiseByToaster} from '../../utils/utils';\nimport './Markdown.scss';\nimport '@diplodoc/transform/dist/css/yfm.css';\nimport '@diplodoc/transform/dist/js/yfm';\nimport './yfm-overrides.scss';\nimport {OutputType} from '@diplodoc/transform/lib/typings';\n\nconst block = cn('yt-markdown');\n\ninterface Props {\n text: string;\n allowHTML?: boolean;\n}\n\ninterface Response {\n result?: {html?: string; plainText?: string};\n}\n\nconst emptyTransformResponse: OutputType = {\n result: {html: '', headings: []},\n logs: {info: [], warn: [], error: [], disabled: []},\n};\n\nexport async function transformMarkdown({text, allowHTML}: Props): Promise<OutputType> {\n try {\n const {data} = await wrapApiPromiseByToaster(\n axios.post<Response>('/api/markdown-to-html', {\n text,\n allowHTML,\n }),\n {\n toasterName: 'useMarkdown',\n skipSuccessToast: true,\n errorContent: 'Failed to transform markdown text',\n },\n );\n return data as OutputType;\n } catch (e) {\n return {\n result: {...emptyTransformResponse['result']},\n logs: {...emptyTransformResponse['logs'], error: [(e as Error).message]},\n };\n }\n}\n\nexport function useMarkdown({text, allowHTML = true}: Props) {\n const [res, setResult] = React.useState<OutputType>(emptyTransformResponse);\n\n React.useEffect(() => {\n async function transform() {\n try {\n const data = await transformMarkdown({text, allowHTML});\n\n setResult(data);\n } catch (e) {}\n }\n transform();\n }, [text, allowHTML]);\n\n return res;\n}\n\nexport function Markdown({text}: Props) {\n const {html} = useMarkdown({text, allowHTML: true}).result ?? {};\n\n return (\n <React.Fragment>\n <div className={block(null, 'yfm')} dangerouslySetInnerHTML={{__html: html ?? ''}} />\n </React.Fragment>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput, TextInputProps} from '@gravity-ui/uikit';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\n\nimport hammer from '../../common/hammer';\n\nimport {parseBytes} from '../../utils';\nimport {KeyCode} from '../../constants';\nimport './NumberInput.scss';\n\nconst block = cn('yt-number-input');\n\nexport function parseValue(rawValue: string, format: NumberInputProps['format']) {\n if (rawValue === '') {\n return undefined;\n }\n const skipSpaces = rawValue.replace(/\\s/g, '');\n return format === 'Bytes' ? parseBytes(skipSpaces) : Number(skipSpaces);\n}\n\nexport function formatValue(\n value: NumberInputProps['value'],\n format?: NumberInputProps['format'],\n settings?: object,\n) {\n if (value === undefined) {\n return '';\n }\n\n const res =\n format === 'Bytes'\n ? hammer.format['Bytes'](value, settings)\n : hammer.format['Number'](value, settings);\n return res === hammer.format.NO_VALUE ? '' : res;\n}\n\nfunction toRawValue(value: NumberInputProps['value']) {\n return value === undefined ? '' : value;\n}\n\nexport interface NumberInputWithErrorProps\n extends Omit<TextInputProps, 'value' | 'onChange' | 'theme' | 'error' | 'defaultValue'> {\n className?: string;\n\n format?: 'Number' | 'Bytes'; // 'Number' by default\n\n formatFn?: (v: NumberInputProps['value']) => string;\n parseFn?: (v: string) => NumberInputWithErrorProps['value'];\n\n decimalPlaces?: number;\n value?: {\n value: number | undefined;\n error?: string;\n };\n\n showDefaultValue?: boolean;\n defaultValue?: number;\n defaultValueClassName?: string;\n\n onChange: (v: NumberInputWithErrorProps['value']) => void;\n onEnterKeyDown?: () => void;\n\n validator?: (v?: number) => string | undefined;\n min?: number;\n max?: number;\n integerOnly?: boolean;\n\n showHint?: boolean;\n\n hidePrettyValue?: boolean;\n preciseInitialRawValue?: boolean;\n\n bottomLineVisibility?: 'visible' | 'hidden' | 'focused';\n\n disabled?: boolean;\n}\n\ninterface State {\n parsedValue?: number;\n parsedError?: string;\n rawValue?: string;\n formattedValue?: string;\n focused?: boolean;\n}\n\nexport class NumberInputWithError extends React.Component<NumberInputWithErrorProps, State> {\n static defaultProps = {\n size: 'm',\n view: 'normal',\n hasClear: true,\n bottomLineVisibility: 'visible',\n };\n\n static getDerivedStateFromProps(\n props: NumberInputWithErrorProps,\n state: State,\n ): Partial<State> | null {\n const {value, format, preciseInitialRawValue, decimalPlaces, formatFn} = props;\n if (state.rawValue === undefined) {\n const formatted = formatFn\n ? formatFn(value?.value)\n : formatValue(value?.value, format, {\n digits: decimalPlaces,\n });\n return {\n parsedValue: value?.value,\n parsedError: NumberInputWithError.errorFromValue(value, props),\n rawValue: preciseInitialRawValue ? toRawValue(value?.value) : formatted,\n formattedValue: formatted,\n };\n }\n\n return null;\n }\n\n static errorFromValue(v: NumberInputWithErrorProps['value'], props: NumberInputWithErrorProps) {\n const {validator = () => undefined, min, max, integerOnly} = props;\n const {value, error} = v || {};\n\n if (error) {\n return error;\n }\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n try {\n if (isNaN(value)) {\n return 'wrong format';\n }\n\n const error = validator(value);\n if (error) {\n return error;\n }\n } catch (error) {\n return String(error);\n }\n\n if (integerOnly && value % 1 !== 0) {\n return `The value must be an integer`;\n }\n\n if (min !== undefined && value < min) {\n return `The value must be \\u2265 ${min}`;\n }\n\n if (max !== undefined && value > max) {\n return `The value must be \\u2264 ${max}`;\n }\n\n return undefined;\n }\n\n state: State = {parsedValue: NaN};\n\n // eslint-disable-next-line react/sort-comp\n parseValue(rawValue: string): NumberInputWithErrorProps['value'] {\n if (this.props.parseFn) {\n return this.props.parseFn(rawValue);\n }\n return {value: parseValue(rawValue, this.props.format)};\n }\n\n format(value: NumberInputProps['value']) {\n const {format, decimalPlaces, formatFn} = this.props;\n if (formatFn) {\n return formatFn(value);\n }\n return formatValue(value, format, {digits: decimalPlaces});\n }\n\n onChange = (rawValue: string) => {\n const parsedValue = this.parseValue(rawValue);\n const error = NumberInputWithError.errorFromValue(parsedValue, this.props);\n const formattedValue = this.format(parsedValue?.value);\n this.setState({\n parsedValue: parsedValue?.value,\n parsedError: error,\n rawValue,\n formattedValue,\n });\n\n const {onChange} = this.props;\n onChange({value: parsedValue?.value, error});\n };\n\n onBlur = () => {\n this.setState({focused: false});\n };\n\n onFocus = () => {\n this.setState({focused: true});\n };\n\n getRestProps() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {value, onChange, min, max, validator, format, defaultValue, ...rest} = this.props;\n return rest;\n }\n\n onKeyDown = (e: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.ENTER && this.props.onEnterKeyDown) {\n this.props.onEnterKeyDown();\n }\n };\n\n renderMinMaxHint() {\n const {min, max, showHint, size} = this.props;\n const showMin = !isNaN(min!);\n const showMax = !isNaN(max!);\n if (!showHint || (!showMin && !showMax)) {\n return null;\n }\n return (\n <div className={block('hint', {size})}>\n {showMin && (\n <Tooltip content={String(min)} placement={'bottom'}>\n min: <b>{this.format(min)}</b>\n </Tooltip>\n )}\n {showMin && <> </>}\n {showMax && (\n <Tooltip content={String(max)} placement={'bottom'}>\n max: <b>{this.format(max)}</b>\n </Tooltip>\n )}\n </div>\n );\n }\n\n renderPrettyValue() {\n const {size, hidePrettyValue} = this.props;\n const {formattedValue} = this.state;\n\n if (hidePrettyValue) {\n return null;\n }\n\n return <div className={block('pretty-value', {size})}>{formattedValue} </div>;\n }\n\n renderDefaultValue() {\n const {defaultValue, defaultValueClassName} = this.props;\n\n return (\n <TextInput\n disabled\n className={defaultValueClassName}\n value={this.format(defaultValue)}\n pin={'clear-round'}\n />\n );\n }\n\n isBottomLineVisible() {\n const {bottomLineVisibility} = this.props;\n const {focused} = this.state;\n\n return (\n bottomLineVisibility === 'visible' || (focused && bottomLineVisibility === 'focused')\n );\n }\n\n render() {\n const {\n value: propsValue,\n className,\n showHint,\n hidePrettyValue,\n showDefaultValue,\n } = this.props;\n const {parsedError, rawValue, formattedValue, focused} = this.state;\n const rest = this.getRestProps();\n const {size, view, hasClear} = rest;\n\n const {error} = propsValue ?? {};\n\n const err = error || parsedError;\n\n const text = focused ? rawValue : formattedValue;\n\n return (\n <div className={block(null, className)}>\n <div className={block('top')}>\n <TextInput\n {...rest}\n error={err as any}\n autoComplete={false}\n onUpdate={this.onChange}\n onKeyDown={this.onKeyDown}\n hasClear={hasClear}\n value={text}\n size={size}\n view={view}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n pin={showDefaultValue ? 'round-brick' : undefined}\n />\n {showDefaultValue && this.renderDefaultValue()}\n </div>\n {!err && this.isBottomLineVisible() && (\n <React.Fragment>\n {showHint && (!focused || hidePrettyValue)\n ? this.renderMinMaxHint()\n : this.renderPrettyValue()}\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport interface NumberInputProps extends Omit<NumberInputWithErrorProps, 'value' | 'onChange'> {\n value: number | undefined;\n onChange: (value: NumberInputProps['value']) => void;\n\n error?: string;\n}\n\nexport default class NumberInput extends React.Component<NumberInputProps> {\n static format(\n value: NumberInputProps['value'],\n format?: NumberInputWithErrorProps['format'],\n settings?: object,\n ) {\n return formatValue(value, format, settings);\n }\n\n render() {\n const {\n value,\n error,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange,\n ...rest\n } = this.props;\n\n return <NumberInputWithError {...rest} onChange={this.onChange} value={{value, error}} />;\n }\n\n onChange: NumberInputWithErrorProps['onChange'] = (v) => {\n this.props.onChange(v?.value);\n };\n}\n","import React from 'react';\nimport moment from 'moment';\nimport cn from 'bem-cn-lite';\n\nimport {\n NumberInputWithError,\n NumberInputWithErrorProps,\n} from '../../components/NumberInput/NumberInput';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport MetaTable from '../../components/MetaTable/MetaTable';\nimport Icon from '../../components/Icon/Icon';\n\nimport './TimeDuration.scss';\n\nconst block = cn('yt-time-duration');\n\nexport type TimeDurationProps = {\n className?: string;\n\n value: NumberInputWithErrorProps['value'];\n onChange: (value: TimeDurationProps['value']) => void;\n};\n\nexport function TimeDuration({value, onChange}: TimeDurationProps) {\n return (\n <div className={block()}>\n <NumberInputWithError\n className={block('input')}\n value={value}\n onChange={onChange}\n formatFn={formatTimeDuration}\n parseFn={parseTimeDuration}\n />\n <Tooltip\n content={\n <div>\n <MetaTable\n items={[\n makeItems({\n y: 'years',\n w: 'weeks',\n M: 'months',\n d: 'days',\n }),\n makeItems({\n h: 'hours',\n m: 'minutes',\n s: 'seconds',\n ms: 'milliseconds',\n }),\n ]}\n />\n Examles: 1M2d3h, 4h15m\n </div>\n }\n >\n <Icon className={block('info')} awesome={'question-circle'} />\n </Tooltip>\n </div>\n );\n}\n\nTimeDuration.hasErrorRenderer = true;\n\nTimeDuration.getDefaultValue = (): TimeDurationProps['value'] => {\n return {value: undefined};\n};\n\nTimeDuration.isEmpty = (v: TimeDurationProps['value']) => {\n return !v;\n};\n\nTimeDuration.validate = (v: TimeDurationProps['value']) => {\n return v?.error;\n};\n\nexport function formatTimeDuration(value?: number) {\n if (!value && value !== 0) {\n return '';\n }\n\n let rest = value;\n let res = '';\n\n const h = 3600 * 1000;\n const d = 24 * h;\n const M = 30 * d;\n const y = 365 * d;\n\n const parts = {\n y,\n M,\n d,\n h,\n m: 60 * 1000,\n s: 1000,\n ['']: 1,\n };\n\n Object.keys(parts).forEach((k) => {\n const p: number = parts[k as keyof typeof parts];\n const count = Math.floor(rest / p);\n if (count > 0) {\n res += `${count}${k} `;\n rest -= count * p;\n }\n });\n\n return res;\n}\n\nexport function parseTimeDuration(rawValue: string) {\n if (!rawValue) {\n return {value: undefined};\n }\n const skipSpaces = rawValue.replace(/\\s+/g, '');\n const res = [...skipSpaces.matchAll(/\\d+[a-zA-Z]*/g)];\n if (!res.length || res[0].index !== 0) {\n return {value: undefined, error: 'wrong format'};\n }\n\n let value = 0;\n for (const match of res) {\n const {[0]: digits, input} = match[0].match(/\\d+/) || {};\n if (!digits) {\n return {value: undefined, error: 'wring fromat 1'};\n }\n\n const type = input?.substring(digits.length) ?? '';\n const d = Number(digits);\n const toAdd = moment.duration(d, type as any).valueOf() as number;\n if (toAdd === 0 && d !== 0) {\n return {value: undefined, error: `wrong format of ${input}`};\n }\n\n value += toAdd;\n }\n return {value};\n}\n\nfunction makeItems(data: Record<string, string>) {\n return Object.keys(data).map((key) => ({key: key, label: key, value: data[key]}));\n}\n","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","export function getOffset(value, min, max) {\n return (value - min) / (max - min);\n}\nexport function getDirectionStyle(direction, value, min, max) {\n var offset = getOffset(value, min, max);\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(50%)';\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(50%)';\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(-50%)';\n break;\n default:\n positionStyle.left = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(-50%)';\n break;\n }\n return positionStyle;\n}\n\n/** Return index value if is list or return value directly */\nexport function getIndex(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import * as React from 'react';\nvar SliderContext = /*#__PURE__*/React.createContext({\n min: 0,\n max: 0,\n direction: 'ltr',\n step: 1,\n includedStart: 0,\n includedEnd: 0,\n tabIndex: 0,\n keyboard: true,\n styles: {},\n classNames: {}\n});\nexport default SliderContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"value\", \"valueIndex\", \"onStartMove\", \"style\", \"render\", \"dragging\", \"onOffsetChange\", \"onChangeComplete\", \"onFocus\", \"onMouseEnter\"];\nimport cls from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle, getIndex } from \"../util\";\nvar Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n value = props.value,\n valueIndex = props.valueIndex,\n onStartMove = props.onStartMove,\n style = props.style,\n render = props.render,\n dragging = props.dragging,\n onOffsetChange = props.onOffsetChange,\n onChangeComplete = props.onChangeComplete,\n onFocus = props.onFocus,\n onMouseEnter = props.onMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n disabled = _React$useContext.disabled,\n keyboard = _React$useContext.keyboard,\n range = _React$useContext.range,\n tabIndex = _React$useContext.tabIndex,\n ariaLabelForHandle = _React$useContext.ariaLabelForHandle,\n ariaLabelledByForHandle = _React$useContext.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _React$useContext.ariaValueTextFormatterForHandle,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n var handlePrefixCls = \"\".concat(prefixCls, \"-handle\");\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled) {\n onStartMove(e, valueIndex);\n }\n };\n var onInternalFocus = function onInternalFocus(e) {\n onFocus === null || onFocus === void 0 || onFocus(e, valueIndex);\n };\n var onInternalMouseEnter = function onInternalMouseEnter(e) {\n onMouseEnter(e, valueIndex);\n };\n\n // =========================== Keyboard ===========================\n var onKeyDown = function onKeyDown(e) {\n if (!disabled && keyboard) {\n var offset = null;\n\n // Change the value\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n offset = direction === 'ltr' || direction === 'btt' ? -1 : 1;\n break;\n case KeyCode.RIGHT:\n offset = direction === 'ltr' || direction === 'btt' ? 1 : -1;\n break;\n\n // Up is plus\n case KeyCode.UP:\n offset = direction !== 'ttb' ? 1 : -1;\n break;\n\n // Down is minus\n case KeyCode.DOWN:\n offset = direction !== 'ttb' ? -1 : 1;\n break;\n case KeyCode.HOME:\n offset = 'min';\n break;\n case KeyCode.END:\n offset = 'max';\n break;\n case KeyCode.PAGE_UP:\n offset = 2;\n break;\n case KeyCode.PAGE_DOWN:\n offset = -2;\n break;\n }\n if (offset !== null) {\n e.preventDefault();\n onOffsetChange(offset, valueIndex);\n }\n }\n };\n var handleKeyUp = function handleKeyUp(e) {\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.HOME:\n case KeyCode.END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete();\n break;\n }\n };\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n\n // ============================ Render ============================\n var divProps = {};\n if (valueIndex !== null) {\n var _getIndex;\n divProps = {\n tabIndex: disabled ? null : getIndex(tabIndex, valueIndex),\n role: 'slider',\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': disabled,\n 'aria-label': getIndex(ariaLabelForHandle, valueIndex),\n 'aria-labelledby': getIndex(ariaLabelledByForHandle, valueIndex),\n 'aria-valuetext': (_getIndex = getIndex(ariaValueTextFormatterForHandle, valueIndex)) === null || _getIndex === void 0 ? void 0 : _getIndex(value),\n 'aria-orientation': direction === 'ltr' || direction === 'rtl' ? 'horizontal' : 'vertical',\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove,\n onFocus: onInternalFocus,\n onMouseEnter: onInternalMouseEnter,\n onKeyDown: onKeyDown,\n onKeyUp: handleKeyUp\n };\n }\n var handleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: cls(handlePrefixCls, _defineProperty(_defineProperty({}, \"\".concat(handlePrefixCls, \"-\").concat(valueIndex + 1), valueIndex !== null && range), \"\".concat(handlePrefixCls, \"-dragging\"), dragging), classNames.handle),\n style: _objectSpread(_objectSpread(_objectSpread({}, positionStyle), style), styles.handle)\n }, divProps, restProps));\n\n // Customize\n if (render) {\n handleNode = render(handleNode, {\n index: valueIndex,\n prefixCls: prefixCls,\n value: value,\n dragging: dragging\n });\n }\n return handleNode;\n});\nif (process.env.NODE_ENV !== 'production') {\n Handle.displayName = 'Handle';\n}\nexport default Handle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"onStartMove\", \"onOffsetChange\", \"values\", \"handleRender\", \"activeHandleRender\", \"draggingIndex\", \"onFocus\"];\nimport * as React from 'react';\nimport { getIndex } from \"../util\";\nimport Handle from \"./Handle\";\nvar Handles = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n onStartMove = props.onStartMove,\n onOffsetChange = props.onOffsetChange,\n values = props.values,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n draggingIndex = props.draggingIndex,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded);\n var handlesRef = React.useRef({});\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus(index) {\n var _handlesRef$current$i;\n (_handlesRef$current$i = handlesRef.current[index]) === null || _handlesRef$current$i === void 0 || _handlesRef$current$i.focus();\n }\n };\n });\n\n // =========================== Active ===========================\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var onHandleFocus = function onHandleFocus(e, index) {\n setActiveIndex(index);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n var onHandleMouseEnter = function onHandleMouseEnter(e, index) {\n setActiveIndex(index);\n };\n\n // =========================== Render ===========================\n // Handle Props\n var handleProps = _objectSpread({\n prefixCls: prefixCls,\n onStartMove: onStartMove,\n onOffsetChange: onOffsetChange,\n render: handleRender,\n onFocus: onHandleFocus,\n onMouseEnter: onHandleMouseEnter\n }, restProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, values.map(function (value, index) {\n return /*#__PURE__*/React.createElement(Handle, _extends({\n ref: function ref(node) {\n if (!node) {\n delete handlesRef.current[index];\n } else {\n handlesRef.current[index] = node;\n }\n },\n dragging: draggingIndex === index,\n style: getIndex(style, index),\n key: index,\n value: value,\n valueIndex: index\n }, handleProps));\n }), activeHandleRender && /*#__PURE__*/React.createElement(Handle, _extends({\n key: \"a11y\"\n }, handleProps, {\n value: values[activeIndex],\n valueIndex: null,\n dragging: draggingIndex !== -1,\n render: activeHandleRender,\n style: {\n pointerEvents: 'none'\n },\n tabIndex: null,\n \"aria-hidden\": true\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Handles.displayName = 'Handles';\n}\nexport default Handles;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Mark = function Mark(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n children = props.children,\n value = props.value,\n _onClick = props.onClick;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd,\n included = _React$useContext.included;\n var textCls = \"\".concat(prefixCls, \"-text\");\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(textCls, _defineProperty({}, \"\".concat(textCls, \"-active\"), included && includedStart <= value && value <= includedEnd)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n },\n onClick: function onClick() {\n _onClick(value);\n }\n }, children);\n};\nexport default Mark;","import * as React from 'react';\nimport Mark from \"./Mark\";\nvar Marks = function Marks(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n onClick = props.onClick;\n var markPrefixCls = \"\".concat(prefixCls, \"-mark\");\n\n // Not render mark if empty\n if (!marks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: markPrefixCls\n }, marks.map(function (_ref) {\n var value = _ref.value,\n style = _ref.style,\n label = _ref.label;\n return /*#__PURE__*/React.createElement(Mark, {\n key: value,\n prefixCls: markPrefixCls,\n style: style,\n value: value,\n onClick: onClick\n }, label);\n }));\n};\nexport default Marks;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Dot = function Dot(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n included = _React$useContext.included,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n var active = included && includedStart <= value && value <= includedEnd;\n\n // ============================ Offset ============================\n var mergedStyle = _objectSpread(_objectSpread({}, getDirectionStyle(direction, value, min, max)), typeof style === 'function' ? style(value) : style);\n if (active) {\n mergedStyle = _objectSpread(_objectSpread({}, mergedStyle), typeof activeStyle === 'function' ? activeStyle(value) : activeStyle);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, _defineProperty({}, \"\".concat(dotClassName, \"-active\"), active)),\n style: mergedStyle\n });\n};\nexport default Dot;","import * as React from 'react';\nimport SliderContext from \"../context\";\nimport Dot from \"./Dot\";\nvar Steps = function Steps(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n dots = props.dots,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n step = _React$useContext.step;\n var stepDots = React.useMemo(function () {\n var dotSet = new Set();\n\n // Add marks\n marks.forEach(function (mark) {\n dotSet.add(mark.value);\n });\n\n // Fill dots\n if (dots && step !== null) {\n var current = min;\n while (current <= max) {\n dotSet.add(current);\n current += step;\n }\n }\n return Array.from(dotSet);\n }, [min, max, step, dots, marks]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, stepDots.map(function (dotValue) {\n return /*#__PURE__*/React.createElement(Dot, {\n prefixCls: prefixCls,\n key: dotValue,\n value: dotValue,\n style: style,\n activeStyle: activeStyle\n });\n }));\n};\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getOffset } from \"../util\";\nvar Track = function Track(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n start = props.start,\n end = props.end,\n index = props.index,\n onStartMove = props.onStartMove,\n replaceCls = props.replaceCls;\n var _React$useContext = React.useContext(SliderContext),\n direction = _React$useContext.direction,\n min = _React$useContext.min,\n max = _React$useContext.max,\n disabled = _React$useContext.disabled,\n range = _React$useContext.range,\n classNames = _React$useContext.classNames;\n var trackPrefixCls = \"\".concat(prefixCls, \"-track\");\n var offsetStart = getOffset(start, min, max);\n var offsetEnd = getOffset(end, min, max);\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled && onStartMove) {\n onStartMove(e, -1);\n }\n };\n\n // ============================ Render ============================\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n default:\n positionStyle.left = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n }\n var className = replaceCls || cls(trackPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(trackPrefixCls, \"-\").concat(index + 1), index !== null && range), \"\".concat(prefixCls, \"-track-draggable\"), onStartMove), classNames.track);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove\n });\n};\nexport default Track;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getIndex } from \"../util\";\nimport Track from \"./Track\";\nvar Tracks = function Tracks(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n values = props.values,\n startPoint = props.startPoint,\n onStartMove = props.onStartMove;\n var _React$useContext = React.useContext(SliderContext),\n included = _React$useContext.included,\n range = _React$useContext.range,\n min = _React$useContext.min,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n\n // =========================== List ===========================\n var trackList = React.useMemo(function () {\n if (!range) {\n // null value do not have track\n if (values.length === 0) {\n return [];\n }\n var startValue = startPoint !== null && startPoint !== void 0 ? startPoint : min;\n var endValue = values[0];\n return [{\n start: Math.min(startValue, endValue),\n end: Math.max(startValue, endValue)\n }];\n }\n\n // Multiple\n var list = [];\n for (var i = 0; i < values.length - 1; i += 1) {\n list.push({\n start: values[i],\n end: values[i + 1]\n });\n }\n return list;\n }, [values, range, startPoint, min]);\n if (!included) {\n return null;\n }\n\n // ========================== Render ==========================\n var tracksNode = classNames.tracks || styles.tracks ? /*#__PURE__*/React.createElement(Track, {\n index: null,\n prefixCls: prefixCls,\n start: trackList[0].start,\n end: trackList[trackList.length - 1].end,\n replaceCls: cls(classNames.tracks, \"\".concat(prefixCls, \"-tracks\")),\n style: styles.tracks\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, tracksNode, trackList.map(function (_ref, index) {\n var start = _ref.start,\n end = _ref.end;\n return /*#__PURE__*/React.createElement(Track, {\n index: index,\n prefixCls: prefixCls,\n style: _objectSpread(_objectSpread({}, getIndex(style, index)), styles.track),\n start: start,\n end: end,\n key: index,\n onStartMove: onStartMove\n });\n }));\n};\nexport default Tracks;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport * as React from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return {\n pageX: obj.pageX,\n pageY: obj.pageY\n };\n}\nfunction useDrag(containerRef, direction, rawValues, min, max, formatValue, triggerChange, finishChange, offsetValues) {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n draggingValue = _React$useState2[0],\n setDraggingValue = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n draggingIndex = _React$useState4[0],\n setDraggingIndex = _React$useState4[1];\n var _React$useState5 = React.useState(rawValues),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n cacheValues = _React$useState6[0],\n setCacheValues = _React$useState6[1];\n var _React$useState7 = React.useState(rawValues),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n originValues = _React$useState8[0],\n setOriginValues = _React$useState8[1];\n var mouseMoveEventRef = React.useRef(null);\n var mouseUpEventRef = React.useRef(null);\n React.useLayoutEffect(function () {\n if (draggingIndex === -1) {\n setCacheValues(rawValues);\n }\n }, [rawValues, draggingIndex]);\n\n // Clean up event\n React.useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveEventRef.current);\n document.removeEventListener('mouseup', mouseUpEventRef.current);\n document.removeEventListener('touchmove', mouseMoveEventRef.current);\n document.removeEventListener('touchend', mouseUpEventRef.current);\n };\n }, []);\n var flushValues = function flushValues(nextValues, nextValue) {\n // Perf: Only update state when value changed\n if (cacheValues.some(function (val, i) {\n return val !== nextValues[i];\n })) {\n if (nextValue !== undefined) {\n setDraggingValue(nextValue);\n }\n setCacheValues(nextValues);\n triggerChange(nextValues);\n }\n };\n var updateCacheValue = useEvent(function (valueIndex, offsetPercent) {\n // Basic point offset\n\n if (valueIndex === -1) {\n // >>>> Dragging on the track\n var startValue = originValues[0];\n var endValue = originValues[originValues.length - 1];\n var maxStartOffset = min - startValue;\n var maxEndOffset = max - endValue;\n\n // Get valid offset\n var offset = offsetPercent * (max - min);\n offset = Math.max(offset, maxStartOffset);\n offset = Math.min(offset, maxEndOffset);\n\n // Use first value to revert back of valid offset (like steps marks)\n var formatStartValue = formatValue(startValue + offset);\n offset = formatStartValue - startValue;\n var cloneCacheValues = originValues.map(function (val) {\n return val + offset;\n });\n flushValues(cloneCacheValues);\n } else {\n // >>>> Dragging on the handle\n var offsetDist = (max - min) * offsetPercent;\n\n // Always start with the valueIndex origin value\n var cloneValues = _toConsumableArray(cacheValues);\n cloneValues[valueIndex] = originValues[valueIndex];\n var next = offsetValues(cloneValues, offsetDist, valueIndex, 'dist');\n flushValues(next.values, next.value);\n }\n });\n var onStartMove = function onStartMove(e, valueIndex, startValues) {\n e.stopPropagation();\n\n // 如果是点击 track 触发的,需要传入变化后的初始值,而不能直接用 rawValues\n var initialValues = startValues || rawValues;\n var originValue = initialValues[valueIndex];\n setDraggingIndex(valueIndex);\n setDraggingValue(originValue);\n setOriginValues(initialValues);\n var _getPosition = getPosition(e),\n startX = _getPosition.pageX,\n startY = _getPosition.pageY;\n\n // Moving\n var onMouseMove = function onMouseMove(event) {\n event.preventDefault();\n var _getPosition2 = getPosition(event),\n moveX = _getPosition2.pageX,\n moveY = _getPosition2.pageY;\n var offsetX = moveX - startX;\n var offsetY = moveY - startY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var offSetPercent;\n switch (direction) {\n case 'btt':\n offSetPercent = -offsetY / height;\n break;\n case 'ttb':\n offSetPercent = offsetY / height;\n break;\n case 'rtl':\n offSetPercent = -offsetX / width;\n break;\n default:\n offSetPercent = offsetX / width;\n }\n updateCacheValue(valueIndex, offSetPercent);\n };\n\n // End\n var onMouseUp = function onMouseUp(event) {\n event.preventDefault();\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('touchend', onMouseUp);\n document.removeEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = null;\n mouseUpEventRef.current = null;\n setDraggingIndex(-1);\n finishChange();\n };\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('touchend', onMouseUp);\n document.addEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = onMouseMove;\n mouseUpEventRef.current = onMouseUp;\n };\n\n // Only return cache value when it mapping with rawValues\n var returnValues = React.useMemo(function () {\n var sourceValues = _toConsumableArray(rawValues).sort(function (a, b) {\n return a - b;\n });\n var targetValues = _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n return sourceValues.every(function (val, index) {\n return val === targetValues[index];\n }) ? cacheValues : rawValues;\n }, [rawValues, cacheValues]);\n return [draggingIndex, draggingValue, returnValues, onStartMove];\n}\nexport default useDrag;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport cls from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Handles from \"./Handles\";\nimport Marks from \"./Marks\";\nimport Steps from \"./Steps\";\nimport Tracks from \"./Tracks\";\nimport SliderContext from \"./context\";\nimport useDrag from \"./hooks/useDrag\";\nimport useOffset from \"./hooks/useOffset\";\n\n/**\n * New:\n * - click mark to update range value\n * - handleRender\n * - Fix handle with count not correct\n * - Fix pushable not work in some case\n * - No more FindDOMNode\n * - Move all position related style into inline style\n * - Key: up is plus, down is minus\n * - fix Key with step = null not align with marks\n * - Change range should not trigger onChange\n * - keyboard support pushable\n */\n\nvar Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-slider' : _props$prefixCls,\n className = props.className,\n style = props.style,\n classNames = props.classNames,\n styles = props.styles,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n autoFocus = props.autoFocus,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$min = props.min,\n min = _props$min === void 0 ? 0 : _props$min,\n _props$max = props.max,\n max = _props$max === void 0 ? 100 : _props$max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n value = props.value,\n defaultValue = props.defaultValue,\n range = props.range,\n count = props.count,\n onChange = props.onChange,\n onBeforeChange = props.onBeforeChange,\n onAfterChange = props.onAfterChange,\n onChangeComplete = props.onChangeComplete,\n _props$allowCross = props.allowCross,\n allowCross = _props$allowCross === void 0 ? true : _props$allowCross,\n _props$pushable = props.pushable,\n pushable = _props$pushable === void 0 ? false : _props$pushable,\n draggableTrack = props.draggableTrack,\n reverse = props.reverse,\n vertical = props.vertical,\n _props$included = props.included,\n included = _props$included === void 0 ? true : _props$included,\n startPoint = props.startPoint,\n trackStyle = props.trackStyle,\n handleStyle = props.handleStyle,\n railStyle = props.railStyle,\n dotStyle = props.dotStyle,\n activeDotStyle = props.activeDotStyle,\n marks = props.marks,\n dots = props.dots,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n ariaLabelForHandle = props.ariaLabelForHandle,\n ariaLabelledByForHandle = props.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = props.ariaValueTextFormatterForHandle;\n var handlesRef = React.useRef(null);\n var containerRef = React.useRef(null);\n var direction = React.useMemo(function () {\n if (vertical) {\n return reverse ? 'ttb' : 'btt';\n }\n return reverse ? 'rtl' : 'ltr';\n }, [reverse, vertical]);\n\n // ============================ Range =============================\n var mergedMin = React.useMemo(function () {\n return isFinite(min) ? min : 0;\n }, [min]);\n var mergedMax = React.useMemo(function () {\n return isFinite(max) ? max : 100;\n }, [max]);\n\n // ============================= Step =============================\n var mergedStep = React.useMemo(function () {\n return step !== null && step <= 0 ? 1 : step;\n }, [step]);\n\n // ============================= Push =============================\n var mergedPush = React.useMemo(function () {\n if (typeof pushable === 'boolean') {\n return pushable ? mergedStep : false;\n }\n return pushable >= 0 ? pushable : false;\n }, [pushable, mergedStep]);\n\n // ============================ Marks =============================\n var markList = React.useMemo(function () {\n return Object.keys(marks || {}).map(function (key) {\n var mark = marks[key];\n var markObj = {\n value: Number(key)\n };\n if (mark && _typeof(mark) === 'object' && ! /*#__PURE__*/React.isValidElement(mark) && ('label' in mark || 'style' in mark)) {\n markObj.style = mark.style;\n markObj.label = mark.label;\n } else {\n markObj.label = mark;\n }\n return markObj;\n }).filter(function (_ref) {\n var label = _ref.label;\n return label || typeof label === 'number';\n }).sort(function (a, b) {\n return a.value - b.value;\n });\n }, [marks]);\n\n // ============================ Format ============================\n var _useOffset = useOffset(mergedMin, mergedMax, mergedStep, markList, allowCross, mergedPush),\n _useOffset2 = _slicedToArray(_useOffset, 2),\n formatValue = _useOffset2[0],\n offsetValues = _useOffset2[1];\n\n // ============================ Values ============================\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var rawValues = React.useMemo(function () {\n var valueList = mergedValue === null || mergedValue === undefined ? [] : Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n var _valueList = _slicedToArray(valueList, 1),\n _valueList$ = _valueList[0],\n val0 = _valueList$ === void 0 ? mergedMin : _valueList$;\n var returnValues = mergedValue === null ? [] : [val0];\n\n // Format as range\n if (range) {\n returnValues = _toConsumableArray(valueList);\n\n // When count provided or value is `undefined`, we fill values\n if (count || mergedValue === undefined) {\n var pointCount = count >= 0 ? count + 1 : 2;\n returnValues = returnValues.slice(0, pointCount);\n\n // Fill with count\n while (returnValues.length < pointCount) {\n var _returnValues;\n returnValues.push((_returnValues = returnValues[returnValues.length - 1]) !== null && _returnValues !== void 0 ? _returnValues : mergedMin);\n }\n }\n returnValues.sort(function (a, b) {\n return a - b;\n });\n }\n\n // Align in range\n returnValues.forEach(function (val, index) {\n returnValues[index] = formatValue(val);\n });\n return returnValues;\n }, [mergedValue, range, mergedMin, count, formatValue]);\n\n // =========================== onChange ===========================\n var rawValuesRef = React.useRef(rawValues);\n rawValuesRef.current = rawValues;\n var getTriggerValue = function getTriggerValue(triggerValues) {\n return range ? triggerValues : triggerValues[0];\n };\n var triggerChange = function triggerChange(nextValues) {\n // Order first\n var cloneNextValues = _toConsumableArray(nextValues).sort(function (a, b) {\n return a - b;\n });\n\n // Trigger event if needed\n if (onChange && !isEqual(cloneNextValues, rawValuesRef.current, true)) {\n onChange(getTriggerValue(cloneNextValues));\n }\n\n // We set this later since it will re-render component immediately\n setValue(cloneNextValues);\n };\n var finishChange = function finishChange() {\n var finishValue = getTriggerValue(rawValuesRef.current);\n onAfterChange === null || onAfterChange === void 0 || onAfterChange(finishValue);\n warning(!onAfterChange, '[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.');\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete(finishValue);\n };\n var _useDrag = useDrag(containerRef, direction, rawValues, mergedMin, mergedMax, formatValue, triggerChange, finishChange, offsetValues),\n _useDrag2 = _slicedToArray(_useDrag, 4),\n draggingIndex = _useDrag2[0],\n draggingValue = _useDrag2[1],\n cacheValues = _useDrag2[2],\n onStartDrag = _useDrag2[3];\n var changeToCloseValue = function changeToCloseValue(newValue, e) {\n if (!disabled) {\n var valueIndex = 0;\n var valueDist = mergedMax - mergedMin;\n rawValues.forEach(function (val, index) {\n var dist = Math.abs(newValue - val);\n if (dist <= valueDist) {\n valueDist = dist;\n valueIndex = index;\n }\n });\n\n // Create new values\n var cloneNextValues = _toConsumableArray(rawValues);\n cloneNextValues[valueIndex] = newValue;\n\n // Fill value to match default 2\n if (range && !rawValues.length && count === undefined) {\n cloneNextValues.push(newValue);\n }\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(cloneNextValues));\n triggerChange(cloneNextValues);\n if (e) {\n var _document$activeEleme, _document$activeEleme2;\n (_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 || (_document$activeEleme2 = _document$activeEleme.blur) === null || _document$activeEleme2 === void 0 || _document$activeEleme2.call(_document$activeEleme);\n handlesRef.current.focus(valueIndex);\n onStartDrag(e, valueIndex, cloneNextValues);\n }\n }\n };\n\n // ============================ Click =============================\n var onSliderMouseDown = function onSliderMouseDown(e) {\n e.preventDefault();\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height,\n left = _containerRef$current.left,\n top = _containerRef$current.top,\n bottom = _containerRef$current.bottom,\n right = _containerRef$current.right;\n var clientX = e.clientX,\n clientY = e.clientY;\n var percent;\n switch (direction) {\n case 'btt':\n percent = (bottom - clientY) / height;\n break;\n case 'ttb':\n percent = (clientY - top) / height;\n break;\n case 'rtl':\n percent = (right - clientX) / width;\n break;\n default:\n percent = (clientX - left) / width;\n }\n var nextValue = mergedMin + percent * (mergedMax - mergedMin);\n changeToCloseValue(formatValue(nextValue), e);\n };\n\n // =========================== Keyboard ===========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n keyboardValue = _React$useState2[0],\n setKeyboardValue = _React$useState2[1];\n var onHandleOffsetChange = function onHandleOffsetChange(offset, valueIndex) {\n if (!disabled) {\n var next = offsetValues(rawValues, offset, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValues));\n triggerChange(next.values);\n setKeyboardValue(next.value);\n }\n };\n React.useEffect(function () {\n if (keyboardValue !== null) {\n var valueIndex = rawValues.indexOf(keyboardValue);\n if (valueIndex >= 0) {\n handlesRef.current.focus(valueIndex);\n }\n }\n setKeyboardValue(null);\n }, [keyboardValue]);\n\n // ============================= Drag =============================\n var mergedDraggableTrack = React.useMemo(function () {\n if (draggableTrack && mergedStep === null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`draggableTrack` is not supported when `step` is `null`.');\n }\n return false;\n }\n return draggableTrack;\n }, [draggableTrack, mergedStep]);\n var onStartMove = function onStartMove(e, valueIndex) {\n onStartDrag(e, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValuesRef.current));\n };\n\n // Auto focus for updated handle\n var dragging = draggingIndex !== -1;\n React.useEffect(function () {\n if (!dragging) {\n var valueIndex = rawValues.lastIndexOf(draggingValue);\n handlesRef.current.focus(valueIndex);\n }\n }, [dragging]);\n\n // =========================== Included ===========================\n var sortedCacheValues = React.useMemo(function () {\n return _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n }, [cacheValues]);\n\n // Provide a range values with included [min, max]\n // Used for Track, Mark & Dot\n var _React$useMemo = React.useMemo(function () {\n if (!range) {\n return [mergedMin, sortedCacheValues[0]];\n }\n return [sortedCacheValues[0], sortedCacheValues[sortedCacheValues.length - 1]];\n }, [sortedCacheValues, range, mergedMin]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n includedStart = _React$useMemo2[0],\n includedEnd = _React$useMemo2[1];\n\n // ============================= Refs =============================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n handlesRef.current.focus(0);\n },\n blur: function blur() {\n var _containerRef$current2;\n var _document = document,\n activeElement = _document.activeElement;\n if ((_containerRef$current2 = containerRef.current) !== null && _containerRef$current2 !== void 0 && _containerRef$current2.contains(activeElement)) {\n activeElement === null || activeElement === void 0 || activeElement.blur();\n }\n }\n };\n });\n\n // ========================== Auto Focus ==========================\n React.useEffect(function () {\n if (autoFocus) {\n handlesRef.current.focus(0);\n }\n }, []);\n\n // =========================== Context ============================\n var context = React.useMemo(function () {\n return {\n min: mergedMin,\n max: mergedMax,\n direction: direction,\n disabled: disabled,\n keyboard: keyboard,\n step: mergedStep,\n included: included,\n includedStart: includedStart,\n includedEnd: includedEnd,\n range: range,\n tabIndex: tabIndex,\n ariaLabelForHandle: ariaLabelForHandle,\n ariaLabelledByForHandle: ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle: ariaValueTextFormatterForHandle,\n styles: styles || {},\n classNames: classNames || {}\n };\n }, [mergedMin, mergedMax, direction, disabled, keyboard, mergedStep, included, includedStart, includedEnd, range, tabIndex, ariaLabelForHandle, ariaLabelledByForHandle, ariaValueTextFormatterForHandle, styles, classNames]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(SliderContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: cls(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-vertical\"), vertical), \"\".concat(prefixCls, \"-horizontal\"), !vertical), \"\".concat(prefixCls, \"-with-marks\"), markList.length)),\n style: style,\n onMouseDown: onSliderMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls(\"\".concat(prefixCls, \"-rail\"), classNames === null || classNames === void 0 ? void 0 : classNames.rail),\n style: _objectSpread(_objectSpread({}, railStyle), styles === null || styles === void 0 ? void 0 : styles.rail)\n }), /*#__PURE__*/React.createElement(Tracks, {\n prefixCls: prefixCls,\n style: trackStyle,\n values: sortedCacheValues,\n startPoint: startPoint,\n onStartMove: mergedDraggableTrack ? onStartMove : undefined\n }), /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n marks: markList,\n dots: dots,\n style: dotStyle,\n activeStyle: activeDotStyle\n }), /*#__PURE__*/React.createElement(Handles, {\n ref: handlesRef,\n prefixCls: prefixCls,\n style: handleStyle,\n values: cacheValues,\n draggingIndex: draggingIndex,\n onStartMove: onStartMove,\n onOffsetChange: onHandleOffsetChange,\n onFocus: onFocus,\n onBlur: onBlur,\n handleRender: handleRender,\n activeHandleRender: activeHandleRender,\n onChangeComplete: finishChange\n }), /*#__PURE__*/React.createElement(Marks, {\n prefixCls: prefixCls,\n marks: markList,\n onClick: changeToCloseValue\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n\n/** Format the value in the range of [min, max] */\n\n/** Format value align with step */\n\n/** Format value align with step & marks */\n\nexport default function useOffset(min, max, step, markList, allowCross, pushable) {\n var formatRangeValue = React.useCallback(function (val) {\n return Math.max(min, Math.min(max, val));\n }, [min, max]);\n var formatStepValue = React.useCallback(function (val) {\n if (step !== null) {\n var stepValue = min + Math.round((formatRangeValue(val) - min) / step) * step;\n\n // Cut number in case to be like 0.30000000000000004\n var getDecimal = function getDecimal(num) {\n return (String(num).split('.')[1] || '').length;\n };\n var maxDecimal = Math.max(getDecimal(step), getDecimal(max), getDecimal(min));\n var fixedValue = Number(stepValue.toFixed(maxDecimal));\n return min <= fixedValue && fixedValue <= max ? fixedValue : null;\n }\n return null;\n }, [step, min, max, formatRangeValue]);\n var formatValue = React.useCallback(function (val) {\n var formatNextValue = formatRangeValue(val);\n\n // List align values\n var alignValues = markList.map(function (mark) {\n return mark.value;\n });\n if (step !== null) {\n alignValues.push(formatStepValue(val));\n }\n\n // min & max\n alignValues.push(min, max);\n\n // Align with marks\n var closeValue = alignValues[0];\n var closeDist = max - min;\n alignValues.forEach(function (alignValue) {\n var dist = Math.abs(formatNextValue - alignValue);\n if (dist <= closeDist) {\n closeValue = alignValue;\n closeDist = dist;\n }\n });\n return closeValue;\n }, [min, max, markList, step, formatRangeValue, formatStepValue]);\n\n // ========================== Offset ==========================\n // Single Value\n var offsetValue = function offsetValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n if (typeof offset === 'number') {\n var nextValue;\n var originValue = values[valueIndex];\n\n // Only used for `dist` mode\n var targetDistValue = originValue + offset;\n\n // Compare next step value & mark value which is best match\n var potentialValues = [];\n markList.forEach(function (mark) {\n potentialValues.push(mark.value);\n });\n\n // Min & Max\n potentialValues.push(min, max);\n\n // In case origin value is align with mark but not with step\n potentialValues.push(formatStepValue(originValue));\n\n // Put offset step value also\n var sign = offset > 0 ? 1 : -1;\n if (mode === 'unit') {\n potentialValues.push(formatStepValue(originValue + sign * step));\n } else {\n potentialValues.push(formatStepValue(targetDistValue));\n }\n\n // Find close one\n potentialValues = potentialValues.filter(function (val) {\n return val !== null;\n })\n // Remove reverse value\n .filter(function (val) {\n return offset < 0 ? val <= originValue : val >= originValue;\n });\n if (mode === 'unit') {\n // `unit` mode can not contain itself\n potentialValues = potentialValues.filter(function (val) {\n return val !== originValue;\n });\n }\n var compareValue = mode === 'unit' ? originValue : targetDistValue;\n nextValue = potentialValues[0];\n var valueDist = Math.abs(nextValue - compareValue);\n potentialValues.forEach(function (potentialValue) {\n var dist = Math.abs(potentialValue - compareValue);\n if (dist < valueDist) {\n nextValue = potentialValue;\n valueDist = dist;\n }\n });\n\n // Out of range will back to range\n if (nextValue === undefined) {\n return offset < 0 ? min : max;\n }\n\n // `dist` mode\n if (mode === 'dist') {\n return nextValue;\n }\n\n // `unit` mode may need another round\n if (Math.abs(offset) > 1) {\n var cloneValues = _toConsumableArray(values);\n cloneValues[valueIndex] = nextValue;\n return offsetValue(cloneValues, offset - sign, valueIndex, mode);\n }\n return nextValue;\n } else if (offset === 'min') {\n return min;\n } else if (offset === 'max') {\n return max;\n }\n };\n\n /** Same as `offsetValue` but return `changed` mark to tell value changed */\n var offsetChangedValue = function offsetChangedValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var originValue = values[valueIndex];\n var nextValue = offsetValue(values, offset, valueIndex, mode);\n return {\n value: nextValue,\n changed: nextValue !== originValue\n };\n };\n var needPush = function needPush(dist) {\n return pushable === null && dist === 0 || typeof pushable === 'number' && dist < pushable;\n };\n\n // Values\n var offsetValues = function offsetValues(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var nextValues = values.map(formatValue);\n var originValue = nextValues[valueIndex];\n var nextValue = offsetValue(nextValues, offset, valueIndex, mode);\n nextValues[valueIndex] = nextValue;\n if (allowCross === false) {\n // >>>>> Allow Cross\n var pushNum = pushable || 0;\n\n // ============ AllowCross ===============\n if (valueIndex > 0 && nextValues[valueIndex - 1] !== originValue) {\n nextValues[valueIndex] = Math.max(nextValues[valueIndex], nextValues[valueIndex - 1] + pushNum);\n }\n if (valueIndex < nextValues.length - 1 && nextValues[valueIndex + 1] !== originValue) {\n nextValues[valueIndex] = Math.min(nextValues[valueIndex], nextValues[valueIndex + 1] - pushNum);\n }\n } else if (typeof pushable === 'number' || pushable === null) {\n // >>>>> Pushable\n // =============== Push ==================\n\n // >>>>>> Basic push\n // End values\n for (var i = valueIndex + 1; i < nextValues.length; i += 1) {\n var changed = true;\n while (needPush(nextValues[i] - nextValues[i - 1]) && changed) {\n var _offsetChangedValue = offsetChangedValue(nextValues, 1, i);\n nextValues[i] = _offsetChangedValue.value;\n changed = _offsetChangedValue.changed;\n }\n }\n\n // Start values\n for (var _i = valueIndex; _i > 0; _i -= 1) {\n var _changed = true;\n while (needPush(nextValues[_i] - nextValues[_i - 1]) && _changed) {\n var _offsetChangedValue2 = offsetChangedValue(nextValues, -1, _i - 1);\n nextValues[_i - 1] = _offsetChangedValue2.value;\n _changed = _offsetChangedValue2.changed;\n }\n }\n\n // >>>>> Revert back to safe push range\n // End to Start\n for (var _i2 = nextValues.length - 1; _i2 > 0; _i2 -= 1) {\n var _changed2 = true;\n while (needPush(nextValues[_i2] - nextValues[_i2 - 1]) && _changed2) {\n var _offsetChangedValue3 = offsetChangedValue(nextValues, -1, _i2 - 1);\n nextValues[_i2 - 1] = _offsetChangedValue3.value;\n _changed2 = _offsetChangedValue3.changed;\n }\n }\n\n // Start to End\n for (var _i3 = 0; _i3 < nextValues.length - 1; _i3 += 1) {\n var _changed3 = true;\n while (needPush(nextValues[_i3 + 1] - nextValues[_i3]) && _changed3) {\n var _offsetChangedValue4 = offsetChangedValue(nextValues, 1, _i3 + 1);\n nextValues[_i3 + 1] = _offsetChangedValue4.value;\n _changed3 = _offsetChangedValue4.changed;\n }\n }\n }\n return {\n value: nextValues[valueIndex],\n values: nextValues\n };\n };\n return [formatValue, offsetValues];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","import Slider from \"./Slider\";\nexport default Slider;","import range_ from 'lodash/range';\n\nexport const prepareAvailableValues = (availableValues?: number[]): number[] | undefined => {\n if (!availableValues || !availableValues.length) {\n return undefined;\n }\n\n return [...availableValues].sort((v1, v2) => v1 - v2);\n};\n\nexport const prepareValue = ({\n value = 0,\n min = 0,\n max = 100,\n}: {\n value?: number;\n min?: number;\n max?: number;\n}) => {\n if (value > max) {\n return max;\n }\n if (value < min) {\n return min;\n }\n\n return value;\n};\n\nexport const getInfoPoints = ({\n infoPointsCount,\n min,\n max,\n values,\n}: {\n infoPointsCount: number;\n min: number;\n max: number;\n values?: number[];\n}) => {\n let mapInfoPoints;\n\n if (values && infoPointsCount >= values.length) {\n return values;\n }\n\n if (infoPointsCount < 1) {\n return [];\n }\n\n if (infoPointsCount === 1) {\n return [min];\n }\n\n if (!values || !values.length) {\n const step = Math.abs(max - min) / (infoPointsCount - 1);\n mapInfoPoints = (el: number): number => Math.round((min + step * el) * 100) / 100;\n } else {\n const step = values.length / infoPointsCount;\n mapInfoPoints = (el: number, i: number, arr: number[]) => {\n let index = Math.ceil(el * step);\n if (i === arr.length - 1) {\n // to make sure if the last point is equal to the last available value\n index = values.length - 1;\n }\n return values[index];\n };\n }\n\n return range_(0, infoPointsCount).map(mapInfoPoints);\n};\n\nexport const getParsedValue = (textValue: string, parse?: (value: string) => number): number => {\n return parse ? parse(textValue) : parseFloat(textValue);\n};\n\nexport const getTextValue = (value: number, format?: (value: number) => string): string => {\n return format ? format(value) : value.toString();\n};\n\nexport const getClosestValue = (value: number, values?: number[]): number => {\n if (!values || !values.length) {\n return value;\n }\n\n let low = 0;\n let hi = values.length - 1;\n\n while (hi - low > 1) {\n const mid = Math.floor((low + hi) / 2);\n if (values[mid] < value) {\n low = mid;\n } else {\n hi = mid;\n }\n }\n\n const left = values[low];\n const right = values[hi];\n return value - left <= right - value ? left : right;\n};\n","export const LEFT_INFO_POINT_STYLE = {\n position: 'static',\n marginLeft: 0,\n display: 'flex',\n verticalAlign: 'none',\n textAlign: 'none',\n};\n\nexport const RIGHT_INFO_POINT_STYLE = {\n position: 'static',\n marginLeft: 0,\n display: 'flex',\n verticalAlign: 'none',\n textAlign: 'none',\n flexDirection: 'row-reverse',\n};\n","import React, {Component, ReactElement} from 'react';\nimport block from 'bem-cn-lite';\n\nimport Slider, {type SliderProps, type SliderRef} from 'rc-slider';\nimport {IconProps, TextInput, TextInputSize} from '@gravity-ui/uikit';\nimport debounce_ from 'lodash/debounce';\n// eslint-disable-next-line lodash/import-scope\nimport type {DebouncedFunc} from 'lodash';\n\nimport {\n getClosestValue,\n getInfoPoints,\n getParsedValue,\n getTextValue,\n prepareAvailableValues,\n prepareValue,\n} from './utils';\nimport {LEFT_INFO_POINT_STYLE, RIGHT_INFO_POINT_STYLE} from './constants';\n\nimport './RangeInputPicker.scss';\n\nconst b = block('yc-range-input-picker');\n\ninterface RangeInputPickerDefaultProps {\n value?: number;\n minValue?: number;\n maxValue?: number;\n size?: TextInputSize;\n placeholder?: string;\n debounceDelay?: number;\n infoPointsCount?: number;\n step?: number;\n disabled?: boolean;\n readOnly?: boolean;\n autoFocus?: boolean;\n}\n\nexport interface RangeInputPickerGeneralProps {\n onUpdate?: (value: number) => void;\n onAfterUpdate?: (value: number) => void;\n onOutsideClick?: (value: number) => void;\n displayFormat?: (value?: number) => string;\n format?: (value?: number) => string;\n parse?: (value: string) => number;\n onSubmit?: (value: number) => void;\n onBlur?: (value: number) => void;\n onFocus?: (value: number) => void;\n pattern?: string;\n iconLeft?: ReactElement<IconProps>;\n iconRight?: ReactElement<IconProps>;\n availableValues?: number[];\n className?: string;\n controlProps?: React.InputHTMLAttributes<HTMLInputElement>;\n}\n\nexport type RangeInputPickerProps = RangeInputPickerDefaultProps & RangeInputPickerGeneralProps;\n\ninterface RangeInputPickerState {\n prevProps: RangeInputPickerProps;\n textValue: string;\n currentValue: number;\n min: number;\n max: number;\n values?: number[];\n focused: boolean;\n}\n\nexport class RangeInputPicker extends Component<RangeInputPickerProps, RangeInputPickerState> {\n static defaultProps: RangeInputPickerDefaultProps = {\n size: 'm',\n placeholder: '',\n value: 0,\n minValue: 0,\n maxValue: 100,\n debounceDelay: 200,\n disabled: false,\n readOnly: false,\n autoFocus: false,\n infoPointsCount: 2,\n step: 1,\n };\n\n static getDisplayTextValue(props: RangeInputPickerProps, value?: number): string {\n const {displayFormat, format} = props;\n const formatFunc = displayFormat || format || String;\n\n return formatFunc(value);\n }\n\n static getPreparedState(props: RangeInputPickerProps, currentState?: RangeInputPickerState) {\n const {availableValues, value, minValue = 0, maxValue = 100} = props;\n const {focused = false, textValue = ''} = currentState || {};\n const values = prepareAvailableValues(availableValues);\n const min = values ? values[0] : minValue;\n const max = values ? values[values.length - 1] : maxValue;\n const actualValue = prepareValue({value, min, max});\n\n return {\n prevProps: props,\n textValue: focused ? textValue : RangeInputPicker.getDisplayTextValue(props, value),\n currentValue: actualValue,\n min,\n max,\n values,\n focused,\n };\n }\n\n static getDerivedStateFromProps(\n nextProps: RangeInputPickerProps,\n state: RangeInputPickerState,\n ) {\n if (nextProps === state.prevProps) {\n return null;\n }\n\n return RangeInputPicker.getPreparedState(nextProps, state);\n }\n\n private wrapperRef = React.createRef<HTMLDivElement>();\n private sliderRef = React.createRef<SliderRef>();\n private textInputInnerRef = React.createRef<HTMLInputElement>();\n private debouncedCallOnUpdate: DebouncedFunc<() => void>;\n private debouncedHandleOnAfterUpdate: DebouncedFunc<() => void>;\n\n constructor(props: RangeInputPickerProps) {\n super(props);\n\n this.debouncedCallOnUpdate = debounce_(this.callOnUpdate, props.debounceDelay);\n this.debouncedHandleOnAfterUpdate = debounce_(\n this.handleOnAfterUpdate,\n props.debounceDelay,\n );\n this.state = RangeInputPicker.getPreparedState(props);\n }\n\n componentDidMount() {\n const {onOutsideClick} = this.props;\n\n if (onOutsideClick) {\n document.addEventListener('touchstart', this.handleOutsideClick);\n document.addEventListener('mousedown', this.handleOutsideClick);\n }\n }\n\n componentWillUnmount() {\n this.debouncedCallOnUpdate.cancel();\n this.debouncedHandleOnAfterUpdate.cancel();\n\n document.removeEventListener('touchstart', this.handleOutsideClick);\n document.removeEventListener('mousedown', this.handleOutsideClick);\n }\n\n render() {\n const {\n placeholder,\n autoFocus,\n disabled,\n readOnly,\n // iconRight,\n // iconLeft,\n size,\n pattern,\n className,\n controlProps,\n } = this.props;\n const {currentValue, textValue, min, max, values} = this.state;\n\n let rangeInfoItems;\n let rcSliderInfoItems;\n\n // use our own info items implementation unless available values are not empty\n if (!values || !values.length) {\n rangeInfoItems = this.renderRangeInfoItems();\n } else {\n rcSliderInfoItems = this.renderInfoItems();\n }\n\n return (\n <div\n ref={this.wrapperRef}\n className={b({size}, className)}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleWrapperClick}\n >\n <TextInput\n controlRef={this.textInputInnerRef}\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n onUpdate={this.handleInputUpdate}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n value={textValue}\n autoFocus={autoFocus}\n // iconRight={iconRight}\n // iconLeft={iconLeft}\n controlProps={{readOnly, pattern, ...controlProps}}\n />\n\n <Slider\n ref={this.sliderRef}\n tabIndex={0}\n min={min}\n max={max}\n value={currentValue}\n disabled={disabled}\n onChange={this.handleSliderChange}\n step={this.step}\n marks={rcSliderInfoItems}\n onChangeComplete={this.debouncedHandleOnAfterUpdate}\n />\n\n {rangeInfoItems && (\n <div className={b('range-info-items-list')}>{rangeInfoItems}</div>\n )}\n </div>\n );\n }\n\n private get patternRegex(): RegExp | null {\n const {pattern} = this.props;\n\n if (!pattern) {\n return null;\n }\n\n return new RegExp(`^(?:${pattern})$`);\n }\n\n private get step(): number | undefined {\n const {step} = this.props;\n const {values} = this.state;\n\n return !values || !values.length ? step : undefined;\n }\n\n private callOnUpdate = () => {\n const {onUpdate} = this.props;\n const {currentValue} = this.state;\n\n if (onUpdate) {\n onUpdate(currentValue);\n }\n };\n\n private prepareChange = (textValue: string): number => {\n const {parse} = this.props;\n const {values, min, max, currentValue} = this.state;\n let value = getParsedValue(textValue, parse);\n\n if (isNaN(value)) {\n value = currentValue;\n }\n\n let actualValue = prepareValue({value, min, max});\n\n if (values && values.length) {\n actualValue = getClosestValue(actualValue, values);\n }\n\n return actualValue;\n };\n\n private handleOnAfterUpdate = () => {\n const {onAfterUpdate} = this.props;\n const {currentValue} = this.state;\n\n if (onAfterUpdate) {\n onAfterUpdate(currentValue);\n }\n };\n\n private handleInputBlur = (event: React.FocusEvent<HTMLSpanElement>) => {\n event.preventDefault();\n\n const {onBlur} = this.props;\n const {textValue} = this.state;\n\n const actualValue = this.prepareChange(textValue);\n\n this.setState(\n {\n focused: false,\n currentValue: actualValue,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, actualValue),\n },\n () => {\n if (onBlur) {\n onBlur(actualValue);\n }\n },\n );\n };\n\n private handleInputFocus = () => {\n const {format, onFocus} = this.props;\n const {currentValue} = this.state;\n\n this.setState(\n {\n textValue: getTextValue(currentValue, format),\n },\n () => {\n if (onFocus) {\n onFocus(currentValue);\n }\n },\n );\n };\n\n private handleInputUpdate = (newValue: string) => {\n if (this.patternRegex && !this.patternRegex.test(newValue)) {\n return;\n }\n\n const actualValue = this.prepareChange(newValue);\n\n this.setState(\n {\n currentValue: actualValue,\n textValue: newValue,\n },\n this.debouncedCallOnUpdate,\n );\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== 'Enter') {\n return;\n }\n\n const {format, onSubmit} = this.props;\n const {textValue} = this.state;\n const actualValue = this.prepareChange(textValue);\n\n this.setState(\n {\n currentValue: actualValue,\n textValue: getTextValue(actualValue, format),\n focused: false,\n },\n () => {\n if (this.textInputInnerRef.current) {\n this.textInputInnerRef.current.blur();\n }\n\n if (onSubmit) {\n onSubmit(actualValue);\n }\n },\n );\n };\n\n private handleSliderChange: SliderProps['onChange'] = (newValue) => {\n if (typeof newValue === 'number') {\n const {min, max, values} = this.state;\n\n const value = getClosestValue(prepareValue({min, max, value: newValue}), values);\n\n this.setState(\n {\n currentValue: value,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, value),\n },\n this.debouncedCallOnUpdate,\n );\n }\n };\n\n private handleWrapperClick = (event: React.MouseEvent<HTMLDivElement>) => {\n // TODO: написать свои тайпинги для Slider, т.к. родные описаны некорректно\n // @ts-ignore\n const slider = this.sliderRef.current && this.sliderRef.current.sliderRef;\n const isSliderContainsTarget = slider && slider.contains(event.target as Node);\n\n if (!isSliderContainsTarget) {\n this.setState({focused: true});\n }\n };\n\n private handleInfoPointClick = (value: number) => {\n return (event: React.MouseEvent<HTMLAnchorElement>) => {\n const {format, parse} = this.props;\n\n event.preventDefault();\n\n const val = getParsedValue(getTextValue(value, format), parse);\n\n this.setState(\n {\n currentValue: val,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, val),\n },\n () => {\n const {onUpdate, onAfterUpdate} = this.props;\n\n if (onUpdate) {\n onUpdate(val);\n }\n\n if (onAfterUpdate) {\n onAfterUpdate(val);\n }\n },\n );\n };\n };\n\n private handleOutsideClick = (event: Event) => {\n const {onOutsideClick} = this.props;\n const {currentValue, focused} = this.state;\n const wrapper = this.wrapperRef.current;\n\n if (!onOutsideClick || !wrapper) {\n return;\n }\n\n if (!wrapper.contains(event.target as Node) && focused) {\n this.setState(\n {\n focused: false,\n },\n () => {\n if (onOutsideClick) {\n onOutsideClick(currentValue);\n }\n },\n );\n }\n };\n\n private renderItem = (value: number): string =>\n RangeInputPicker.getDisplayTextValue(this.props, value);\n\n private renderRangeItem = (value: number): JSX.Element => (\n <span\n key={value}\n className={b('range-info-item')}\n onClick={this.handleInfoPointClick(value)}\n >\n {RangeInputPicker.getDisplayTextValue(this.props, value)}\n </span>\n );\n\n private renderRangeInfoItems = () => {\n const {infoPointsCount = 2, minValue = 0, maxValue = 100} = this.props;\n const {values} = this.state;\n\n if (infoPointsCount < 1) {\n return [];\n }\n\n let infoItems: number[] = [];\n\n if (infoPointsCount === 1) {\n infoItems.push(minValue);\n } else if (!values || !values.length) {\n const step = Math.abs(maxValue - minValue) / (infoPointsCount - 1);\n\n for (let i = 0; i < infoPointsCount; i++) {\n const point = Math.round((minValue + step * i) * 100) / 100;\n\n infoItems.push(point);\n }\n } else {\n infoItems = values;\n }\n\n const pointsCount = infoItems.length;\n const unit = 100 / (pointsCount - 1);\n const pointWidth = unit * 0.9;\n const pointsRange = maxValue - minValue;\n\n return infoItems.map((point, i) => {\n const style = {\n width: pointWidth + '%',\n marginLeft: -pointWidth / 2 + '%',\n left: ((point - minValue) / pointsRange) * 100 + '%',\n };\n\n if (i === 0) {\n Object.assign(style, LEFT_INFO_POINT_STYLE);\n } else if (i === infoItems.length - 1) {\n Object.assign(style, RIGHT_INFO_POINT_STYLE);\n }\n\n return (\n <span className={b('range-info-item-container')} style={style} key={point}>\n {this.renderRangeItem(point)}\n </span>\n );\n });\n };\n\n private renderInfoItems = () => {\n const {infoPointsCount = 2} = this.props;\n const {values, min, max} = this.state;\n\n const points = getInfoPoints({infoPointsCount, min, max, values});\n\n const infoItems = points.reduce<NonNullable<SliderProps['marks']>>((acc, point: number) => {\n acc[point] = {label: this.renderItem(point), style: {}};\n\n return acc;\n }, {});\n\n return infoItems;\n };\n}\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport indexOf_ from 'lodash/indexOf';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\n\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport format from '../../../../common/hammer/format';\nimport {YTPermissionTypeUI} from '../../../../utils/acl/acl-api';\n\nimport './PermissionsControl.scss';\n\nconst block = cn('acl-permissions-control');\n\ninterface Props {\n value: Record<string, Array<YTPermissionTypeUI>>;\n onChange: (value: Props['value']) => void;\n disabled?: boolean;\n choices?: Array<Array<YTPermissionTypeUI>>;\n disabledChoices?: Array<number>; // array of indices\n validate?: (value: Props['value']) => string | undefined;\n\n error?: string;\n}\n\ninterface State {\n errorMessage?: string;\n}\n\nexport default class PermissionsControl extends Component<Props, State> {\n static getChoiceName(choice: Array<string>) {\n return choice.join('/');\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static hasErrorRenderer = true;\n\n static getDefaultValue = () => ({});\n static isEmpty(value: Props['value']) {\n return isEmpty_(value);\n }\n\n state: State = {};\n\n handleCheckboxChange = (\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n ) => {\n const {value, onChange} = this.props;\n const {[permissionName]: permissions, ...rest} = value || {};\n\n const updatedValue = permissions ? rest : {...rest, [permissionName]: permissionsToSet};\n onChange(updatedValue);\n };\n\n renderPermissionCheckbox(\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n index: number,\n ) {\n const {value, disabled, disabledChoices} = this.props;\n const itemDisabled = disabled || indexOf_(disabledChoices, index) !== -1;\n\n return (\n <Checkbox\n checked={Boolean(value?.[permissionName])}\n key={permissionName}\n content={format.ReadableField(permissionName)}\n onChange={() => this.handleCheckboxChange(permissionName, permissionsToSet)}\n disabled={itemDisabled}\n className={block('item')}\n />\n );\n }\n\n renderChoices(choices?: Required<Props>['choices']) {\n return map_(choices, (item, index) => {\n const name = PermissionsControl.getChoiceName(item);\n return (\n <React.Fragment key={index}>\n {this.renderPermissionCheckbox(name, item, index)}\n </React.Fragment>\n );\n });\n }\n\n render() {\n const {choices, error} = this.props;\n\n return (\n <div className={block()}>\n {this.renderChoices(choices)}\n {error && <div className={block('error-message')}>{error}</div>}\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport {Provider} from 'react-redux';\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport {getWindowStore} from '../../store/window-store';\n\nexport function AppStoreProvider({children}: {children: React.ReactNode}) {\n return (\n <Provider store={getWindowStore()}>\n <ErrorBoundary>{children}</ErrorBoundary>\n </Provider>\n );\n}\n","import React, {Component, FocusEvent, Key, KeyboardEvent, MouseEvent} from 'react';\nimport {connect} from 'react-redux';\nimport ReactList from 'react-list';\nimport block from 'bem-cn-lite';\nimport key from 'hotkeys-js';\n\nimport debounce_ from 'lodash/debounce';\nimport find_ from 'lodash/find';\nimport isEmpty_ from 'lodash/isEmpty';\n\nimport {Popup, TextInput} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport ErrorMessage from '../../components/ErrorMessage/ErrorMessage';\n\nimport {\n filterByCurrentPath,\n getCompletedPath,\n getIconNameForType,\n getNextSelectedIndex,\n getPrevSelectedIndex,\n} from '../../utils/navigation/path-editor';\nimport {\n loadSuggestionsList,\n removeActiveRequests,\n} from '../../store/actions/navigation/path-editor/path-editor';\nimport {RootState} from '../../store/reducers';\nimport {KeyCode} from '../../constants/index';\n\nimport './PathEditor.scss';\n\ninterface Suggestion {\n parentPath: string;\n childPath: string;\n path: string;\n targetPathBroken?: boolean;\n type?: string;\n dynamic?: unknown;\n}\n\ntype SuggestionFilter = (suggestions: Suggestion[]) => Suggestion[];\n\nexport interface EventPayload {\n path: string;\n}\n\nexport interface PathEditorProps {\n suggestions: Suggestion[];\n suggestionsError?: boolean;\n errorMessage?: string;\n loadSuggestionsList: (path: string, customFilter?: SuggestionFilter) => void;\n removeActiveRequests: () => void;\n // from parent component\n className?: string;\n placeholder?: string;\n defaultPath?: string;\n disabled?: boolean;\n autoFocus?: boolean;\n hasClear?: boolean;\n showErrors?: boolean;\n customFilter?: SuggestionFilter;\n onChange?: (newPath: string) => void;\n onFocus?: (e: FocusEvent<HTMLInputElement>, payload: EventPayload) => void;\n onBlur?: (path: string) => void;\n onApply?: (newPath: string) => void;\n onCancel?: () => void;\n}\n\ninterface PathEditorState {\n path: string;\n actualSuggestions: Suggestion[];\n inputFocus: boolean;\n inputChange: boolean;\n selectedIndex: number;\n}\n\nconst debounceTime = 300;\nconst b = block('path-editor');\n\nexport class PathEditor extends Component<PathEditorProps, PathEditorState> {\n static defaultProps: Partial<PathEditorProps> = {\n errorMessage: 'Oops, something went wrong',\n placeholder: 'Enter the path...',\n suggestionsError: false,\n autoFocus: false,\n showErrors: true,\n defaultPath: undefined,\n disabled: false,\n hasClear: false,\n };\n\n static getDerivedStateFromProps(props: PathEditorProps, state: PathEditorState) {\n const res = {};\n if (state.inputFocus && state.inputChange) {\n Object.assign(res, {\n actualSuggestions: props.suggestions.length\n ? filterByCurrentPath(state.path, props.suggestions)\n : [],\n });\n }\n\n if (state.path === undefined && props.defaultPath !== undefined) {\n Object.assign(res, {\n path: props.defaultPath,\n });\n }\n\n return isEmpty_(res) ? null : res;\n }\n\n state: PathEditorState;\n\n private suggestionsList = React.createRef<HTMLDivElement>();\n private input = React.createRef<HTMLInputElement>();\n private prevScope = '';\n\n constructor(props: PathEditorProps) {\n super(props);\n\n this.debounceLoading = debounce_(this.debounceLoading, debounceTime);\n\n this.state = {\n path: props.defaultPath ?? '',\n actualSuggestions: [],\n inputFocus: false,\n inputChange: false,\n selectedIndex: -1,\n };\n }\n\n componentDidMount() {\n const {loadSuggestionsList, customFilter, autoFocus} = this.props;\n const {path} = this.state;\n\n this.prevScope = key.getScope();\n if (path) {\n loadSuggestionsList(path, customFilter);\n }\n if (autoFocus) {\n this._setFocus();\n }\n }\n\n componentDidUpdate(prevProps: PathEditorProps) {\n if (prevProps.disabled && !this.props.disabled && this.input.current) {\n this._setFocus();\n }\n }\n\n componentWillUnmount() {\n this.props.removeActiveRequests();\n }\n\n _setFocus() {\n this.input.current?.focus();\n }\n\n get inputWidth() {\n // Is there a way to avoid using private _control property?\n return this.input.current && this.input.current.offsetWidth - 2;\n }\n\n /**\n * @deprecated Please replace usages of it to direct call.\\\n * For example: use `onFocus?.(event, payload)` instead `callCallback(onFocus, [event, payload])`.\\\n * Also, pass event as first agument of callback.\n */\n callCallback<T extends unknown[] = unknown[]>(\n cb: undefined | ((...args: T) => unknown),\n ...params: T\n ) {\n if (typeof cb === 'function') {\n return cb(...params);\n }\n\n return undefined;\n }\n\n debounceLoading(path: string) {\n const {loadSuggestionsList, customFilter, onChange} = this.props;\n\n loadSuggestionsList(path, customFilter);\n this.callCallback(onChange, path);\n }\n\n hideSuggestions = () => {\n this.setState({inputFocus: false, selectedIndex: -1});\n };\n\n selectPrevSuggestion() {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const prevIndex = getPrevSelectedIndex(actualSuggestions, selectedIndex);\n this.setState({selectedIndex: prevIndex});\n }\n\n selectNextSuggestion() {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const nextIndex = getNextSelectedIndex(actualSuggestions, selectedIndex);\n this.setState({selectedIndex: nextIndex});\n }\n\n handleInputChange = (path: string) => {\n this.setState({path, selectedIndex: -1, inputChange: true});\n this.debounceLoading(path);\n };\n\n handleInputFocus = (e: FocusEvent<HTMLInputElement>) => {\n const {onFocus} = this.props;\n const {path} = this.state;\n\n key.setScope('path-editor');\n this.setState({inputFocus: true});\n onFocus?.(e, {path});\n };\n\n handleInputBlur = () => {\n const {onBlur} = this.props;\n const {path} = this.state;\n\n key.setScope(this.prevScope);\n this.hideSuggestions();\n this.callCallback(onBlur, path);\n };\n\n handleEnterClick(event: KeyboardEvent<HTMLInputElement>) {\n event.preventDefault();\n\n const {selectedIndex, actualSuggestions} = this.state;\n const {onApply} = this.props;\n const inputPath = event.currentTarget.value;\n\n if (selectedIndex === -1) {\n this.setState({path: inputPath, selectedIndex: -1});\n this.callCallback(onApply, inputPath);\n } else {\n const suggestion = find_(actualSuggestions, (_, index) => index === selectedIndex);\n const completedPath = getCompletedPath(suggestion);\n\n this.handleInputChange(completedPath);\n }\n }\n\n handleEscClick() {\n const {onCancel} = this.props;\n\n this.input.current?.blur();\n this.callCallback(onCancel);\n }\n\n handleTabClick(event: KeyboardEvent<HTMLInputElement>) {\n event.preventDefault();\n const {actualSuggestions} = this.state;\n\n if (actualSuggestions.length === 1) {\n const completedPath = getCompletedPath(actualSuggestions[0]);\n\n this.handleInputChange(completedPath);\n } else if (actualSuggestions.length > 1) {\n this.selectNextSuggestion();\n }\n }\n\n handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n const key = event.keyCode;\n\n switch (key) {\n case KeyCode.ARROW_DOWN:\n this.selectNextSuggestion();\n break;\n case KeyCode.ARROW_UP:\n this.selectPrevSuggestion();\n break;\n case KeyCode.ENTER:\n this.handleEnterClick(event);\n break;\n case KeyCode.ESCAPE:\n this.handleEscClick();\n break;\n case KeyCode.TAB:\n this.handleTabClick(event);\n break;\n }\n };\n\n renderInput() {\n const {placeholder, autoFocus, hasClear, disabled} = this.props;\n const {path} = this.state;\n\n return (\n <TextInput\n onKeyDown={this.handleKeyDown}\n onUpdate={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n placeholder={placeholder}\n hasClear={hasClear}\n autoFocus={autoFocus}\n disabled={disabled}\n controlRef={this.input}\n value={path}\n />\n );\n }\n\n renderItem = (index: number, key: Key) => {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const item = actualSuggestions[index];\n const {type, dynamic} = item;\n const iconType = type === 'table' && dynamic ? 'table_dynamic' : type;\n const completedPath = getCompletedPath(item);\n const isSelected = index === selectedIndex ? 'yes' : 'no';\n const iconName = getIconNameForType(iconType, item.targetPathBroken);\n\n const mouseDownHandler = (event: MouseEvent<HTMLDivElement>) => {\n this.handleInputChange(completedPath);\n event.preventDefault();\n };\n\n return (\n <div\n key={key}\n onMouseDown={mouseDownHandler}\n className={b('item', {selected: isSelected})}\n >\n <Icon awesome={iconName} />\n\n <span className={b('item-path')}>{item.path}</span>\n </div>\n );\n };\n\n renderSuggestions() {\n const {actualSuggestions} = this.state;\n\n return actualSuggestions.length ? (\n <ReactList\n itemRenderer={this.renderItem}\n length={actualSuggestions.length}\n type=\"simple\"\n />\n ) : null;\n }\n\n renderError() {\n const {errorMessage} = this.props;\n\n if (!errorMessage) {\n return;\n }\n\n return <ErrorMessage className={b('item', {error: true})} message={errorMessage} />;\n }\n\n renderPopup() {\n const {suggestionsError, showErrors} = this.props;\n const {actualSuggestions, inputFocus} = this.state;\n\n const width = this.inputWidth || 0;\n const isVisible = Boolean(\n (actualSuggestions.length || (suggestionsError && showErrors)) && inputFocus,\n );\n const content =\n suggestionsError && showErrors ? this.renderError() : this.renderSuggestions();\n\n return (\n <Popup\n className={b('popup')}\n placement={['bottom-start', 'top-start']}\n onClose={this.hideSuggestions}\n anchorRef={this.input}\n open={isVisible}\n offset={[0, 0]}\n >\n <div className={b('items')} style={{width}} ref={this.suggestionsList}>\n {content}\n </div>\n </Popup>\n );\n }\n\n render() {\n return (\n <div className={b(null, this.props.className)}>\n {this.renderInput()}\n {this.renderPopup()}\n </div>\n );\n }\n}\n\nconst mapStateToProps = ({navigation}: RootState) => ({\n suggestions: navigation.pathEditor.suggestions,\n suggestionsError: navigation.pathEditor.suggestionsError,\n errorMessage: navigation.pathEditor.errorMessage,\n});\n\nexport default connect(mapStateToProps, {\n loadSuggestionsList,\n removeActiveRequests,\n})(PathEditor);\n","import {FETCH_SUGGESTIONS} from '../../../../constants/navigation/path-editor';\nimport {\n loadSuggestions,\n pathEditorRequests,\n preparePath,\n} from '../../../../utils/navigation/path-editor';\n\nexport function loadSuggestionsList(path, customFilter) {\n return (dispatch, getState) => {\n const {suggestionsPath, suggestionsLoaded} = getState().navigation.pathEditor;\n let currentParentPath;\n\n try {\n currentParentPath = preparePath(path);\n } catch (error) {\n return dispatch({\n type: FETCH_SUGGESTIONS.FAILURE,\n data: {message: error.message},\n });\n }\n\n if (suggestionsPath === currentParentPath && suggestionsLoaded) {\n return;\n }\n dispatch({type: FETCH_SUGGESTIONS.REQUEST});\n\n return loadSuggestions(path, customFilter)\n .then((suggestions) => {\n dispatch({\n type: FETCH_SUGGESTIONS.SUCCESS,\n data: {suggestions, path, currentParentPath},\n });\n })\n .catch((error) => {\n dispatch({\n type: FETCH_SUGGESTIONS.FAILURE,\n data: {message: error.message},\n });\n });\n };\n}\n\nexport function removeActiveRequests() {\n return (dispatch) => {\n pathEditorRequests.removeAllRequests();\n dispatch({type: FETCH_SUGGESTIONS.CANCELLED});\n };\n}\n","import React from 'react';\nimport {useDispatch} from 'react-redux';\n\nimport {loadPoolTreesIfNotLoaded} from '../store/actions/global';\nimport {loadDefaultPoolTree} from '../utils/poolTrees';\n\nexport function usePoolTreesLoaded() {\n const dispatch = useDispatch();\n\n React.useEffect(() => {\n dispatch(loadPoolTreesIfNotLoaded());\n }, [dispatch]);\n}\n\nexport function PoolTreesLoader() {\n usePoolTreesLoaded();\n return null;\n}\n\nexport function useDefaultPoolTree() {\n const [defaultPoolTree, setDefaultPoolTree] = React.useState<string | undefined>();\n\n React.useEffect(() => {\n loadDefaultPoolTree().then((value) => {\n setDefaultPoolTree(value);\n });\n }, []);\n\n return defaultPoolTree;\n}\n\nexport function WaitForDefaultPoolTree({\n children,\n}: {\n children: ({defaultPoolTree}: {defaultPoolTree: string}) => React.ReactNode;\n}) {\n const defaultPoolTree = useDefaultPoolTree();\n\n return defaultPoolTree ? children({defaultPoolTree}) : null;\n}\n","import React from 'react';\nimport {connect} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport differenceBy_ from 'lodash/differenceBy';\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\n\nimport {DropdownMenu} from '@gravity-ui/uikit';\n\nimport {TabFieldVertical, TabFieldVerticalProps} from '../../../../../components/Dialog';\n\nimport Button from '../../../../../components/Button/Button';\nimport Icon, {IconName} from '../../../../../components/Icon/Icon';\n\nimport {\n setCreateTableColumnsOrder,\n setCreateTableKeyColumns,\n} from '../../../../../store/actions/navigation/modals/create-table';\nimport {ArrayElement} from '../../../../../types';\nimport {Tooltip} from '../../../../../components/Tooltip/Tooltip';\n\nimport './CreateTableTabField.scss';\n\nconst block = cn('create-table-tab-field');\n\nexport const ASCENDING = 1;\nexport const DESCENDING = -1;\n\ninterface CWProps {\n onAddColumn: (active: boolean, opts: {duplicate: boolean}) => void;\n setKeyColumns: (v: CWState['keyColumns']) => void;\n setColumnsOrder: (v: CWState['orderedTabItems']) => void;\n}\n\ninterface CWState {\n tabItems: Props['tabItems'];\n orderedTabItems: Array<TabItem>;\n keyColumns: Record<string, typeof ASCENDING | typeof DESCENDING>;\n}\n\ntype TabItem = ArrayElement<Props['tabItems']>;\n\nclass ColumnsWrapper extends React.Component<Props & CWProps, CWState> {\n static getDerivedStateFromProps(props: Props, prevState: CWState) {\n const {tabItems} = props;\n const {tabItems: prevTabItems, orderedTabItems: prevOrderedTabItems} = prevState;\n\n const res: Partial<CWState> = {};\n\n if (tabItems !== prevTabItems) {\n const tabItemsMap: Record<string, TabItem> = {};\n forEach_(tabItems, (item) => {\n tabItemsMap[item.id] = item;\n });\n\n const itemsToAdd = differenceBy_(tabItems, prevTabItems, ({id}) => id);\n const idsToRemove = new Set<string>(\n differenceBy_(prevTabItems, tabItems, ({id}) => id).map((item) => item.id),\n );\n\n const filtered = filter_(prevOrderedTabItems, ({id}) => !idsToRemove.has(id));\n const orderedTabItems = map_(filtered, ({id}) => ({\n ...tabItemsMap[id],\n }));\n\n res.tabItems = tabItems;\n res.orderedTabItems = orderedTabItems.concat(itemsToAdd);\n }\n\n return isEmpty_(res) ? null : res;\n }\n\n state: CWState = {\n tabItems: [],\n orderedTabItems: [],\n keyColumns: {},\n };\n\n setKeyColumns(keyColumns: CWState['keyColumns']) {\n this.setState({keyColumns});\n this.props.setKeyColumns(keyColumns);\n }\n\n setOrderedTabItems(orderedTabItems: CWState['orderedTabItems']) {\n this.setState({orderedTabItems});\n this.props.setColumnsOrder(orderedTabItems);\n }\n\n onOrderChanged = (order: CWState['orderedTabItems'], newIndex: number, oldIndex: number) => {\n if (newIndex === oldIndex) {\n return;\n }\n\n let {keyColumns} = this.state;\n const moved = order[newIndex];\n\n if (newIndex < oldIndex) {\n const next = order[newIndex + 1];\n if (!keyColumns[moved.id] && keyColumns[next.id]) {\n keyColumns = {...keyColumns};\n keyColumns[moved.id] = 1;\n this.setKeyColumns(keyColumns);\n }\n } else {\n const prev = order[newIndex - 1];\n if (keyColumns[moved.id] && !keyColumns[prev.id]) {\n keyColumns = {...keyColumns};\n delete keyColumns[moved.id];\n this.setKeyColumns(keyColumns);\n }\n }\n this.setOrderedTabItems(order);\n };\n\n toggleKeyColumn = (item: TabItem, value?: CWState['keyColumns']['']) => {\n const keyColumns = {...this.state.keyColumns};\n if (!value) {\n delete keyColumns[item.id];\n } else {\n keyColumns[item.id] = value;\n }\n\n const orderedTabItems = sortBy_(this.state.orderedTabItems, ({id}) => !keyColumns[id]);\n this.setKeyColumns(keyColumns);\n this.setOrderedTabItems(orderedTabItems);\n };\n\n onCloneColumn = () => {\n // The timeout is required to select the tab by click\n setTimeout(() => {\n const {onAddColumn} = this.props;\n onAddColumn(false, {duplicate: true});\n }, 1);\n };\n\n renderKeyIcon = (node: React.ReactNode, item: TabItem) => {\n const {keyColumns} = this.state;\n const current = keyColumns[item.id];\n\n const {icon, title} = (\n !current\n ? {icon: 'sort-alt', title: 'Unordered'}\n : current === DESCENDING\n ? {icon: 'sort-amount-up', title: 'Descending'}\n : {icon: 'sort-amount-down-alt', title: 'Ascending'}\n ) as {icon: IconName; title: string};\n\n return (\n <React.Fragment>\n {node}\n <Tooltip content={'Clone'}>\n <Button view={'flat'} onClick={this.onCloneColumn}>\n <Icon awesome={'clone'} />\n </Button>\n </Tooltip>\n <DropdownMenu\n items={[\n {\n icon: <Icon awesome={'sort-alt'} />,\n active: !current,\n text: 'Unordered',\n action: () => this.toggleKeyColumn(item, undefined),\n },\n {\n icon: <Icon awesome={'sort-amount-up'} />,\n active: current === DESCENDING,\n text: 'Descending',\n action: () => this.toggleKeyColumn(item, DESCENDING),\n },\n {\n icon: <Icon awesome={'sort-amount-down-alt'} />,\n active: current === ASCENDING,\n text: 'Ascending',\n action: () => this.toggleKeyColumn(item, ASCENDING),\n },\n ]}\n switcher={\n <Tooltip content={title}>\n <Button view={'flat'}>\n <Icon awesome={icon} className={block('sort-icon')} />\n </Button>\n </Tooltip>\n }\n />\n </React.Fragment>\n );\n };\n\n onMoveTab = ({oldIndex, newIndex}: {oldIndex: number; newIndex: number}) => {\n const newTabItems = [...this.state.orderedTabItems];\n\n const itemToMove = newTabItems[oldIndex];\n newTabItems.splice(oldIndex, 1);\n newTabItems.splice(newIndex, 0, itemToMove);\n\n this.onOrderChanged(newTabItems, newIndex, oldIndex);\n };\n\n render() {\n const {activeTab, ...rest} = this.props;\n const {orderedTabItems} = this.state;\n\n return (\n <TabFieldVertical\n {...rest}\n activeTab={activeTab}\n tabItems={orderedTabItems}\n size={'m'}\n sortable={true}\n onOrderChanged={this.onMoveTab}\n wrapTo={this.renderKeyIcon}\n />\n );\n }\n}\n\nconst mapDispatchToProps = {\n setKeyColumns: setCreateTableKeyColumns,\n setColumnsOrder: setCreateTableColumnsOrder,\n};\n\nconst ColumnsWrapperConnected = connect(null, mapDispatchToProps)(ColumnsWrapper);\n\ntype Props = TabFieldVerticalProps;\n\nexport default class CreateTableTabField extends React.Component<Props> {\n static isTabControl = true as const;\n static isTabControlVertical = true;\n\n onAddColumn = (active = true, {duplicate}: {duplicate?: boolean} = {}) => {\n const {onCreateTab = () => {}} = this.props;\n onCreateTab('columns', active, {userOptions: {duplicate}});\n };\n\n renderAddColumnRow() {\n return (\n <div className={block('add-column')}>\n <span className={block('add-column-label')}>Columns</span>\n <Button onClick={() => this.onAddColumn()}>\n <Icon awesome={'plus'} />\n Add\n </Button>\n </div>\n );\n }\n\n render() {\n const {className, activeTab, tabItems, ...rest} = this.props;\n const [tableSettings, ...restItems] = tabItems;\n\n return (\n <div className={block(null, className)}>\n {this.renderAddColumnRow()}\n <ColumnsWrapperConnected\n className={block('columns')}\n {...rest}\n tabItems={restItems}\n activeTab={activeTab}\n onAddColumn={this.onAddColumn}\n />\n <TabFieldVertical\n className={block('table-settings')}\n activeTab={activeTab}\n tabItems={[tableSettings]}\n {...rest}\n virtualized={false}\n />\n </div>\n );\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport moment from 'moment';\nimport {useSelector} from 'react-redux';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {getCluster} from '../../../store/selectors/global';\n\nimport MetaTable from '../../../components/MetaTable/MetaTable';\nimport {showErrorPopup} from '../../../utils/utils';\nimport format from '../../../common/hammer/format';\n\nimport ypath from '../../../common/thor/ypath';\nimport {TYPED_OUTPUT_FORMAT} from '../../../constants';\nimport {ClickableText} from '../../../components/ClickableText/ClickableText';\nimport Link from '../../../components/Link/Link';\n\nimport './OperationShortInfo.scss';\n\nconst block = cn('operation-short-info');\n\ninterface Props {\n id: string;\n type?: string;\n output_attribute_name?: string; // example: '/@spec/output_table_path'\n}\n\nexport function OperationShortInfo(props: Props) {\n const {id, type, output_attribute_name} = props;\n\n const [operation, setOperation] = React.useState();\n\n const finishTimeRaw = ypath.getValue(operation, '/finish_time');\n React.useEffect(() => {\n if (finishTimeRaw) {\n return;\n }\n const timerId = setInterval(() => {\n yt.v3\n .getOperation({\n output_format: TYPED_OUTPUT_FORMAT,\n operation_id: id,\n })\n .then((operation: any) => {\n setOperation(operation);\n });\n }, 3000);\n return () => {\n clearInterval(timerId);\n };\n }, [finishTimeRaw, setOperation]);\n\n const cluster = useSelector(getCluster);\n const output = output_attribute_name\n ? ypath.getValue(operation, output_attribute_name) || '...'\n : '...';\n const error = ypath.getValue(operation, '/result/error');\n const code = ypath.getValue(error, '/code');\n\n const startTime = moment(ypath.getValue(operation, '/start_time'));\n const finishTime = moment(finishTimeRaw);\n const diff = finishTime.diff(startTime);\n\n return (\n <div className={block()}>\n <MetaTable\n items={[\n {\n key: 'Id',\n value: <Link url={`/${cluster}/operations/${id}`}>{id}</Link>,\n },\n {\n key: 'Type',\n value: (\n <span className={block('value')}>\n {ypath.getValue(operation, '/type') || type || '...'}\n </span>\n ),\n },\n ...(!output_attribute_name\n ? []\n : [\n {\n key: 'Output',\n value: <span title={output}>{output}</span>,\n },\n ]),\n {\n key: 'Duration',\n value: format.TimeDuration(diff),\n },\n {\n key: 'Status',\n value: (\n <OperationState state={ypath.getValue(operation, '/state') || '...'} />\n ),\n },\n ...(!code || code === '0'\n ? []\n : [\n {\n key: 'Error',\n value: (\n <ClickableText onClick={() => showErrorPopup(error)}>\n {ypath.getValue(error, '/message')}\n </ClickableText>\n ),\n },\n ]),\n ]}\n />\n </div>\n );\n}\n\nfunction OperationState({state}: {state: string}) {\n return <span className={block('state', {state})}>{state}</span>;\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport metrics from '../../../../common/utils/metrics';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport hammer from '../../../../common/hammer';\nimport CancelHelper from '../../../../utils/cancel-helper';\nimport {prepareRequest} from '../../../../utils/navigation';\nimport {TYPED_OUTPUT_FORMAT} from '../../../../constants/index';\nimport {getPath, getTransaction} from '../../../../store/selectors/navigation';\nimport {YTApiId, ytApiV3, ytApiV3Id} from '../../../../rum/rum-wrap-api';\n\nimport {\n LOAD_REPLICAS_CANCELLED,\n LOAD_REPLICAS_FAILURE,\n LOAD_REPLICAS_REQUEST,\n LOAD_REPLICAS_SUCCESS,\n} from '../../../../constants/navigation/content/replicated-table';\nimport {updateView} from '..';\n\nimport sortBy_ from 'lodash/sortBy';\n\nconst requests = new CancelHelper();\n\nexport function loadReplicas() {\n return (dispatch, getState) => {\n const state = getState();\n const path = getPath(state);\n const transaction = getTransaction(state);\n\n dispatch({type: LOAD_REPLICAS_REQUEST});\n requests.removeAllRequests();\n\n return ytApiV3Id\n .get(YTApiId.navigationRTReplicas, {\n parameters: prepareRequest('/@replicas', {\n path,\n transaction,\n output_format: TYPED_OUTPUT_FORMAT,\n }),\n cancellation: requests.saveCancelToken,\n })\n .then((data) => {\n const replicas = hammer.utils.mapToYSONList(data);\n dispatch({\n type: LOAD_REPLICAS_SUCCESS,\n data: {\n replicas: sortBy_(replicas, '$value'),\n },\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({type: LOAD_REPLICAS_CANCELLED});\n } else {\n dispatch({\n type: LOAD_REPLICAS_FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function performReplicaAction({mode, state, auto_replica_tracker, replica}) {\n return (dispatch) => {\n const prevMode = ypath.getValue(replica, '/@mode');\n const prevState = ypath.getValue(replica, '/@state');\n\n const prevAutoReplicaTracker = ypath.getValue(replica, '/@enable_replicated_table_tracker');\n\n const actionName = [\n mode !== prevMode && 'mode',\n state !== prevState && 'state',\n prevAutoReplicaTracker !== auto_replica_tracker && 'enable_replicated_table_tracker',\n ]\n .filter(Boolean)\n .join('_');\n if (!actionName) {\n return Promise.resolve();\n }\n\n metrics.countEvent({\n navigation_replicated_table_replica_action: actionName,\n });\n\n const replicaId = ypath.getValue(replica, '');\n const parameters = {\n replica_id: replicaId,\n mode,\n enabled: state === 'enabled',\n };\n\n return Promise.all([\n ytApiV3.alterTableReplica(parameters),\n prevAutoReplicaTracker === auto_replica_tracker\n ? Promise.resolve()\n : ytApiV3.set(\n {path: `#${replicaId}/@enable_replicated_table_tracker`},\n auto_replica_tracker === 'enabled',\n ),\n ]).then(() => dispatch(loadReplicas()));\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_REPLICAS_CANCELLED});\n };\n}\n\nexport function updateEnableReplicatedTableTracker(path, value) {\n return (dispatch) => {\n return yt.v3\n .set({path: path + '/@replicated_table_options/enable_replicated_table_tracker'}, value)\n .then(() => {\n dispatch(updateView());\n });\n };\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport metrics from '../../../common/utils/metrics';\nimport {navigationTrackVisit} from '../../../store/actions/favourites';\nimport {RumWrapper, YTApiId, ytApiV3, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\n\nimport {isPathAutoCorrectionSettingEnabled} from '../../../store/selectors/settings';\nimport {getPath, getTransaction} from '../../../store/selectors/navigation';\n\nimport {\n autoCorrectPath,\n cancelRequests,\n getParentPath,\n prepareRequest,\n saveRequestCancellation,\n} from '../../../utils/navigation';\nimport {prepareAttributes} from '../../../utils/index';\nimport {getBatchError} from '../../../utils/utils';\nimport {getPermissionDeniedError} from '../../../utils/errors';\n\nimport {GENERIC_ERROR_MESSAGE, TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {\n CLEAR_TRANSACTION,\n NAVIGATION_PARTIAL,\n SET_MODE,\n SET_TRANSACTION,\n Tab,\n UPDATE_PATH,\n UPDATE_VIEW,\n} from '../../../constants/navigation/index';\nimport {getCluster, getCurrentUserName} from '../../../store/selectors/global';\nimport {fetchTableMountConfig} from '../../../store/actions/navigation/content/table/table-mount-config';\nimport {checkPermissions} from '../../../utils/acl/acl-api';\nimport {getAnnotation} from './tabs/annotation';\nimport {loadTabletErrorsCount} from './tabs/tablet-errors/tablet-errors-background';\nimport {isSupportedEffectiveExpiration} from '../../../store/selectors/thor/support';\nimport {getTabs} from '../../../store/selectors/navigation/navigation';\n\nexport function updateView(settings = {}) {\n return (dispatch, getState) => {\n const state = getState();\n const currentPath = getPath(state);\n const transaction = getTransaction(state);\n\n dispatch({type: UPDATE_VIEW.REQUEST});\n // Update path for use default path and auto correct path\n const path = dispatch(updatePath(currentPath, false));\n cancelRequests();\n\n dispatch(getAnnotation());\n dispatch(loadTabletErrorsCount({path, saveCancelTokenSource: saveRequestCancellation}));\n\n const allowEffectiveExpiration = isSupportedEffectiveExpiration(state);\n\n const requestParams = {\n path,\n transaction,\n };\n\n const cluster = getCluster(state);\n\n const id = new RumWrapper(cluster, RumMeasureTypes.NAVIGATION_PRELOAD);\n\n return id\n .fetch(\n YTApiId.navigationAttributes,\n ytApiV3Id.executeBatch(\n YTApiId.navigationAttributes,\n {\n requests: [\n {command: 'get', parameters: prepareRequest('/@', requestParams)},\n {\n command: 'get',\n parameters: prepareRequest('/@', {\n ...requestParams,\n attributes: [\n 'path',\n ...(allowEffectiveExpiration\n ? ['effective_expiration']\n : []),\n ],\n }),\n },\n ],\n output_format: TYPED_OUTPUT_FORMAT,\n },\n saveRequestCancellation,\n ),\n )\n .then((results) => {\n const [attrs, {output: opaqueAttrs} = {}] = results;\n const pathError = prepareAttributes(path.error);\n if (pathError?.code === yt.codes.NODE_DOES_NOT_EXIST) {\n delete path.error;\n }\n\n const error = getBatchError(results, 'Failed to get navigation attributes');\n if (error) {\n throw error;\n }\n\n return {\n ...attrs.output,\n ...(opaqueAttrs?.effective_expiration\n ? {effective_expiration: opaqueAttrs.effective_expiration}\n : {}),\n ...(path.output ? {path: opaqueAttrs.path} : {}),\n };\n })\n .then((attributes) => {\n const preparedAttributes = prepareAttributes(attributes, {\n asHTML: false,\n });\n\n if (settings.trackVisit) {\n dispatch(navigationTrackVisit(path));\n }\n\n metrics.countEvent({\n navigation_path: {\n type: preparedAttributes.type,\n },\n });\n\n const user = getCurrentUserName(state);\n const {account} = preparedAttributes;\n\n dispatch({\n type: UPDATE_VIEW.SUCCESS,\n data: {\n attributesWithTypes: attributes,\n attributes: preparedAttributes,\n },\n });\n\n const dispatchAccountPermissions = ({\n isWriteable,\n isAccountUsable,\n checkPermissionsError,\n }) => {\n dispatch({\n type: NAVIGATION_PARTIAL,\n data: {isWriteable, isAccountUsable, checkPermissionsError},\n });\n };\n\n dispatch(fetchTableMountConfig(path));\n\n if (!account) {\n /**\n * If account is not defined we just pretend that everything is awesome\n * and the code works the same as there are no any checks of permissions.\n */\n return dispatchAccountPermissions({\n isWriteable: true,\n isAccountUsable: true,\n });\n }\n\n checkPermissions(\n [\n {\n user,\n permission: 'write',\n path,\n transaction_id: transaction,\n },\n {\n user,\n permission: 'use',\n path: `//sys/accounts/${account}`,\n transaction_id: transaction,\n },\n ],\n YTApiId.navigationCheckPermissions,\n )\n .then(([{action: writeAction}, {action: useAction}]) => {\n dispatchAccountPermissions({\n isWriteable: writeAction === 'allow',\n isAccountUsable: useAction === 'allow',\n });\n })\n .catch((checkPermissionsError) => {\n dispatchAccountPermissions({checkPermissionsError});\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({\n type: UPDATE_VIEW.CANCELLED,\n });\n } else {\n const permissionDeniedError = getPermissionDeniedError(error);\n const message = ['Error occurred when loading path.'];\n if (!permissionDeniedError) message.push(GENERIC_ERROR_MESSAGE);\n\n ytApiV3\n .exists({path: '//sys/idm/lock'})\n .catch(() => false)\n .then((isIdmSupported) => {\n dispatch({\n type: UPDATE_VIEW.FAILURE,\n data: {\n message: message.join(' '),\n details: error,\n isIdmSupported,\n },\n });\n });\n }\n });\n };\n}\n\nexport function setMode(mode) {\n return (dispatch, getState) => {\n const [firstTab] = getTabs(getState());\n\n dispatch({\n type: SET_MODE,\n data: mode === firstTab?.value ? Tab.AUTO : mode,\n });\n };\n}\n\nexport function onTransactionChange() {\n return (dispatch) => {\n dispatch(updateView({trackVisit: true}));\n // Need to update breadcrumbs dimensions after transaction change\n window.dispatchEvent(new Event('resize'));\n };\n}\n\nexport function setTransaction(transaction) {\n return (dispatch) => {\n dispatch({\n type: SET_TRANSACTION,\n data: transaction,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function clearTransaction() {\n return (dispatch) => {\n dispatch({\n type: CLEAR_TRANSACTION,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function updatePath(path, shouldUpdateContentMode = true) {\n return (dispatch, getState) => {\n const autoCorrectionEnabled = isPathAutoCorrectionSettingEnabled(getState());\n\n const correctedPath = autoCorrectionEnabled ? autoCorrectPath(path) : path;\n\n dispatch({\n type: UPDATE_PATH,\n data: {\n path: correctedPath,\n shouldUpdateContentMode,\n },\n });\n\n return correctedPath;\n };\n}\n\nexport function navigateParent() {\n return (dispatch, getState) => {\n const {path} = getState().navigation.navigation;\n const nextPath = getParentPath(path);\n dispatch(updatePath(nextPath));\n };\n}\n","// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {TABLE_MOUNT_CONFIG} from '../../../../../constants/navigation/content/table';\nimport {ThunkAction} from 'redux-thunk';\nimport {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport {RootState} from '../../../../../store/reducers';\nimport {TableMountConfigAction} from '../../../../../store/reducers/navigation/content/table/table-mount-config';\nimport {isCancelled} from '../../../../../utils/cancel-helper';\n\ntype TableMountConfigThunkAction = ThunkAction<unknown, RootState, unknown, TableMountConfigAction>;\n\nexport function fetchTableMountConfig(path: string): TableMountConfigThunkAction {\n return (dispatch) => {\n dispatch({type: TABLE_MOUNT_CONFIG.REQUEST});\n\n return ytApiV3Id\n .executeBatch(YTApiId.navigationTableMountConfig, {\n requests: [{command: 'get', parameters: {path: `${path}/@mount_config`}}],\n })\n .then(([{output, error}]) => {\n if (error && error?.code !== yt.codes.NODE_DOES_NOT_EXIST) {\n dispatch({type: TABLE_MOUNT_CONFIG.FAILURE, data: {error}});\n return;\n }\n\n dispatch({\n type: TABLE_MOUNT_CONFIG.SUCCESS,\n data: {data: output},\n });\n })\n .catch((error: any) => {\n if (isCancelled(error)) {\n dispatch({type: TABLE_MOUNT_CONFIG.CANCELLED});\n } else {\n dispatch({type: TABLE_MOUNT_CONFIG.FAILURE, data: {error}});\n }\n });\n };\n}\n","import React from 'react';\nimport axios from 'axios';\n\nimport uniq_ from 'lodash/uniq';\n\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {updateView} from '../../../../store/actions/navigation';\n\nimport {CREATE_TABLE_MODAL_DATA_FIELDS} from '../../../../constants/navigation/modals/create-table';\nimport {initialState} from '../../../../store/reducers/navigation/modals/create-table';\nimport {showErrorPopup} from '../../../../utils/utils';\nimport Link from '../../../../components/Link/Link';\nimport {genNavigationUrl} from '../../../../utils/navigation/navigation';\nimport {getCluster} from '../../../selectors/global';\n\nexport function openCreateTableModal(parentDirectory) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {...initialState, showModal: true, parentDirectory},\n });\n };\n}\n\nexport function closeCreateTableModal() {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {showModal: false},\n });\n };\n}\n\nconst toaster = new Toaster();\n\nexport function createTable(path, attributes) {\n return (dispatch, getState) => {\n const params = {\n path,\n type: 'table',\n attributes,\n };\n\n const what = attributes.dynamic ? 'Dynamic table' : 'Static table';\n const cluster = getCluster(getState());\n\n return yt.v3\n .create(params)\n .then(() => {\n dispatch(updateView());\n toaster.add({\n name: path,\n timeout: 10000,\n theme: 'success',\n title: 'Table created',\n content: (\n <React.Fragment>\n {what} <Link url={genNavigationUrl({cluster, path})}>{path}</Link>{' '}\n successfully created\n </React.Fragment>\n ),\n });\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {error},\n });\n const data = error?.response?.data || error?.response || error;\n const {code, message} = data;\n\n toaster.add({\n name: path,\n timeout: 10000,\n theme: 'danger',\n content: `[code ${code}] ${message}`,\n title: 'Table creation failure',\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(data),\n },\n ],\n });\n return Promise.reject(error);\n }\n });\n };\n}\n\nexport function setCreateTableKeyColumns(keyColumns) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {keyColumns},\n });\n };\n}\n\nexport function setCreateTableColumnsOrder(columnsOrder) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnsOrder},\n });\n };\n}\n\nexport function setCreateTableLockSuggestions(allColumnLockValues = []) {\n return {\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnLockSuggestions: uniq_(allColumnLockValues.sort())},\n };\n}\n\nexport function setCreateTableGroupSuggestions(allColumnGroups = []) {\n return {\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnGroupSuggestions: uniq_(allColumnGroups.sort())},\n };\n}\n","import React from 'react';\n\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\nimport toLower_ from 'lodash/toLower';\n\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../../store/reducers';\nimport axios, {CancelTokenSource} from 'axios';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport ypath from '../../../../common/thor/ypath';\nimport {\n USE_SKIP_ERROR_FN_NODE_DOES_NOT_EXIST,\n getBatchError,\n wrapApiPromiseByToaster,\n} from '../../../../utils/utils';\nimport {loadPoolTreesIfNotLoaded} from '../../../../store/actions/global';\nimport {OperationShortInfo} from '../../../../pages/components/OperationShortInfo/OperationShortInfo';\nimport {AppStoreProvider} from '../../../../containers/App/AppStoreProvider';\nimport {CypressNodeTypes, makeUiMarker} from '../../../../utils/cypress-attributes';\nimport {Page} from '../../../../constants';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {\n PathAttribute,\n changeAttribute,\n setModalPartial,\n} from '../../../reducers/navigation/modals/tableMergeSortModalSlice';\nimport {Action} from 'redux';\nimport {getNavigationTableOutputPathAttributes} from '../../../selectors/navigation/modals/table-merge-sort-modal';\n\ntype TableMergeSortThunkAction<T = void> = ThunkAction<T, RootState, any, Action>;\n\nexport function showTableSortModal(paths: Array<string>): TableMergeSortThunkAction<Promise<void>> {\n return (dispatch) => {\n return dispatch(loadPoolTreesIfNotLoaded()).finally(() => {\n dispatch(setModalPartial({sortVisible: true, paths}));\n dispatch(tableSortModalLoadColumns(paths));\n });\n };\n}\n\nexport function hideTableSortModal() {\n return setModalPartial({sortVisible: false, paths: []});\n}\n\nexport function showTableMergeModal(\n paths: Array<string>,\n): ThunkAction<Promise<void>, RootState, any, Action> {\n return (dispatch) => {\n return dispatch(loadPoolTreesIfNotLoaded()).finally(() => {\n dispatch(\n setModalPartial({\n mergeVisible: true,\n paths,\n }),\n );\n dispatch(tableSortModalLoadColumns(paths));\n });\n };\n}\n\nexport function hideTableMergeModal() {\n return setModalPartial({mergeVisible: false, paths: []});\n}\n\nexport function tableSortModalLoadColumns(\n paths: Array<string>,\n): ThunkAction<any, RootState, any, Action> {\n return (dispatch) => {\n if (!paths?.length) {\n return undefined;\n }\n const requests = map_(paths, (path) => {\n return {\n command: 'get' as const,\n parameters: {path: `${path}/@schema`},\n };\n });\n return ytApiV3Id\n .executeBatch(YTApiId.navigationTableSortLoadColumns, {requests})\n .then((results: Array<any>) => {\n const error = getBatchError(\n results,\n 'Column names cannot be loaded, autocompletion might not work properly',\n );\n if (error) {\n dispatch(setModalPartial({error}));\n return;\n }\n const columns: {[name: string]: boolean} = {};\n forEach_(results, ({output}) => {\n forEach_(ypath.getValue(output), ({name}) => {\n columns[name] = true;\n });\n });\n dispatch(\n setModalPartial({\n suggestColumns: sortBy_(\n map_(columns, (_v, name) => name),\n (name) => toLower_(name),\n ),\n }),\n );\n })\n .catch((error: any) => {\n return dispatch(\n setModalPartial({\n error,\n }),\n );\n });\n };\n}\n\ninterface SortParams {\n input_table_paths: Array<string>;\n output_table_path: {$value: string; $attributes: Record<string, string>};\n sort_by: Array<{name: string; sort_order: 'ascending' | 'descending'}>;\n pool?: string;\n}\n\nexport function runTableSort(spec: SortParams): TableMergeSortThunkAction {\n return () => {\n const parameters = {\n spec,\n ...makeUiMarker(`${Page.NAVIGATION}:sort`),\n };\n return wrapApiPromiseByToaster(yt.v3.sort(parameters), {\n toasterName: 'table_sort_' + spec.output_table_path,\n successContent(res: string) {\n const opId = JSON.parse(res);\n return (\n <AppStoreProvider>\n <OperationShortInfo\n id={opId}\n type={'sort'}\n output_attribute_name={'/spec/output_table_path'}\n />\n </AppStoreProvider>\n );\n },\n successTitle: 'Sort operation is started',\n errorTitle: 'Sort operation is failed',\n autoHide: false,\n });\n };\n}\n\nexport const loadStorageAttributes =\n (path: string): TableMergeSortThunkAction =>\n async (dispatch, getState) => {\n const state = getState();\n const outputPathAttributes = getNavigationTableOutputPathAttributes(state);\n\n const response: Record<PathAttribute, string> = await wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.attributesEditorGetAttrs, {\n parameters: {\n path: path + '/@',\n attributes: [\n PathAttribute.OPTIMIZE_FOR,\n PathAttribute.COMPRESSION_CODEC,\n PathAttribute.ERASURE_CODEC,\n ],\n },\n }),\n {\n toasterName: 'get_table_attributes',\n errorTitle: 'Get table attributes request is failed',\n autoHide: false,\n skipSuccessToast: true,\n ...USE_SKIP_ERROR_FN_NODE_DOES_NOT_EXIST,\n },\n );\n\n Object.entries(outputPathAttributes).forEach(([key, attribute]) => {\n dispatch(changeAttribute({...attribute, value: response[key as PathAttribute]}));\n });\n };\n\ninterface MergeParams {\n pool: string;\n pool_trees: Array<string>;\n input_table_paths: Array<string>;\n output_table_path: string;\n merge_by: Array<string>;\n mode: 'unordered' | 'sorted' | 'ordered';\n}\n\nexport function runTableMerge(spec: MergeParams): TableMergeSortThunkAction {\n return () => {\n const parameters = {\n spec,\n ...makeUiMarker(`${Page.NAVIGATION}:merge`),\n };\n return wrapApiPromiseByToaster(yt.v3.merge(parameters), {\n toasterName: 'table_merge_' + spec.output_table_path,\n successContent(res: string) {\n const opId = JSON.parse(res);\n return (\n <AppStoreProvider>\n <OperationShortInfo\n id={opId}\n type={'merge'}\n output_attribute_name={'/spec/output_table_path'}\n />\n </AppStoreProvider>\n );\n },\n successTitle: 'Merge operation is started',\n errorTitle: 'Merge operation is failed',\n autoHide: false,\n });\n };\n}\n\nlet cancelTokenSrc: Pick<CancelTokenSource, 'cancel'> = {cancel: () => {}};\n\nexport function isPathStaticTable(path: string) {\n if (!path) return;\n\n cancelTokenSrc.cancel();\n return ytApiV3Id\n .get(\n YTApiId.navigationIsStaticTable,\n {\n path,\n attributes: ['type', 'dynamic'],\n },\n (cancelSrc: CancelTokenSource) => {\n cancelTokenSrc = cancelSrc;\n },\n )\n .then((d: any) => {\n const type = ypath.getValue(d, '/@type');\n const isDynamic = ypath.getValue(d, '/@dynamic');\n return type !== CypressNodeTypes.TABLE || isDynamic\n ? 'Please make sure the destination is an existing static table'\n : undefined;\n })\n .catch((e: any) => {\n if (axios.isCancel(e)) {\n return undefined;\n }\n return e?.message || 'Cannot get type of node';\n });\n}\n","// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport CancelHelper from '../../../../utils/cancel-helper';\nimport {prepareRequest} from '../../../../utils/navigation';\nimport {getPath, getTransaction} from '../../../selectors/navigation';\nimport {\n GET_ANNOTATION,\n SET_ANNOTATION_EDITING,\n SET_ANNOTATION_SAVING,\n} from '../../../../constants/navigation/tabs/annotation';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {getBatchError, wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../reducers';\nimport {NavigationTabsAnnotationAction} from '../../../reducers/navigation/tabs/annotation';\nimport {getNavigationAnnotation} from '../../../selectors/navigation/tabs/annotation';\n\nconst cancelHelper = new CancelHelper();\n\ntype TabletErrorsThunkAction = ThunkAction<any, RootState, unknown, NavigationTabsAnnotationAction>;\n\nexport const getAnnotation = (): TabletErrorsThunkAction => (dispatch, getState) => {\n const state = getState();\n const path = getPath(state) || '';\n\n const transaction = getTransaction(state);\n\n dispatch({type: GET_ANNOTATION.REQUEST});\n cancelHelper.removeAllRequests();\n\n const requests = [\n {\n command: 'get' as const,\n parameters: prepareRequest('/@annotation', {\n path,\n transaction,\n }),\n },\n ];\n\n ytApiV3Id\n .executeBatch(YTApiId.navigationGetAnnotation, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((results) => {\n const err = getBatchError(results, 'Cannot fetch annotation');\n if (yt.codes.NODE_DOES_NOT_EXIST !== results[0]?.error?.code && err) {\n throw err;\n }\n\n const [{output: annotation}] = results;\n dispatch({\n type: GET_ANNOTATION.SUCCESS,\n data: {annotation, path},\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({type: GET_ANNOTATION.CANCELLED});\n } else {\n dispatch({\n type: GET_ANNOTATION.FAILURE,\n data: {error, path},\n });\n }\n });\n};\n\nexport const saveAnnotation =\n (path: string): TabletErrorsThunkAction =>\n async (dispatch, getState) => {\n const annotation = getNavigationAnnotation(getState());\n dispatch({type: SET_ANNOTATION_SAVING, data: true});\n wrapApiPromiseByToaster(yt.v3.set({path: `${path}/@annotation`}, annotation), {\n toasterName: 'navigation_save_annotation',\n successTitle: 'Annotation saved',\n errorTitle: 'Failed save annotation',\n })\n .then(() => {\n dispatch({type: SET_ANNOTATION_EDITING, data: false});\n })\n .finally(() => {\n dispatch({type: SET_ANNOTATION_SAVING, data: false});\n });\n };\n","import {CancelTokenSource} from 'axios';\n\nimport CancelHelper, {isCancelled} from '../../../../../utils/cancel-helper';\nimport {getPath} from '../../../../../store/selectors/navigation';\nimport {GET_TABLET_ERRORS} from '../../../../../constants/navigation/tabs/tablet-errors';\nimport {YTApiId, ytApiV3Id, ytApiV4Id} from '../../../../../rum/rum-wrap-api';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../../../store/reducers';\nimport {\n NavigationTabletErrorsMode,\n TabletErrorsAction,\n} from '../../../../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-background';\nimport {wrapApiPromiseByToaster} from '../../../../../utils/utils';\n\nimport {loadReplicas} from '../../content/replicated-table';\nimport {TYPED_OUTPUT_FORMAT} from '../../../../../constants';\n\nconst requests = new CancelHelper();\n\ntype TabletErrorsThunkAction<T = unknown> = ThunkAction<T, RootState, unknown, TabletErrorsAction>;\n\nexport function getTabletErrors(): TabletErrorsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const path = getPath(state);\n\n dispatch({type: GET_TABLET_ERRORS.REQUEST});\n\n dispatch(loadReplicas());\n\n ytApiV4Id\n .getTabletErrors(YTApiId.navigationTabletErrors, {\n parameters: {path, output_format: TYPED_OUTPUT_FORMAT},\n cancellation: requests.removeAllAndSave,\n })\n .then((tabletErrors) => {\n dispatch({\n type: GET_TABLET_ERRORS.SUCCESS,\n data: {tabletErrors, tabletErrorsPath: path},\n });\n })\n .catch((error) => {\n if (isCancelled(error)) {\n dispatch({type: GET_TABLET_ERRORS.CANCELLED});\n } else {\n dispatch({\n type: GET_TABLET_ERRORS.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\ninterface LoadTabletErrorOptions {\n path: string;\n saveCancelTokenSource: (tokenSource: CancelTokenSource) => void;\n}\n\nexport function loadTabletErrorsCount(options: LoadTabletErrorOptions): TabletErrorsThunkAction {\n const {path} = options;\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.executeBatch(YTApiId.navigationTypeDynamic, {\n parameters: {\n requests: [\n {\n command: 'get',\n parameters: {path: `${path}/@type`},\n },\n {\n command: 'get',\n parameters: {path: `${path}/@dynamic`},\n },\n ],\n },\n cancellation: options.saveCancelTokenSource,\n }),\n {\n toasterName: 'get_type_dynamic',\n skipSuccessToast: true,\n },\n ).then(([{output: type}, {output: dynamic}]) => {\n if (dynamic && (type === 'table' || type === 'replication_log_table')) {\n return dispatch(loadTabletErrorsCountOfDynamicTable(options));\n }\n\n if (type === 'replicated_table') {\n return dispatch(loadTabletErrorsCountOfReplicatedTable(options));\n }\n\n return undefined;\n });\n };\n}\n\nfunction loadTabletErrorsCountOfDynamicTable({\n path,\n saveCancelTokenSource,\n}: LoadTabletErrorOptions): TabletErrorsThunkAction {\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.navigationTabletErrorsCountDynTable, {\n parameters: {\n path: `${path}/@tablet_error_count`,\n },\n cancellation: saveCancelTokenSource,\n }),\n {\n toasterName: 'tablet_erros_count',\n skipSuccessToast: true,\n },\n ).then((errorsCount: number) => {\n dispatch(updateTabletErrrosCount(errorsCount, path));\n });\n };\n}\n\nfunction loadTabletErrorsCountOfReplicatedTable({\n path,\n saveCancelTokenSource,\n}: LoadTabletErrorOptions): TabletErrorsThunkAction {\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.executeBatch<number>(YTApiId.navigationTabletErrorsCountReplicatedTable, {\n requests: [\n {\n command: 'get',\n parameters: {\n path: `${path}/@replicas/@error_count`,\n },\n },\n {command: 'get', parameters: {path: `${path}/@tablet_error_count`}},\n ],\n cancellation: saveCancelTokenSource,\n }),\n {\n toasterName: 'tablet_errors_count',\n skipSuccessToast: true,\n },\n ).then((results) => {\n const count = results.reduce((acc, {output = 0}) => acc + output, 0);\n dispatch(updateTabletErrrosCount(count, path));\n });\n };\n}\n\nexport function updateTabletErrrosCount(\n errorsCount: number,\n errorsCountPath: string,\n): TabletErrorsAction {\n return {type: GET_TABLET_ERRORS.PARTITION, data: {errorsCountPath, errorsCount}};\n}\n\nexport function updateTabletErrorsViewMode(viewMode: NavigationTabletErrorsMode) {\n return {type: GET_TABLET_ERRORS.PARTITION, data: {viewMode}};\n}\n","import isEmpty_ from 'lodash/isEmpty';\n\nimport {createSelector} from 'reselect';\nimport {RootState} from '../../../../store/reducers';\n\nexport const getNavigationTableMountConfig = (state: RootState) =>\n state.navigation.content.tableMountConfig;\n\nconst getTableMountConfigData = (state: RootState) =>\n state.navigation.content.tableMountConfig.data || {};\n\nconst getTableMountConfigError = (state: RootState) =>\n state.navigation.content.tableMountConfig.error;\n\nexport const getTableMountConfigHasData = createSelector(\n [getTableMountConfigData, getTableMountConfigError],\n (data, error) => {\n return !isEmpty_(data) || !isEmpty_(error);\n },\n);\n","import map_ from 'lodash/map';\n\nimport {createSelector} from 'reselect';\n\nexport const getCreateTableModalState = (state) => state.navigation.modals.createTable;\nexport const isCreateTableModalVisible = (state) => state.navigation.modals.createTable.showModal;\nexport const getCreateTableLockSuggestions = (state) =>\n state.navigation.modals.createTable.columnLockSuggestions;\nexport const getCreateTableGroupSuggestions = (state) =>\n state.navigation.modals.createTable.columnGroupSuggestions;\n\nexport const getColumnLockSuggestions = createSelector([getCreateTableLockSuggestions], (locks) => {\n const res = map_(locks, (item) => item);\n return res;\n});\n\nexport const getColumnGroupSuggestions = createSelector(\n [getCreateTableGroupSuggestions],\n (groups) => {\n const res = map_(groups, (item) => item);\n return res;\n },\n);\n","import {RootState} from '../../../reducers';\nimport {createSelector} from 'reselect';\nimport {PathAttribute} from '../../../reducers/navigation/modals/tableMergeSortModalSlice';\nexport const getNavigationTableSortPaths = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.paths;\nexport const getNavigationTableOutputPathAttributes = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.outputPathAttributes;\nexport const getNavigationTableAttributesValues = createSelector(\n [getNavigationTableOutputPathAttributes],\n (outputPathAttributes) => {\n const result: Record<string, string> = {};\n for (const key in outputPathAttributes) {\n if (Object.prototype.hasOwnProperty.call(outputPathAttributes, key)) {\n result[key] = outputPathAttributes[key as PathAttribute].value;\n }\n }\n return result;\n },\n);\nexport const getNavigationTableSortError = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.error;\nexport const getNavigationTableSortVisible = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.sortVisible;\nexport const getNavigationTableMergeVisible = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.mergeVisible;\nexport const getNavigationTableSortSuggestColumns = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.suggestColumns;\n","import compact_ from 'lodash/compact';\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\n\nimport {createSelector} from 'reselect';\n\nimport ypath from '../../../common/thor/ypath';\nimport unipika from '../../../common/thor/unipika';\n\nimport type {RootState} from '../../../store/reducers';\nimport type {ValueOf, YTError} from '../../../types';\nimport {getAttributes, getParsedPath, getPath, getTransaction} from './index';\nimport {ParsedPath, prepareNavigationState} from '../../../utils/navigation';\nimport {Tab} from '../../../constants/navigation/index';\n\nimport {getTableMountConfigHasData} from '../../../store/selectors/navigation/content/table-mount-config';\nimport {getAccessLogBasePath} from '../../../config';\nimport {getTabletErrorsBackgroundCount} from '../../../store/selectors/navigation/tabs/tablet-errors-background';\nimport UIFactory from '../../../UIFactory';\nimport {getConfigData} from '../../../config/ui-settings';\n\nexport function getNavigationPathAttributesLoadState(state: RootState) {\n return state.navigation.navigation.loadState;\n}\n\nexport const getNavigationPathAttributes = (state: RootState) =>\n state.navigation.navigation.attributes as any;\nexport const getNavigationIsWritable = (state: RootState) =>\n state.navigation.navigation.isWriteable as boolean;\nexport const getNavigationIsAccountUsable = (state: RootState) =>\n state.navigation.navigation.isAccountUsable as boolean;\nexport const getNavigationCheckPermissionsError = (state: RootState) =>\n state.navigation.navigation.checkPermissionsError as YTError | undefined;\nexport const getMode = (state: RootState) => state.navigation.navigation.mode;\n\nexport const getNavigationPathAccount = createSelector(\n [getNavigationPathAttributes],\n (attrs) => attrs.account,\n);\n\nexport const getNavigationBreadcrumbs = createSelector(\n [getPath, getParsedPath, getTransaction],\n (path: string, parsedPath?: ParsedPath, transaction?: string) => {\n if (parsedPath) {\n return map_(parsedPath?.fragments, (item, index) => {\n return {\n text: item.name,\n state: prepareNavigationState(parsedPath, transaction, index),\n };\n });\n } else {\n return [\n {\n text: prepareBrokenPath(path),\n state: prepareNavigationState(path, transaction),\n },\n ];\n }\n },\n);\n\nfunction prepareBrokenPath(path: string): string {\n return unipika.prettyprint(path, {\n break: false,\n indent: 0,\n binaryAsHex: false,\n });\n}\n\nexport const getNavigationRestorePath = createSelector([getNavigationPathAttributes], (attrs) => {\n return ypath.getValue(attrs, '/_restore_path');\n});\n\nexport const getSupportedTabs = createSelector(\n [getNavigationPathAttributes, getTableMountConfigHasData, getTabletErrorsBackgroundCount],\n (attributes, mountConfigHasData, tabletErrorsCount) => {\n const isDynamic = attributes.dynamic === true;\n const isPipeline = attributes.pipeline_format_version !== undefined;\n const mountConfigVisible = mountConfigHasData || isDynamic;\n const alwaysSupportedTabs = compact_([\n Tab.CONTENT,\n isPipeline && Tab.FLOW,\n Tab.ATTRIBUTES,\n Tab.USER_ATTRIBUTES,\n mountConfigVisible && Tab.MOUNT_CONFIG,\n Tab.ACL,\n Boolean(getAccessLogBasePath()) && Tab.ACCESS_LOG,\n ]);\n const supportedByAttribute = filter_<ValueOf<typeof Tab>>(\n [Tab.SCHEMA, Tab.LOCKS],\n // eslint-disable-next-line no-prototype-builtins\n (name) => attributes?.hasOwnProperty(name),\n );\n\n if (\n (attributes?.type === 'table' && attributes?.dynamic === true) ||\n attributes?.type === 'replicated_table' ||\n attributes?.type === 'replication_log_table'\n ) {\n supportedByAttribute.push(Tab.TABLETS);\n }\n\n if (\n attributes?.dynamic === true &&\n attributes?.sorted === false &&\n (attributes?.type === 'table' ||\n attributes?.type === 'replicated_table' ||\n attributes?.type === 'chaos_replicated_table')\n ) {\n supportedByAttribute.push(Tab.QUEUE);\n }\n\n if (attributes?.type == 'queue_consumer' || attributes?.treat_as_queue_consumer == true) {\n supportedByAttribute.push(Tab.CONSUMER);\n }\n\n let supportedTabletErrors: Array<ValueOf<typeof Tab>> = [];\n if (\n tabletErrorsCount > 0 ||\n (getConfigData().allowTabletErrorsAPI && attributes.tablet_error_count >= 0)\n ) {\n supportedTabletErrors = [Tab.TABLET_ERRORS];\n }\n\n const supportedTabs = new Set<string>([\n ...alwaysSupportedTabs,\n ...supportedByAttribute,\n ...supportedTabletErrors,\n ]);\n\n UIFactory.getNavigationExtraTabs().forEach((tab) => {\n if (tab.isSupported(attributes)) {\n supportedTabs.add(tab.value);\n }\n });\n\n return supportedTabs;\n },\n);\n\nexport const getTabs = createSelector(\n [getSupportedTabs, getTabletErrorsBackgroundCount, getAttributes],\n (supportedTabs, tabletErrorsCount, attributes) => {\n const isACO = attributes?.type === 'access_control_object';\n\n const tabs: {\n value: string;\n title: string;\n hotkey?: {\n keys: string;\n tab: string;\n scope: string;\n }[];\n text?: string;\n caption?: string;\n counter?: number;\n }[] = [\n {\n value: Tab.CONSUMER,\n title: 'Go to consumer [Alt+R]',\n hotkey: [\n {\n keys: 'alt+r',\n tab: Tab.CONSUMER,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.CONTENT,\n title: 'Go to content [Alt+C]',\n text: isACO ? 'Principal ACL' : undefined,\n hotkey: [\n {\n keys: 'alt+c',\n tab: Tab.CONTENT,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.QUEUE,\n title: 'Go to queue [Alt+Q]',\n hotkey: [\n {\n keys: 'alt+q',\n tab: Tab.QUEUE,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.ATTRIBUTES,\n title: 'Go to attributes [Alt+A]',\n hotkey: [\n {\n keys: 'alt+a',\n tab: Tab.ATTRIBUTES,\n scope: 'all',\n },\n ],\n caption: 'Attributes',\n },\n {\n value: Tab.USER_ATTRIBUTES,\n title: 'Go to user attributes [Alt+U]',\n hotkey: [\n {\n keys: 'alt+u',\n tab: Tab.USER_ATTRIBUTES,\n scope: 'all',\n },\n ],\n caption: 'User Attributes',\n },\n {\n value: Tab.MOUNT_CONFIG,\n title: 'Go to mount config',\n hotkey: [\n {\n keys: 'alt+m',\n tab: Tab.MOUNT_CONFIG,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.ACL,\n title: 'Go to ACL [Alt+P]',\n hotkey: [\n {\n keys: 'alt+p',\n tab: Tab.ACL,\n scope: 'all',\n },\n ],\n caption: 'ACL',\n },\n {\n value: Tab.ACCESS_LOG,\n title: 'Access log',\n },\n {\n value: Tab.FLOW,\n title: 'Go to content [Alt+F]',\n text: 'Flow',\n hotkey: [\n {\n keys: 'alt+f',\n tab: Tab.FLOW,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.LOCKS,\n title: 'Go to locks [Alt+L]',\n hotkey: [\n {\n keys: 'alt+l',\n tab: Tab.LOCKS,\n scope: 'all',\n },\n ],\n counter: ypath.getValue(attributes, '/lock_count'),\n },\n {\n value: Tab.ANNOTATION,\n title: 'Go to annotation [Alt+N]',\n hotkey: [\n {\n keys: 'alt+n',\n tab: Tab.ACL,\n scope: 'all',\n },\n ],\n caption: 'Annotation',\n },\n {\n value: Tab.SCHEMA,\n title: 'Go to schema [Alt+S]',\n hotkey: [\n {\n keys: 'alt+s',\n tab: Tab.SCHEMA,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.TABLETS,\n title: 'Go to tablets [Alt+T]',\n hotkey: [\n {\n keys: 'alt+t',\n tab: Tab.TABLETS,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.TABLET_ERRORS,\n title: 'Go to tablets errors',\n counter: tabletErrorsCount > 0 ? tabletErrorsCount : undefined,\n },\n ];\n\n UIFactory.getNavigationExtraTabs().forEach((extraTab) => {\n for (let i = 0; i < tabs.length; i++) {\n let indexOffset = 0;\n let tabToFind;\n\n if ('before' in extraTab.position) {\n tabToFind = extraTab.position.before;\n }\n\n if ('after' in extraTab.position) {\n tabToFind = extraTab.position.after;\n indexOffset = 1;\n }\n\n if (tabs[i].value === tabToFind) {\n const newTab = {\n value: extraTab.value,\n title: extraTab.title,\n hotkey: extraTab.hotkey\n ? [{keys: extraTab.hotkey, tab: extraTab.value, scope: 'all'}]\n : undefined,\n text: extraTab.text,\n caption: extraTab.caption,\n };\n tabs.splice(i + indexOffset, 0, newTab);\n break;\n }\n }\n });\n\n return tabs.filter((tab) => supportedTabs.has(tab.value));\n },\n);\n\nexport const getEffectiveMode = createSelector([getMode, getTabs], (mode, tabs) => {\n const [firstTab] = tabs;\n\n return mode === Tab.AUTO ? firstTab.value : mode;\n});\n","import {RootState} from '../../../reducers';\n\nexport const getNavigationAnnotationError = (state: RootState) =>\n state.navigation.tabs.annotation.error;\n\nexport const getNavigationAnnotation = (state: RootState) =>\n state.navigation.tabs.annotation.annotation;\nexport const getNavigationAnnotationPath = (state: RootState) =>\n state.navigation.tabs.annotation.path;\nexport const getNavigationAnnotationSaving = (state: RootState) =>\n state.navigation.tabs.annotation.saving;\nexport const getNavigationAnnotationEditing = (state: RootState) =>\n state.navigation.tabs.annotation.editing;\n","import {createSelector} from 'reselect';\nimport {RootState} from '../../../../store/reducers';\nimport {calculateLoadingStatus} from '../../../../utils/utils';\nimport {getPath} from '../../../../store/selectors/navigation/index';\n\nimport reduce_ from 'lodash/reduce';\n\nimport {ValueOf, YTError} from '../../../../types';\nimport ypath from '../../../../common/thor/ypath';\n\nconst getTabletErrorsErrorCount = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.errorsCount;\nconst getTabletErrorsErrorCountPath = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.errorsCountPath;\nconst getTabletErrorsRaw = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.tabletErrors;\nconst getTabletErrorsPathRaw = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.tabletErrorsPath;\n\nexport const getTabletErrorsViewMode = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.viewMode;\n\nexport const getTabletErrorsLoadingStatus = createSelector(\n [\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.loading,\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.loaded,\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.error,\n ],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n\nexport const getTabletErrorsBackgroundCount = createSelector(\n [getPath, getTabletErrorsErrorCountPath, getTabletErrorsErrorCount],\n (path, errorCountPath, errorCount) => {\n if (path !== errorCountPath) {\n return 0;\n }\n\n return errorCount;\n },\n);\n\nexport const getTabletErrors = createSelector(\n [getPath, getTabletErrorsPathRaw, getTabletErrorsRaw],\n (path, errPath, errors) => {\n if (path !== errPath) {\n return undefined;\n }\n\n return errors;\n },\n);\n\nexport const getTabletErrorsBackgroundCountNoticeVisbile = createSelector(\n [getTabletErrorsBackgroundCount, getTabletErrors],\n (count, data) => {\n const {tablet_errors, replication_errors} = data || {};\n const tabletErrorsCount = calculateSubitemsCount(tablet_errors);\n const replicationErrorsCount = calculateSubitemsCount(replication_errors);\n\n return count !== tabletErrorsCount + replicationErrorsCount;\n },\n);\n\nfunction calculateSubitemsCount(items?: Record<string, Array<unknown>>) {\n return reduce_(\n items,\n (acc, subItems) => {\n return acc + subItems.length;\n },\n 0,\n );\n}\n\ntype ReplicaId = string;\ntype TabletId = string;\n\nexport const getTabletErrorsReplicationErrors = createSelector([getTabletErrors], (data) => {\n return reduce_(\n data?.replication_errors,\n (acc, errors, replicaId) => {\n const errorsByTablet = reduce_(\n errors,\n (errAcc, error) => {\n const {tablet_id} = error.attributes || {};\n const id =\n typeof tablet_id === 'object' ? ypath.getValue(tablet_id, '') : tablet_id;\n if (!errAcc[tablet_id]) {\n errAcc[id] = [];\n }\n errAcc[id].push(error);\n return errAcc;\n },\n {} as ValueOf<typeof acc>,\n );\n acc[replicaId] = errorsByTablet;\n return acc;\n },\n {} as Record<ReplicaId, Record<TabletId, Array<YTError>>>,\n );\n});\n","import filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\n\nimport unipika from '../../common/thor/unipika';\nimport ypath from '../../common/thor/ypath';\n\nimport CancelHelper from '../cancel-helper';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\nexport const pathEditorRequests = new CancelHelper();\n\nfunction prepareSuggestions(initialPath, parentPath, children) {\n let suggestions = map_(children, (child) => {\n const prepared = {};\n\n prepared.parentPath = parentPath;\n prepared.childPath = '/' + unipika.decode(ypath.getValue(child));\n prepared.path = prepared.parentPath + prepared.childPath;\n prepared.type = ypath.getValue(child, '/@type');\n prepared.dynamic = ypath.getValue(child, '/@dynamic');\n prepared.targetPathBroken = ypath.getValue(child, '/@broken');\n\n return prepared;\n });\n\n suggestions = sortBy_(suggestions, 'childPath');\n\n return suggestions;\n}\n\nexport function preparePath(currentPath) {\n return ypath.YPath.create(currentPath, 'absolute').toSubpath(-2).stringify();\n}\n\nexport function loadSuggestions(path, customFilter) {\n const parentPath = preparePath(path);\n\n return ytApiV3Id\n .list(YTApiId.pathEditorLoadSuggestions, {\n parameters: {path: parentPath, attributes: ['type', 'dynamic']},\n cancellation: pathEditorRequests.saveCancelToken,\n })\n .then(ypath.getValue)\n .then((nodes) => prepareSuggestions(path, parentPath, nodes))\n .then((suggestions) => (customFilter ? customFilter(suggestions) : suggestions));\n}\n\nexport function filterByCurrentPath(currentPath, suggestions) {\n const path = currentPath.toLowerCase();\n\n return filter_(suggestions, (child) => {\n const hasPartOfPath = child.path.startsWith(path);\n const isShowCurrentChild = child.path !== path || child.type === 'map_node';\n\n return hasPartOfPath && isShowCurrentChild;\n });\n}\n\nexport function getNextSelectedIndex(suggestion, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === suggestion.length - 1) {\n return 0;\n }\n\n return selectedIndex + 1;\n}\n\nexport function getPrevSelectedIndex(suggestions, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === 0) {\n return suggestions.length - 1;\n }\n\n return selectedIndex - 1;\n}\n\nexport function getCompletedPath(suggestion) {\n return suggestion.type === 'map_node' ? suggestion.path + '/' : suggestion.path;\n}\n\nexport function getIconNameForType(type, targetPathBroken) {\n const icons = {\n document: 'file-alt',\n string_node: 'file-alt',\n int64_node: 'file-alt',\n uint64_node: 'file-alt',\n double_node: 'file-alt',\n boolean_node: 'file-alt',\n map_node: 'folder',\n scheduler_pool_tree_map: 'folder-tree',\n scheduler_pool: 'tasks',\n tablet_cell: 'th',\n journal: 'book',\n table: 'th',\n table_dynamic: 'dyn-th',\n replicated_table: 'th',\n chaos_replicated_table: 'chaos-replicated-table',\n replication_log_table: 'replication-log-table',\n file: 'file',\n topmost_transaction_map: 'folder',\n transaction_map: 'folder',\n transaction: 'code-branch',\n nested_transaction: 'code-branch',\n link: ypath.getBoolean(targetPathBroken) ? 'unlink' : 'link',\n rootstock: 'link',\n portal_entrance: 'link',\n cell_node: 'circle',\n cell_node_map: 'far circle',\n sys_node: 'cog',\n access_control_object_namespace_map: 'acl-namespace-map',\n access_control_object_namespace: 'acl-namespace',\n access_control_object: 'acl-object',\n };\n\n const icon = type ? icons[type] || 'not-suported' : 'eye-slash';\n\n return icon;\n}\n","import type {TabsOrientation} from './plugin/transform';\nimport type {TabsController} from './runtime/TabsController';\n\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TABS_VERTICAL_CLASSNAME = 'yfm-tabs-vertical';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\n\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\n\nexport interface Tab {\n group?: string;\n key: string;\n align: TabsOrientation;\n}\n\nexport interface SelectedTabEvent {\n tab: Tab;\n currentTabId?: string;\n}\n\nexport const GLOBAL_SYMBOL: unique symbol = Symbol.for('diplodocTabs');\n\ndeclare global {\n interface Window {\n [GLOBAL_SYMBOL]: TabsController;\n }\n}\n","export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n\nexport const getClosestScrollableParent = (element: HTMLElement): HTMLElement | undefined => {\n if (Math.abs(element.scrollHeight - element.clientHeight) > 1) {\n return element;\n }\n\n return element.parentElement ? getClosestScrollableParent(element.parentElement) : undefined;\n};\n\nexport interface ElementOffset {\n top: number;\n left: number;\n scrollTop: number;\n scrollLeft: number;\n}\n\nexport const getOffsetByScrollableParent = (\n element: HTMLElement,\n scrollableParent: HTMLElement,\n): ElementOffset => {\n const elementBounds = element.getBoundingClientRect();\n const scrollableParentBounds = scrollableParent.getBoundingClientRect();\n return {\n top: elementBounds.top - scrollableParentBounds.top,\n left: elementBounds.left - scrollableParentBounds.left,\n scrollTop: scrollableParent.scrollTop,\n scrollLeft: scrollableParent.scrollLeft,\n };\n};\n","import {\n ACTIVE_CLASSNAME,\n DEFAULT_TABS_GROUP_PREFIX,\n GROUP_DATA_KEY,\n SelectedTabEvent,\n TABS_CLASSNAME,\n TABS_LIST_CLASSNAME,\n TABS_VERTICAL_CLASSNAME,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_PANEL_CLASSNAME,\n Tab,\n} from '../common';\nimport type {TabsOrientation} from '../plugin/transform';\nimport {\n ElementOffset,\n getClosestScrollableParent,\n getEventTarget,\n getOffsetByScrollableParent,\n isCustom,\n} from './utils';\n\nconst Selector = {\n TABS: `.${TABS_CLASSNAME}`,\n TAB_LIST: `.${TABS_LIST_CLASSNAME}`,\n TAB: `.${TAB_CLASSNAME}`,\n TAB_PANEL: `.${TAB_PANEL_CLASSNAME}`,\n VERTICAL_TABS: `.${TABS_VERTICAL_CLASSNAME}`,\n};\n\nexport interface ISelectTabByIdOptions {\n scrollToElement: boolean;\n}\n\ntype Handler = (data: SelectedTabEvent) => void;\n\ntype TabSwitchDirection = 'left' | 'right';\n\nexport class TabsController {\n private _document: Document;\n\n private _onSelectTabHandlers: Set<Handler> = new Set();\n\n constructor(document: Document) {\n this._document = document;\n this._document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n const areVertical = this.areTabsVertical(target);\n\n if (isCustom(event)) {\n return;\n }\n\n if (!(this.isValidTabElement(target) || areVertical)) {\n return;\n }\n\n const tab = this.getTabDataFromHTMLElement(target);\n\n if (tab) {\n this._selectTab(tab, target);\n }\n });\n this._document.addEventListener('keydown', (event) => {\n let direction: TabSwitchDirection | null = null;\n switch (event.key) {\n case 'ArrowLeft': {\n direction = 'left';\n break;\n }\n case 'ArrowRight': {\n direction = 'right';\n break;\n }\n }\n if (!direction) {\n return;\n }\n\n const target = getEventTarget(event) as HTMLElement;\n\n if (isCustom(event) || !this.isValidTabElement(target)) {\n return;\n }\n\n const {tabs, nodes} = this.getTabs(target);\n const currentTab = this.getTabDataFromHTMLElement(target);\n const currentTabIndex = tabs.findIndex(\n ({key}) => currentTab?.key && key === currentTab.key,\n );\n if (!currentTab || tabs.length <= 1 || currentTabIndex === -1) {\n return;\n }\n\n const newIndex =\n (currentTabIndex + (direction === 'left' ? -1 : 1) + tabs.length) % tabs.length;\n\n this.selectTab(tabs[newIndex]);\n nodes[newIndex].focus();\n });\n }\n\n onSelectTab(handler: Handler) {\n this._onSelectTabHandlers.add(handler);\n\n return () => {\n this._onSelectTabHandlers.delete(handler);\n };\n }\n\n selectTabById(id: string, options?: ISelectTabByIdOptions) {\n const target = this._document.querySelector(\n `${Selector.TAB}[${TAB_DATA_ID}=\"${id}\"]`,\n ) as HTMLElement;\n\n if (!target || !this.isValidTabElement(target)) {\n return;\n }\n\n const tab = this.getTabDataFromHTMLElement(target);\n\n if (tab) {\n this._selectTab(tab, target);\n }\n\n if (options?.scrollToElement) {\n target.scrollIntoView();\n }\n }\n\n selectTab(tab: Tab) {\n this._selectTab(tab);\n }\n\n private _selectTab(tab: Tab, targetTab?: HTMLElement) {\n const {group, key, align} = tab;\n\n if (!group) {\n return;\n }\n\n const scrollableParent = targetTab && getClosestScrollableParent(targetTab);\n const previousTargetOffset =\n scrollableParent && getOffsetByScrollableParent(targetTab, scrollableParent);\n\n const updatedTabs = this.updateHTML({group, key, align}, align);\n\n if (updatedTabs > 0) {\n this.fireSelectTabEvent({group, key, align}, targetTab?.dataset.diplodocId);\n\n if (previousTargetOffset) {\n this.resetScroll(targetTab, scrollableParent, previousTargetOffset);\n }\n }\n }\n\n private updateHTML(tab: Required<Tab>, align: TabsOrientation) {\n switch (align) {\n case 'vertical': {\n return this.updateHTMLVertical(tab);\n }\n case 'horizontal': {\n return this.updateHTMLHorizontal(tab);\n }\n }\n\n return 0;\n }\n\n private updateHTMLVertical(tab: Required<Tab>) {\n const {group, key} = tab;\n\n const [tabs] = this._document.querySelectorAll(\n `${Selector.TABS}[${GROUP_DATA_KEY}=\"${group}\"] ${Selector.TAB}[${TAB_DATA_KEY}=\"${key}\"]`,\n );\n\n let updated = 0;\n const root = tabs.parentNode!;\n const elements = root.children;\n\n for (let i = 0; i < elements.length; i += 2) {\n const [title, content] = [elements.item(i), elements.item(i + 1)] as HTMLElement[];\n\n const input = title.children.item(0) as HTMLInputElement;\n\n if (input.hasAttribute('checked')) {\n title.classList.remove('active');\n content?.classList.remove('active');\n input.removeAttribute('checked');\n }\n\n if (title === tabs) {\n title.classList.add('active');\n content?.classList.add('active');\n input.setAttribute('checked', 'true');\n }\n\n updated++;\n }\n\n return updated;\n }\n\n private updateHTMLHorizontal(tab: Required<Tab>) {\n const {group, key} = tab;\n\n const tabs = this._document.querySelectorAll(\n `${Selector.TABS}[${GROUP_DATA_KEY}=\"${group}\"] ${Selector.TAB}[${TAB_DATA_KEY}=\"${key}\"]`,\n );\n\n let updated = 0;\n\n tabs.forEach((element) => {\n const htmlElem = element as HTMLElement;\n if (!this.isValidTabElement(htmlElem) || htmlElem.dataset.diplodocIsActive === 'true') {\n return;\n }\n\n updated++;\n\n const tab = element;\n const tabList = tab.parentNode;\n const tabsContainer = tabList?.parentNode;\n const allTabs = Array.from(tabList?.querySelectorAll(Selector.TAB) || []);\n const allPanels = Array.from(tabsContainer?.children || []).filter((node) =>\n node.classList.contains(TAB_PANEL_CLASSNAME),\n );\n const targetIndex = allTabs.indexOf(tab);\n\n allTabs.forEach((tab, i) => {\n const panel = allPanels[i];\n const isTargetTab = i === targetIndex;\n const htmlElem = tab as HTMLElement;\n\n htmlElem.dataset.diplodocIsActive = isTargetTab ? 'true' : 'false';\n\n tab.classList.toggle(ACTIVE_CLASSNAME, isTargetTab);\n tab.setAttribute('aria-selected', isTargetTab.toString());\n tab.setAttribute('tabindex', isTargetTab ? '0' : '-1');\n panel.classList.toggle(ACTIVE_CLASSNAME, isTargetTab);\n });\n });\n\n return updated;\n }\n\n private resetScroll(\n target: HTMLElement,\n scrollableParent: HTMLElement,\n previousTargetOffset: ElementOffset,\n ) {\n const targetOffset = getOffsetByScrollableParent(target, scrollableParent);\n const topDelta = targetOffset.top - previousTargetOffset.top;\n const leftDelta = targetOffset.left - previousTargetOffset.left;\n const scrollTopDelta = targetOffset.scrollTop - previousTargetOffset.scrollTop;\n const scrollLeftDelta = targetOffset.scrollLeft - previousTargetOffset.scrollLeft;\n scrollableParent.scrollTo(\n scrollableParent.scrollLeft + leftDelta - scrollLeftDelta,\n scrollableParent.scrollTop + topDelta - scrollTopDelta,\n );\n }\n\n private fireSelectTabEvent(tab: Required<Tab>, diplodocId?: string) {\n const {group, key, align} = tab;\n\n const eventTab: Tab = group.startsWith(DEFAULT_TABS_GROUP_PREFIX) ? {key, align} : tab;\n\n this._onSelectTabHandlers.forEach((handler) => {\n handler({tab: eventTab, currentTabId: diplodocId});\n });\n }\n\n private isValidTabElement(element: HTMLElement) {\n const tabList =\n element.matches(Selector.TAB) && element.dataset.diplodocId\n ? element.closest(Selector.TAB_LIST)\n : null;\n\n return tabList?.closest(Selector.TABS);\n }\n\n private areTabsVertical(target: HTMLElement) {\n const parent = target.parentElement;\n\n return target.dataset.diplodocVerticalTab || Boolean(parent?.dataset.diplodocVerticalTab);\n }\n\n private getTabDataFromHTMLElement(target: HTMLElement): Tab | null {\n if (this.areTabsVertical(target)) {\n const tab = target.dataset.diplodocVerticalTab ? target : target.parentElement!;\n\n const key = tab.dataset.diplodocKey;\n const group = (tab.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, align: 'vertical'} : null;\n }\n\n const key = target.dataset.diplodocKey;\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, align: 'horizontal'} : null;\n }\n\n private getTabs(target: HTMLElement): {tabs: Tab[]; nodes: NodeListOf<HTMLElement>} {\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n const nodes = (\n target.closest(Selector.TAB_LIST) as HTMLElement\n )?.querySelectorAll<HTMLElement>(Selector.TAB);\n\n const tabs: Tab[] = [];\n nodes.forEach((tabEl) => {\n const key = tabEl?.dataset.diplodocKey;\n if (!key) {\n return;\n }\n\n /** horizontal-only supported feature (used in left/right button click) */\n tabs.push({\n group,\n key,\n align: 'horizontal',\n });\n });\n\n return {tabs, nodes};\n }\n}\n","'use strict';\n\n// Node getRootNode(optional GetRootNodeOptions options);\n\n/**\n * Returns the context object’s shadow-including root if options’s composed is true.\n * Returns the context object’s root otherwise.\n *\n * The root of an object is itself, if its parent is null, or else it is the root of its parent.\n *\n * The shadow-including root of an object is its root’s host’s shadow-including root,\n * if the object’s root is a shadow root, and its root otherwise.\n *\n * https://dom.spec.whatwg.org/#dom-node-getrootnode\n *\n * @memberof Node.prototype\n * @param {!Object} [opt = {}] - Options.\n * @param {!boolean} [opt.composed] - See above description.\n * @returns {!Node} The root node.\n */\nfunction getRootNode(opt) {\n var composed = typeof opt === 'object' && Boolean(opt.composed);\n\n return composed ? getShadowIncludingRoot(this) : getRoot(this);\n}\n\nfunction getShadowIncludingRoot(node) {\n var root = getRoot(node);\n\n if (isShadowRoot(root)) {\n return getShadowIncludingRoot(root.host);\n }\n\n return root;\n}\n\nfunction getRoot(node) {\n if (node.parentNode != null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\nfunction isShadowRoot(node) {\n return node.nodeName === '#document-fragment' && node.constructor.name === 'ShadowRoot';\n}\n\nif (typeof module === 'object' && module.exports) {\n module.exports = getRootNode;\n}\n","import {GLOBAL_SYMBOL} from '../common';\nimport {TabsController} from './TabsController';\nimport './scss/tabs.scss';\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && !window[GLOBAL_SYMBOL]) {\n window[GLOBAL_SYMBOL] = new TabsController(document);\n}\n","import getRootNode from 'get-root-node-polyfill';\n\nif (typeof document !== 'undefined') {\n // matches polyfill for old edge\n (function (e) {\n const matches =\n e.matches ||\n e.matchesSelector ||\n e.webkitMatchesSelector ||\n e.mozMatchesSelector ||\n e.msMatchesSelector ||\n e.oMatchesSelector;\n\n if (matches) {\n e.matches = e.matchesSelector = matches;\n } else {\n e.matches = e.matchesSelector = function matches(selector) {\n const rootNode = e.getRootNode ? e.getRootNode() : getRootNode.call(e);\n const matches = rootNode.querySelectorAll(selector);\n const th = this;\n return Array.prototype.some.call(matches, (e) => {\n return e === th;\n });\n };\n }\n })(Element.prototype);\n}\n","export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n","import {getEventTarget, isCustom} from './utils';\n\nconst BUTTON_SELECTOR = '.yfm-clipboard-button';\n\nfunction copyToClipboard(text: string) {\n if (!text) {\n return Promise.resolve();\n }\n\n if (navigator.clipboard && typeof navigator.clipboard.writeText) {\n return navigator.clipboard.writeText(text);\n }\n const textarea = document.createElement('textarea');\n textarea.setAttribute('style', 'position: absolute; left: 1000%');\n textarea.textContent = text;\n document.body.append(textarea);\n\n textarea.select();\n document.execCommand('copy');\n\n document.body.removeChild(textarea);\n\n return Promise.resolve();\n}\n\nfunction notifySuccess(svgButton: HTMLElement | null) {\n if (!svgButton) {\n return;\n }\n\n const id = svgButton.getAttribute('data-animation');\n // @ts-expect-error\n const icon = svgButton.getRootNode().getElementById(`visibileAnimation-${id}`);\n\n if (!icon) {\n return;\n }\n\n icon.beginElement();\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n\n if (isCustom(event) || !target.matches(BUTTON_SELECTOR)) {\n return;\n }\n\n const parent = target.parentNode;\n\n if (!parent) {\n return;\n }\n\n const code = parent.querySelector<HTMLElement>('pre code');\n if (!code) {\n return;\n }\n\n copyToClipboard(code.innerText).then(() => {\n notifySuccess(parent.querySelector('.yfm-clipboard-button'));\n });\n });\n}\n","import {getEventTarget, isCustom} from './utils';\n\nconst Selector = {\n CUT: '.yfm .yfm-cut',\n TITLE: '.yfm .yfm-cut-title',\n CONTENT: '.yfm .yfm-cut-content',\n};\n\nconst ClassName = {\n OPEN: 'open',\n};\n\nfunction toggleCut(element: HTMLElement) {\n const cutNode = element.parentNode;\n\n if (!(cutNode instanceof HTMLElement)) {\n return;\n }\n\n cutNode.classList.toggle(ClassName.OPEN);\n}\n\nfunction matchTitle(target: EventTarget | null) {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n\n return target?.matches?.(Selector.TITLE);\n}\n\nfunction findTitleInPath(event: MouseEvent): HTMLElement | undefined {\n const target = getEventTarget(event);\n\n if (matchTitle(target)) {\n return target as HTMLElement;\n }\n\n const path = event.composedPath?.();\n\n return path?.find(matchTitle) as HTMLElement | undefined;\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n if (isCustom(event)) {\n return;\n }\n\n const title = findTitleInPath(event);\n\n if (!title) {\n return;\n }\n\n toggleCut(title);\n });\n}\n","export const Selector = {\n TITLE: '.yfm .yfm-term_title',\n CONTENT: '.yfm .yfm-term_dfn',\n};\nexport const openClass = 'open';\nexport const openDefinitionClass = Selector.CONTENT.replace(/\\./g, '') + ' ' + openClass;\nlet isListenerNeeded = true;\n\nexport function createDefinitionElement(termElement: HTMLElement) {\n const termKey = termElement.getAttribute('term-key');\n const definitionTemplate = document.getElementById(\n `${termKey}_template`,\n ) as HTMLTemplateElement;\n const definitionElement = definitionTemplate?.content.cloneNode(true).firstChild as HTMLElement;\n\n definitionTemplate?.parentElement?.appendChild(definitionElement);\n definitionTemplate.remove();\n\n return definitionElement;\n}\n\nexport function setDefinitionId(definitionElement: HTMLElement, termElement: HTMLElement): void {\n const termId = termElement.getAttribute('id') || Math.random().toString(36).substr(2, 8);\n definitionElement?.setAttribute('term-id', termId);\n}\n\nexport function setDefinitionPosition(\n definitionElement: HTMLElement,\n termElement: HTMLElement,\n): void {\n const {\n x: termX,\n y: termY,\n right: termRight,\n left: termLeft,\n width: termWidth,\n height: termHeight,\n } = termElement.getBoundingClientRect();\n\n const termParent = termParentElement(termElement);\n\n if (!termParent) {\n return;\n }\n\n const {right: termParentRight, left: termParentLeft} = termParent.getBoundingClientRect();\n\n if ((termParentRight < termLeft || termParentLeft > termRight) && !isListenerNeeded) {\n closeDefinition(definitionElement);\n return;\n }\n\n if (isListenerNeeded && termParent) {\n termParent.addEventListener('scroll', termOnResize);\n isListenerNeeded = false;\n }\n\n const relativeX = Number(definitionElement.getAttribute('relativeX'));\n const relativeY = Number(definitionElement.getAttribute('relativeY'));\n\n if (relativeX === termX && relativeY === termY) {\n return;\n }\n\n definitionElement.setAttribute('relativeX', String(termX));\n definitionElement.setAttribute('relativeY', String(termY));\n\n const offsetTop = termHeight + 5;\n const definitionParent = definitionElement.parentElement;\n\n if (!definitionParent) {\n return;\n }\n\n const {width: definitionWidth} = definitionElement.getBoundingClientRect();\n const {left: definitionParentLeft} = definitionParent.getBoundingClientRect();\n\n // If definition not fit document change base alignment\n const definitionLeftCoordinate = Number(getCoords(termElement).left);\n const definitionRightCoordinate = definitionWidth + definitionLeftCoordinate;\n\n const definitionOutOfScreenOnLeft = definitionLeftCoordinate - definitionWidth < 0;\n const definitionOutOfScreenOnRight = definitionRightCoordinate > document.body.clientWidth;\n\n const isAlignSwapped = definitionOutOfScreenOnRight || document.dir === 'rtl';\n const fitDefinitionDocument =\n isAlignSwapped && !definitionOutOfScreenOnLeft ? definitionWidth - termWidth : 0;\n const customHeaderTop = getCoords(definitionParent).top - definitionParent.offsetTop;\n\n definitionElement.style.top =\n Number(getCoords(termElement).top + offsetTop - customHeaderTop) + 'px';\n definitionElement.style.left =\n Number(\n getCoords(termElement).left -\n definitionParentLeft +\n definitionParent.offsetLeft -\n fitDefinitionDocument,\n ) + 'px';\n}\n\nfunction termOnResize() {\n const openDefinition = document.getElementsByClassName(openDefinitionClass)[0] as HTMLElement;\n\n if (!openDefinition) {\n return;\n }\n const termId = openDefinition.getAttribute('term-id') || '';\n const termElement = document.getElementById(termId);\n\n if (!termElement) {\n return;\n }\n\n setDefinitionPosition(openDefinition, termElement);\n}\n\nfunction termParentElement(term: HTMLElement | null) {\n if (!term) {\n return null;\n }\n\n const closestScrollableParent = term.closest('table') || term.closest('code');\n\n return closestScrollableParent || term.parentElement;\n}\n\nexport function closeDefinition(definition: HTMLElement) {\n definition.classList.remove(openClass);\n const termId = definition.getAttribute('term-id') || '';\n const termParent = termParentElement(document.getElementById(termId));\n\n if (!termParent) {\n return;\n }\n\n termParent.removeEventListener('scroll', termOnResize);\n isListenerNeeded = true;\n}\n\nfunction getCoords(elem: HTMLElement) {\n const box = elem.getBoundingClientRect();\n\n const body = document.body;\n const docEl = document.documentElement;\n\n const scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n\n const top = box.top + scrollTop - clientTop;\n const left = box.left + scrollLeft - clientLeft;\n\n return {top: Math.round(top), left: Math.round(left)};\n}\n","import {\n Selector,\n closeDefinition,\n createDefinitionElement,\n openClass,\n openDefinitionClass,\n setDefinitionId,\n setDefinitionPosition,\n} from './utils';\nimport {getEventTarget, isCustom} from '../utils';\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n const openDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n const target = getEventTarget(event) as HTMLElement;\n\n const termId = target.getAttribute('id');\n const termKey = target.getAttribute('term-key');\n let definitionElement = document.getElementById(termKey + '_element');\n\n if (termKey && !definitionElement) {\n definitionElement = createDefinitionElement(target);\n }\n\n const isSameTerm = openDefinition && termId === openDefinition.getAttribute('term-id');\n if (isSameTerm) {\n closeDefinition(openDefinition);\n return;\n }\n\n const isTargetDefinitionContent = target.closest(\n [Selector.CONTENT.replace(' ', ''), openClass].join('.'),\n );\n\n if (openDefinition && !isTargetDefinitionContent) {\n closeDefinition(openDefinition);\n }\n\n if (isCustom(event) || !target.matches(Selector.TITLE) || !definitionElement) {\n return;\n }\n\n setDefinitionId(definitionElement, target);\n setDefinitionPosition(definitionElement, target);\n\n definitionElement.classList.toggle(openClass);\n });\n\n document.addEventListener('keydown', (event) => {\n const openDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n if (event.key === 'Escape' && openDefinition) {\n closeDefinition(openDefinition);\n }\n });\n\n window.addEventListener('resize', () => {\n const openDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n\n if (!openDefinition) {\n return;\n }\n\n const termId = openDefinition.getAttribute('term-id') || '';\n const termElement = document.getElementById(termId);\n\n if (!termElement) {\n openDefinition.classList.toggle(openClass);\n return;\n }\n\n setDefinitionPosition(openDefinition, termElement);\n });\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// GENERATED DO NOT EDIT\nmodule.exports = [\n \"alignContent\",\n \"MozAlignContent\",\n \"WebkitAlignContent\",\n \"MSAlignContent\",\n \"OAlignContent\",\n \"alignItems\",\n \"MozAlignItems\",\n \"WebkitAlignItems\",\n \"MSAlignItems\",\n \"OAlignItems\",\n \"alignSelf\",\n \"MozAlignSelf\",\n \"WebkitAlignSelf\",\n \"MSAlignSelf\",\n \"OAlignSelf\",\n \"all\",\n \"MozAll\",\n \"WebkitAll\",\n \"MSAll\",\n \"OAll\",\n \"animation\",\n \"MozAnimation\",\n \"WebkitAnimation\",\n \"MSAnimation\",\n \"OAnimation\",\n \"animationDelay\",\n \"MozAnimationDelay\",\n \"WebkitAnimationDelay\",\n \"MSAnimationDelay\",\n \"OAnimationDelay\",\n \"animationDirection\",\n \"MozAnimationDirection\",\n \"WebkitAnimationDirection\",\n \"MSAnimationDirection\",\n \"OAnimationDirection\",\n \"animationDuration\",\n \"MozAnimationDuration\",\n \"WebkitAnimationDuration\",\n \"MSAnimationDuration\",\n \"OAnimationDuration\",\n \"animationFillMode\",\n \"MozAnimationFillMode\",\n \"WebkitAnimationFillMode\",\n \"MSAnimationFillMode\",\n \"OAnimationFillMode\",\n \"animationIterationCount\",\n \"MozAnimationIterationCount\",\n \"WebkitAnimationIterationCount\",\n \"MSAnimationIterationCount\",\n \"OAnimationIterationCount\",\n \"animationName\",\n \"MozAnimationName\",\n \"WebkitAnimationName\",\n \"MSAnimationName\",\n \"OAnimationName\",\n \"animationPlayState\",\n \"MozAnimationPlayState\",\n \"WebkitAnimationPlayState\",\n \"MSAnimationPlayState\",\n \"OAnimationPlayState\",\n \"animationTimingFunction\",\n \"MozAnimationTimingFunction\",\n \"WebkitAnimationTimingFunction\",\n \"MSAnimationTimingFunction\",\n \"OAnimationTimingFunction\",\n \"backfaceVisibility\",\n \"MozBackfaceVisibility\",\n \"WebkitBackfaceVisibility\",\n \"MSBackfaceVisibility\",\n \"OBackfaceVisibility\",\n \"background\",\n \"MozBackground\",\n \"WebkitBackground\",\n \"MSBackground\",\n \"OBackground\",\n \"backgroundAttachment\",\n \"MozBackgroundAttachment\",\n \"WebkitBackgroundAttachment\",\n \"MSBackgroundAttachment\",\n \"OBackgroundAttachment\",\n \"backgroundBlendMode\",\n \"MozBackgroundBlendMode\",\n \"WebkitBackgroundBlendMode\",\n \"MSBackgroundBlendMode\",\n \"OBackgroundBlendMode\",\n \"backgroundClip\",\n \"MozBackgroundClip\",\n \"WebkitBackgroundClip\",\n \"MSBackgroundClip\",\n \"OBackgroundClip\",\n \"backgroundColor\",\n \"MozBackgroundColor\",\n \"WebkitBackgroundColor\",\n \"MSBackgroundColor\",\n \"OBackgroundColor\",\n \"backgroundImage\",\n \"MozBackgroundImage\",\n \"WebkitBackgroundImage\",\n \"MSBackgroundImage\",\n \"OBackgroundImage\",\n \"backgroundOrigin\",\n \"MozBackgroundOrigin\",\n \"WebkitBackgroundOrigin\",\n \"MSBackgroundOrigin\",\n \"OBackgroundOrigin\",\n \"backgroundPosition\",\n \"MozBackgroundPosition\",\n \"WebkitBackgroundPosition\",\n \"MSBackgroundPosition\",\n \"OBackgroundPosition\",\n \"backgroundRepeat\",\n \"MozBackgroundRepeat\",\n \"WebkitBackgroundRepeat\",\n \"MSBackgroundRepeat\",\n \"OBackgroundRepeat\",\n \"backgroundSize\",\n \"MozBackgroundSize\",\n \"WebkitBackgroundSize\",\n \"MSBackgroundSize\",\n \"OBackgroundSize\",\n \"blockSize\",\n \"MozBlockSize\",\n \"WebkitBlockSize\",\n \"MSBlockSize\",\n \"OBlockSize\",\n \"border\",\n \"MozBorder\",\n \"WebkitBorder\",\n \"MSBorder\",\n \"OBorder\",\n \"borderBlockEnd\",\n \"MozBorderBlockEnd\",\n \"WebkitBorderBlockEnd\",\n \"MSBorderBlockEnd\",\n \"OBorderBlockEnd\",\n \"borderBlockEndColor\",\n \"MozBorderBlockEndColor\",\n \"WebkitBorderBlockEndColor\",\n \"MSBorderBlockEndColor\",\n \"OBorderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"MozBorderBlockEndStyle\",\n \"WebkitBorderBlockEndStyle\",\n \"MSBorderBlockEndStyle\",\n \"OBorderBlockEndStyle\",\n \"borderBlockEndWidth\",\n \"MozBorderBlockEndWidth\",\n \"WebkitBorderBlockEndWidth\",\n \"MSBorderBlockEndWidth\",\n \"OBorderBlockEndWidth\",\n \"borderBlockStart\",\n \"MozBorderBlockStart\",\n \"WebkitBorderBlockStart\",\n \"MSBorderBlockStart\",\n \"OBorderBlockStart\",\n \"borderBlockStartColor\",\n \"MozBorderBlockStartColor\",\n \"WebkitBorderBlockStartColor\",\n \"MSBorderBlockStartColor\",\n \"OBorderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"MozBorderBlockStartStyle\",\n \"WebkitBorderBlockStartStyle\",\n \"MSBorderBlockStartStyle\",\n \"OBorderBlockStartStyle\",\n \"borderBlockStartWidth\",\n \"MozBorderBlockStartWidth\",\n \"WebkitBorderBlockStartWidth\",\n \"MSBorderBlockStartWidth\",\n \"OBorderBlockStartWidth\",\n \"borderBottom\",\n \"MozBorderBottom\",\n \"WebkitBorderBottom\",\n \"MSBorderBottom\",\n \"OBorderBottom\",\n \"borderBottomColor\",\n \"MozBorderBottomColor\",\n \"WebkitBorderBottomColor\",\n \"MSBorderBottomColor\",\n \"OBorderBottomColor\",\n \"borderBottomLeftRadius\",\n \"MozBorderBottomLeftRadius\",\n \"WebkitBorderBottomLeftRadius\",\n \"MSBorderBottomLeftRadius\",\n \"OBorderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"MozBorderBottomRightRadius\",\n \"WebkitBorderBottomRightRadius\",\n \"MSBorderBottomRightRadius\",\n \"OBorderBottomRightRadius\",\n \"borderBottomStyle\",\n \"MozBorderBottomStyle\",\n \"WebkitBorderBottomStyle\",\n \"MSBorderBottomStyle\",\n \"OBorderBottomStyle\",\n \"borderBottomWidth\",\n \"MozBorderBottomWidth\",\n \"WebkitBorderBottomWidth\",\n \"MSBorderBottomWidth\",\n \"OBorderBottomWidth\",\n \"borderCollapse\",\n \"MozBorderCollapse\",\n \"WebkitBorderCollapse\",\n \"MSBorderCollapse\",\n \"OBorderCollapse\",\n \"borderColor\",\n \"MozBorderColor\",\n \"WebkitBorderColor\",\n \"MSBorderColor\",\n \"OBorderColor\",\n \"borderImage\",\n \"MozBorderImage\",\n \"WebkitBorderImage\",\n \"MSBorderImage\",\n \"OBorderImage\",\n \"borderImageOutset\",\n \"MozBorderImageOutset\",\n \"WebkitBorderImageOutset\",\n \"MSBorderImageOutset\",\n \"OBorderImageOutset\",\n \"borderImageRepeat\",\n \"MozBorderImageRepeat\",\n \"WebkitBorderImageRepeat\",\n \"MSBorderImageRepeat\",\n \"OBorderImageRepeat\",\n \"borderImageSlice\",\n \"MozBorderImageSlice\",\n \"WebkitBorderImageSlice\",\n \"MSBorderImageSlice\",\n \"OBorderImageSlice\",\n \"borderImageSource\",\n \"MozBorderImageSource\",\n \"WebkitBorderImageSource\",\n \"MSBorderImageSource\",\n \"OBorderImageSource\",\n \"borderImageWidth\",\n \"MozBorderImageWidth\",\n \"WebkitBorderImageWidth\",\n \"MSBorderImageWidth\",\n \"OBorderImageWidth\",\n \"borderInlineEnd\",\n \"MozBorderInlineEnd\",\n \"WebkitBorderInlineEnd\",\n \"MSBorderInlineEnd\",\n \"OBorderInlineEnd\",\n \"borderInlineEndColor\",\n \"MozBorderInlineEndColor\",\n \"WebkitBorderInlineEndColor\",\n \"MSBorderInlineEndColor\",\n \"OBorderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"MozBorderInlineEndStyle\",\n \"WebkitBorderInlineEndStyle\",\n \"MSBorderInlineEndStyle\",\n \"OBorderInlineEndStyle\",\n \"borderInlineEndWidth\",\n \"MozBorderInlineEndWidth\",\n \"WebkitBorderInlineEndWidth\",\n \"MSBorderInlineEndWidth\",\n \"OBorderInlineEndWidth\",\n \"borderInlineStart\",\n \"MozBorderInlineStart\",\n \"WebkitBorderInlineStart\",\n \"MSBorderInlineStart\",\n \"OBorderInlineStart\",\n \"borderInlineStartColor\",\n \"MozBorderInlineStartColor\",\n \"WebkitBorderInlineStartColor\",\n \"MSBorderInlineStartColor\",\n \"OBorderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"MozBorderInlineStartStyle\",\n \"WebkitBorderInlineStartStyle\",\n \"MSBorderInlineStartStyle\",\n \"OBorderInlineStartStyle\",\n \"borderInlineStartWidth\",\n \"MozBorderInlineStartWidth\",\n \"WebkitBorderInlineStartWidth\",\n \"MSBorderInlineStartWidth\",\n \"OBorderInlineStartWidth\",\n \"borderLeft\",\n \"MozBorderLeft\",\n \"WebkitBorderLeft\",\n \"MSBorderLeft\",\n \"OBorderLeft\",\n \"borderLeftColor\",\n \"MozBorderLeftColor\",\n \"WebkitBorderLeftColor\",\n \"MSBorderLeftColor\",\n \"OBorderLeftColor\",\n \"borderLeftStyle\",\n \"MozBorderLeftStyle\",\n \"WebkitBorderLeftStyle\",\n \"MSBorderLeftStyle\",\n \"OBorderLeftStyle\",\n \"borderLeftWidth\",\n \"MozBorderLeftWidth\",\n \"WebkitBorderLeftWidth\",\n \"MSBorderLeftWidth\",\n \"OBorderLeftWidth\",\n \"borderRadius\",\n \"MozBorderRadius\",\n \"WebkitBorderRadius\",\n \"MSBorderRadius\",\n \"OBorderRadius\",\n \"borderRight\",\n \"MozBorderRight\",\n \"WebkitBorderRight\",\n \"MSBorderRight\",\n \"OBorderRight\",\n \"borderRightColor\",\n \"MozBorderRightColor\",\n \"WebkitBorderRightColor\",\n \"MSBorderRightColor\",\n \"OBorderRightColor\",\n \"borderRightStyle\",\n \"MozBorderRightStyle\",\n \"WebkitBorderRightStyle\",\n \"MSBorderRightStyle\",\n \"OBorderRightStyle\",\n \"borderRightWidth\",\n \"MozBorderRightWidth\",\n \"WebkitBorderRightWidth\",\n \"MSBorderRightWidth\",\n \"OBorderRightWidth\",\n \"borderSpacing\",\n \"MozBorderSpacing\",\n \"WebkitBorderSpacing\",\n \"MSBorderSpacing\",\n \"OBorderSpacing\",\n \"borderStyle\",\n \"MozBorderStyle\",\n \"WebkitBorderStyle\",\n \"MSBorderStyle\",\n \"OBorderStyle\",\n \"borderTop\",\n \"MozBorderTop\",\n \"WebkitBorderTop\",\n \"MSBorderTop\",\n \"OBorderTop\",\n \"borderTopColor\",\n \"MozBorderTopColor\",\n \"WebkitBorderTopColor\",\n \"MSBorderTopColor\",\n \"OBorderTopColor\",\n \"borderTopLeftRadius\",\n \"MozBorderTopLeftRadius\",\n \"WebkitBorderTopLeftRadius\",\n \"MSBorderTopLeftRadius\",\n \"OBorderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"MozBorderTopRightRadius\",\n \"WebkitBorderTopRightRadius\",\n \"MSBorderTopRightRadius\",\n \"OBorderTopRightRadius\",\n \"borderTopStyle\",\n \"MozBorderTopStyle\",\n \"WebkitBorderTopStyle\",\n \"MSBorderTopStyle\",\n \"OBorderTopStyle\",\n \"borderTopWidth\",\n \"MozBorderTopWidth\",\n \"WebkitBorderTopWidth\",\n \"MSBorderTopWidth\",\n \"OBorderTopWidth\",\n \"borderWidth\",\n \"MozBorderWidth\",\n \"WebkitBorderWidth\",\n \"MSBorderWidth\",\n \"OBorderWidth\",\n \"bottom\",\n \"MozBottom\",\n \"WebkitBottom\",\n \"MSBottom\",\n \"OBottom\",\n \"boxDecorationBreak\",\n \"MozBoxDecorationBreak\",\n \"WebkitBoxDecorationBreak\",\n \"MSBoxDecorationBreak\",\n \"OBoxDecorationBreak\",\n \"boxShadow\",\n \"MozBoxShadow\",\n \"WebkitBoxShadow\",\n \"MSBoxShadow\",\n \"OBoxShadow\",\n \"boxSizing\",\n \"MozBoxSizing\",\n \"WebkitBoxSizing\",\n \"MSBoxSizing\",\n \"OBoxSizing\",\n \"breakAfter\",\n \"MozBreakAfter\",\n \"WebkitBreakAfter\",\n \"MSBreakAfter\",\n \"OBreakAfter\",\n \"breakBefore\",\n \"MozBreakBefore\",\n \"WebkitBreakBefore\",\n \"MSBreakBefore\",\n \"OBreakBefore\",\n \"breakInside\",\n \"MozBreakInside\",\n \"WebkitBreakInside\",\n \"MSBreakInside\",\n \"OBreakInside\",\n \"captionSide\",\n \"MozCaptionSide\",\n \"WebkitCaptionSide\",\n \"MSCaptionSide\",\n \"OCaptionSide\",\n \"caretColor\",\n \"MozCaretColor\",\n \"WebkitCaretColor\",\n \"MSCaretColor\",\n \"OCaretColor\",\n \"ch\",\n \"MozCh\",\n \"WebkitCh\",\n \"MSCh\",\n \"OCh\",\n \"clear\",\n \"MozClear\",\n \"WebkitClear\",\n \"MSClear\",\n \"OClear\",\n \"clip\",\n \"MozClip\",\n \"WebkitClip\",\n \"MSClip\",\n \"OClip\",\n \"clipPath\",\n \"MozClipPath\",\n \"WebkitClipPath\",\n \"MSClipPath\",\n \"OClipPath\",\n \"cm\",\n \"MozCm\",\n \"WebkitCm\",\n \"MSCm\",\n \"OCm\",\n \"color\",\n \"MozColor\",\n \"WebkitColor\",\n \"MSColor\",\n \"OColor\",\n \"columnCount\",\n \"MozColumnCount\",\n \"WebkitColumnCount\",\n \"MSColumnCount\",\n \"OColumnCount\",\n \"columnFill\",\n \"MozColumnFill\",\n \"WebkitColumnFill\",\n \"MSColumnFill\",\n \"OColumnFill\",\n \"columnGap\",\n \"MozColumnGap\",\n \"WebkitColumnGap\",\n \"MSColumnGap\",\n \"OColumnGap\",\n \"columnRule\",\n \"MozColumnRule\",\n \"WebkitColumnRule\",\n \"MSColumnRule\",\n \"OColumnRule\",\n \"columnRuleColor\",\n \"MozColumnRuleColor\",\n \"WebkitColumnRuleColor\",\n \"MSColumnRuleColor\",\n \"OColumnRuleColor\",\n \"columnRuleStyle\",\n \"MozColumnRuleStyle\",\n \"WebkitColumnRuleStyle\",\n \"MSColumnRuleStyle\",\n \"OColumnRuleStyle\",\n \"columnRuleWidth\",\n \"MozColumnRuleWidth\",\n \"WebkitColumnRuleWidth\",\n \"MSColumnRuleWidth\",\n \"OColumnRuleWidth\",\n \"columnSpan\",\n \"MozColumnSpan\",\n \"WebkitColumnSpan\",\n \"MSColumnSpan\",\n \"OColumnSpan\",\n \"columnWidth\",\n \"MozColumnWidth\",\n \"WebkitColumnWidth\",\n \"MSColumnWidth\",\n \"OColumnWidth\",\n \"columns\",\n \"MozColumns\",\n \"WebkitColumns\",\n \"MSColumns\",\n \"OColumns\",\n \"content\",\n \"MozContent\",\n \"WebkitContent\",\n \"MSContent\",\n \"OContent\",\n \"counterIncrement\",\n \"MozCounterIncrement\",\n \"WebkitCounterIncrement\",\n \"MSCounterIncrement\",\n \"OCounterIncrement\",\n \"counterReset\",\n \"MozCounterReset\",\n \"WebkitCounterReset\",\n \"MSCounterReset\",\n \"OCounterReset\",\n \"cursor\",\n \"MozCursor\",\n \"WebkitCursor\",\n \"MSCursor\",\n \"OCursor\",\n \"deg\",\n \"MozDeg\",\n \"WebkitDeg\",\n \"MSDeg\",\n \"ODeg\",\n \"direction\",\n \"MozDirection\",\n \"WebkitDirection\",\n \"MSDirection\",\n \"ODirection\",\n \"display\",\n \"MozDisplay\",\n \"WebkitDisplay\",\n \"MSDisplay\",\n \"ODisplay\",\n \"dpcm\",\n \"MozDpcm\",\n \"WebkitDpcm\",\n \"MSDpcm\",\n \"ODpcm\",\n \"dpi\",\n \"MozDpi\",\n \"WebkitDpi\",\n \"MSDpi\",\n \"ODpi\",\n \"dppx\",\n \"MozDppx\",\n \"WebkitDppx\",\n \"MSDppx\",\n \"ODppx\",\n \"em\",\n \"MozEm\",\n \"WebkitEm\",\n \"MSEm\",\n \"OEm\",\n \"emptyCells\",\n \"MozEmptyCells\",\n \"WebkitEmptyCells\",\n \"MSEmptyCells\",\n \"OEmptyCells\",\n \"ex\",\n \"MozEx\",\n \"WebkitEx\",\n \"MSEx\",\n \"OEx\",\n \"filter\",\n \"MozFilter\",\n \"WebkitFilter\",\n \"MSFilter\",\n \"OFilter\",\n \"flexBasis\",\n \"MozFlexBasis\",\n \"WebkitFlexBasis\",\n \"MSFlexBasis\",\n \"OFlexBasis\",\n \"flexDirection\",\n \"MozFlexDirection\",\n \"WebkitFlexDirection\",\n \"MSFlexDirection\",\n \"OFlexDirection\",\n \"flexFlow\",\n \"MozFlexFlow\",\n \"WebkitFlexFlow\",\n \"MSFlexFlow\",\n \"OFlexFlow\",\n \"flexGrow\",\n \"MozFlexGrow\",\n \"WebkitFlexGrow\",\n \"MSFlexGrow\",\n \"OFlexGrow\",\n \"flexShrink\",\n \"MozFlexShrink\",\n \"WebkitFlexShrink\",\n \"MSFlexShrink\",\n \"OFlexShrink\",\n \"flexWrap\",\n \"MozFlexWrap\",\n \"WebkitFlexWrap\",\n \"MSFlexWrap\",\n \"OFlexWrap\",\n \"float\",\n \"MozFloat\",\n \"WebkitFloat\",\n \"MSFloat\",\n \"OFloat\",\n \"font\",\n \"MozFont\",\n \"WebkitFont\",\n \"MSFont\",\n \"OFont\",\n \"fontFamily\",\n \"MozFontFamily\",\n \"WebkitFontFamily\",\n \"MSFontFamily\",\n \"OFontFamily\",\n \"fontFeatureSettings\",\n \"MozFontFeatureSettings\",\n \"WebkitFontFeatureSettings\",\n \"MSFontFeatureSettings\",\n \"OFontFeatureSettings\",\n \"fontKerning\",\n \"MozFontKerning\",\n \"WebkitFontKerning\",\n \"MSFontKerning\",\n \"OFontKerning\",\n \"fontLanguageOverride\",\n \"MozFontLanguageOverride\",\n \"WebkitFontLanguageOverride\",\n \"MSFontLanguageOverride\",\n \"OFontLanguageOverride\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"fontSizeAdjust\",\n \"MozFontSizeAdjust\",\n \"WebkitFontSizeAdjust\",\n \"MSFontSizeAdjust\",\n \"OFontSizeAdjust\",\n \"fontStretch\",\n \"MozFontStretch\",\n \"WebkitFontStretch\",\n \"MSFontStretch\",\n \"OFontStretch\",\n \"fontStyle\",\n \"MozFontStyle\",\n \"WebkitFontStyle\",\n \"MSFontStyle\",\n \"OFontStyle\",\n \"fontSynthesis\",\n \"MozFontSynthesis\",\n \"WebkitFontSynthesis\",\n \"MSFontSynthesis\",\n \"OFontSynthesis\",\n \"fontVariant\",\n \"MozFontVariant\",\n \"WebkitFontVariant\",\n \"MSFontVariant\",\n \"OFontVariant\",\n \"fontVariantAlternates\",\n \"MozFontVariantAlternates\",\n \"WebkitFontVariantAlternates\",\n \"MSFontVariantAlternates\",\n \"OFontVariantAlternates\",\n \"fontVariantCaps\",\n \"MozFontVariantCaps\",\n \"WebkitFontVariantCaps\",\n \"MSFontVariantCaps\",\n \"OFontVariantCaps\",\n \"fontVariantEastAsian\",\n \"MozFontVariantEastAsian\",\n \"WebkitFontVariantEastAsian\",\n \"MSFontVariantEastAsian\",\n \"OFontVariantEastAsian\",\n \"fontVariantLigatures\",\n \"MozFontVariantLigatures\",\n \"WebkitFontVariantLigatures\",\n \"MSFontVariantLigatures\",\n \"OFontVariantLigatures\",\n \"fontVariantNumeric\",\n \"MozFontVariantNumeric\",\n \"WebkitFontVariantNumeric\",\n \"MSFontVariantNumeric\",\n \"OFontVariantNumeric\",\n \"fontVariantPosition\",\n \"MozFontVariantPosition\",\n \"WebkitFontVariantPosition\",\n \"MSFontVariantPosition\",\n \"OFontVariantPosition\",\n \"fontWeight\",\n \"MozFontWeight\",\n \"WebkitFontWeight\",\n \"MSFontWeight\",\n \"OFontWeight\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"grad\",\n \"MozGrad\",\n \"WebkitGrad\",\n \"MSGrad\",\n \"OGrad\",\n \"grid\",\n \"MozGrid\",\n \"WebkitGrid\",\n \"MSGrid\",\n \"OGrid\",\n \"gridArea\",\n \"MozGridArea\",\n \"WebkitGridArea\",\n \"MSGridArea\",\n \"OGridArea\",\n \"gridAutoColumns\",\n \"MozGridAutoColumns\",\n \"WebkitGridAutoColumns\",\n \"MSGridAutoColumns\",\n \"OGridAutoColumns\",\n \"gridAutoFlow\",\n \"MozGridAutoFlow\",\n \"WebkitGridAutoFlow\",\n \"MSGridAutoFlow\",\n \"OGridAutoFlow\",\n \"gridAutoRows\",\n \"MozGridAutoRows\",\n \"WebkitGridAutoRows\",\n \"MSGridAutoRows\",\n \"OGridAutoRows\",\n \"gridColumn\",\n \"MozGridColumn\",\n \"WebkitGridColumn\",\n \"MSGridColumn\",\n \"OGridColumn\",\n \"gridColumnEnd\",\n \"MozGridColumnEnd\",\n \"WebkitGridColumnEnd\",\n \"MSGridColumnEnd\",\n \"OGridColumnEnd\",\n \"gridColumnGap\",\n \"MozGridColumnGap\",\n \"WebkitGridColumnGap\",\n \"MSGridColumnGap\",\n \"OGridColumnGap\",\n \"gridColumnStart\",\n \"MozGridColumnStart\",\n \"WebkitGridColumnStart\",\n \"MSGridColumnStart\",\n \"OGridColumnStart\",\n \"gridGap\",\n \"MozGridGap\",\n \"WebkitGridGap\",\n \"MSGridGap\",\n \"OGridGap\",\n \"gridRow\",\n \"MozGridRow\",\n \"WebkitGridRow\",\n \"MSGridRow\",\n \"OGridRow\",\n \"gridRowEnd\",\n \"MozGridRowEnd\",\n \"WebkitGridRowEnd\",\n \"MSGridRowEnd\",\n \"OGridRowEnd\",\n \"gridRowGap\",\n \"MozGridRowGap\",\n \"WebkitGridRowGap\",\n \"MSGridRowGap\",\n \"OGridRowGap\",\n \"gridRowStart\",\n \"MozGridRowStart\",\n \"WebkitGridRowStart\",\n \"MSGridRowStart\",\n \"OGridRowStart\",\n \"gridTemplate\",\n \"MozGridTemplate\",\n \"WebkitGridTemplate\",\n \"MSGridTemplate\",\n \"OGridTemplate\",\n \"gridTemplateAreas\",\n \"MozGridTemplateAreas\",\n \"WebkitGridTemplateAreas\",\n \"MSGridTemplateAreas\",\n \"OGridTemplateAreas\",\n \"gridTemplateColumns\",\n \"MozGridTemplateColumns\",\n \"WebkitGridTemplateColumns\",\n \"MSGridTemplateColumns\",\n \"OGridTemplateColumns\",\n \"gridTemplateRows\",\n \"MozGridTemplateRows\",\n \"WebkitGridTemplateRows\",\n \"MSGridTemplateRows\",\n \"OGridTemplateRows\",\n \"height\",\n \"MozHeight\",\n \"WebkitHeight\",\n \"MSHeight\",\n \"OHeight\",\n \"hyphens\",\n \"MozHyphens\",\n \"WebkitHyphens\",\n \"MSHyphens\",\n \"OHyphens\",\n \"hz\",\n \"MozHz\",\n \"WebkitHz\",\n \"MSHz\",\n \"OHz\",\n \"imageOrientation\",\n \"MozImageOrientation\",\n \"WebkitImageOrientation\",\n \"MSImageOrientation\",\n \"OImageOrientation\",\n \"imageRendering\",\n \"MozImageRendering\",\n \"WebkitImageRendering\",\n \"MSImageRendering\",\n \"OImageRendering\",\n \"imageResolution\",\n \"MozImageResolution\",\n \"WebkitImageResolution\",\n \"MSImageResolution\",\n \"OImageResolution\",\n \"imeMode\",\n \"MozImeMode\",\n \"WebkitImeMode\",\n \"MSImeMode\",\n \"OImeMode\",\n \"in\",\n \"MozIn\",\n \"WebkitIn\",\n \"MSIn\",\n \"OIn\",\n \"inherit\",\n \"MozInherit\",\n \"WebkitInherit\",\n \"MSInherit\",\n \"OInherit\",\n \"initial\",\n \"MozInitial\",\n \"WebkitInitial\",\n \"MSInitial\",\n \"OInitial\",\n \"inlineSize\",\n \"MozInlineSize\",\n \"WebkitInlineSize\",\n \"MSInlineSize\",\n \"OInlineSize\",\n \"isolation\",\n \"MozIsolation\",\n \"WebkitIsolation\",\n \"MSIsolation\",\n \"OIsolation\",\n \"justifyContent\",\n \"MozJustifyContent\",\n \"WebkitJustifyContent\",\n \"MSJustifyContent\",\n \"OJustifyContent\",\n \"khz\",\n \"MozKhz\",\n \"WebkitKhz\",\n \"MSKhz\",\n \"OKhz\",\n \"left\",\n \"MozLeft\",\n \"WebkitLeft\",\n \"MSLeft\",\n \"OLeft\",\n \"letterSpacing\",\n \"MozLetterSpacing\",\n \"WebkitLetterSpacing\",\n \"MSLetterSpacing\",\n \"OLetterSpacing\",\n \"lineBreak\",\n \"MozLineBreak\",\n \"WebkitLineBreak\",\n \"MSLineBreak\",\n \"OLineBreak\",\n \"lineHeight\",\n \"MozLineHeight\",\n \"WebkitLineHeight\",\n \"MSLineHeight\",\n \"OLineHeight\",\n \"listStyle\",\n \"MozListStyle\",\n \"WebkitListStyle\",\n \"MSListStyle\",\n \"OListStyle\",\n \"listStyleImage\",\n \"MozListStyleImage\",\n \"WebkitListStyleImage\",\n \"MSListStyleImage\",\n \"OListStyleImage\",\n \"listStylePosition\",\n \"MozListStylePosition\",\n \"WebkitListStylePosition\",\n \"MSListStylePosition\",\n \"OListStylePosition\",\n \"listStyleType\",\n \"MozListStyleType\",\n \"WebkitListStyleType\",\n \"MSListStyleType\",\n \"OListStyleType\",\n \"margin\",\n \"MozMargin\",\n \"WebkitMargin\",\n \"MSMargin\",\n \"OMargin\",\n \"marginBlockEnd\",\n \"MozMarginBlockEnd\",\n \"WebkitMarginBlockEnd\",\n \"MSMarginBlockEnd\",\n \"OMarginBlockEnd\",\n \"marginBlockStart\",\n \"MozMarginBlockStart\",\n \"WebkitMarginBlockStart\",\n \"MSMarginBlockStart\",\n \"OMarginBlockStart\",\n \"marginBottom\",\n \"MozMarginBottom\",\n \"WebkitMarginBottom\",\n \"MSMarginBottom\",\n \"OMarginBottom\",\n \"marginInlineEnd\",\n \"MozMarginInlineEnd\",\n \"WebkitMarginInlineEnd\",\n \"MSMarginInlineEnd\",\n \"OMarginInlineEnd\",\n \"marginInlineStart\",\n \"MozMarginInlineStart\",\n \"WebkitMarginInlineStart\",\n \"MSMarginInlineStart\",\n \"OMarginInlineStart\",\n \"marginLeft\",\n \"MozMarginLeft\",\n \"WebkitMarginLeft\",\n \"MSMarginLeft\",\n \"OMarginLeft\",\n \"marginRight\",\n \"MozMarginRight\",\n \"WebkitMarginRight\",\n \"MSMarginRight\",\n \"OMarginRight\",\n \"marginTop\",\n \"MozMarginTop\",\n \"WebkitMarginTop\",\n \"MSMarginTop\",\n \"OMarginTop\",\n \"mask\",\n \"MozMask\",\n \"WebkitMask\",\n \"MSMask\",\n \"OMask\",\n \"maskClip\",\n \"MozMaskClip\",\n \"WebkitMaskClip\",\n \"MSMaskClip\",\n \"OMaskClip\",\n \"maskComposite\",\n \"MozMaskComposite\",\n \"WebkitMaskComposite\",\n \"MSMaskComposite\",\n \"OMaskComposite\",\n \"maskImage\",\n \"MozMaskImage\",\n \"WebkitMaskImage\",\n \"MSMaskImage\",\n \"OMaskImage\",\n \"maskMode\",\n \"MozMaskMode\",\n \"WebkitMaskMode\",\n \"MSMaskMode\",\n \"OMaskMode\",\n \"maskOrigin\",\n \"MozMaskOrigin\",\n \"WebkitMaskOrigin\",\n \"MSMaskOrigin\",\n \"OMaskOrigin\",\n \"maskPosition\",\n \"MozMaskPosition\",\n \"WebkitMaskPosition\",\n \"MSMaskPosition\",\n \"OMaskPosition\",\n \"maskRepeat\",\n \"MozMaskRepeat\",\n \"WebkitMaskRepeat\",\n \"MSMaskRepeat\",\n \"OMaskRepeat\",\n \"maskSize\",\n \"MozMaskSize\",\n \"WebkitMaskSize\",\n \"MSMaskSize\",\n \"OMaskSize\",\n \"maskType\",\n \"MozMaskType\",\n \"WebkitMaskType\",\n \"MSMaskType\",\n \"OMaskType\",\n \"maxHeight\",\n \"MozMaxHeight\",\n \"WebkitMaxHeight\",\n \"MSMaxHeight\",\n \"OMaxHeight\",\n \"maxWidth\",\n \"MozMaxWidth\",\n \"WebkitMaxWidth\",\n \"MSMaxWidth\",\n \"OMaxWidth\",\n \"minBlockSize\",\n \"MozMinBlockSize\",\n \"WebkitMinBlockSize\",\n \"MSMinBlockSize\",\n \"OMinBlockSize\",\n \"minHeight\",\n \"MozMinHeight\",\n \"WebkitMinHeight\",\n \"MSMinHeight\",\n \"OMinHeight\",\n \"minInlineSize\",\n \"MozMinInlineSize\",\n \"WebkitMinInlineSize\",\n \"MSMinInlineSize\",\n \"OMinInlineSize\",\n \"minWidth\",\n \"MozMinWidth\",\n \"WebkitMinWidth\",\n \"MSMinWidth\",\n \"OMinWidth\",\n \"mixBlendMode\",\n \"MozMixBlendMode\",\n \"WebkitMixBlendMode\",\n \"MSMixBlendMode\",\n \"OMixBlendMode\",\n \"mm\",\n \"MozMm\",\n \"WebkitMm\",\n \"MSMm\",\n \"OMm\",\n \"ms\",\n \"MozMs\",\n \"WebkitMs\",\n \"MSMs\",\n \"OMs\",\n \"objectFit\",\n \"MozObjectFit\",\n \"WebkitObjectFit\",\n \"MSObjectFit\",\n \"OObjectFit\",\n \"objectPosition\",\n \"MozObjectPosition\",\n \"WebkitObjectPosition\",\n \"MSObjectPosition\",\n \"OObjectPosition\",\n \"offsetBlockEnd\",\n \"MozOffsetBlockEnd\",\n \"WebkitOffsetBlockEnd\",\n \"MSOffsetBlockEnd\",\n \"OOffsetBlockEnd\",\n \"offsetBlockStart\",\n \"MozOffsetBlockStart\",\n \"WebkitOffsetBlockStart\",\n \"MSOffsetBlockStart\",\n \"OOffsetBlockStart\",\n \"offsetInlineEnd\",\n \"MozOffsetInlineEnd\",\n \"WebkitOffsetInlineEnd\",\n \"MSOffsetInlineEnd\",\n \"OOffsetInlineEnd\",\n \"offsetInlineStart\",\n \"MozOffsetInlineStart\",\n \"WebkitOffsetInlineStart\",\n \"MSOffsetInlineStart\",\n \"OOffsetInlineStart\",\n \"opacity\",\n \"MozOpacity\",\n \"WebkitOpacity\",\n \"MSOpacity\",\n \"OOpacity\",\n \"order\",\n \"MozOrder\",\n \"WebkitOrder\",\n \"MSOrder\",\n \"OOrder\",\n \"orphans\",\n \"MozOrphans\",\n \"WebkitOrphans\",\n \"MSOrphans\",\n \"OOrphans\",\n \"outline\",\n \"MozOutline\",\n \"WebkitOutline\",\n \"MSOutline\",\n \"OOutline\",\n \"outlineColor\",\n \"MozOutlineColor\",\n \"WebkitOutlineColor\",\n \"MSOutlineColor\",\n \"OOutlineColor\",\n \"outlineOffset\",\n \"MozOutlineOffset\",\n \"WebkitOutlineOffset\",\n \"MSOutlineOffset\",\n \"OOutlineOffset\",\n \"outlineStyle\",\n \"MozOutlineStyle\",\n \"WebkitOutlineStyle\",\n \"MSOutlineStyle\",\n \"OOutlineStyle\",\n \"outlineWidth\",\n \"MozOutlineWidth\",\n \"WebkitOutlineWidth\",\n \"MSOutlineWidth\",\n \"OOutlineWidth\",\n \"overflow\",\n \"MozOverflow\",\n \"WebkitOverflow\",\n \"MSOverflow\",\n \"OOverflow\",\n \"overflowWrap\",\n \"MozOverflowWrap\",\n \"WebkitOverflowWrap\",\n \"MSOverflowWrap\",\n \"OOverflowWrap\",\n \"overflowX\",\n \"MozOverflowX\",\n \"WebkitOverflowX\",\n \"MSOverflowX\",\n \"OOverflowX\",\n \"overflowY\",\n \"MozOverflowY\",\n \"WebkitOverflowY\",\n \"MSOverflowY\",\n \"OOverflowY\",\n \"padding\",\n \"MozPadding\",\n \"WebkitPadding\",\n \"MSPadding\",\n \"OPadding\",\n \"paddingBlockEnd\",\n \"MozPaddingBlockEnd\",\n \"WebkitPaddingBlockEnd\",\n \"MSPaddingBlockEnd\",\n \"OPaddingBlockEnd\",\n \"paddingBlockStart\",\n \"MozPaddingBlockStart\",\n \"WebkitPaddingBlockStart\",\n \"MSPaddingBlockStart\",\n \"OPaddingBlockStart\",\n \"paddingBottom\",\n \"MozPaddingBottom\",\n \"WebkitPaddingBottom\",\n \"MSPaddingBottom\",\n \"OPaddingBottom\",\n \"paddingInlineEnd\",\n \"MozPaddingInlineEnd\",\n \"WebkitPaddingInlineEnd\",\n \"MSPaddingInlineEnd\",\n \"OPaddingInlineEnd\",\n \"paddingInlineStart\",\n \"MozPaddingInlineStart\",\n \"WebkitPaddingInlineStart\",\n \"MSPaddingInlineStart\",\n \"OPaddingInlineStart\",\n \"paddingLeft\",\n \"MozPaddingLeft\",\n \"WebkitPaddingLeft\",\n \"MSPaddingLeft\",\n \"OPaddingLeft\",\n \"paddingRight\",\n \"MozPaddingRight\",\n \"WebkitPaddingRight\",\n \"MSPaddingRight\",\n \"OPaddingRight\",\n \"paddingTop\",\n \"MozPaddingTop\",\n \"WebkitPaddingTop\",\n \"MSPaddingTop\",\n \"OPaddingTop\",\n \"pageBreakAfter\",\n \"MozPageBreakAfter\",\n \"WebkitPageBreakAfter\",\n \"MSPageBreakAfter\",\n \"OPageBreakAfter\",\n \"pageBreakBefore\",\n \"MozPageBreakBefore\",\n \"WebkitPageBreakBefore\",\n \"MSPageBreakBefore\",\n \"OPageBreakBefore\",\n \"pageBreakInside\",\n \"MozPageBreakInside\",\n \"WebkitPageBreakInside\",\n \"MSPageBreakInside\",\n \"OPageBreakInside\",\n \"pc\",\n \"MozPc\",\n \"WebkitPc\",\n \"MSPc\",\n \"OPc\",\n \"perspective\",\n \"MozPerspective\",\n \"WebkitPerspective\",\n \"MSPerspective\",\n \"OPerspective\",\n \"perspectiveOrigin\",\n \"MozPerspectiveOrigin\",\n \"WebkitPerspectiveOrigin\",\n \"MSPerspectiveOrigin\",\n \"OPerspectiveOrigin\",\n \"pointerEvents\",\n \"MozPointerEvents\",\n \"WebkitPointerEvents\",\n \"MSPointerEvents\",\n \"OPointerEvents\",\n \"position\",\n \"MozPosition\",\n \"WebkitPosition\",\n \"MSPosition\",\n \"OPosition\",\n \"pt\",\n \"MozPt\",\n \"WebkitPt\",\n \"MSPt\",\n \"OPt\",\n \"px\",\n \"MozPx\",\n \"WebkitPx\",\n \"MSPx\",\n \"OPx\",\n \"q\",\n \"MozQ\",\n \"WebkitQ\",\n \"MSQ\",\n \"OQ\",\n \"quotes\",\n \"MozQuotes\",\n \"WebkitQuotes\",\n \"MSQuotes\",\n \"OQuotes\",\n \"rad\",\n \"MozRad\",\n \"WebkitRad\",\n \"MSRad\",\n \"ORad\",\n \"rem\",\n \"MozRem\",\n \"WebkitRem\",\n \"MSRem\",\n \"ORem\",\n \"resize\",\n \"MozResize\",\n \"WebkitResize\",\n \"MSResize\",\n \"OResize\",\n \"revert\",\n \"MozRevert\",\n \"WebkitRevert\",\n \"MSRevert\",\n \"ORevert\",\n \"right\",\n \"MozRight\",\n \"WebkitRight\",\n \"MSRight\",\n \"ORight\",\n \"rubyAlign\",\n \"MozRubyAlign\",\n \"WebkitRubyAlign\",\n \"MSRubyAlign\",\n \"ORubyAlign\",\n \"rubyMerge\",\n \"MozRubyMerge\",\n \"WebkitRubyMerge\",\n \"MSRubyMerge\",\n \"ORubyMerge\",\n \"rubyPosition\",\n \"MozRubyPosition\",\n \"WebkitRubyPosition\",\n \"MSRubyPosition\",\n \"ORubyPosition\",\n \"s\",\n \"MozS\",\n \"WebkitS\",\n \"MSS\",\n \"OS\",\n \"scrollBehavior\",\n \"MozScrollBehavior\",\n \"WebkitScrollBehavior\",\n \"MSScrollBehavior\",\n \"OScrollBehavior\",\n \"scrollSnapCoordinate\",\n \"MozScrollSnapCoordinate\",\n \"WebkitScrollSnapCoordinate\",\n \"MSScrollSnapCoordinate\",\n \"OScrollSnapCoordinate\",\n \"scrollSnapDestination\",\n \"MozScrollSnapDestination\",\n \"WebkitScrollSnapDestination\",\n \"MSScrollSnapDestination\",\n \"OScrollSnapDestination\",\n \"scrollSnapType\",\n \"MozScrollSnapType\",\n \"WebkitScrollSnapType\",\n \"MSScrollSnapType\",\n \"OScrollSnapType\",\n \"shapeImageThreshold\",\n \"MozShapeImageThreshold\",\n \"WebkitShapeImageThreshold\",\n \"MSShapeImageThreshold\",\n \"OShapeImageThreshold\",\n \"shapeMargin\",\n \"MozShapeMargin\",\n \"WebkitShapeMargin\",\n \"MSShapeMargin\",\n \"OShapeMargin\",\n \"shapeOutside\",\n \"MozShapeOutside\",\n \"WebkitShapeOutside\",\n \"MSShapeOutside\",\n \"OShapeOutside\",\n \"tabSize\",\n \"MozTabSize\",\n \"WebkitTabSize\",\n \"MSTabSize\",\n \"OTabSize\",\n \"tableLayout\",\n \"MozTableLayout\",\n \"WebkitTableLayout\",\n \"MSTableLayout\",\n \"OTableLayout\",\n \"textAlign\",\n \"MozTextAlign\",\n \"WebkitTextAlign\",\n \"MSTextAlign\",\n \"OTextAlign\",\n \"textAlignLast\",\n \"MozTextAlignLast\",\n \"WebkitTextAlignLast\",\n \"MSTextAlignLast\",\n \"OTextAlignLast\",\n \"textCombineUpright\",\n \"MozTextCombineUpright\",\n \"WebkitTextCombineUpright\",\n \"MSTextCombineUpright\",\n \"OTextCombineUpright\",\n \"textDecoration\",\n \"MozTextDecoration\",\n \"WebkitTextDecoration\",\n \"MSTextDecoration\",\n \"OTextDecoration\",\n \"textDecorationColor\",\n \"MozTextDecorationColor\",\n \"WebkitTextDecorationColor\",\n \"MSTextDecorationColor\",\n \"OTextDecorationColor\",\n \"textDecorationLine\",\n \"MozTextDecorationLine\",\n \"WebkitTextDecorationLine\",\n \"MSTextDecorationLine\",\n \"OTextDecorationLine\",\n \"textDecorationStyle\",\n \"MozTextDecorationStyle\",\n \"WebkitTextDecorationStyle\",\n \"MSTextDecorationStyle\",\n \"OTextDecorationStyle\",\n \"textEmphasis\",\n \"MozTextEmphasis\",\n \"WebkitTextEmphasis\",\n \"MSTextEmphasis\",\n \"OTextEmphasis\",\n \"textEmphasisColor\",\n \"MozTextEmphasisColor\",\n \"WebkitTextEmphasisColor\",\n \"MSTextEmphasisColor\",\n \"OTextEmphasisColor\",\n \"textEmphasisPosition\",\n \"MozTextEmphasisPosition\",\n \"WebkitTextEmphasisPosition\",\n \"MSTextEmphasisPosition\",\n \"OTextEmphasisPosition\",\n \"textEmphasisStyle\",\n \"MozTextEmphasisStyle\",\n \"WebkitTextEmphasisStyle\",\n \"MSTextEmphasisStyle\",\n \"OTextEmphasisStyle\",\n \"textIndent\",\n \"MozTextIndent\",\n \"WebkitTextIndent\",\n \"MSTextIndent\",\n \"OTextIndent\",\n \"textOrientation\",\n \"MozTextOrientation\",\n \"WebkitTextOrientation\",\n \"MSTextOrientation\",\n \"OTextOrientation\",\n \"textOverflow\",\n \"MozTextOverflow\",\n \"WebkitTextOverflow\",\n \"MSTextOverflow\",\n \"OTextOverflow\",\n \"textRendering\",\n \"MozTextRendering\",\n \"WebkitTextRendering\",\n \"MSTextRendering\",\n \"OTextRendering\",\n \"textShadow\",\n \"MozTextShadow\",\n \"WebkitTextShadow\",\n \"MSTextShadow\",\n \"OTextShadow\",\n \"textTransform\",\n \"MozTextTransform\",\n \"WebkitTextTransform\",\n \"MSTextTransform\",\n \"OTextTransform\",\n \"textUnderlinePosition\",\n \"MozTextUnderlinePosition\",\n \"WebkitTextUnderlinePosition\",\n \"MSTextUnderlinePosition\",\n \"OTextUnderlinePosition\",\n \"top\",\n \"MozTop\",\n \"WebkitTop\",\n \"MSTop\",\n \"OTop\",\n \"touchAction\",\n \"MozTouchAction\",\n \"WebkitTouchAction\",\n \"MSTouchAction\",\n \"OTouchAction\",\n \"transform\",\n \"MozTransform\",\n \"WebkitTransform\",\n \"msTransform\",\n \"OTransform\",\n \"transformBox\",\n \"MozTransformBox\",\n \"WebkitTransformBox\",\n \"MSTransformBox\",\n \"OTransformBox\",\n \"transformOrigin\",\n \"MozTransformOrigin\",\n \"WebkitTransformOrigin\",\n \"MSTransformOrigin\",\n \"OTransformOrigin\",\n \"transformStyle\",\n \"MozTransformStyle\",\n \"WebkitTransformStyle\",\n \"MSTransformStyle\",\n \"OTransformStyle\",\n \"transition\",\n \"MozTransition\",\n \"WebkitTransition\",\n \"MSTransition\",\n \"OTransition\",\n \"transitionDelay\",\n \"MozTransitionDelay\",\n \"WebkitTransitionDelay\",\n \"MSTransitionDelay\",\n \"OTransitionDelay\",\n \"transitionDuration\",\n \"MozTransitionDuration\",\n \"WebkitTransitionDuration\",\n \"MSTransitionDuration\",\n \"OTransitionDuration\",\n \"transitionProperty\",\n \"MozTransitionProperty\",\n \"WebkitTransitionProperty\",\n \"MSTransitionProperty\",\n \"OTransitionProperty\",\n \"transitionTimingFunction\",\n \"MozTransitionTimingFunction\",\n \"WebkitTransitionTimingFunction\",\n \"MSTransitionTimingFunction\",\n \"OTransitionTimingFunction\",\n \"turn\",\n \"MozTurn\",\n \"WebkitTurn\",\n \"MSTurn\",\n \"OTurn\",\n \"unicodeBidi\",\n \"MozUnicodeBidi\",\n \"WebkitUnicodeBidi\",\n \"MSUnicodeBidi\",\n \"OUnicodeBidi\",\n \"unset\",\n \"MozUnset\",\n \"WebkitUnset\",\n \"MSUnset\",\n \"OUnset\",\n \"verticalAlign\",\n \"MozVerticalAlign\",\n \"WebkitVerticalAlign\",\n \"MSVerticalAlign\",\n \"OVerticalAlign\",\n \"vh\",\n \"MozVh\",\n \"WebkitVh\",\n \"MSVh\",\n \"OVh\",\n \"visibility\",\n \"MozVisibility\",\n \"WebkitVisibility\",\n \"MSVisibility\",\n \"OVisibility\",\n \"vmax\",\n \"MozVmax\",\n \"WebkitVmax\",\n \"MSVmax\",\n \"OVmax\",\n \"vmin\",\n \"MozVmin\",\n \"WebkitVmin\",\n \"MSVmin\",\n \"OVmin\",\n \"vw\",\n \"MozVw\",\n \"WebkitVw\",\n \"MSVw\",\n \"OVw\",\n \"whiteSpace\",\n \"MozWhiteSpace\",\n \"WebkitWhiteSpace\",\n \"MSWhiteSpace\",\n \"OWhiteSpace\",\n \"widows\",\n \"MozWidows\",\n \"WebkitWidows\",\n \"MSWidows\",\n \"OWidows\",\n \"width\",\n \"MozWidth\",\n \"WebkitWidth\",\n \"MSWidth\",\n \"OWidth\",\n \"willChange\",\n \"MozWillChange\",\n \"WebkitWillChange\",\n \"MSWillChange\",\n \"OWillChange\",\n \"wordBreak\",\n \"MozWordBreak\",\n \"WebkitWordBreak\",\n \"MSWordBreak\",\n \"OWordBreak\",\n \"wordSpacing\",\n \"MozWordSpacing\",\n \"WebkitWordSpacing\",\n \"MSWordSpacing\",\n \"OWordSpacing\",\n \"wordWrap\",\n \"MozWordWrap\",\n \"WebkitWordWrap\",\n \"MSWordWrap\",\n \"OWordWrap\",\n \"writingMode\",\n \"MozWritingMode\",\n \"WebkitWritingMode\",\n \"MSWritingMode\",\n \"OWritingMode\",\n \"zIndex\",\n \"MozZIndex\",\n \"WebkitZIndex\",\n \"MSZIndex\",\n \"OZIndex\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"flex\",\n \"MozFlex\",\n \"WebkitFlex\",\n \"MSFlex\",\n \"OFlex\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"overflowScrolling\",\n \"MozOverflowScrolling\",\n \"WebkitOverflowScrolling\",\n \"MSOverflowScrolling\",\n \"OOverflowScrolling\",\n \"userSelect\",\n \"MozUserSelect\",\n \"WebkitUserSelect\",\n \"MSUserSelect\",\n \"OUserSelect\"\n]\n","var properties = require('./css-properties.js');\nvar PropTypes = require('prop-types');\n\nmodule.exports = function(props, propName, componentName) {\n var styles = props[propName];\n if (!styles) {\n return;\n }\n\n var failures = [];\n Object.keys(styles).forEach(function(styleKey){\n if (properties.indexOf(styleKey) === -1) {\n failures.push(styleKey);\n }\n });\n if (failures.length) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + '. Has invalid keys ' + failures.join(', '));\n }\n};\n\nmodule.exports.isRequired = function(props, propName, componentName) {\n if (!props[propName]) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + ' is required');\n }\n return module.exports(props, propName, componentName);\n};\n\nmodule.exports.supportingArrays = PropTypes.oneOfType([\n PropTypes.arrayOf(module.exports),\n module.exports\n]);\n"],"names":["EditAnnotationWithPreview","props","valueProp","value","onChangeProp","onChange","initialValueProp","initialValue","valuePathProp","valuePath","hideReset","className","React","newValue","arguments","length","undefined","changed","editorSubTitle","concat","resetActions","push","text","action","_jsx","EditTextWithPreview","editorTitle","editorActions","editorLang","renderPreview","initialSplitSize","Markdown","isEmpty","getDefaultValue","componentWillMount","state","this","constructor","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","source","forEach","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_assertThisInitialized","self","ReferenceError","_createSuper","Derived","result","Super","Reflect","construct","sham","Proxy","Date","toString","call","e","_isNativeReflectConstruct","NewTarget","_possibleConstructorReturn","__suppressDeprecationWarning","Pane","_React$PureComponent","_super","_this$props","children","split","styleProps","style","size","eleRef","classes","flex","position","outline","width","height","display","assign","ref","join","propTypes","isRequired","defaultProps","RESIZER_DEFAULT_CLASSNAME","Resizer","_React$Component","_onClick","onClick","_onDoubleClick","onDoubleClick","_onMouseDown","onMouseDown","_onTouchEnd","onTouchEnd","_onTouchStart","onTouchStart","resizerClassName","role","event","preventDefault","unFocus","document","window","selection","empty","getSelection","removeAllRanges","getDefaultSize","defaultSize","minSize","maxSize","draggedSize","min","max","Infinity","Math","SplitPane","_this","onMouseMove","onTouchMove","onMouseUp","primary","initialSize","active","resized","pane1Size","pane2Size","instanceProps","addEventListener","getSizeUpdate","removeEventListener","eventWithTouches","touches","clientX","clientY","allowResize","onDragStarted","_this$props2","step","_this$state","isPrimaryFirst","pane1","pane2","ref2","node","node2","getBoundingClientRect","positionDelta","abs","sizeDelta","parseInt","getComputedStyle","order","newMaxSize","splitPane","newSize","newPosition","_this$props3","onDragFinished","_this$state2","_this2","_this$props4","onResizerClick","onResizerDoubleClick","paneClassName","pane1ClassName","pane2ClassName","paneStyle","pane1StyleProps","pane1Style","pane2StyleProps","pane2Style","resizerStyle","_this$state3","disabledClass","resizerClassNamesIncludingDefault","notNullChildren","toArray","c","removeNullChildren","overflow","MozUserSelect","WebkitUserSelect","msUserSelect","userSelect","flexDirection","left","right","bottom","minHeight","top","pane1Classes","pane2Classes","newState","isPanel1Primary","Component","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","name","newApiName","componentDidUpdate","maybeSnapshot","snapshot","polyfill","block","cn","TabbedContent","subTitle","actions","contentClassName","actionAsDropdown","growTitle","_jsxs","growable","title","Actions","useDropdown","Boolean","DropdownMenu","items","map","_ref","index","icon","Button","DEFAULT_SIZE","_ref$editorTitle","initialShowPreview","disabled","_React$useState","_React$useState2","_slicedToArray","showPreview","setShowPreview","togglePreview","showHideAction","Icon","awesome","_toConsumableArray","MonacoEditor","language","readOnly","sizeRef","divProps","_objectSpread","current","b","message","emptyTransformResponse","html","headings","logs","info","warn","error","transformMarkdown","_x","_transformMarkdown","_asyncToGenerator","_regeneratorRuntime","_callee2","allowHTML","_yield$wrapApiPromise","data","_context2","prev","next","wrapApiPromiseByToaster","axios","post","toasterName","skipSuccessToast","errorContent","sent","abrupt","t0","stop","useMarkdown","_ref2","_ref2$allowHTML","res","setResult","_transform","_callee","_context","transform","_ref3","_useMarkdown$result","dangerouslySetInnerHTML","__html","parseValue","rawValue","format","skipSpaces","replace","parseBytes","Number","formatValue","settings","hammer","NO_VALUE","toRawValue","NumberInputWithError","_len","args","Array","_key","parsedValue","NaN","errorFromValue","formattedValue","parsedError","onBlur","focused","onFocus","onKeyDown","keyCode","KeyCode","ENTER","onEnterKeyDown","parseFn","decimalPlaces","formatFn","digits","validator","defaultValue","_objectWithoutProperties","_excluded","showHint","showMin","isNaN","showMax","Tooltip","content","String","placement","_Fragment","hidePrettyValue","_this$props5","defaultValueClassName","TextInput","pin","bottomLineVisibility","_this$props6","propsValue","showDefaultValue","rest","getRestProps","view","hasClear","err","autoComplete","onUpdate","renderDefaultValue","isBottomLineVisible","renderPrettyValue","renderMinMaxHint","preciseInitialRawValue","formatted","v","_props$validator","integerOnly","NumberInput","_React$Component2","_super2","_len2","_key2","_this$props7","_excluded2","TimeDuration","formatTimeDuration","parseTimeDuration","MetaTable","makeItems","y","w","M","d","h","m","s","ms","parts","k","count","floor","matchAll","_step","_iterator","_createForOfIteratorHelper","n","done","_input$substring","match","input","type","substring","toAdd","moment","valueOf","f","label","hasErrorRenderer","validate","useEvent","callback","fnRef","memoFn","_fnRef$current","useInternalLayoutEffect","createElement","useLayoutUpdateEffect","deps","firstMountRef","useLayoutEffect","firstMount","useSafeState","destroyRef","setValue","updater","ignoreDestroy","hasValue","warned","preWarningFns","warning","valid","note","method","warningOnce","preMessage","fn","resetWarned","noteOnce","getOffset","getDirectionStyle","direction","offset","positionStyle","getIndex","isArray","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","C","D","E","F","G","H","I","J","K","L","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","altKey","ctrlKey","metaKey","isCharacterKey","navigator","userAgent","indexOf","includedStart","includedEnd","tabIndex","keyboard","styles","classNames","Handle","_getIndex","prefixCls","valueIndex","onStartMove","render","dragging","onOffsetChange","onChangeComplete","onMouseEnter","restProps","_React$useContext","range","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","handlePrefixCls","onInternalStartMove","which","onKeyUp","handleNode","handle","values","handleRender","activeHandleRender","draggingIndex","handlesRef","focus","_handlesRef$current$i","activeIndex","setActiveIndex","handleProps","pointerEvents","included","textCls","stopPropagation","marks","markPrefixCls","activeStyle","dotClassName","mergedStyle","dots","stepDots","dotSet","Set","mark","add","from","dotValue","start","end","replaceCls","trackPrefixCls","offsetStart","offsetEnd","track","startPoint","trackList","startValue","endValue","list","tracksNode","tracks","getPosition","pageX","pageY","Slider","_props$prefixCls","_props$disabled","_props$keyboard","autoFocus","_props$min","_props$max","_props$step","onBeforeChange","onAfterChange","_props$allowCross","allowCross","_props$pushable","pushable","draggableTrack","reverse","vertical","_props$included","trackStyle","handleStyle","railStyle","dotStyle","activeDotStyle","_props$tabIndex","containerRef","mergedMin","isFinite","mergedMax","mergedStep","mergedPush","markList","markObj","sort","a","_useOffset","formatRangeValue","val","formatStepValue","stepValue","round","getDecimal","num","maxDecimal","fixedValue","toFixed","formatNextValue","alignValues","closeValue","closeDist","alignValue","dist","offsetValue","mode","nextValue","originValue","targetDistValue","potentialValues","sign","compareValue","valueDist","potentialValue","cloneValues","offsetChangedValue","needPush","nextValues","pushNum","_offsetChangedValue","_i","_changed","_offsetChangedValue2","_i2","_changed2","_offsetChangedValue3","_i3","_changed3","_offsetChangedValue4","useOffset","_useOffset2","offsetValues","_useMergedState","defaultStateValue","option","postState","_useState","_useState2","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","_useState3","_useState4","prevValue","setPrevValue","useMergedState","_useMergedState2","rawValues","valueList","_valueList$","returnValues","pointCount","slice","_returnValues","rawValuesRef","getTriggerValue","triggerValues","triggerChange","cloneNextValues","obj1","obj2","shallow","refSet","deepEqual","level","circular","has","newLevel","every","finishChange","finishValue","_useDrag","draggingValue","setDraggingValue","_React$useState3","_React$useState4","setDraggingIndex","_React$useState5","_React$useState6","cacheValues","setCacheValues","_React$useState7","_React$useState8","originValues","setOriginValues","mouseMoveEventRef","mouseUpEventRef","flushValues","some","updateCacheValue","offsetPercent","maxStartOffset","maxEndOffset","formatStartValue","cloneCacheValues","offsetDist","sourceValues","targetValues","startValues","initialValues","_getPosition","startX","startY","offSetPercent","_getPosition2","moveX","moveY","offsetX","offsetY","_containerRef$current","_useDrag2","onStartDrag","changeToCloseValue","_document$activeEleme","_document$activeEleme2","activeElement","blur","keyboardValue","setKeyboardValue","mergedDraggableTrack","lastIndexOf","sortedCacheValues","_React$useMemo","_React$useMemo2","_containerRef$current2","contains","context","Provider","percent","rail","prepareValue","_ref$value","_ref$min","_ref$max","getParsedValue","textValue","parse","parseFloat","getTextValue","getClosestValue","low","hi","mid","LEFT_INFO_POINT_STYLE","marginLeft","verticalAlign","textAlign","RIGHT_INFO_POINT_STYLE","RangeInputPicker","_Component","wrapperRef","sliderRef","textInputInnerRef","debouncedCallOnUpdate","debouncedHandleOnAfterUpdate","callOnUpdate","currentValue","prepareChange","actualValue","handleOnAfterUpdate","onAfterUpdate","handleInputBlur","getDisplayTextValue","handleInputFocus","handleInputUpdate","patternRegex","test","handleKeyDown","onSubmit","handleSliderChange","handleWrapperClick","slider","handleInfoPointClick","handleOutsideClick","onOutsideClick","wrapper","renderItem","renderRangeItem","renderRangeInfoItems","_this$props5$infoPoin","infoPointsCount","_this$props5$minValue","minValue","_this$props5$maxValue","maxValue","infoItems","point","pointWidth","pointsRange","renderInfoItems","_this$props$infoPoint","_this$state4","points","mapInfoPoints","el","arr","ceil","range_","getInfoPoints","reduce","acc","debounce_","debounceDelay","getPreparedState","cancel","rangeInfoItems","rcSliderInfoItems","placeholder","pattern","controlProps","_this$state5","controlRef","get","RegExp","displayFormat","currentState","availableValues","_props$minValue","_props$maxValue","_ref$focused","_ref$textValue","v1","v2","prepareAvailableValues","PermissionsControl","handleCheckboxChange","permissionName","permissionsToSet","permissions","_toPropertyKey","disabledChoices","itemDisabled","indexOf_","Checkbox","checked","ReadableField","choices","_this3","map_","item","getChoiceName","renderPermissionCheckbox","renderChoices","choice","isEmpty_","AppStoreProvider","store","getWindowStore","ErrorBoundary","PathEditor","_props$defaultPath","suggestionsList","prevScope","hideSuggestions","inputFocus","selectedIndex","handleInputChange","path","inputChange","debounceLoading","setScope","callCallback","ARROW_DOWN","selectNextSuggestion","ARROW_UP","selectPrevSuggestion","handleEnterClick","ESCAPE","handleEscClick","handleTabClick","actualSuggestions","dynamic","iconType","completedPath","getCompletedPath","isSelected","iconName","getIconNameForType","targetPathBroken","selected","defaultPath","loadSuggestionsList","customFilter","getScope","_setFocus","removeActiveRequests","_this$input$current","offsetWidth","cb","params","prevIndex","getPrevSelectedIndex","nextIndex","getNextSelectedIndex","onApply","inputPath","currentTarget","suggestion","find_","_","_this$input$current2","onCancel","ReactList","itemRenderer","errorMessage","ErrorMessage","suggestionsError","showErrors","inputWidth","isVisible","renderError","renderSuggestions","Popup","onClose","anchorRef","open","renderInput","renderPopup","suggestions","filterByCurrentPath","connect","navigation","pathEditor","dispatch","getState","currentParentPath","_getState$navigation$","suggestionsPath","suggestionsLoaded","preparePath","FETCH_SUGGESTIONS","FAILURE","REQUEST","loadSuggestions","then","SUCCESS","pathEditorRequests","removeAllRequests","CANCELLED","usePoolTreesLoaded","useDispatch","loadPoolTreesIfNotLoaded","PoolTreesLoader","useDefaultPoolTree","defaultPoolTree","setDefaultPoolTree","loadDefaultPoolTree","WaitForDefaultPoolTree","DESCENDING","ColumnsWrapper","tabItems","orderedTabItems","keyColumns","onOrderChanged","newIndex","oldIndex","moved","id","setKeyColumns","setOrderedTabItems","toggleKeyColumn","sortBy_","onCloneColumn","setTimeout","onAddColumn","duplicate","renderKeyIcon","switcher","onMoveTab","newTabItems","itemToMove","splice","setColumnsOrder","activeTab","TabFieldVertical","sortable","wrapTo","prevTabItems","prevOrderedTabItems","tabItemsMap","forEach_","itemsToAdd","differenceBy_","_ref4","idsToRemove","_ref5","filtered","filter_","_ref6","_ref7","mapDispatchToProps","setCreateTableKeyColumns","setCreateTableColumnsOrder","ColumnsWrapperConnected","CreateTableTabField","_this2$props$onCreate","onCreateTab","userOptions","_tabItems","_toArray","tableSettings","restItems","renderAddColumnRow","virtualized","isTabControl","isTabControlVertical","OperationShortInfo","output_attribute_name","operation","setOperation","finishTimeRaw","ypath","getValue","timerId","setInterval","yt","getOperation","output_format","TYPED_OUTPUT_FORMAT","operation_id","clearInterval","cluster","useSelector","getCluster","output","code","startTime","diff","Link","url","OperationState","ClickableText","showErrorPopup","requests","CancelHelper","loadReplicas","getPath","transaction","getTransaction","LOAD_REPLICAS_REQUEST","ytApiV3Id","YTApiId","navigationRTReplicas","parameters","prepareRequest","cancellation","saveCancelToken","replicas","utils","mapToYSONList","LOAD_REPLICAS_SUCCESS","LOAD_REPLICAS_CANCELLED","LOAD_REPLICAS_FAILURE","performReplicaAction","auto_replica_tracker","replica","prevMode","prevAutoReplicaTracker","actionName","Promise","resolve","metrics","countEvent","navigation_replicated_table_replica_action","replicaId","replica_id","enabled","all","ytApiV3","alterTableReplica","set","abortAndReset","updateEnableReplicatedTableTracker","updateView","currentPath","UPDATE_VIEW","updatePath","cancelRequests","getAnnotation","loadTabletErrorsCount","saveCancelTokenSource","saveRequestCancellation","allowEffectiveExpiration","isSupportedEffectiveExpiration","requestParams","RumWrapper","RumMeasureTypes","NAVIGATION_PRELOAD","fetch","navigationAttributes","executeBatch","command","attributes","results","_results","attrs","_results$","opaqueAttrs","pathError","prepareAttributes","NODE_DOES_NOT_EXIST","getBatchError","effective_expiration","preparedAttributes","asHTML","trackVisit","navigationTrackVisit","navigation_path","user","getCurrentUserName","account","attributesWithTypes","dispatchAccountPermissions","isWriteable","isAccountUsable","checkPermissionsError","NAVIGATION_PARTIAL","TABLE_MOUNT_CONFIG","navigationTableMountConfig","_ref2$","isCancelled","fetchTableMountConfig","checkPermissions","permission","transaction_id","navigationCheckPermissions","writeAction","useAction","permissionDeniedError","getPermissionDeniedError","GENERIC_ERROR_MESSAGE","exists","isIdmSupported","details","setMode","_getTabs","getTabs","firstTab","SET_MODE","Tab","AUTO","onTransactionChange","dispatchEvent","Event","setTransaction","SET_TRANSACTION","clearTransaction","CLEAR_TRANSACTION","shouldUpdateContentMode","correctedPath","isPathAutoCorrectionSettingEnabled","autoCorrectPath","UPDATE_PATH","navigateParent","getParentPath","openCreateTableModal","parentDirectory","CREATE_TABLE_MODAL_DATA_FIELDS","initialState","showModal","closeCreateTableModal","toaster","Toaster","createTable","what","timeout","theme","genNavigationUrl","isCancel","_error$response","response","reject","columnsOrder","setCreateTableLockSuggestions","allColumnLockValues","columnLockSuggestions","uniq_","setCreateTableGroupSuggestions","allColumnGroups","columnGroupSuggestions","showTableSortModal","paths","setModalPartial","sortVisible","tableSortModalLoadColumns","hideTableSortModal","showTableMergeModal","mergeVisible","hideTableMergeModal","navigationTableSortLoadColumns","columns","suggestColumns","_v","toLower_","runTableSort","spec","makeUiMarker","Page","NAVIGATION","output_table_path","successContent","opId","JSON","successTitle","errorTitle","autoHide","loadStorageAttributes","outputPathAttributes","getNavigationTableOutputPathAttributes","attributesEditorGetAttrs","PathAttribute","OPTIMIZE_FOR","COMPRESSION_CODEC","ERASURE_CODEC","USE_SKIP_ERROR_FN_NODE_DOES_NOT_EXIST","entries","attribute","changeAttribute","_x2","runTableMerge","merge","cancelTokenSrc","isPathStaticTable","navigationIsStaticTable","cancelSrc","isDynamic","CypressNodeTypes","TABLE","cancelHelper","GET_ANNOTATION","navigationGetAnnotation","annotation","saveAnnotation","getNavigationAnnotation","SET_ANNOTATION_SAVING","SET_ANNOTATION_EDITING","getTabletErrors","GET_TABLET_ERRORS","ytApiV4Id","navigationTabletErrors","removeAllAndSave","tabletErrors","tabletErrorsPath","options","navigationTypeDynamic","navigationTabletErrorsCountReplicatedTable","_ref5$output","updateTabletErrrosCount","loadTabletErrorsCountOfReplicatedTable","navigationTabletErrorsCountDynTable","errorsCount","loadTabletErrorsCountOfDynamicTable","errorsCountPath","PARTITION","updateTabletErrorsViewMode","viewMode","getNavigationTableMountConfig","tableMountConfig","getTableMountConfigHasData","createSelector","getCreateTableModalState","modals","isCreateTableModalVisible","getColumnLockSuggestions","locks","getColumnGroupSuggestions","groups","getNavigationTableSortPaths","tableMergeSortModal","getNavigationTableAttributesValues","hasOwnProperty","getNavigationTableSortError","getNavigationTableSortVisible","getNavigationTableMergeVisible","getNavigationTableSortSuggestColumns","getNavigationPathAttributesLoadState","loadState","getNavigationPathAttributes","getNavigationIsWritable","getNavigationIsAccountUsable","getNavigationCheckPermissionsError","getMode","getNavigationPathAccount","getNavigationBreadcrumbs","getParsedPath","parsedPath","fragments","prepareNavigationState","prepareBrokenPath","unipika","prettyprint","break","indent","binaryAsHex","getNavigationRestorePath","getSupportedTabs","getTabletErrorsBackgroundCount","mountConfigHasData","tabletErrorsCount","isPipeline","pipeline_format_version","mountConfigVisible","alwaysSupportedTabs","compact_","CONTENT","FLOW","ATTRIBUTES","USER_ATTRIBUTES","MOUNT_CONFIG","ACL","getAccessLogBasePath","ACCESS_LOG","supportedByAttribute","SCHEMA","LOCKS","TABLETS","sorted","QUEUE","treat_as_queue_consumer","CONSUMER","supportedTabletErrors","getConfigData","allowTabletErrorsAPI","tablet_error_count","TABLET_ERRORS","supportedTabs","UIFactory","getNavigationExtraTabs","tab","isSupported","getAttributes","isACO","tabs","hotkey","scope","caption","counter","ANNOTATION","extraTab","indexOffset","tabToFind","before","after","newTab","getEffectiveMode","getNavigationAnnotationError","getNavigationAnnotationPath","getNavigationAnnotationSaving","saving","getNavigationAnnotationEditing","editing","getTabletErrorsViewMode","tabletErrorsBackground","getTabletErrorsLoadingStatus","loading","loaded","calculateLoadingStatus","errorCountPath","errorCount","errPath","errors","getTabletErrorsBackgroundCountNoticeVisbile","tablet_errors","replication_errors","calculateSubitemsCount","reduce_","subItems","getTabletErrorsReplicationErrors","errorsByTablet","errAcc","tablet_id","_typeof","YPath","toSubpath","stringify","parentPath","pathEditorLoadSuggestions","nodes","initialPath","child","prepared","childPath","decode","prepareSuggestions","toLowerCase","hasPartOfPath","startsWith","isShowCurrentChild","icons","string_node","int64_node","uint64_node","double_node","boolean_node","map_node","scheduler_pool_tree_map","scheduler_pool","tablet_cell","journal","table","table_dynamic","replicated_table","chaos_replicated_table","replication_log_table","file","topmost_transaction_map","transaction_map","nested_transaction","link","getBoolean","rootstock","portal_entrance","cell_node","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","TAB_PANEL_CLASSNAME","ACTIVE_CLASSNAME","GROUP_DATA_KEY","TAB_DATA_KEY","GLOBAL_SYMBOL","getEventTarget","isCustom","getClosestScrollableParent","getOffsetByScrollableParent","Selector","getShadowIncludingRoot","root","getRoot","nodeName","isShadowRoot","host","parentNode","module","exports","opt","composed","Symbol","for","composedPath","matches","element","scrollHeight","clientHeight","parentElement","scrollableParent","elementBounds","scrollableParentBounds","scrollTop","scrollLeft","TABS","TAB_LIST","TAB_PANEL","VERTICAL_TABS","_onSelectTabHandlers","_document","areVertical","areTabsVertical","isValidTabElement","getTabDataFromHTMLElement","_selectTab","currentTab","currentTabIndex","findIndex","selectTab","onSelectTab","handler","delete","selectTabById","querySelector","scrollToElement","scrollIntoView","targetTab","group","align","previousTargetOffset","updateHTML","fireSelectTabEvent","dataset","diplodocId","resetScroll","updateHTMLVertical","updateHTMLHorizontal","querySelectorAll","updated","elements","hasAttribute","classList","remove","removeAttribute","setAttribute","htmlElem","diplodocIsActive","tabList","tabsContainer","allTabs","allPanels","targetIndex","panel","isTargetTab","toggle","targetOffset","topDelta","leftDelta","scrollTopDelta","scrollLeftDelta","scrollTo","eventTab","currentTabId","closest","parent","diplodocVerticalTab","_a","_b","diplodocKey","diplodocGroup","tabEl","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","selector","getRootNode","th","Element","clipboard","writeText","textarea","textContent","body","append","select","execCommand","removeChild","copyToClipboard","innerText","svgButton","getAttribute","getElementById","beginElement","notifySuccess","matchTitle","HTMLElement","find","findTitleInPath","cutNode","toggleCut","TITLE","openClass","openDefinitionClass","isListenerNeeded","setDefinitionPosition","definitionElement","termElement","x","termX","termY","termRight","termLeft","termWidth","termHeight","termParent","termParentElement","termParentRight","termParentLeft","closeDefinition","termOnResize","relativeX","relativeY","offsetTop","definitionParent","definitionWidth","definitionParentLeft","definitionLeftCoordinate","getCoords","definitionOutOfScreenOnLeft","fitDefinitionDocument","clientWidth","dir","customHeaderTop","offsetLeft","openDefinition","getElementsByClassName","termId","term","definition","elem","box","docEl","documentElement","pageYOffset","pageXOffset","clientTop","clientLeft","termKey","definitionTemplate","cloneNode","firstChild","appendChild","createDefinitionElement","isTargetDefinitionContent","random","substr","setDefinitionId","hasOwn","arg","argType","inner","includes","default","properties","PropTypes","propName","failures","styleKey","supportingArrays","oneOfType","arrayOf"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"js/1879.3975650a.chunk.js","mappings":"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IAAI,eAAuBlvC,GAAEivC,OAAOC,IAAI,qBAA6BlvC,GAAEivC,OAAOC,IAAI,mBAA2BlvC,GAAEivC,OAAOC,IAAI,6CCPjP,oBCFFL,EAAOC,QAAU,CACf,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,qBACA,wBACA,2BACA,uBACA,sBACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,0BACA,6BACA,gCACA,4BACA,2BACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,0BACA,6BACA,gCACA,4BACA,2BACA,qBACA,wBACA,2BACA,uBACA,sBACA,aACA,gBACA,mBACA,eACA,cACA,uBACA,0BACA,6BACA,yBACA,wBACA,sBACA,yBACA,4BACA,wBACA,uBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,YACA,eACA,kBACA,cACA,aACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,0BACA,6BACA,gCACA,4BACA,2BACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,gBACA,eACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,uBACA,0BACA,6BACA,yBACA,wBACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,qBACA,wBACA,2BACA,uBACA,sBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,OACA,UACA,aACA,SACA,QACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,SACA,YACA,eACA,WACA,UACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,aACA,gBACA,mBACA,eACA,cACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,uBACA,0BACA,6BACA,yBACA,wBACA,WACA,cACA,iBACA,aACA,YACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,wBACA,2BACA,8BACA,0BACA,yBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,gBACA,mBACA,sBACA,kBACA,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,SACA,YACA,eACA,WACA,UACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,UACA,aACA,gBACA,YACA,WACA,QACA,WACA,cACA,UACA,SACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,KACA,QACA,WACA,OACA,MACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,IACA,OACA,UACA,MACA,KACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,MACA,SACA,YACA,QACA,OACA,SACA,YACA,eACA,WACA,UACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,IACA,OACA,UACA,MACA,KACA,iBACA,oBACA,uBACA,mBACA,kBACA,uBACA,0BACA,6BACA,yBACA,wBACA,wBACA,2BACA,8BACA,0BACA,yBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,UACA,aACA,gBACA,YACA,WACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,wBACA,2BACA,8BACA,0BACA,yBACA,MACA,SACA,YACA,QACA,OACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,iBACA,oBACA,uBACA,mBACA,kBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,qBACA,wBACA,2BACA,uBACA,sBACA,qBACA,wBACA,2BACA,uBACA,sBACA,2BACA,8BACA,iCACA,6BACA,4BACA,OACA,UACA,aACA,SACA,QACA,cACA,iBACA,oBACA,gBACA,eACA,QACA,WACA,cACA,UACA,SACA,gBACA,mBACA,sBACA,kBACA,iBACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,cACA,iBACA,oBACA,gBACA,eACA,WACA,cACA,iBACA,aACA,YACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,WACA,cACA,iBACA,aACA,YACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,gCCljDF,IAAIiL,EAAa,EAAQ,OACrBC,EAAY,EAAQ,OAExBnL,EAAOC,QAAU,SAASliD,EAAOqtD,EAAUn9C,GACzC,IAAIuW,EAASzmB,EAAMqtD,GACnB,GAAK5mC,EAAL,CAIA,IAAI6mC,EAAW,GAMf,GALA1pD,OAAOY,KAAKiiB,GAAQxhB,SAAQ,SAASsoD,IACG,IAAlCJ,EAAW/mC,QAAQmnC,IACrBD,EAASlsD,KAAKmsD,EAElB,IACID,EAASxsD,OACX,MAAM,IAAI6O,MAAM,QAAU09C,EAAW,cAAgBn9C,EAAgB,sBAAwBo9C,EAASjlD,KAAK,MAT7G,CAWF,EAEA45C,EAAOC,QAAQ35C,WAAa,SAASvI,EAAOqtD,EAAUn9C,GACpD,IAAKlQ,EAAMqtD,GACT,MAAM,IAAI19C,MAAM,QAAU09C,EAAW,cAAgBn9C,EAAgB,gBAEvE,OAAO+xC,EAAOC,QAAQliD,EAAOqtD,EAAUn9C,EACzC,EAEA+xC,EAAOC,QAAQsL,iBAAmBJ,EAAUK,UAAU,CACpDL,EAAUM,QAAQzL,EAAOC,SACzBD,EAAOC","sources":["webpack://@ytsaurus/ui/./src/ui/components/EditAnnotationWithPreview/EditAnnotationWithPreview.tsx","webpack://@ytsaurus/ui/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://@ytsaurus/ui/./node_modules/react-split-pane/dist/index.esm.js","webpack://@ytsaurus/ui/./src/ui/components/EditTextWithPreview/TabbedContent.tsx","webpack://@ytsaurus/ui/./src/ui/components/EditTextWithPreview/EditTextWithPreview.tsx","webpack://@ytsaurus/ui/./src/ui/components/ErrorMessage/ErrorMessage.js","webpack://@ytsaurus/ui/./src/ui/components/Markdown/Markdown.tsx","webpack://@ytsaurus/ui/./src/ui/components/NumberInput/NumberInput.tsx","webpack://@ytsaurus/ui/./src/ui/components/TimeDuration/TimeDuration.tsx","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useEvent.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useLayoutEffect.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/Dom/canUseDom.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useState.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useMergedState.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/warning.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/util.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/KeyCode.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/context.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Handles/Handle.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Handles/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Marks/Mark.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Marks/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Steps/Dot.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Steps/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Tracks/Track.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Tracks/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/hooks/useDrag.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/utils/set.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Slider.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/hooks/useOffset.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/isEqual.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/index.js","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/utils.ts","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/constants.ts","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/RangeInputPicker.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/PermissionsControl/PermissionsControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/App/AppStoreProvider.tsx","webpack://@ytsaurus/ui/./src/ui/containers/PathEditor/PathEditor.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/path-editor/path-editor.js","webpack://@ytsaurus/ui/./src/ui/hooks/global-pool-trees.ts","webpack://@ytsaurus/ui/./src/ui/navigation/Navigation/PathEditorModal/CreateTableModal/CreateTableTabField/CreateTableTabField.tsx","webpack://@ytsaurus/ui/./src/ui/pages/components/OperationShortInfo/OperationShortInfo.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/content/replicated-table.js","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/index.js","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/content/table/table-mount-config.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/create-table.js","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/table-merge-sort-modal.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/tabs/annotation.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/tabs/tablet-errors/tablet-errors-background.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/content/table-mount-config.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/modals/create-table.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/modals/table-merge-sort-modal.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/navigation.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/tabs/annotation.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/tabs/tablet-errors-background.ts","webpack://@ytsaurus/ui/./src/ui/utils/navigation/path-editor.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/common.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/TabsController.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/get-root-node-polyfill/index.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/index.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/polyfill.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/code.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/cut.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/term/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/term/index.ts","webpack://@ytsaurus/ui/./node_modules/classnames/index.js","webpack://@ytsaurus/ui/./node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","webpack://@ytsaurus/ui/./node_modules/rc-util/node_modules/react-is/index.js","webpack://@ytsaurus/ui/./node_modules/react-style-proptype/src/css-properties.js","webpack://@ytsaurus/ui/./node_modules/react-style-proptype/src/index.js"],"sourcesContent":["import React from 'react';\n\nimport {DialogControlProps} from '../Dialog/Dialog.types';\nimport {EditTextWithPreview, EditTextWithPreviewProps} from '../EditTextWithPreview';\nimport {Markdown} from '../Markdown/Markdown';\n\nexport type EditAnnotationProps = DialogControlProps<\n EditTextWithPreviewProps['value'],\n {\n initialValue: EditAnnotationProps['value'];\n valuePath: string;\n hideReset?: boolean;\n className: string;\n }\n>;\n\nEditAnnotationWithPreview.isEmpty = (value: EditTextWithPreviewProps['value']) => {\n return !value;\n};\n\nEditAnnotationWithPreview.getDefaultValue = () => {\n return {value: undefined};\n};\n\nexport function EditAnnotationWithPreview(props: EditAnnotationProps) {\n const {\n value: valueProp,\n onChange: onChangeProp,\n initialValue: initialValueProp,\n valuePath: valuePathProp,\n hideReset,\n className,\n } = props;\n\n const {value: initialValue} = initialValueProp;\n const {value} = valueProp;\n const onChange = React.useCallback(\n ({value: newValue}: {value?: string} = {}) => {\n if (value !== newValue) {\n const prevIsUndefined = value === undefined;\n if (prevIsUndefined && newValue === '') {\n // nothing to do\n } else {\n onChangeProp({value: newValue});\n }\n }\n },\n [onChangeProp, value],\n );\n\n const valuePath = value === undefined ? undefined : valuePathProp;\n const changed = initialValue !== value;\n\n let editorSubTitle = value === undefined ? '(reset to inheritance)' : '';\n if (valuePath) editorSubTitle = `(from ${valuePath})`;\n\n /**\n * value === undefined means it is already inherited or user already pressed 'Reset to inheritance' button\n */\n const resetActions: EditTextWithPreviewProps['editorActions'] = [];\n if (value === undefined || value === null) {\n if (changed) {\n resetActions.push({\n text: 'Restore',\n action: () => onChangeProp(initialValueProp),\n });\n }\n } else if (!valuePath || changed) {\n resetActions.push({\n text: 'Reset to inheritance',\n action: () => {\n if (valuePath) {\n onChangeProp(initialValueProp);\n } else {\n onChange(undefined);\n }\n },\n });\n }\n\n return (\n <EditTextWithPreview\n className={className}\n value={valueProp}\n onChange={onChange}\n editorTitle={'Description'}\n editorSubTitle={editorSubTitle}\n editorActions={hideReset ? undefined : resetActions}\n editorLang={'markdown'}\n renderPreview={renderPreview}\n initialSplitSize=\"50%\"\n />\n );\n}\n\nfunction renderPreview(value?: string) {\n return <Markdown text={value || ''} />;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport stylePropType from 'react-style-proptype';\nimport { polyfill } from 'react-lifecycles-compat';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar Pane = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Pane, _React$PureComponent);\n\n var _super = _createSuper(Pane);\n\n function Pane() {\n _classCallCheck(this, Pane);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Pane, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n split = _this$props.split,\n styleProps = _this$props.style,\n size = _this$props.size,\n eleRef = _this$props.eleRef;\n var classes = ['Pane', split, className];\n var style = {\n flex: 1,\n position: 'relative',\n outline: 'none'\n };\n\n if (size !== undefined) {\n if (split === 'vertical') {\n style.width = size;\n } else {\n style.height = size;\n style.display = 'flex';\n }\n\n style.flex = 'none';\n }\n\n style = Object.assign({}, style, styleProps || {});\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: eleRef,\n className: classes.join(' '),\n style: style\n }, children);\n }\n }]);\n\n return Pane;\n}(React.PureComponent);\n\nPane.propTypes = {\n className: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n eleRef: PropTypes.func\n};\nPane.defaultProps = {};\n\nvar RESIZER_DEFAULT_CLASSNAME = 'Resizer';\n\nvar Resizer = /*#__PURE__*/function (_React$Component) {\n _inherits(Resizer, _React$Component);\n\n var _super = _createSuper(Resizer);\n\n function Resizer() {\n _classCallCheck(this, Resizer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Resizer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n _onClick = _this$props.onClick,\n _onDoubleClick = _this$props.onDoubleClick,\n _onMouseDown = _this$props.onMouseDown,\n _onTouchEnd = _this$props.onTouchEnd,\n _onTouchStart = _this$props.onTouchStart,\n resizerClassName = _this$props.resizerClassName,\n split = _this$props.split,\n style = _this$props.style;\n var classes = [resizerClassName, split, className];\n return /*#__PURE__*/React.createElement(\"span\", {\n role: \"presentation\",\n className: classes.join(' '),\n style: style,\n onMouseDown: function onMouseDown(event) {\n return _onMouseDown(event);\n },\n onTouchStart: function onTouchStart(event) {\n event.preventDefault();\n\n _onTouchStart(event);\n },\n onTouchEnd: function onTouchEnd(event) {\n event.preventDefault();\n\n _onTouchEnd(event);\n },\n onClick: function onClick(event) {\n if (_onClick) {\n event.preventDefault();\n\n _onClick(event);\n }\n },\n onDoubleClick: function onDoubleClick(event) {\n if (_onDoubleClick) {\n event.preventDefault();\n\n _onDoubleClick(event);\n }\n }\n });\n }\n }]);\n\n return Resizer;\n}(React.Component);\n\nResizer.propTypes = {\n className: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onMouseDown: PropTypes.func.isRequired,\n onTouchStart: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired,\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n resizerClassName: PropTypes.string.isRequired\n};\nResizer.defaultProps = {\n resizerClassName: RESIZER_DEFAULT_CLASSNAME\n};\n\nfunction unFocus(document, window) {\n if (document.selection) {\n document.selection.empty();\n } else {\n try {\n window.getSelection().removeAllRanges(); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {\n if (typeof draggedSize === 'number') {\n var min = typeof minSize === 'number' ? minSize : 0;\n var max = typeof maxSize === 'number' && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n\n return minSize;\n}\n\nfunction removeNullChildren(children) {\n return React.Children.toArray(children).filter(function (c) {\n return c;\n });\n}\n\nvar SplitPane = /*#__PURE__*/function (_React$Component) {\n _inherits(SplitPane, _React$Component);\n\n var _super = _createSuper(SplitPane);\n\n function SplitPane(props) {\n var _this;\n\n _classCallCheck(this, SplitPane);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onTouchStart = _this.onTouchStart.bind(_assertThisInitialized(_this));\n _this.onMouseMove = _this.onMouseMove.bind(_assertThisInitialized(_this));\n _this.onTouchMove = _this.onTouchMove.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this)); // order of setting panel sizes.\n // 1. size\n // 2. getDefaultSize(defaultSize, minsize, maxSize)\n\n var size = props.size,\n defaultSize = props.defaultSize,\n minSize = props.minSize,\n maxSize = props.maxSize,\n primary = props.primary;\n var initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);\n _this.state = {\n active: false,\n resized: false,\n pane1Size: primary === 'first' ? initialSize : undefined,\n pane2Size: primary === 'second' ? initialSize : undefined,\n // these are props that are needed in static functions. ie: gDSFP\n instanceProps: {\n size: size\n }\n };\n return _this;\n }\n\n _createClass(SplitPane, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mouseup', this.onMouseUp);\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('touchmove', this.onTouchMove);\n this.setState(SplitPane.getSizeUpdate(this.props, this.state));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mouseup', this.onMouseUp);\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('touchmove', this.onTouchMove);\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchStart(eventWithTouches);\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(event) {\n var _this$props = this.props,\n allowResize = _this$props.allowResize,\n onDragStarted = _this$props.onDragStarted,\n split = _this$props.split;\n\n if (allowResize) {\n unFocus(document, window);\n var position = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n\n if (typeof onDragStarted === 'function') {\n onDragStarted();\n }\n\n this.setState({\n active: true,\n position: position\n });\n }\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchMove(eventWithTouches);\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(event) {\n var _this$props2 = this.props,\n allowResize = _this$props2.allowResize,\n maxSize = _this$props2.maxSize,\n minSize = _this$props2.minSize,\n onChange = _this$props2.onChange,\n split = _this$props2.split,\n step = _this$props2.step;\n var _this$state = this.state,\n active = _this$state.active,\n position = _this$state.position;\n\n if (allowResize && active) {\n unFocus(document, window);\n var isPrimaryFirst = this.props.primary === 'first';\n var ref = isPrimaryFirst ? this.pane1 : this.pane2;\n var ref2 = isPrimaryFirst ? this.pane2 : this.pane1;\n\n if (ref) {\n var node = ref;\n var node2 = ref2;\n\n if (node.getBoundingClientRect) {\n var width = node.getBoundingClientRect().width;\n var height = node.getBoundingClientRect().height;\n var current = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n var size = split === 'vertical' ? width : height;\n var positionDelta = position - current;\n\n if (step) {\n if (Math.abs(positionDelta) < step) {\n return;\n } // Integer division\n // eslint-disable-next-line no-bitwise\n\n\n positionDelta = ~~(positionDelta / step) * step;\n }\n\n var sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n var pane1Order = parseInt(window.getComputedStyle(node).order);\n var pane2Order = parseInt(window.getComputedStyle(node2).order);\n\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n var newMaxSize = maxSize;\n\n if (maxSize !== undefined && maxSize <= 0) {\n var splitPane = this.splitPane;\n\n if (split === 'vertical') {\n newMaxSize = splitPane.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize = splitPane.getBoundingClientRect().height + maxSize;\n }\n }\n\n var newSize = size - sizeDelta;\n var newPosition = position - positionDelta;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (maxSize !== undefined && newSize > newMaxSize) {\n newSize = newMaxSize;\n } else {\n this.setState({\n position: newPosition,\n resized: true\n });\n }\n\n if (onChange) onChange(newSize);\n this.setState(_defineProperty({\n draggedSize: newSize\n }, isPrimaryFirst ? 'pane1Size' : 'pane2Size', newSize));\n }\n }\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp() {\n var _this$props3 = this.props,\n allowResize = _this$props3.allowResize,\n onDragFinished = _this$props3.onDragFinished;\n var _this$state2 = this.state,\n active = _this$state2.active,\n draggedSize = _this$state2.draggedSize;\n\n if (allowResize && active) {\n if (typeof onDragFinished === 'function') {\n onDragFinished(draggedSize);\n }\n\n this.setState({\n active: false\n });\n }\n } // we have to check values since gDSFP is called on every render and more in StrictMode\n\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n allowResize = _this$props4.allowResize,\n children = _this$props4.children,\n className = _this$props4.className,\n onResizerClick = _this$props4.onResizerClick,\n onResizerDoubleClick = _this$props4.onResizerDoubleClick,\n paneClassName = _this$props4.paneClassName,\n pane1ClassName = _this$props4.pane1ClassName,\n pane2ClassName = _this$props4.pane2ClassName,\n paneStyle = _this$props4.paneStyle,\n pane1StyleProps = _this$props4.pane1Style,\n pane2StyleProps = _this$props4.pane2Style,\n resizerClassName = _this$props4.resizerClassName,\n resizerStyle = _this$props4.resizerStyle,\n split = _this$props4.split,\n styleProps = _this$props4.style;\n var _this$state3 = this.state,\n pane1Size = _this$state3.pane1Size,\n pane2Size = _this$state3.pane2Size;\n var disabledClass = allowResize ? '' : 'disabled';\n var resizerClassNamesIncludingDefault = resizerClassName ? \"\".concat(resizerClassName, \" \").concat(RESIZER_DEFAULT_CLASSNAME) : resizerClassName;\n var notNullChildren = removeNullChildren(children);\n\n var style = _objectSpread2({\n display: 'flex',\n flex: 1,\n height: '100%',\n position: 'absolute',\n outline: 'none',\n overflow: 'hidden',\n MozUserSelect: 'text',\n WebkitUserSelect: 'text',\n msUserSelect: 'text',\n userSelect: 'text'\n }, styleProps);\n\n if (split === 'vertical') {\n Object.assign(style, {\n flexDirection: 'row',\n left: 0,\n right: 0\n });\n } else {\n Object.assign(style, {\n bottom: 0,\n flexDirection: 'column',\n minHeight: '100%',\n top: 0,\n width: '100%'\n });\n }\n\n var classes = ['SplitPane', className, split, disabledClass];\n\n var pane1Style = _objectSpread2({}, paneStyle, {}, pane1StyleProps);\n\n var pane2Style = _objectSpread2({}, paneStyle, {}, pane2StyleProps);\n\n var pane1Classes = ['Pane1', paneClassName, pane1ClassName].join(' ');\n var pane2Classes = ['Pane2', paneClassName, pane2ClassName].join(' ');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classes.join(' '),\n ref: function ref(node) {\n _this2.splitPane = node;\n },\n style: style\n }, /*#__PURE__*/React.createElement(Pane, {\n className: pane1Classes,\n key: \"pane1\",\n eleRef: function eleRef(node) {\n _this2.pane1 = node;\n },\n size: pane1Size,\n split: split,\n style: pane1Style\n }, notNullChildren[0]), /*#__PURE__*/React.createElement(Resizer, {\n className: disabledClass,\n onClick: onResizerClick,\n onDoubleClick: onResizerDoubleClick,\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onTouchEnd: this.onMouseUp,\n key: \"resizer\",\n resizerClassName: resizerClassNamesIncludingDefault,\n split: split,\n style: resizerStyle || {}\n }), /*#__PURE__*/React.createElement(Pane, {\n className: pane2Classes,\n key: \"pane2\",\n eleRef: function eleRef(node) {\n _this2.pane2 = node;\n },\n size: pane2Size,\n split: split,\n style: pane2Style\n }, notNullChildren[1]));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n return SplitPane.getSizeUpdate(nextProps, prevState);\n }\n }, {\n key: \"getSizeUpdate\",\n value: function getSizeUpdate(props, state) {\n var newState = {};\n var instanceProps = state.instanceProps;\n\n if (instanceProps.size === props.size && props.size !== undefined) {\n return {};\n }\n\n var newSize = props.size !== undefined ? props.size : getDefaultSize(props.defaultSize, props.minSize, props.maxSize, state.draggedSize);\n\n if (props.size !== undefined) {\n newState.draggedSize = newSize;\n }\n\n var isPanel1Primary = props.primary === 'first';\n newState[isPanel1Primary ? 'pane1Size' : 'pane2Size'] = newSize;\n newState[isPanel1Primary ? 'pane2Size' : 'pane1Size'] = undefined;\n newState.instanceProps = {\n size: props.size\n };\n return newState;\n }\n }]);\n\n return SplitPane;\n}(React.Component);\n\nSplitPane.propTypes = {\n allowResize: PropTypes.bool,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n className: PropTypes.string,\n primary: PropTypes.oneOf(['first', 'second']),\n minSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n defaultSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n onDragStarted: PropTypes.func,\n onDragFinished: PropTypes.func,\n onChange: PropTypes.func,\n onResizerClick: PropTypes.func,\n onResizerDoubleClick: PropTypes.func,\n style: stylePropType,\n resizerStyle: stylePropType,\n paneClassName: PropTypes.string,\n pane1ClassName: PropTypes.string,\n pane2ClassName: PropTypes.string,\n paneStyle: stylePropType,\n pane1Style: stylePropType,\n pane2Style: stylePropType,\n resizerClassName: PropTypes.string,\n step: PropTypes.number\n};\nSplitPane.defaultProps = {\n allowResize: true,\n minSize: 50,\n primary: 'first',\n split: 'vertical',\n paneClassName: '',\n pane1ClassName: '',\n pane2ClassName: ''\n};\npolyfill(SplitPane);\n\nexport default SplitPane;\nexport { Pane };\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport Button from '../../components/Button/Button';\n\nimport './TabbedContent.scss';\nimport {DropdownMenu, DropdownMenuItem} from '@gravity-ui/uikit';\n\nconst block = cn('yt-tabbed-content');\n\ninterface Props {\n className?: string;\n name: string;\n subTitle?: string;\n actions?: Array<DropdownMenuItem<unknown>>;\n actionAsDropdown?: boolean;\n children: React.ReactNode;\n contentClassName?: string;\n}\n\nexport default function TabbedContent(props: Props) {\n const {name, subTitle, actions, children, className, contentClassName, actionAsDropdown} =\n props;\n const growTitle = !subTitle;\n return (\n <div className={block(null, className)}>\n <div className={block('header')}>\n <span className={block('title', {growable: growTitle})} title={name}>\n {name}\n </span>\n {subTitle && (\n <React.Fragment>\n <span className={block('sub-title')} title={subTitle}>\n {subTitle}\n </span>\n </React.Fragment>\n )}\n {actions && <Actions actions={actions} useDropdown={Boolean(actionAsDropdown)} />}\n </div>\n <div className={block('content', contentClassName)}>{children}</div>\n </div>\n );\n}\n\nfunction Actions(props: {actions: Required<Props>['actions']; useDropdown: boolean}) {\n const {actions, useDropdown} = props;\n\n return !actions.length ? null : (\n <span className={block('actions')}>\n {useDropdown ? (\n <DropdownMenu items={actions} />\n ) : (\n actions.map(({text, icon, action}, index) => {\n return (\n <Button\n key={index}\n onClick={action}\n size={'m'}\n className={block('actions-item')}\n >\n {icon}\n {text}\n </Button>\n );\n })\n )}\n </span>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport SplitPane from 'react-split-pane';\n\nimport {DialogControlProps} from '../Dialog/Dialog.types';\nimport MonacoEditor from '../../components/MonacoEditor';\nimport Icon from '../../components/Icon/Icon';\n\nimport TabbedContent from './TabbedContent';\n\nimport './EditTextWithPreview.scss';\nimport {DropdownMenuItem} from '@gravity-ui/uikit';\n\nconst DEFAULT_SIZE = 350;\nconst block = cn('edit-text-with-preview');\n\nexport type EditTextWithPreviewProps = DialogControlProps<\n {value: string | undefined},\n {\n className?: string;\n editorActions?: Array<DropdownMenuItem>;\n editorTitle?: string;\n editorSubTitle?: string;\n disabled?: boolean;\n\n editorLang: 'markdown' | 'json';\n renderPreview: (value?: string) => React.ReactElement;\n\n minHeight?: number;\n\n initialShowPreview?: boolean;\n }\n> & {initialSplitSize?: number | string};\n\nEditTextWithPreview.isEmpty = (value: EditTextWithPreviewProps['value']) => {\n return !value;\n};\n\nEditTextWithPreview.getDefaultValue = () => {\n return {value: undefined};\n};\n\nexport function EditTextWithPreview({\n value: valueProp,\n onChange: onChangeProp,\n editorLang,\n editorActions,\n className,\n editorTitle = 'Text',\n editorSubTitle,\n renderPreview,\n minHeight,\n initialShowPreview,\n disabled,\n initialSplitSize,\n}: EditTextWithPreviewProps) {\n const {value} = valueProp;\n\n const [showPreview, setShowPreview] = React.useState(initialShowPreview);\n const togglePreview = React.useCallback(() => {\n setShowPreview(!showPreview);\n }, [setShowPreview, showPreview]);\n\n const showHideAction = {\n text: !showPreview ? 'Show preview' : 'Hide',\n icon: <Icon awesome={!showPreview ? 'eye' : 'eye-slash'} />,\n action: togglePreview,\n };\n\n const actions = showPreview ? editorActions : [...(editorActions ?? []), showHideAction];\n\n const onChange = React.useCallback(\n (value: string) => {\n onChangeProp({value});\n },\n [onChangeProp],\n );\n\n const left = (\n <TabbedContent\n key=\"editor\"\n className={block('panel', {growable: !showPreview})}\n contentClassName={block('left')}\n name={editorTitle}\n subTitle={editorSubTitle}\n actions={actions}\n actionAsDropdown={showPreview}\n >\n <MonacoEditor\n value={value || ''}\n language={editorLang}\n className={block('monaco')}\n onChange={onChange}\n readOnly={disabled}\n />\n </TabbedContent>\n );\n\n const sizeRef = React.useRef<number | string>(initialSplitSize || DEFAULT_SIZE);\n\n const style = React.useMemo(() => {\n return minHeight ? {minHeight} : undefined;\n }, [minHeight]);\n\n const divProps = {className: block(null, className), style: style};\n\n if (!showPreview) {\n return <div {...divProps}>{left}</div>;\n }\n\n return (\n <div {...divProps}>\n <SplitPane\n allowResize={true}\n minSize={160}\n maxSize={-160}\n defaultSize={sizeRef.current}\n onDragFinished={(size) => {\n sizeRef.current = size;\n }}\n {...{\n children: [\n left,\n !showPreview ? null : (\n <TabbedContent\n key=\"preview\"\n className={block('panel')}\n contentClassName={block('markdown')}\n name={'Preview'}\n actions={[showHideAction]}\n >\n {renderPreview ? renderPreview(value) : value}\n </TabbedContent>\n ),\n ],\n }}\n />\n </div>\n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\n\nimport Icon from '../Icon/Icon';\n\nimport './ErrorMessage.scss';\n\nconst b = block('error-message');\n\nfunction ErrorMessage({message, className}) {\n return (\n <div className={b(null, className)}>\n <Icon awesome=\"exclamation-circle\" />\n\n <span className={b('message-text')}>{message}</span>\n </div>\n );\n}\n\nErrorMessage.propTypes = {\n message: PropTypes.string.isRequired,\n className: PropTypes.string,\n};\n\nexport default ErrorMessage;\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport axios from 'axios';\n\nimport {wrapApiPromiseByToaster} from '../../utils/utils';\nimport './Markdown.scss';\nimport '@diplodoc/transform/dist/css/yfm.css';\nimport '@diplodoc/transform/dist/js/yfm';\nimport './yfm-overrides.scss';\nimport {OutputType} from '@diplodoc/transform/lib/typings';\n\nconst block = cn('yt-markdown');\n\ninterface Props {\n text: string;\n allowHTML?: boolean;\n}\n\ninterface Response {\n result?: {html?: string; plainText?: string};\n}\n\nconst emptyTransformResponse: OutputType = {\n result: {html: '', headings: []},\n logs: {info: [], warn: [], error: [], disabled: []},\n};\n\nexport async function transformMarkdown({text, allowHTML}: Props): Promise<OutputType> {\n try {\n const {data} = await wrapApiPromiseByToaster(\n axios.post<Response>('/api/markdown-to-html', {\n text,\n allowHTML,\n }),\n {\n toasterName: 'useMarkdown',\n skipSuccessToast: true,\n errorContent: 'Failed to transform markdown text',\n },\n );\n return data as OutputType;\n } catch (e) {\n return {\n result: {...emptyTransformResponse['result']},\n logs: {...emptyTransformResponse['logs'], error: [(e as Error).message]},\n };\n }\n}\n\nexport function useMarkdown({text, allowHTML = true}: Props) {\n const [res, setResult] = React.useState<OutputType>(emptyTransformResponse);\n\n React.useEffect(() => {\n async function transform() {\n try {\n const data = await transformMarkdown({text, allowHTML});\n\n setResult(data);\n } catch (e) {}\n }\n transform();\n }, [text, allowHTML]);\n\n return res;\n}\n\nexport function Markdown({text}: Props) {\n const {html} = useMarkdown({text, allowHTML: true}).result ?? {};\n\n return (\n <React.Fragment>\n <div className={block(null, 'yfm')} dangerouslySetInnerHTML={{__html: html ?? ''}} />\n </React.Fragment>\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {TextInput, TextInputProps} from '@gravity-ui/uikit';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\n\nimport hammer from '../../common/hammer';\n\nimport {parseBytes} from '../../utils';\nimport {KeyCode} from '../../constants';\nimport './NumberInput.scss';\n\nconst block = cn('yt-number-input');\n\nexport function parseValue(rawValue: string, format: NumberInputProps['format']) {\n if (rawValue === '') {\n return undefined;\n }\n const skipSpaces = rawValue.replace(/\\s/g, '');\n return format === 'Bytes' ? parseBytes(skipSpaces) : Number(skipSpaces);\n}\n\nexport function formatValue(\n value: NumberInputProps['value'],\n format?: NumberInputProps['format'],\n settings?: object,\n) {\n if (value === undefined) {\n return '';\n }\n\n const res =\n format === 'Bytes'\n ? hammer.format['Bytes'](value, settings)\n : hammer.format['Number'](value, settings);\n return res === hammer.format.NO_VALUE ? '' : res;\n}\n\nfunction toRawValue(value: NumberInputProps['value']) {\n return value === undefined ? '' : value;\n}\n\nexport interface NumberInputWithErrorProps\n extends Omit<TextInputProps, 'value' | 'onChange' | 'theme' | 'error' | 'defaultValue'> {\n className?: string;\n\n format?: 'Number' | 'Bytes'; // 'Number' by default\n\n formatFn?: (v: NumberInputProps['value']) => string;\n parseFn?: (v: string) => NumberInputWithErrorProps['value'];\n\n decimalPlaces?: number;\n value?: {\n value: number | undefined;\n error?: string;\n };\n\n showDefaultValue?: boolean;\n defaultValue?: number;\n defaultValueClassName?: string;\n\n onChange: (v: NumberInputWithErrorProps['value']) => void;\n onEnterKeyDown?: () => void;\n\n validator?: (v?: number) => string | undefined;\n min?: number;\n max?: number;\n integerOnly?: boolean;\n\n showHint?: boolean;\n\n hidePrettyValue?: boolean;\n preciseInitialRawValue?: boolean;\n\n bottomLineVisibility?: 'visible' | 'hidden' | 'focused';\n\n disabled?: boolean;\n}\n\ninterface State {\n parsedValue?: number;\n parsedError?: string;\n rawValue?: string;\n formattedValue?: string;\n focused?: boolean;\n}\n\nexport class NumberInputWithError extends React.Component<NumberInputWithErrorProps, State> {\n static defaultProps = {\n size: 'm',\n view: 'normal',\n hasClear: true,\n bottomLineVisibility: 'visible',\n };\n\n static getDerivedStateFromProps(\n props: NumberInputWithErrorProps,\n state: State,\n ): Partial<State> | null {\n const {value, format, preciseInitialRawValue, decimalPlaces, formatFn} = props;\n if (state.rawValue === undefined) {\n const formatted = formatFn\n ? formatFn(value?.value)\n : formatValue(value?.value, format, {\n digits: decimalPlaces,\n });\n return {\n parsedValue: value?.value,\n parsedError: NumberInputWithError.errorFromValue(value, props),\n rawValue: preciseInitialRawValue ? toRawValue(value?.value) : formatted,\n formattedValue: formatted,\n };\n }\n\n return null;\n }\n\n static errorFromValue(v: NumberInputWithErrorProps['value'], props: NumberInputWithErrorProps) {\n const {validator = () => undefined, min, max, integerOnly} = props;\n const {value, error} = v || {};\n\n if (error) {\n return error;\n }\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n try {\n if (isNaN(value)) {\n return 'wrong format';\n }\n\n const error = validator(value);\n if (error) {\n return error;\n }\n } catch (error) {\n return String(error);\n }\n\n if (integerOnly && value % 1 !== 0) {\n return `The value must be an integer`;\n }\n\n if (min !== undefined && value < min) {\n return `The value must be \\u2265 ${min}`;\n }\n\n if (max !== undefined && value > max) {\n return `The value must be \\u2264 ${max}`;\n }\n\n return undefined;\n }\n\n state: State = {parsedValue: NaN};\n\n // eslint-disable-next-line react/sort-comp\n parseValue(rawValue: string): NumberInputWithErrorProps['value'] {\n if (this.props.parseFn) {\n return this.props.parseFn(rawValue);\n }\n return {value: parseValue(rawValue, this.props.format)};\n }\n\n format(value: NumberInputProps['value']) {\n const {format, decimalPlaces, formatFn} = this.props;\n if (formatFn) {\n return formatFn(value);\n }\n return formatValue(value, format, {digits: decimalPlaces});\n }\n\n onChange = (rawValue: string) => {\n const parsedValue = this.parseValue(rawValue);\n const error = NumberInputWithError.errorFromValue(parsedValue, this.props);\n const formattedValue = this.format(parsedValue?.value);\n this.setState({\n parsedValue: parsedValue?.value,\n parsedError: error,\n rawValue,\n formattedValue,\n });\n\n const {onChange} = this.props;\n onChange({value: parsedValue?.value, error});\n };\n\n onBlur = () => {\n this.setState({focused: false});\n };\n\n onFocus = () => {\n this.setState({focused: true});\n };\n\n getRestProps() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {value, onChange, min, max, validator, format, defaultValue, ...rest} = this.props;\n return rest;\n }\n\n onKeyDown = (e: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.ENTER && this.props.onEnterKeyDown) {\n this.props.onEnterKeyDown();\n }\n };\n\n renderMinMaxHint() {\n const {min, max, showHint, size} = this.props;\n const showMin = !isNaN(min!);\n const showMax = !isNaN(max!);\n if (!showHint || (!showMin && !showMax)) {\n return null;\n }\n return (\n <div className={block('hint', {size})}>\n {showMin && (\n <Tooltip content={String(min)} placement={'bottom'}>\n min: <b>{this.format(min)}</b>\n </Tooltip>\n )}\n {showMin && <> </>}\n {showMax && (\n <Tooltip content={String(max)} placement={'bottom'}>\n max: <b>{this.format(max)}</b>\n </Tooltip>\n )}\n </div>\n );\n }\n\n renderPrettyValue() {\n const {size, hidePrettyValue} = this.props;\n const {formattedValue} = this.state;\n\n if (hidePrettyValue) {\n return null;\n }\n\n return <div className={block('pretty-value', {size})}>{formattedValue} </div>;\n }\n\n renderDefaultValue() {\n const {defaultValue, defaultValueClassName} = this.props;\n\n return (\n <TextInput\n disabled\n className={defaultValueClassName}\n value={this.format(defaultValue)}\n pin={'clear-round'}\n />\n );\n }\n\n isBottomLineVisible() {\n const {bottomLineVisibility} = this.props;\n const {focused} = this.state;\n\n return (\n bottomLineVisibility === 'visible' || (focused && bottomLineVisibility === 'focused')\n );\n }\n\n render() {\n const {\n value: propsValue,\n className,\n showHint,\n hidePrettyValue,\n showDefaultValue,\n } = this.props;\n const {parsedError, rawValue, formattedValue, focused} = this.state;\n const rest = this.getRestProps();\n const {size, view, hasClear} = rest;\n\n const {error} = propsValue ?? {};\n\n const err = error || parsedError;\n\n const text = focused ? rawValue : formattedValue;\n\n return (\n <div className={block(null, className)}>\n <div className={block('top')}>\n <TextInput\n {...rest}\n error={err as any}\n autoComplete={false}\n onUpdate={this.onChange}\n onKeyDown={this.onKeyDown}\n hasClear={hasClear}\n value={text}\n size={size}\n view={view}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n pin={showDefaultValue ? 'round-brick' : undefined}\n />\n {showDefaultValue && this.renderDefaultValue()}\n </div>\n {!err && this.isBottomLineVisible() && (\n <React.Fragment>\n {showHint && (!focused || hidePrettyValue)\n ? this.renderMinMaxHint()\n : this.renderPrettyValue()}\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nexport interface NumberInputProps extends Omit<NumberInputWithErrorProps, 'value' | 'onChange'> {\n value: number | undefined;\n onChange: (value: NumberInputProps['value']) => void;\n\n error?: string;\n}\n\nexport default class NumberInput extends React.Component<NumberInputProps> {\n static format(\n value: NumberInputProps['value'],\n format?: NumberInputWithErrorProps['format'],\n settings?: object,\n ) {\n return formatValue(value, format, settings);\n }\n\n render() {\n const {\n value,\n error,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onChange,\n ...rest\n } = this.props;\n\n return <NumberInputWithError {...rest} onChange={this.onChange} value={{value, error}} />;\n }\n\n onChange: NumberInputWithErrorProps['onChange'] = (v) => {\n this.props.onChange(v?.value);\n };\n}\n","import React from 'react';\nimport moment from 'moment';\nimport cn from 'bem-cn-lite';\n\nimport {\n NumberInputWithError,\n NumberInputWithErrorProps,\n} from '../../components/NumberInput/NumberInput';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport MetaTable from '../../components/MetaTable/MetaTable';\nimport Icon from '../../components/Icon/Icon';\n\nimport './TimeDuration.scss';\n\nconst block = cn('yt-time-duration');\n\nexport type TimeDurationProps = {\n className?: string;\n\n value: NumberInputWithErrorProps['value'];\n onChange: (value: TimeDurationProps['value']) => void;\n};\n\nexport function TimeDuration({value, onChange}: TimeDurationProps) {\n return (\n <div className={block()}>\n <NumberInputWithError\n className={block('input')}\n value={value}\n onChange={onChange}\n formatFn={formatTimeDuration}\n parseFn={parseTimeDuration}\n />\n <Tooltip\n content={\n <div>\n <MetaTable\n items={[\n makeItems({\n y: 'years',\n w: 'weeks',\n M: 'months',\n d: 'days',\n }),\n makeItems({\n h: 'hours',\n m: 'minutes',\n s: 'seconds',\n ms: 'milliseconds',\n }),\n ]}\n />\n Examles: 1M2d3h, 4h15m\n </div>\n }\n >\n <Icon className={block('info')} awesome={'question-circle'} />\n </Tooltip>\n </div>\n );\n}\n\nTimeDuration.hasErrorRenderer = true;\n\nTimeDuration.getDefaultValue = (): TimeDurationProps['value'] => {\n return {value: undefined};\n};\n\nTimeDuration.isEmpty = (v: TimeDurationProps['value']) => {\n return !v;\n};\n\nTimeDuration.validate = (v: TimeDurationProps['value']) => {\n return v?.error;\n};\n\nexport function formatTimeDuration(value?: number) {\n if (!value && value !== 0) {\n return '';\n }\n\n let rest = value;\n let res = '';\n\n const h = 3600 * 1000;\n const d = 24 * h;\n const M = 30 * d;\n const y = 365 * d;\n\n const parts = {\n y,\n M,\n d,\n h,\n m: 60 * 1000,\n s: 1000,\n ['']: 1,\n };\n\n Object.keys(parts).forEach((k) => {\n const p: number = parts[k as keyof typeof parts];\n const count = Math.floor(rest / p);\n if (count > 0) {\n res += `${count}${k} `;\n rest -= count * p;\n }\n });\n\n return res;\n}\n\nexport function parseTimeDuration(rawValue: string) {\n if (!rawValue) {\n return {value: undefined};\n }\n const skipSpaces = rawValue.replace(/\\s+/g, '');\n const res = [...skipSpaces.matchAll(/\\d+[a-zA-Z]*/g)];\n if (!res.length || res[0].index !== 0) {\n return {value: undefined, error: 'wrong format'};\n }\n\n let value = 0;\n for (const match of res) {\n const {[0]: digits, input} = match[0].match(/\\d+/) || {};\n if (!digits) {\n return {value: undefined, error: 'wring fromat 1'};\n }\n\n const type = input?.substring(digits.length) ?? '';\n const d = Number(digits);\n const toAdd = moment.duration(d, type as any).valueOf() as number;\n if (toAdd === 0 && d !== 0) {\n return {value: undefined, error: `wrong format of ${input}`};\n }\n\n value += toAdd;\n }\n return {value};\n}\n\nfunction makeItems(data: Record<string, string>) {\n return Object.keys(data).map((key) => ({key: key, label: key, value: data[key]}));\n}\n","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","export function getOffset(value, min, max) {\n return (value - min) / (max - min);\n}\nexport function getDirectionStyle(direction, value, min, max) {\n var offset = getOffset(value, min, max);\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(50%)';\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(50%)';\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(-50%)';\n break;\n default:\n positionStyle.left = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(-50%)';\n break;\n }\n return positionStyle;\n}\n\n/** Return index value if is list or return value directly */\nexport function getIndex(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import * as React from 'react';\nvar SliderContext = /*#__PURE__*/React.createContext({\n min: 0,\n max: 0,\n direction: 'ltr',\n step: 1,\n includedStart: 0,\n includedEnd: 0,\n tabIndex: 0,\n keyboard: true,\n styles: {},\n classNames: {}\n});\nexport default SliderContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"value\", \"valueIndex\", \"onStartMove\", \"style\", \"render\", \"dragging\", \"onOffsetChange\", \"onChangeComplete\", \"onFocus\", \"onMouseEnter\"];\nimport cls from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle, getIndex } from \"../util\";\nvar Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n value = props.value,\n valueIndex = props.valueIndex,\n onStartMove = props.onStartMove,\n style = props.style,\n render = props.render,\n dragging = props.dragging,\n onOffsetChange = props.onOffsetChange,\n onChangeComplete = props.onChangeComplete,\n onFocus = props.onFocus,\n onMouseEnter = props.onMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n disabled = _React$useContext.disabled,\n keyboard = _React$useContext.keyboard,\n range = _React$useContext.range,\n tabIndex = _React$useContext.tabIndex,\n ariaLabelForHandle = _React$useContext.ariaLabelForHandle,\n ariaLabelledByForHandle = _React$useContext.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _React$useContext.ariaValueTextFormatterForHandle,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n var handlePrefixCls = \"\".concat(prefixCls, \"-handle\");\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled) {\n onStartMove(e, valueIndex);\n }\n };\n var onInternalFocus = function onInternalFocus(e) {\n onFocus === null || onFocus === void 0 || onFocus(e, valueIndex);\n };\n var onInternalMouseEnter = function onInternalMouseEnter(e) {\n onMouseEnter(e, valueIndex);\n };\n\n // =========================== Keyboard ===========================\n var onKeyDown = function onKeyDown(e) {\n if (!disabled && keyboard) {\n var offset = null;\n\n // Change the value\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n offset = direction === 'ltr' || direction === 'btt' ? -1 : 1;\n break;\n case KeyCode.RIGHT:\n offset = direction === 'ltr' || direction === 'btt' ? 1 : -1;\n break;\n\n // Up is plus\n case KeyCode.UP:\n offset = direction !== 'ttb' ? 1 : -1;\n break;\n\n // Down is minus\n case KeyCode.DOWN:\n offset = direction !== 'ttb' ? -1 : 1;\n break;\n case KeyCode.HOME:\n offset = 'min';\n break;\n case KeyCode.END:\n offset = 'max';\n break;\n case KeyCode.PAGE_UP:\n offset = 2;\n break;\n case KeyCode.PAGE_DOWN:\n offset = -2;\n break;\n }\n if (offset !== null) {\n e.preventDefault();\n onOffsetChange(offset, valueIndex);\n }\n }\n };\n var handleKeyUp = function handleKeyUp(e) {\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.HOME:\n case KeyCode.END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete();\n break;\n }\n };\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n\n // ============================ Render ============================\n var divProps = {};\n if (valueIndex !== null) {\n var _getIndex;\n divProps = {\n tabIndex: disabled ? null : getIndex(tabIndex, valueIndex),\n role: 'slider',\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': disabled,\n 'aria-label': getIndex(ariaLabelForHandle, valueIndex),\n 'aria-labelledby': getIndex(ariaLabelledByForHandle, valueIndex),\n 'aria-valuetext': (_getIndex = getIndex(ariaValueTextFormatterForHandle, valueIndex)) === null || _getIndex === void 0 ? void 0 : _getIndex(value),\n 'aria-orientation': direction === 'ltr' || direction === 'rtl' ? 'horizontal' : 'vertical',\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove,\n onFocus: onInternalFocus,\n onMouseEnter: onInternalMouseEnter,\n onKeyDown: onKeyDown,\n onKeyUp: handleKeyUp\n };\n }\n var handleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: cls(handlePrefixCls, _defineProperty(_defineProperty({}, \"\".concat(handlePrefixCls, \"-\").concat(valueIndex + 1), valueIndex !== null && range), \"\".concat(handlePrefixCls, \"-dragging\"), dragging), classNames.handle),\n style: _objectSpread(_objectSpread(_objectSpread({}, positionStyle), style), styles.handle)\n }, divProps, restProps));\n\n // Customize\n if (render) {\n handleNode = render(handleNode, {\n index: valueIndex,\n prefixCls: prefixCls,\n value: value,\n dragging: dragging\n });\n }\n return handleNode;\n});\nif (process.env.NODE_ENV !== 'production') {\n Handle.displayName = 'Handle';\n}\nexport default Handle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"onStartMove\", \"onOffsetChange\", \"values\", \"handleRender\", \"activeHandleRender\", \"draggingIndex\", \"onFocus\"];\nimport * as React from 'react';\nimport { getIndex } from \"../util\";\nimport Handle from \"./Handle\";\nvar Handles = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n onStartMove = props.onStartMove,\n onOffsetChange = props.onOffsetChange,\n values = props.values,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n draggingIndex = props.draggingIndex,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded);\n var handlesRef = React.useRef({});\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus(index) {\n var _handlesRef$current$i;\n (_handlesRef$current$i = handlesRef.current[index]) === null || _handlesRef$current$i === void 0 || _handlesRef$current$i.focus();\n }\n };\n });\n\n // =========================== Active ===========================\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var onHandleFocus = function onHandleFocus(e, index) {\n setActiveIndex(index);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n var onHandleMouseEnter = function onHandleMouseEnter(e, index) {\n setActiveIndex(index);\n };\n\n // =========================== Render ===========================\n // Handle Props\n var handleProps = _objectSpread({\n prefixCls: prefixCls,\n onStartMove: onStartMove,\n onOffsetChange: onOffsetChange,\n render: handleRender,\n onFocus: onHandleFocus,\n onMouseEnter: onHandleMouseEnter\n }, restProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, values.map(function (value, index) {\n return /*#__PURE__*/React.createElement(Handle, _extends({\n ref: function ref(node) {\n if (!node) {\n delete handlesRef.current[index];\n } else {\n handlesRef.current[index] = node;\n }\n },\n dragging: draggingIndex === index,\n style: getIndex(style, index),\n key: index,\n value: value,\n valueIndex: index\n }, handleProps));\n }), activeHandleRender && /*#__PURE__*/React.createElement(Handle, _extends({\n key: \"a11y\"\n }, handleProps, {\n value: values[activeIndex],\n valueIndex: null,\n dragging: draggingIndex !== -1,\n render: activeHandleRender,\n style: {\n pointerEvents: 'none'\n },\n tabIndex: null,\n \"aria-hidden\": true\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Handles.displayName = 'Handles';\n}\nexport default Handles;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Mark = function Mark(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n children = props.children,\n value = props.value,\n _onClick = props.onClick;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd,\n included = _React$useContext.included;\n var textCls = \"\".concat(prefixCls, \"-text\");\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(textCls, _defineProperty({}, \"\".concat(textCls, \"-active\"), included && includedStart <= value && value <= includedEnd)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n },\n onClick: function onClick() {\n _onClick(value);\n }\n }, children);\n};\nexport default Mark;","import * as React from 'react';\nimport Mark from \"./Mark\";\nvar Marks = function Marks(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n onClick = props.onClick;\n var markPrefixCls = \"\".concat(prefixCls, \"-mark\");\n\n // Not render mark if empty\n if (!marks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: markPrefixCls\n }, marks.map(function (_ref) {\n var value = _ref.value,\n style = _ref.style,\n label = _ref.label;\n return /*#__PURE__*/React.createElement(Mark, {\n key: value,\n prefixCls: markPrefixCls,\n style: style,\n value: value,\n onClick: onClick\n }, label);\n }));\n};\nexport default Marks;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Dot = function Dot(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n included = _React$useContext.included,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n var active = included && includedStart <= value && value <= includedEnd;\n\n // ============================ Offset ============================\n var mergedStyle = _objectSpread(_objectSpread({}, getDirectionStyle(direction, value, min, max)), typeof style === 'function' ? style(value) : style);\n if (active) {\n mergedStyle = _objectSpread(_objectSpread({}, mergedStyle), typeof activeStyle === 'function' ? activeStyle(value) : activeStyle);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, _defineProperty({}, \"\".concat(dotClassName, \"-active\"), active)),\n style: mergedStyle\n });\n};\nexport default Dot;","import * as React from 'react';\nimport SliderContext from \"../context\";\nimport Dot from \"./Dot\";\nvar Steps = function Steps(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n dots = props.dots,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n step = _React$useContext.step;\n var stepDots = React.useMemo(function () {\n var dotSet = new Set();\n\n // Add marks\n marks.forEach(function (mark) {\n dotSet.add(mark.value);\n });\n\n // Fill dots\n if (dots && step !== null) {\n var current = min;\n while (current <= max) {\n dotSet.add(current);\n current += step;\n }\n }\n return Array.from(dotSet);\n }, [min, max, step, dots, marks]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, stepDots.map(function (dotValue) {\n return /*#__PURE__*/React.createElement(Dot, {\n prefixCls: prefixCls,\n key: dotValue,\n value: dotValue,\n style: style,\n activeStyle: activeStyle\n });\n }));\n};\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getOffset } from \"../util\";\nvar Track = function Track(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n start = props.start,\n end = props.end,\n index = props.index,\n onStartMove = props.onStartMove,\n replaceCls = props.replaceCls;\n var _React$useContext = React.useContext(SliderContext),\n direction = _React$useContext.direction,\n min = _React$useContext.min,\n max = _React$useContext.max,\n disabled = _React$useContext.disabled,\n range = _React$useContext.range,\n classNames = _React$useContext.classNames;\n var trackPrefixCls = \"\".concat(prefixCls, \"-track\");\n var offsetStart = getOffset(start, min, max);\n var offsetEnd = getOffset(end, min, max);\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled && onStartMove) {\n onStartMove(e, -1);\n }\n };\n\n // ============================ Render ============================\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n default:\n positionStyle.left = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n }\n var className = replaceCls || cls(trackPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(trackPrefixCls, \"-\").concat(index + 1), index !== null && range), \"\".concat(prefixCls, \"-track-draggable\"), onStartMove), classNames.track);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove\n });\n};\nexport default Track;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getIndex } from \"../util\";\nimport Track from \"./Track\";\nvar Tracks = function Tracks(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n values = props.values,\n startPoint = props.startPoint,\n onStartMove = props.onStartMove;\n var _React$useContext = React.useContext(SliderContext),\n included = _React$useContext.included,\n range = _React$useContext.range,\n min = _React$useContext.min,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n\n // =========================== List ===========================\n var trackList = React.useMemo(function () {\n if (!range) {\n // null value do not have track\n if (values.length === 0) {\n return [];\n }\n var startValue = startPoint !== null && startPoint !== void 0 ? startPoint : min;\n var endValue = values[0];\n return [{\n start: Math.min(startValue, endValue),\n end: Math.max(startValue, endValue)\n }];\n }\n\n // Multiple\n var list = [];\n for (var i = 0; i < values.length - 1; i += 1) {\n list.push({\n start: values[i],\n end: values[i + 1]\n });\n }\n return list;\n }, [values, range, startPoint, min]);\n if (!included) {\n return null;\n }\n\n // ========================== Render ==========================\n var tracksNode = classNames.tracks || styles.tracks ? /*#__PURE__*/React.createElement(Track, {\n index: null,\n prefixCls: prefixCls,\n start: trackList[0].start,\n end: trackList[trackList.length - 1].end,\n replaceCls: cls(classNames.tracks, \"\".concat(prefixCls, \"-tracks\")),\n style: styles.tracks\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, tracksNode, trackList.map(function (_ref, index) {\n var start = _ref.start,\n end = _ref.end;\n return /*#__PURE__*/React.createElement(Track, {\n index: index,\n prefixCls: prefixCls,\n style: _objectSpread(_objectSpread({}, getIndex(style, index)), styles.track),\n start: start,\n end: end,\n key: index,\n onStartMove: onStartMove\n });\n }));\n};\nexport default Tracks;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport * as React from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return {\n pageX: obj.pageX,\n pageY: obj.pageY\n };\n}\nfunction useDrag(containerRef, direction, rawValues, min, max, formatValue, triggerChange, finishChange, offsetValues) {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n draggingValue = _React$useState2[0],\n setDraggingValue = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n draggingIndex = _React$useState4[0],\n setDraggingIndex = _React$useState4[1];\n var _React$useState5 = React.useState(rawValues),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n cacheValues = _React$useState6[0],\n setCacheValues = _React$useState6[1];\n var _React$useState7 = React.useState(rawValues),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n originValues = _React$useState8[0],\n setOriginValues = _React$useState8[1];\n var mouseMoveEventRef = React.useRef(null);\n var mouseUpEventRef = React.useRef(null);\n React.useLayoutEffect(function () {\n if (draggingIndex === -1) {\n setCacheValues(rawValues);\n }\n }, [rawValues, draggingIndex]);\n\n // Clean up event\n React.useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveEventRef.current);\n document.removeEventListener('mouseup', mouseUpEventRef.current);\n document.removeEventListener('touchmove', mouseMoveEventRef.current);\n document.removeEventListener('touchend', mouseUpEventRef.current);\n };\n }, []);\n var flushValues = function flushValues(nextValues, nextValue) {\n // Perf: Only update state when value changed\n if (cacheValues.some(function (val, i) {\n return val !== nextValues[i];\n })) {\n if (nextValue !== undefined) {\n setDraggingValue(nextValue);\n }\n setCacheValues(nextValues);\n triggerChange(nextValues);\n }\n };\n var updateCacheValue = useEvent(function (valueIndex, offsetPercent) {\n // Basic point offset\n\n if (valueIndex === -1) {\n // >>>> Dragging on the track\n var startValue = originValues[0];\n var endValue = originValues[originValues.length - 1];\n var maxStartOffset = min - startValue;\n var maxEndOffset = max - endValue;\n\n // Get valid offset\n var offset = offsetPercent * (max - min);\n offset = Math.max(offset, maxStartOffset);\n offset = Math.min(offset, maxEndOffset);\n\n // Use first value to revert back of valid offset (like steps marks)\n var formatStartValue = formatValue(startValue + offset);\n offset = formatStartValue - startValue;\n var cloneCacheValues = originValues.map(function (val) {\n return val + offset;\n });\n flushValues(cloneCacheValues);\n } else {\n // >>>> Dragging on the handle\n var offsetDist = (max - min) * offsetPercent;\n\n // Always start with the valueIndex origin value\n var cloneValues = _toConsumableArray(cacheValues);\n cloneValues[valueIndex] = originValues[valueIndex];\n var next = offsetValues(cloneValues, offsetDist, valueIndex, 'dist');\n flushValues(next.values, next.value);\n }\n });\n var onStartMove = function onStartMove(e, valueIndex, startValues) {\n e.stopPropagation();\n\n // 如果是点击 track 触发的,需要传入变化后的初始值,而不能直接用 rawValues\n var initialValues = startValues || rawValues;\n var originValue = initialValues[valueIndex];\n setDraggingIndex(valueIndex);\n setDraggingValue(originValue);\n setOriginValues(initialValues);\n var _getPosition = getPosition(e),\n startX = _getPosition.pageX,\n startY = _getPosition.pageY;\n\n // Moving\n var onMouseMove = function onMouseMove(event) {\n event.preventDefault();\n var _getPosition2 = getPosition(event),\n moveX = _getPosition2.pageX,\n moveY = _getPosition2.pageY;\n var offsetX = moveX - startX;\n var offsetY = moveY - startY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var offSetPercent;\n switch (direction) {\n case 'btt':\n offSetPercent = -offsetY / height;\n break;\n case 'ttb':\n offSetPercent = offsetY / height;\n break;\n case 'rtl':\n offSetPercent = -offsetX / width;\n break;\n default:\n offSetPercent = offsetX / width;\n }\n updateCacheValue(valueIndex, offSetPercent);\n };\n\n // End\n var onMouseUp = function onMouseUp(event) {\n event.preventDefault();\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('touchend', onMouseUp);\n document.removeEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = null;\n mouseUpEventRef.current = null;\n setDraggingIndex(-1);\n finishChange();\n };\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('touchend', onMouseUp);\n document.addEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = onMouseMove;\n mouseUpEventRef.current = onMouseUp;\n };\n\n // Only return cache value when it mapping with rawValues\n var returnValues = React.useMemo(function () {\n var sourceValues = _toConsumableArray(rawValues).sort(function (a, b) {\n return a - b;\n });\n var targetValues = _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n return sourceValues.every(function (val, index) {\n return val === targetValues[index];\n }) ? cacheValues : rawValues;\n }, [rawValues, cacheValues]);\n return [draggingIndex, draggingValue, returnValues, onStartMove];\n}\nexport default useDrag;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport cls from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Handles from \"./Handles\";\nimport Marks from \"./Marks\";\nimport Steps from \"./Steps\";\nimport Tracks from \"./Tracks\";\nimport SliderContext from \"./context\";\nimport useDrag from \"./hooks/useDrag\";\nimport useOffset from \"./hooks/useOffset\";\n\n/**\n * New:\n * - click mark to update range value\n * - handleRender\n * - Fix handle with count not correct\n * - Fix pushable not work in some case\n * - No more FindDOMNode\n * - Move all position related style into inline style\n * - Key: up is plus, down is minus\n * - fix Key with step = null not align with marks\n * - Change range should not trigger onChange\n * - keyboard support pushable\n */\n\nvar Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-slider' : _props$prefixCls,\n className = props.className,\n style = props.style,\n classNames = props.classNames,\n styles = props.styles,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n autoFocus = props.autoFocus,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$min = props.min,\n min = _props$min === void 0 ? 0 : _props$min,\n _props$max = props.max,\n max = _props$max === void 0 ? 100 : _props$max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n value = props.value,\n defaultValue = props.defaultValue,\n range = props.range,\n count = props.count,\n onChange = props.onChange,\n onBeforeChange = props.onBeforeChange,\n onAfterChange = props.onAfterChange,\n onChangeComplete = props.onChangeComplete,\n _props$allowCross = props.allowCross,\n allowCross = _props$allowCross === void 0 ? true : _props$allowCross,\n _props$pushable = props.pushable,\n pushable = _props$pushable === void 0 ? false : _props$pushable,\n draggableTrack = props.draggableTrack,\n reverse = props.reverse,\n vertical = props.vertical,\n _props$included = props.included,\n included = _props$included === void 0 ? true : _props$included,\n startPoint = props.startPoint,\n trackStyle = props.trackStyle,\n handleStyle = props.handleStyle,\n railStyle = props.railStyle,\n dotStyle = props.dotStyle,\n activeDotStyle = props.activeDotStyle,\n marks = props.marks,\n dots = props.dots,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n ariaLabelForHandle = props.ariaLabelForHandle,\n ariaLabelledByForHandle = props.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = props.ariaValueTextFormatterForHandle;\n var handlesRef = React.useRef(null);\n var containerRef = React.useRef(null);\n var direction = React.useMemo(function () {\n if (vertical) {\n return reverse ? 'ttb' : 'btt';\n }\n return reverse ? 'rtl' : 'ltr';\n }, [reverse, vertical]);\n\n // ============================ Range =============================\n var mergedMin = React.useMemo(function () {\n return isFinite(min) ? min : 0;\n }, [min]);\n var mergedMax = React.useMemo(function () {\n return isFinite(max) ? max : 100;\n }, [max]);\n\n // ============================= Step =============================\n var mergedStep = React.useMemo(function () {\n return step !== null && step <= 0 ? 1 : step;\n }, [step]);\n\n // ============================= Push =============================\n var mergedPush = React.useMemo(function () {\n if (typeof pushable === 'boolean') {\n return pushable ? mergedStep : false;\n }\n return pushable >= 0 ? pushable : false;\n }, [pushable, mergedStep]);\n\n // ============================ Marks =============================\n var markList = React.useMemo(function () {\n return Object.keys(marks || {}).map(function (key) {\n var mark = marks[key];\n var markObj = {\n value: Number(key)\n };\n if (mark && _typeof(mark) === 'object' && ! /*#__PURE__*/React.isValidElement(mark) && ('label' in mark || 'style' in mark)) {\n markObj.style = mark.style;\n markObj.label = mark.label;\n } else {\n markObj.label = mark;\n }\n return markObj;\n }).filter(function (_ref) {\n var label = _ref.label;\n return label || typeof label === 'number';\n }).sort(function (a, b) {\n return a.value - b.value;\n });\n }, [marks]);\n\n // ============================ Format ============================\n var _useOffset = useOffset(mergedMin, mergedMax, mergedStep, markList, allowCross, mergedPush),\n _useOffset2 = _slicedToArray(_useOffset, 2),\n formatValue = _useOffset2[0],\n offsetValues = _useOffset2[1];\n\n // ============================ Values ============================\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var rawValues = React.useMemo(function () {\n var valueList = mergedValue === null || mergedValue === undefined ? [] : Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n var _valueList = _slicedToArray(valueList, 1),\n _valueList$ = _valueList[0],\n val0 = _valueList$ === void 0 ? mergedMin : _valueList$;\n var returnValues = mergedValue === null ? [] : [val0];\n\n // Format as range\n if (range) {\n returnValues = _toConsumableArray(valueList);\n\n // When count provided or value is `undefined`, we fill values\n if (count || mergedValue === undefined) {\n var pointCount = count >= 0 ? count + 1 : 2;\n returnValues = returnValues.slice(0, pointCount);\n\n // Fill with count\n while (returnValues.length < pointCount) {\n var _returnValues;\n returnValues.push((_returnValues = returnValues[returnValues.length - 1]) !== null && _returnValues !== void 0 ? _returnValues : mergedMin);\n }\n }\n returnValues.sort(function (a, b) {\n return a - b;\n });\n }\n\n // Align in range\n returnValues.forEach(function (val, index) {\n returnValues[index] = formatValue(val);\n });\n return returnValues;\n }, [mergedValue, range, mergedMin, count, formatValue]);\n\n // =========================== onChange ===========================\n var rawValuesRef = React.useRef(rawValues);\n rawValuesRef.current = rawValues;\n var getTriggerValue = function getTriggerValue(triggerValues) {\n return range ? triggerValues : triggerValues[0];\n };\n var triggerChange = function triggerChange(nextValues) {\n // Order first\n var cloneNextValues = _toConsumableArray(nextValues).sort(function (a, b) {\n return a - b;\n });\n\n // Trigger event if needed\n if (onChange && !isEqual(cloneNextValues, rawValuesRef.current, true)) {\n onChange(getTriggerValue(cloneNextValues));\n }\n\n // We set this later since it will re-render component immediately\n setValue(cloneNextValues);\n };\n var finishChange = function finishChange() {\n var finishValue = getTriggerValue(rawValuesRef.current);\n onAfterChange === null || onAfterChange === void 0 || onAfterChange(finishValue);\n warning(!onAfterChange, '[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.');\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete(finishValue);\n };\n var _useDrag = useDrag(containerRef, direction, rawValues, mergedMin, mergedMax, formatValue, triggerChange, finishChange, offsetValues),\n _useDrag2 = _slicedToArray(_useDrag, 4),\n draggingIndex = _useDrag2[0],\n draggingValue = _useDrag2[1],\n cacheValues = _useDrag2[2],\n onStartDrag = _useDrag2[3];\n var changeToCloseValue = function changeToCloseValue(newValue, e) {\n if (!disabled) {\n var valueIndex = 0;\n var valueDist = mergedMax - mergedMin;\n rawValues.forEach(function (val, index) {\n var dist = Math.abs(newValue - val);\n if (dist <= valueDist) {\n valueDist = dist;\n valueIndex = index;\n }\n });\n\n // Create new values\n var cloneNextValues = _toConsumableArray(rawValues);\n cloneNextValues[valueIndex] = newValue;\n\n // Fill value to match default 2\n if (range && !rawValues.length && count === undefined) {\n cloneNextValues.push(newValue);\n }\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(cloneNextValues));\n triggerChange(cloneNextValues);\n if (e) {\n var _document$activeEleme, _document$activeEleme2;\n (_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 || (_document$activeEleme2 = _document$activeEleme.blur) === null || _document$activeEleme2 === void 0 || _document$activeEleme2.call(_document$activeEleme);\n handlesRef.current.focus(valueIndex);\n onStartDrag(e, valueIndex, cloneNextValues);\n }\n }\n };\n\n // ============================ Click =============================\n var onSliderMouseDown = function onSliderMouseDown(e) {\n e.preventDefault();\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height,\n left = _containerRef$current.left,\n top = _containerRef$current.top,\n bottom = _containerRef$current.bottom,\n right = _containerRef$current.right;\n var clientX = e.clientX,\n clientY = e.clientY;\n var percent;\n switch (direction) {\n case 'btt':\n percent = (bottom - clientY) / height;\n break;\n case 'ttb':\n percent = (clientY - top) / height;\n break;\n case 'rtl':\n percent = (right - clientX) / width;\n break;\n default:\n percent = (clientX - left) / width;\n }\n var nextValue = mergedMin + percent * (mergedMax - mergedMin);\n changeToCloseValue(formatValue(nextValue), e);\n };\n\n // =========================== Keyboard ===========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n keyboardValue = _React$useState2[0],\n setKeyboardValue = _React$useState2[1];\n var onHandleOffsetChange = function onHandleOffsetChange(offset, valueIndex) {\n if (!disabled) {\n var next = offsetValues(rawValues, offset, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValues));\n triggerChange(next.values);\n setKeyboardValue(next.value);\n }\n };\n React.useEffect(function () {\n if (keyboardValue !== null) {\n var valueIndex = rawValues.indexOf(keyboardValue);\n if (valueIndex >= 0) {\n handlesRef.current.focus(valueIndex);\n }\n }\n setKeyboardValue(null);\n }, [keyboardValue]);\n\n // ============================= Drag =============================\n var mergedDraggableTrack = React.useMemo(function () {\n if (draggableTrack && mergedStep === null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`draggableTrack` is not supported when `step` is `null`.');\n }\n return false;\n }\n return draggableTrack;\n }, [draggableTrack, mergedStep]);\n var onStartMove = function onStartMove(e, valueIndex) {\n onStartDrag(e, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValuesRef.current));\n };\n\n // Auto focus for updated handle\n var dragging = draggingIndex !== -1;\n React.useEffect(function () {\n if (!dragging) {\n var valueIndex = rawValues.lastIndexOf(draggingValue);\n handlesRef.current.focus(valueIndex);\n }\n }, [dragging]);\n\n // =========================== Included ===========================\n var sortedCacheValues = React.useMemo(function () {\n return _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n }, [cacheValues]);\n\n // Provide a range values with included [min, max]\n // Used for Track, Mark & Dot\n var _React$useMemo = React.useMemo(function () {\n if (!range) {\n return [mergedMin, sortedCacheValues[0]];\n }\n return [sortedCacheValues[0], sortedCacheValues[sortedCacheValues.length - 1]];\n }, [sortedCacheValues, range, mergedMin]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n includedStart = _React$useMemo2[0],\n includedEnd = _React$useMemo2[1];\n\n // ============================= Refs =============================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n handlesRef.current.focus(0);\n },\n blur: function blur() {\n var _containerRef$current2;\n var _document = document,\n activeElement = _document.activeElement;\n if ((_containerRef$current2 = containerRef.current) !== null && _containerRef$current2 !== void 0 && _containerRef$current2.contains(activeElement)) {\n activeElement === null || activeElement === void 0 || activeElement.blur();\n }\n }\n };\n });\n\n // ========================== Auto Focus ==========================\n React.useEffect(function () {\n if (autoFocus) {\n handlesRef.current.focus(0);\n }\n }, []);\n\n // =========================== Context ============================\n var context = React.useMemo(function () {\n return {\n min: mergedMin,\n max: mergedMax,\n direction: direction,\n disabled: disabled,\n keyboard: keyboard,\n step: mergedStep,\n included: included,\n includedStart: includedStart,\n includedEnd: includedEnd,\n range: range,\n tabIndex: tabIndex,\n ariaLabelForHandle: ariaLabelForHandle,\n ariaLabelledByForHandle: ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle: ariaValueTextFormatterForHandle,\n styles: styles || {},\n classNames: classNames || {}\n };\n }, [mergedMin, mergedMax, direction, disabled, keyboard, mergedStep, included, includedStart, includedEnd, range, tabIndex, ariaLabelForHandle, ariaLabelledByForHandle, ariaValueTextFormatterForHandle, styles, classNames]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(SliderContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: cls(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-vertical\"), vertical), \"\".concat(prefixCls, \"-horizontal\"), !vertical), \"\".concat(prefixCls, \"-with-marks\"), markList.length)),\n style: style,\n onMouseDown: onSliderMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls(\"\".concat(prefixCls, \"-rail\"), classNames === null || classNames === void 0 ? void 0 : classNames.rail),\n style: _objectSpread(_objectSpread({}, railStyle), styles === null || styles === void 0 ? void 0 : styles.rail)\n }), /*#__PURE__*/React.createElement(Tracks, {\n prefixCls: prefixCls,\n style: trackStyle,\n values: sortedCacheValues,\n startPoint: startPoint,\n onStartMove: mergedDraggableTrack ? onStartMove : undefined\n }), /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n marks: markList,\n dots: dots,\n style: dotStyle,\n activeStyle: activeDotStyle\n }), /*#__PURE__*/React.createElement(Handles, {\n ref: handlesRef,\n prefixCls: prefixCls,\n style: handleStyle,\n values: cacheValues,\n draggingIndex: draggingIndex,\n onStartMove: onStartMove,\n onOffsetChange: onHandleOffsetChange,\n onFocus: onFocus,\n onBlur: onBlur,\n handleRender: handleRender,\n activeHandleRender: activeHandleRender,\n onChangeComplete: finishChange\n }), /*#__PURE__*/React.createElement(Marks, {\n prefixCls: prefixCls,\n marks: markList,\n onClick: changeToCloseValue\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n\n/** Format the value in the range of [min, max] */\n\n/** Format value align with step */\n\n/** Format value align with step & marks */\n\nexport default function useOffset(min, max, step, markList, allowCross, pushable) {\n var formatRangeValue = React.useCallback(function (val) {\n return Math.max(min, Math.min(max, val));\n }, [min, max]);\n var formatStepValue = React.useCallback(function (val) {\n if (step !== null) {\n var stepValue = min + Math.round((formatRangeValue(val) - min) / step) * step;\n\n // Cut number in case to be like 0.30000000000000004\n var getDecimal = function getDecimal(num) {\n return (String(num).split('.')[1] || '').length;\n };\n var maxDecimal = Math.max(getDecimal(step), getDecimal(max), getDecimal(min));\n var fixedValue = Number(stepValue.toFixed(maxDecimal));\n return min <= fixedValue && fixedValue <= max ? fixedValue : null;\n }\n return null;\n }, [step, min, max, formatRangeValue]);\n var formatValue = React.useCallback(function (val) {\n var formatNextValue = formatRangeValue(val);\n\n // List align values\n var alignValues = markList.map(function (mark) {\n return mark.value;\n });\n if (step !== null) {\n alignValues.push(formatStepValue(val));\n }\n\n // min & max\n alignValues.push(min, max);\n\n // Align with marks\n var closeValue = alignValues[0];\n var closeDist = max - min;\n alignValues.forEach(function (alignValue) {\n var dist = Math.abs(formatNextValue - alignValue);\n if (dist <= closeDist) {\n closeValue = alignValue;\n closeDist = dist;\n }\n });\n return closeValue;\n }, [min, max, markList, step, formatRangeValue, formatStepValue]);\n\n // ========================== Offset ==========================\n // Single Value\n var offsetValue = function offsetValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n if (typeof offset === 'number') {\n var nextValue;\n var originValue = values[valueIndex];\n\n // Only used for `dist` mode\n var targetDistValue = originValue + offset;\n\n // Compare next step value & mark value which is best match\n var potentialValues = [];\n markList.forEach(function (mark) {\n potentialValues.push(mark.value);\n });\n\n // Min & Max\n potentialValues.push(min, max);\n\n // In case origin value is align with mark but not with step\n potentialValues.push(formatStepValue(originValue));\n\n // Put offset step value also\n var sign = offset > 0 ? 1 : -1;\n if (mode === 'unit') {\n potentialValues.push(formatStepValue(originValue + sign * step));\n } else {\n potentialValues.push(formatStepValue(targetDistValue));\n }\n\n // Find close one\n potentialValues = potentialValues.filter(function (val) {\n return val !== null;\n })\n // Remove reverse value\n .filter(function (val) {\n return offset < 0 ? val <= originValue : val >= originValue;\n });\n if (mode === 'unit') {\n // `unit` mode can not contain itself\n potentialValues = potentialValues.filter(function (val) {\n return val !== originValue;\n });\n }\n var compareValue = mode === 'unit' ? originValue : targetDistValue;\n nextValue = potentialValues[0];\n var valueDist = Math.abs(nextValue - compareValue);\n potentialValues.forEach(function (potentialValue) {\n var dist = Math.abs(potentialValue - compareValue);\n if (dist < valueDist) {\n nextValue = potentialValue;\n valueDist = dist;\n }\n });\n\n // Out of range will back to range\n if (nextValue === undefined) {\n return offset < 0 ? min : max;\n }\n\n // `dist` mode\n if (mode === 'dist') {\n return nextValue;\n }\n\n // `unit` mode may need another round\n if (Math.abs(offset) > 1) {\n var cloneValues = _toConsumableArray(values);\n cloneValues[valueIndex] = nextValue;\n return offsetValue(cloneValues, offset - sign, valueIndex, mode);\n }\n return nextValue;\n } else if (offset === 'min') {\n return min;\n } else if (offset === 'max') {\n return max;\n }\n };\n\n /** Same as `offsetValue` but return `changed` mark to tell value changed */\n var offsetChangedValue = function offsetChangedValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var originValue = values[valueIndex];\n var nextValue = offsetValue(values, offset, valueIndex, mode);\n return {\n value: nextValue,\n changed: nextValue !== originValue\n };\n };\n var needPush = function needPush(dist) {\n return pushable === null && dist === 0 || typeof pushable === 'number' && dist < pushable;\n };\n\n // Values\n var offsetValues = function offsetValues(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var nextValues = values.map(formatValue);\n var originValue = nextValues[valueIndex];\n var nextValue = offsetValue(nextValues, offset, valueIndex, mode);\n nextValues[valueIndex] = nextValue;\n if (allowCross === false) {\n // >>>>> Allow Cross\n var pushNum = pushable || 0;\n\n // ============ AllowCross ===============\n if (valueIndex > 0 && nextValues[valueIndex - 1] !== originValue) {\n nextValues[valueIndex] = Math.max(nextValues[valueIndex], nextValues[valueIndex - 1] + pushNum);\n }\n if (valueIndex < nextValues.length - 1 && nextValues[valueIndex + 1] !== originValue) {\n nextValues[valueIndex] = Math.min(nextValues[valueIndex], nextValues[valueIndex + 1] - pushNum);\n }\n } else if (typeof pushable === 'number' || pushable === null) {\n // >>>>> Pushable\n // =============== Push ==================\n\n // >>>>>> Basic push\n // End values\n for (var i = valueIndex + 1; i < nextValues.length; i += 1) {\n var changed = true;\n while (needPush(nextValues[i] - nextValues[i - 1]) && changed) {\n var _offsetChangedValue = offsetChangedValue(nextValues, 1, i);\n nextValues[i] = _offsetChangedValue.value;\n changed = _offsetChangedValue.changed;\n }\n }\n\n // Start values\n for (var _i = valueIndex; _i > 0; _i -= 1) {\n var _changed = true;\n while (needPush(nextValues[_i] - nextValues[_i - 1]) && _changed) {\n var _offsetChangedValue2 = offsetChangedValue(nextValues, -1, _i - 1);\n nextValues[_i - 1] = _offsetChangedValue2.value;\n _changed = _offsetChangedValue2.changed;\n }\n }\n\n // >>>>> Revert back to safe push range\n // End to Start\n for (var _i2 = nextValues.length - 1; _i2 > 0; _i2 -= 1) {\n var _changed2 = true;\n while (needPush(nextValues[_i2] - nextValues[_i2 - 1]) && _changed2) {\n var _offsetChangedValue3 = offsetChangedValue(nextValues, -1, _i2 - 1);\n nextValues[_i2 - 1] = _offsetChangedValue3.value;\n _changed2 = _offsetChangedValue3.changed;\n }\n }\n\n // Start to End\n for (var _i3 = 0; _i3 < nextValues.length - 1; _i3 += 1) {\n var _changed3 = true;\n while (needPush(nextValues[_i3 + 1] - nextValues[_i3]) && _changed3) {\n var _offsetChangedValue4 = offsetChangedValue(nextValues, 1, _i3 + 1);\n nextValues[_i3 + 1] = _offsetChangedValue4.value;\n _changed3 = _offsetChangedValue4.changed;\n }\n }\n }\n return {\n value: nextValues[valueIndex],\n values: nextValues\n };\n };\n return [formatValue, offsetValues];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","import Slider from \"./Slider\";\nexport default Slider;","import range_ from 'lodash/range';\n\nexport const prepareAvailableValues = (availableValues?: number[]): number[] | undefined => {\n if (!availableValues || !availableValues.length) {\n return undefined;\n }\n\n return [...availableValues].sort((v1, v2) => v1 - v2);\n};\n\nexport const prepareValue = ({\n value = 0,\n min = 0,\n max = 100,\n}: {\n value?: number;\n min?: number;\n max?: number;\n}) => {\n if (value > max) {\n return max;\n }\n if (value < min) {\n return min;\n }\n\n return value;\n};\n\nexport const getInfoPoints = ({\n infoPointsCount,\n min,\n max,\n values,\n}: {\n infoPointsCount: number;\n min: number;\n max: number;\n values?: number[];\n}) => {\n let mapInfoPoints;\n\n if (values && infoPointsCount >= values.length) {\n return values;\n }\n\n if (infoPointsCount < 1) {\n return [];\n }\n\n if (infoPointsCount === 1) {\n return [min];\n }\n\n if (!values || !values.length) {\n const step = Math.abs(max - min) / (infoPointsCount - 1);\n mapInfoPoints = (el: number): number => Math.round((min + step * el) * 100) / 100;\n } else {\n const step = values.length / infoPointsCount;\n mapInfoPoints = (el: number, i: number, arr: number[]) => {\n let index = Math.ceil(el * step);\n if (i === arr.length - 1) {\n // to make sure if the last point is equal to the last available value\n index = values.length - 1;\n }\n return values[index];\n };\n }\n\n return range_(0, infoPointsCount).map(mapInfoPoints);\n};\n\nexport const getParsedValue = (textValue: string, parse?: (value: string) => number): number => {\n return parse ? parse(textValue) : parseFloat(textValue);\n};\n\nexport const getTextValue = (value: number, format?: (value: number) => string): string => {\n return format ? format(value) : value.toString();\n};\n\nexport const getClosestValue = (value: number, values?: number[]): number => {\n if (!values || !values.length) {\n return value;\n }\n\n let low = 0;\n let hi = values.length - 1;\n\n while (hi - low > 1) {\n const mid = Math.floor((low + hi) / 2);\n if (values[mid] < value) {\n low = mid;\n } else {\n hi = mid;\n }\n }\n\n const left = values[low];\n const right = values[hi];\n return value - left <= right - value ? left : right;\n};\n","export const LEFT_INFO_POINT_STYLE = {\n position: 'static',\n marginLeft: 0,\n display: 'flex',\n verticalAlign: 'none',\n textAlign: 'none',\n};\n\nexport const RIGHT_INFO_POINT_STYLE = {\n position: 'static',\n marginLeft: 0,\n display: 'flex',\n verticalAlign: 'none',\n textAlign: 'none',\n flexDirection: 'row-reverse',\n};\n","import React, {Component, ReactElement} from 'react';\nimport block from 'bem-cn-lite';\n\nimport Slider, {type SliderProps, type SliderRef} from 'rc-slider';\nimport {IconProps, TextInput, TextInputSize} from '@gravity-ui/uikit';\nimport debounce_ from 'lodash/debounce';\n// eslint-disable-next-line lodash/import-scope\nimport type {DebouncedFunc} from 'lodash';\n\nimport {\n getClosestValue,\n getInfoPoints,\n getParsedValue,\n getTextValue,\n prepareAvailableValues,\n prepareValue,\n} from './utils';\nimport {LEFT_INFO_POINT_STYLE, RIGHT_INFO_POINT_STYLE} from './constants';\n\nimport './RangeInputPicker.scss';\n\nconst b = block('yc-range-input-picker');\n\ninterface RangeInputPickerDefaultProps {\n value?: number;\n minValue?: number;\n maxValue?: number;\n size?: TextInputSize;\n placeholder?: string;\n debounceDelay?: number;\n infoPointsCount?: number;\n step?: number;\n disabled?: boolean;\n readOnly?: boolean;\n autoFocus?: boolean;\n}\n\nexport interface RangeInputPickerGeneralProps {\n onUpdate?: (value: number) => void;\n onAfterUpdate?: (value: number) => void;\n onOutsideClick?: (value: number) => void;\n displayFormat?: (value?: number) => string;\n format?: (value?: number) => string;\n parse?: (value: string) => number;\n onSubmit?: (value: number) => void;\n onBlur?: (value: number) => void;\n onFocus?: (value: number) => void;\n pattern?: string;\n iconLeft?: ReactElement<IconProps>;\n iconRight?: ReactElement<IconProps>;\n availableValues?: number[];\n className?: string;\n controlProps?: React.InputHTMLAttributes<HTMLInputElement>;\n}\n\nexport type RangeInputPickerProps = RangeInputPickerDefaultProps & RangeInputPickerGeneralProps;\n\ninterface RangeInputPickerState {\n prevProps: RangeInputPickerProps;\n textValue: string;\n currentValue: number;\n min: number;\n max: number;\n values?: number[];\n focused: boolean;\n}\n\nexport class RangeInputPicker extends Component<RangeInputPickerProps, RangeInputPickerState> {\n static defaultProps: RangeInputPickerDefaultProps = {\n size: 'm',\n placeholder: '',\n value: 0,\n minValue: 0,\n maxValue: 100,\n debounceDelay: 200,\n disabled: false,\n readOnly: false,\n autoFocus: false,\n infoPointsCount: 2,\n step: 1,\n };\n\n static getDisplayTextValue(props: RangeInputPickerProps, value?: number): string {\n const {displayFormat, format} = props;\n const formatFunc = displayFormat || format || String;\n\n return formatFunc(value);\n }\n\n static getPreparedState(props: RangeInputPickerProps, currentState?: RangeInputPickerState) {\n const {availableValues, value, minValue = 0, maxValue = 100} = props;\n const {focused = false, textValue = ''} = currentState || {};\n const values = prepareAvailableValues(availableValues);\n const min = values ? values[0] : minValue;\n const max = values ? values[values.length - 1] : maxValue;\n const actualValue = prepareValue({value, min, max});\n\n return {\n prevProps: props,\n textValue: focused ? textValue : RangeInputPicker.getDisplayTextValue(props, value),\n currentValue: actualValue,\n min,\n max,\n values,\n focused,\n };\n }\n\n static getDerivedStateFromProps(\n nextProps: RangeInputPickerProps,\n state: RangeInputPickerState,\n ) {\n if (nextProps === state.prevProps) {\n return null;\n }\n\n return RangeInputPicker.getPreparedState(nextProps, state);\n }\n\n private wrapperRef = React.createRef<HTMLDivElement>();\n private sliderRef = React.createRef<SliderRef>();\n private textInputInnerRef = React.createRef<HTMLInputElement>();\n private debouncedCallOnUpdate: DebouncedFunc<() => void>;\n private debouncedHandleOnAfterUpdate: DebouncedFunc<() => void>;\n\n constructor(props: RangeInputPickerProps) {\n super(props);\n\n this.debouncedCallOnUpdate = debounce_(this.callOnUpdate, props.debounceDelay);\n this.debouncedHandleOnAfterUpdate = debounce_(\n this.handleOnAfterUpdate,\n props.debounceDelay,\n );\n this.state = RangeInputPicker.getPreparedState(props);\n }\n\n componentDidMount() {\n const {onOutsideClick} = this.props;\n\n if (onOutsideClick) {\n document.addEventListener('touchstart', this.handleOutsideClick);\n document.addEventListener('mousedown', this.handleOutsideClick);\n }\n }\n\n componentWillUnmount() {\n this.debouncedCallOnUpdate.cancel();\n this.debouncedHandleOnAfterUpdate.cancel();\n\n document.removeEventListener('touchstart', this.handleOutsideClick);\n document.removeEventListener('mousedown', this.handleOutsideClick);\n }\n\n render() {\n const {\n placeholder,\n autoFocus,\n disabled,\n readOnly,\n // iconRight,\n // iconLeft,\n size,\n pattern,\n className,\n controlProps,\n } = this.props;\n const {currentValue, textValue, min, max, values} = this.state;\n\n let rangeInfoItems;\n let rcSliderInfoItems;\n\n // use our own info items implementation unless available values are not empty\n if (!values || !values.length) {\n rangeInfoItems = this.renderRangeInfoItems();\n } else {\n rcSliderInfoItems = this.renderInfoItems();\n }\n\n return (\n <div\n ref={this.wrapperRef}\n className={b({size}, className)}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleWrapperClick}\n >\n <TextInput\n controlRef={this.textInputInnerRef}\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n onUpdate={this.handleInputUpdate}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n value={textValue}\n autoFocus={autoFocus}\n // iconRight={iconRight}\n // iconLeft={iconLeft}\n controlProps={{readOnly, pattern, ...controlProps}}\n />\n\n <Slider\n ref={this.sliderRef}\n tabIndex={0}\n min={min}\n max={max}\n value={currentValue}\n disabled={disabled}\n onChange={this.handleSliderChange}\n step={this.step}\n marks={rcSliderInfoItems}\n onChangeComplete={this.debouncedHandleOnAfterUpdate}\n />\n\n {rangeInfoItems && (\n <div className={b('range-info-items-list')}>{rangeInfoItems}</div>\n )}\n </div>\n );\n }\n\n private get patternRegex(): RegExp | null {\n const {pattern} = this.props;\n\n if (!pattern) {\n return null;\n }\n\n return new RegExp(`^(?:${pattern})$`);\n }\n\n private get step(): number | undefined {\n const {step} = this.props;\n const {values} = this.state;\n\n return !values || !values.length ? step : undefined;\n }\n\n private callOnUpdate = () => {\n const {onUpdate} = this.props;\n const {currentValue} = this.state;\n\n if (onUpdate) {\n onUpdate(currentValue);\n }\n };\n\n private prepareChange = (textValue: string): number => {\n const {parse} = this.props;\n const {values, min, max, currentValue} = this.state;\n let value = getParsedValue(textValue, parse);\n\n if (isNaN(value)) {\n value = currentValue;\n }\n\n let actualValue = prepareValue({value, min, max});\n\n if (values && values.length) {\n actualValue = getClosestValue(actualValue, values);\n }\n\n return actualValue;\n };\n\n private handleOnAfterUpdate = () => {\n const {onAfterUpdate} = this.props;\n const {currentValue} = this.state;\n\n if (onAfterUpdate) {\n onAfterUpdate(currentValue);\n }\n };\n\n private handleInputBlur = (event: React.FocusEvent<HTMLSpanElement>) => {\n event.preventDefault();\n\n const {onBlur} = this.props;\n const {textValue} = this.state;\n\n const actualValue = this.prepareChange(textValue);\n\n this.setState(\n {\n focused: false,\n currentValue: actualValue,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, actualValue),\n },\n () => {\n if (onBlur) {\n onBlur(actualValue);\n }\n },\n );\n };\n\n private handleInputFocus = () => {\n const {format, onFocus} = this.props;\n const {currentValue} = this.state;\n\n this.setState(\n {\n textValue: getTextValue(currentValue, format),\n },\n () => {\n if (onFocus) {\n onFocus(currentValue);\n }\n },\n );\n };\n\n private handleInputUpdate = (newValue: string) => {\n if (this.patternRegex && !this.patternRegex.test(newValue)) {\n return;\n }\n\n const actualValue = this.prepareChange(newValue);\n\n this.setState(\n {\n currentValue: actualValue,\n textValue: newValue,\n },\n this.debouncedCallOnUpdate,\n );\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== 'Enter') {\n return;\n }\n\n const {format, onSubmit} = this.props;\n const {textValue} = this.state;\n const actualValue = this.prepareChange(textValue);\n\n this.setState(\n {\n currentValue: actualValue,\n textValue: getTextValue(actualValue, format),\n focused: false,\n },\n () => {\n if (this.textInputInnerRef.current) {\n this.textInputInnerRef.current.blur();\n }\n\n if (onSubmit) {\n onSubmit(actualValue);\n }\n },\n );\n };\n\n private handleSliderChange: SliderProps['onChange'] = (newValue) => {\n if (typeof newValue === 'number') {\n const {min, max, values} = this.state;\n\n const value = getClosestValue(prepareValue({min, max, value: newValue}), values);\n\n this.setState(\n {\n currentValue: value,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, value),\n },\n this.debouncedCallOnUpdate,\n );\n }\n };\n\n private handleWrapperClick = (event: React.MouseEvent<HTMLDivElement>) => {\n // TODO: написать свои тайпинги для Slider, т.к. родные описаны некорректно\n // @ts-ignore\n const slider = this.sliderRef.current && this.sliderRef.current.sliderRef;\n const isSliderContainsTarget = slider && slider.contains(event.target as Node);\n\n if (!isSliderContainsTarget) {\n this.setState({focused: true});\n }\n };\n\n private handleInfoPointClick = (value: number) => {\n return (event: React.MouseEvent<HTMLAnchorElement>) => {\n const {format, parse} = this.props;\n\n event.preventDefault();\n\n const val = getParsedValue(getTextValue(value, format), parse);\n\n this.setState(\n {\n currentValue: val,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, val),\n },\n () => {\n const {onUpdate, onAfterUpdate} = this.props;\n\n if (onUpdate) {\n onUpdate(val);\n }\n\n if (onAfterUpdate) {\n onAfterUpdate(val);\n }\n },\n );\n };\n };\n\n private handleOutsideClick = (event: Event) => {\n const {onOutsideClick} = this.props;\n const {currentValue, focused} = this.state;\n const wrapper = this.wrapperRef.current;\n\n if (!onOutsideClick || !wrapper) {\n return;\n }\n\n if (!wrapper.contains(event.target as Node) && focused) {\n this.setState(\n {\n focused: false,\n },\n () => {\n if (onOutsideClick) {\n onOutsideClick(currentValue);\n }\n },\n );\n }\n };\n\n private renderItem = (value: number): string =>\n RangeInputPicker.getDisplayTextValue(this.props, value);\n\n private renderRangeItem = (value: number): JSX.Element => (\n <span\n key={value}\n className={b('range-info-item')}\n onClick={this.handleInfoPointClick(value)}\n >\n {RangeInputPicker.getDisplayTextValue(this.props, value)}\n </span>\n );\n\n private renderRangeInfoItems = () => {\n const {infoPointsCount = 2, minValue = 0, maxValue = 100} = this.props;\n const {values} = this.state;\n\n if (infoPointsCount < 1) {\n return [];\n }\n\n let infoItems: number[] = [];\n\n if (infoPointsCount === 1) {\n infoItems.push(minValue);\n } else if (!values || !values.length) {\n const step = Math.abs(maxValue - minValue) / (infoPointsCount - 1);\n\n for (let i = 0; i < infoPointsCount; i++) {\n const point = Math.round((minValue + step * i) * 100) / 100;\n\n infoItems.push(point);\n }\n } else {\n infoItems = values;\n }\n\n const pointsCount = infoItems.length;\n const unit = 100 / (pointsCount - 1);\n const pointWidth = unit * 0.9;\n const pointsRange = maxValue - minValue;\n\n return infoItems.map((point, i) => {\n const style = {\n width: pointWidth + '%',\n marginLeft: -pointWidth / 2 + '%',\n left: ((point - minValue) / pointsRange) * 100 + '%',\n };\n\n if (i === 0) {\n Object.assign(style, LEFT_INFO_POINT_STYLE);\n } else if (i === infoItems.length - 1) {\n Object.assign(style, RIGHT_INFO_POINT_STYLE);\n }\n\n return (\n <span className={b('range-info-item-container')} style={style} key={point}>\n {this.renderRangeItem(point)}\n </span>\n );\n });\n };\n\n private renderInfoItems = () => {\n const {infoPointsCount = 2} = this.props;\n const {values, min, max} = this.state;\n\n const points = getInfoPoints({infoPointsCount, min, max, values});\n\n const infoItems = points.reduce<NonNullable<SliderProps['marks']>>((acc, point: number) => {\n acc[point] = {label: this.renderItem(point), style: {}};\n\n return acc;\n }, {});\n\n return infoItems;\n };\n}\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport indexOf_ from 'lodash/indexOf';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\n\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport format from '../../../../common/hammer/format';\nimport {YTPermissionTypeUI} from '../../../../utils/acl/acl-api';\n\nimport './PermissionsControl.scss';\n\nconst block = cn('acl-permissions-control');\n\ninterface Props {\n value: Record<string, Array<YTPermissionTypeUI>>;\n onChange: (value: Props['value']) => void;\n disabled?: boolean;\n choices?: Array<Array<YTPermissionTypeUI>>;\n disabledChoices?: Array<number>; // array of indices\n validate?: (value: Props['value']) => string | undefined;\n\n error?: string;\n}\n\ninterface State {\n errorMessage?: string;\n}\n\nexport default class PermissionsControl extends Component<Props, State> {\n static getChoiceName(choice: Array<string>) {\n return choice.join('/');\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static hasErrorRenderer = true;\n\n static getDefaultValue = () => ({});\n static isEmpty(value: Props['value']) {\n return isEmpty_(value);\n }\n\n state: State = {};\n\n handleCheckboxChange = (\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n ) => {\n const {value, onChange} = this.props;\n const {[permissionName]: permissions, ...rest} = value || {};\n\n const updatedValue = permissions ? rest : {...rest, [permissionName]: permissionsToSet};\n onChange(updatedValue);\n };\n\n renderPermissionCheckbox(\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n index: number,\n ) {\n const {value, disabled, disabledChoices} = this.props;\n const itemDisabled = disabled || indexOf_(disabledChoices, index) !== -1;\n\n return (\n <Checkbox\n checked={Boolean(value?.[permissionName])}\n key={permissionName}\n content={format.ReadableField(permissionName)}\n onChange={() => this.handleCheckboxChange(permissionName, permissionsToSet)}\n disabled={itemDisabled}\n className={block('item')}\n />\n );\n }\n\n renderChoices(choices?: Required<Props>['choices']) {\n return map_(choices, (item, index) => {\n const name = PermissionsControl.getChoiceName(item);\n return (\n <React.Fragment key={index}>\n {this.renderPermissionCheckbox(name, item, index)}\n </React.Fragment>\n );\n });\n }\n\n render() {\n const {choices, error} = this.props;\n\n return (\n <div className={block()}>\n {this.renderChoices(choices)}\n {error && <div className={block('error-message')}>{error}</div>}\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport {Provider} from 'react-redux';\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport {getWindowStore} from '../../store/window-store';\n\nexport function AppStoreProvider({children}: {children: React.ReactNode}) {\n return (\n <Provider store={getWindowStore()}>\n <ErrorBoundary>{children}</ErrorBoundary>\n </Provider>\n );\n}\n","import React, {Component, FocusEvent, Key, KeyboardEvent, MouseEvent} from 'react';\nimport {connect} from 'react-redux';\nimport ReactList from 'react-list';\nimport block from 'bem-cn-lite';\nimport key from 'hotkeys-js';\n\nimport debounce_ from 'lodash/debounce';\nimport find_ from 'lodash/find';\nimport isEmpty_ from 'lodash/isEmpty';\n\nimport {Popup, TextInput} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport ErrorMessage from '../../components/ErrorMessage/ErrorMessage';\n\nimport {\n filterByCurrentPath,\n getCompletedPath,\n getIconNameForType,\n getNextSelectedIndex,\n getPrevSelectedIndex,\n} from '../../utils/navigation/path-editor';\nimport {\n loadSuggestionsList,\n removeActiveRequests,\n} from '../../store/actions/navigation/path-editor/path-editor';\nimport {RootState} from '../../store/reducers';\nimport {KeyCode} from '../../constants/index';\n\nimport './PathEditor.scss';\n\ninterface Suggestion {\n parentPath: string;\n childPath: string;\n path: string;\n targetPathBroken?: boolean;\n type?: string;\n dynamic?: unknown;\n}\n\ntype SuggestionFilter = (suggestions: Suggestion[]) => Suggestion[];\n\nexport interface EventPayload {\n path: string;\n}\n\nexport interface PathEditorProps {\n suggestions: Suggestion[];\n suggestionsError?: boolean;\n errorMessage?: string;\n loadSuggestionsList: (path: string, customFilter?: SuggestionFilter) => void;\n removeActiveRequests: () => void;\n // from parent component\n className?: string;\n placeholder?: string;\n defaultPath?: string;\n disabled?: boolean;\n autoFocus?: boolean;\n hasClear?: boolean;\n showErrors?: boolean;\n customFilter?: SuggestionFilter;\n onChange?: (newPath: string) => void;\n onFocus?: (e: FocusEvent<HTMLInputElement>, payload: EventPayload) => void;\n onBlur?: (path: string) => void;\n onApply?: (newPath: string) => void;\n onCancel?: () => void;\n}\n\ninterface PathEditorState {\n path: string;\n actualSuggestions: Suggestion[];\n inputFocus: boolean;\n inputChange: boolean;\n selectedIndex: number;\n}\n\nconst debounceTime = 300;\nconst b = block('path-editor');\n\nexport class PathEditor extends Component<PathEditorProps, PathEditorState> {\n static defaultProps: Partial<PathEditorProps> = {\n errorMessage: 'Oops, something went wrong',\n placeholder: 'Enter the path...',\n suggestionsError: false,\n autoFocus: false,\n showErrors: true,\n defaultPath: undefined,\n disabled: false,\n hasClear: false,\n };\n\n static getDerivedStateFromProps(props: PathEditorProps, state: PathEditorState) {\n const res = {};\n if (state.inputFocus && state.inputChange) {\n Object.assign(res, {\n actualSuggestions: props.suggestions.length\n ? filterByCurrentPath(state.path, props.suggestions)\n : [],\n });\n }\n\n if (state.path === undefined && props.defaultPath !== undefined) {\n Object.assign(res, {\n path: props.defaultPath,\n });\n }\n\n return isEmpty_(res) ? null : res;\n }\n\n state: PathEditorState;\n\n private suggestionsList = React.createRef<HTMLDivElement>();\n private input = React.createRef<HTMLInputElement>();\n private prevScope = '';\n\n constructor(props: PathEditorProps) {\n super(props);\n\n this.debounceLoading = debounce_(this.debounceLoading, debounceTime);\n\n this.state = {\n path: props.defaultPath ?? '',\n actualSuggestions: [],\n inputFocus: false,\n inputChange: false,\n selectedIndex: -1,\n };\n }\n\n componentDidMount() {\n const {loadSuggestionsList, customFilter, autoFocus} = this.props;\n const {path} = this.state;\n\n this.prevScope = key.getScope();\n if (path) {\n loadSuggestionsList(path, customFilter);\n }\n if (autoFocus) {\n this._setFocus();\n }\n }\n\n componentDidUpdate(prevProps: PathEditorProps) {\n if (prevProps.disabled && !this.props.disabled && this.input.current) {\n this._setFocus();\n }\n }\n\n componentWillUnmount() {\n this.props.removeActiveRequests();\n }\n\n _setFocus() {\n this.input.current?.focus();\n }\n\n get inputWidth() {\n // Is there a way to avoid using private _control property?\n return this.input.current && this.input.current.offsetWidth - 2;\n }\n\n /**\n * @deprecated Please replace usages of it to direct call.\\\n * For example: use `onFocus?.(event, payload)` instead `callCallback(onFocus, [event, payload])`.\\\n * Also, pass event as first agument of callback.\n */\n callCallback<T extends unknown[] = unknown[]>(\n cb: undefined | ((...args: T) => unknown),\n ...params: T\n ) {\n if (typeof cb === 'function') {\n return cb(...params);\n }\n\n return undefined;\n }\n\n debounceLoading(path: string) {\n const {loadSuggestionsList, customFilter, onChange} = this.props;\n\n loadSuggestionsList(path, customFilter);\n this.callCallback(onChange, path);\n }\n\n hideSuggestions = () => {\n this.setState({inputFocus: false, selectedIndex: -1});\n };\n\n selectPrevSuggestion() {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const prevIndex = getPrevSelectedIndex(actualSuggestions, selectedIndex);\n this.setState({selectedIndex: prevIndex});\n }\n\n selectNextSuggestion() {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const nextIndex = getNextSelectedIndex(actualSuggestions, selectedIndex);\n this.setState({selectedIndex: nextIndex});\n }\n\n handleInputChange = (path: string) => {\n this.setState({path, selectedIndex: -1, inputChange: true});\n this.debounceLoading(path);\n };\n\n handleInputFocus = (e: FocusEvent<HTMLInputElement>) => {\n const {onFocus} = this.props;\n const {path} = this.state;\n\n key.setScope('path-editor');\n this.setState({inputFocus: true});\n onFocus?.(e, {path});\n };\n\n handleInputBlur = () => {\n const {onBlur} = this.props;\n const {path} = this.state;\n\n key.setScope(this.prevScope);\n this.hideSuggestions();\n this.callCallback(onBlur, path);\n };\n\n handleEnterClick(event: KeyboardEvent<HTMLInputElement>) {\n event.preventDefault();\n\n const {selectedIndex, actualSuggestions} = this.state;\n const {onApply} = this.props;\n const inputPath = event.currentTarget.value;\n\n if (selectedIndex === -1) {\n this.setState({path: inputPath, selectedIndex: -1});\n this.callCallback(onApply, inputPath);\n } else {\n const suggestion = find_(actualSuggestions, (_, index) => index === selectedIndex);\n const completedPath = getCompletedPath(suggestion);\n\n this.handleInputChange(completedPath);\n }\n }\n\n handleEscClick() {\n const {onCancel} = this.props;\n\n this.input.current?.blur();\n this.callCallback(onCancel);\n }\n\n handleTabClick(event: KeyboardEvent<HTMLInputElement>) {\n event.preventDefault();\n const {actualSuggestions} = this.state;\n\n if (actualSuggestions.length === 1) {\n const completedPath = getCompletedPath(actualSuggestions[0]);\n\n this.handleInputChange(completedPath);\n } else if (actualSuggestions.length > 1) {\n this.selectNextSuggestion();\n }\n }\n\n handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n const key = event.keyCode;\n\n switch (key) {\n case KeyCode.ARROW_DOWN:\n this.selectNextSuggestion();\n break;\n case KeyCode.ARROW_UP:\n this.selectPrevSuggestion();\n break;\n case KeyCode.ENTER:\n this.handleEnterClick(event);\n break;\n case KeyCode.ESCAPE:\n this.handleEscClick();\n break;\n case KeyCode.TAB:\n this.handleTabClick(event);\n break;\n }\n };\n\n renderInput() {\n const {placeholder, autoFocus, hasClear, disabled} = this.props;\n const {path} = this.state;\n\n return (\n <TextInput\n onKeyDown={this.handleKeyDown}\n onUpdate={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n placeholder={placeholder}\n hasClear={hasClear}\n autoFocus={autoFocus}\n disabled={disabled}\n controlRef={this.input}\n value={path}\n />\n );\n }\n\n renderItem = (index: number, key: Key) => {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const item = actualSuggestions[index];\n const {type, dynamic} = item;\n const iconType = type === 'table' && dynamic ? 'table_dynamic' : type;\n const completedPath = getCompletedPath(item);\n const isSelected = index === selectedIndex ? 'yes' : 'no';\n const iconName = getIconNameForType(iconType, item.targetPathBroken);\n\n const mouseDownHandler = (event: MouseEvent<HTMLDivElement>) => {\n this.handleInputChange(completedPath);\n event.preventDefault();\n };\n\n return (\n <div\n key={key}\n onMouseDown={mouseDownHandler}\n className={b('item', {selected: isSelected})}\n >\n <Icon awesome={iconName} />\n\n <span className={b('item-path')}>{item.path}</span>\n </div>\n );\n };\n\n renderSuggestions() {\n const {actualSuggestions} = this.state;\n\n return actualSuggestions.length ? (\n <ReactList\n itemRenderer={this.renderItem}\n length={actualSuggestions.length}\n type=\"simple\"\n />\n ) : null;\n }\n\n renderError() {\n const {errorMessage} = this.props;\n\n if (!errorMessage) {\n return;\n }\n\n return <ErrorMessage className={b('item', {error: true})} message={errorMessage} />;\n }\n\n renderPopup() {\n const {suggestionsError, showErrors} = this.props;\n const {actualSuggestions, inputFocus} = this.state;\n\n const width = this.inputWidth || 0;\n const isVisible = Boolean(\n (actualSuggestions.length || (suggestionsError && showErrors)) && inputFocus,\n );\n const content =\n suggestionsError && showErrors ? this.renderError() : this.renderSuggestions();\n\n return (\n <Popup\n className={b('popup')}\n placement={['bottom-start', 'top-start']}\n onClose={this.hideSuggestions}\n anchorRef={this.input}\n open={isVisible}\n offset={[0, 0]}\n >\n <div className={b('items')} style={{width}} ref={this.suggestionsList}>\n {content}\n </div>\n </Popup>\n );\n }\n\n render() {\n return (\n <div className={b(null, this.props.className)}>\n {this.renderInput()}\n {this.renderPopup()}\n </div>\n );\n }\n}\n\nconst mapStateToProps = ({navigation}: RootState) => ({\n suggestions: navigation.pathEditor.suggestions,\n suggestionsError: navigation.pathEditor.suggestionsError,\n errorMessage: navigation.pathEditor.errorMessage,\n});\n\nexport default connect(mapStateToProps, {\n loadSuggestionsList,\n removeActiveRequests,\n})(PathEditor);\n","import {FETCH_SUGGESTIONS} from '../../../../constants/navigation/path-editor';\nimport {\n loadSuggestions,\n pathEditorRequests,\n preparePath,\n} from '../../../../utils/navigation/path-editor';\n\nexport function loadSuggestionsList(path, customFilter) {\n return (dispatch, getState) => {\n const {suggestionsPath, suggestionsLoaded} = getState().navigation.pathEditor;\n let currentParentPath;\n\n try {\n currentParentPath = preparePath(path);\n } catch (error) {\n return dispatch({\n type: FETCH_SUGGESTIONS.FAILURE,\n data: {message: error.message},\n });\n }\n\n if (suggestionsPath === currentParentPath && suggestionsLoaded) {\n return;\n }\n dispatch({type: FETCH_SUGGESTIONS.REQUEST});\n\n return loadSuggestions(path, customFilter)\n .then((suggestions) => {\n dispatch({\n type: FETCH_SUGGESTIONS.SUCCESS,\n data: {suggestions, path, currentParentPath},\n });\n })\n .catch((error) => {\n dispatch({\n type: FETCH_SUGGESTIONS.FAILURE,\n data: {message: error.message},\n });\n });\n };\n}\n\nexport function removeActiveRequests() {\n return (dispatch) => {\n pathEditorRequests.removeAllRequests();\n dispatch({type: FETCH_SUGGESTIONS.CANCELLED});\n };\n}\n","import React from 'react';\nimport {useDispatch} from 'react-redux';\n\nimport {loadPoolTreesIfNotLoaded} from '../store/actions/global';\nimport {loadDefaultPoolTree} from '../utils/poolTrees';\n\nexport function usePoolTreesLoaded() {\n const dispatch = useDispatch();\n\n React.useEffect(() => {\n dispatch(loadPoolTreesIfNotLoaded());\n }, [dispatch]);\n}\n\nexport function PoolTreesLoader() {\n usePoolTreesLoaded();\n return null;\n}\n\nexport function useDefaultPoolTree() {\n const [defaultPoolTree, setDefaultPoolTree] = React.useState<string | undefined>();\n\n React.useEffect(() => {\n loadDefaultPoolTree().then((value) => {\n setDefaultPoolTree(value);\n });\n }, []);\n\n return defaultPoolTree;\n}\n\nexport function WaitForDefaultPoolTree({\n children,\n}: {\n children: ({defaultPoolTree}: {defaultPoolTree: string}) => React.ReactNode;\n}) {\n const defaultPoolTree = useDefaultPoolTree();\n\n return defaultPoolTree ? children({defaultPoolTree}) : null;\n}\n","import React from 'react';\nimport {connect} from 'react-redux';\nimport cn from 'bem-cn-lite';\n\nimport differenceBy_ from 'lodash/differenceBy';\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\n\nimport {DropdownMenu} from '@gravity-ui/uikit';\n\nimport {TabFieldVertical, TabFieldVerticalProps} from '../../../../../components/Dialog';\n\nimport Button from '../../../../../components/Button/Button';\nimport Icon, {IconName} from '../../../../../components/Icon/Icon';\n\nimport {\n setCreateTableColumnsOrder,\n setCreateTableKeyColumns,\n} from '../../../../../store/actions/navigation/modals/create-table';\nimport {ArrayElement} from '../../../../../types';\nimport {Tooltip} from '../../../../../components/Tooltip/Tooltip';\n\nimport './CreateTableTabField.scss';\n\nconst block = cn('create-table-tab-field');\n\nexport const ASCENDING = 1;\nexport const DESCENDING = -1;\n\ninterface CWProps {\n onAddColumn: (active: boolean, opts: {duplicate: boolean}) => void;\n setKeyColumns: (v: CWState['keyColumns']) => void;\n setColumnsOrder: (v: CWState['orderedTabItems']) => void;\n}\n\ninterface CWState {\n tabItems: Props['tabItems'];\n orderedTabItems: Array<TabItem>;\n keyColumns: Record<string, typeof ASCENDING | typeof DESCENDING>;\n}\n\ntype TabItem = ArrayElement<Props['tabItems']>;\n\nclass ColumnsWrapper extends React.Component<Props & CWProps, CWState> {\n static getDerivedStateFromProps(props: Props, prevState: CWState) {\n const {tabItems} = props;\n const {tabItems: prevTabItems, orderedTabItems: prevOrderedTabItems} = prevState;\n\n const res: Partial<CWState> = {};\n\n if (tabItems !== prevTabItems) {\n const tabItemsMap: Record<string, TabItem> = {};\n forEach_(tabItems, (item) => {\n tabItemsMap[item.id] = item;\n });\n\n const itemsToAdd = differenceBy_(tabItems, prevTabItems, ({id}) => id);\n const idsToRemove = new Set<string>(\n differenceBy_(prevTabItems, tabItems, ({id}) => id).map((item) => item.id),\n );\n\n const filtered = filter_(prevOrderedTabItems, ({id}) => !idsToRemove.has(id));\n const orderedTabItems = map_(filtered, ({id}) => ({\n ...tabItemsMap[id],\n }));\n\n res.tabItems = tabItems;\n res.orderedTabItems = orderedTabItems.concat(itemsToAdd);\n }\n\n return isEmpty_(res) ? null : res;\n }\n\n state: CWState = {\n tabItems: [],\n orderedTabItems: [],\n keyColumns: {},\n };\n\n setKeyColumns(keyColumns: CWState['keyColumns']) {\n this.setState({keyColumns});\n this.props.setKeyColumns(keyColumns);\n }\n\n setOrderedTabItems(orderedTabItems: CWState['orderedTabItems']) {\n this.setState({orderedTabItems});\n this.props.setColumnsOrder(orderedTabItems);\n }\n\n onOrderChanged = (order: CWState['orderedTabItems'], newIndex: number, oldIndex: number) => {\n if (newIndex === oldIndex) {\n return;\n }\n\n let {keyColumns} = this.state;\n const moved = order[newIndex];\n\n if (newIndex < oldIndex) {\n const next = order[newIndex + 1];\n if (!keyColumns[moved.id] && keyColumns[next.id]) {\n keyColumns = {...keyColumns};\n keyColumns[moved.id] = 1;\n this.setKeyColumns(keyColumns);\n }\n } else {\n const prev = order[newIndex - 1];\n if (keyColumns[moved.id] && !keyColumns[prev.id]) {\n keyColumns = {...keyColumns};\n delete keyColumns[moved.id];\n this.setKeyColumns(keyColumns);\n }\n }\n this.setOrderedTabItems(order);\n };\n\n toggleKeyColumn = (item: TabItem, value?: CWState['keyColumns']['']) => {\n const keyColumns = {...this.state.keyColumns};\n if (!value) {\n delete keyColumns[item.id];\n } else {\n keyColumns[item.id] = value;\n }\n\n const orderedTabItems = sortBy_(this.state.orderedTabItems, ({id}) => !keyColumns[id]);\n this.setKeyColumns(keyColumns);\n this.setOrderedTabItems(orderedTabItems);\n };\n\n onCloneColumn = () => {\n // The timeout is required to select the tab by click\n setTimeout(() => {\n const {onAddColumn} = this.props;\n onAddColumn(false, {duplicate: true});\n }, 1);\n };\n\n renderKeyIcon = (node: React.ReactNode, item: TabItem) => {\n const {keyColumns} = this.state;\n const current = keyColumns[item.id];\n\n const {icon, title} = (\n !current\n ? {icon: 'sort-alt', title: 'Unordered'}\n : current === DESCENDING\n ? {icon: 'sort-amount-up', title: 'Descending'}\n : {icon: 'sort-amount-down-alt', title: 'Ascending'}\n ) as {icon: IconName; title: string};\n\n return (\n <React.Fragment>\n {node}\n <Tooltip content={'Clone'}>\n <Button view={'flat'} onClick={this.onCloneColumn}>\n <Icon awesome={'clone'} />\n </Button>\n </Tooltip>\n <DropdownMenu\n items={[\n {\n icon: <Icon awesome={'sort-alt'} />,\n active: !current,\n text: 'Unordered',\n action: () => this.toggleKeyColumn(item, undefined),\n },\n {\n icon: <Icon awesome={'sort-amount-up'} />,\n active: current === DESCENDING,\n text: 'Descending',\n action: () => this.toggleKeyColumn(item, DESCENDING),\n },\n {\n icon: <Icon awesome={'sort-amount-down-alt'} />,\n active: current === ASCENDING,\n text: 'Ascending',\n action: () => this.toggleKeyColumn(item, ASCENDING),\n },\n ]}\n switcher={\n <Tooltip content={title}>\n <Button view={'flat'}>\n <Icon awesome={icon} className={block('sort-icon')} />\n </Button>\n </Tooltip>\n }\n />\n </React.Fragment>\n );\n };\n\n onMoveTab = ({oldIndex, newIndex}: {oldIndex: number; newIndex: number}) => {\n const newTabItems = [...this.state.orderedTabItems];\n\n const itemToMove = newTabItems[oldIndex];\n newTabItems.splice(oldIndex, 1);\n newTabItems.splice(newIndex, 0, itemToMove);\n\n this.onOrderChanged(newTabItems, newIndex, oldIndex);\n };\n\n render() {\n const {activeTab, ...rest} = this.props;\n const {orderedTabItems} = this.state;\n\n return (\n <TabFieldVertical\n {...rest}\n activeTab={activeTab}\n tabItems={orderedTabItems}\n size={'m'}\n sortable={true}\n onOrderChanged={this.onMoveTab}\n wrapTo={this.renderKeyIcon}\n />\n );\n }\n}\n\nconst mapDispatchToProps = {\n setKeyColumns: setCreateTableKeyColumns,\n setColumnsOrder: setCreateTableColumnsOrder,\n};\n\nconst ColumnsWrapperConnected = connect(null, mapDispatchToProps)(ColumnsWrapper);\n\ntype Props = TabFieldVerticalProps;\n\nexport default class CreateTableTabField extends React.Component<Props> {\n static isTabControl = true as const;\n static isTabControlVertical = true;\n\n onAddColumn = (active = true, {duplicate}: {duplicate?: boolean} = {}) => {\n const {onCreateTab = () => {}} = this.props;\n onCreateTab('columns', active, {userOptions: {duplicate}});\n };\n\n renderAddColumnRow() {\n return (\n <div className={block('add-column')}>\n <span className={block('add-column-label')}>Columns</span>\n <Button onClick={() => this.onAddColumn()}>\n <Icon awesome={'plus'} />\n Add\n </Button>\n </div>\n );\n }\n\n render() {\n const {className, activeTab, tabItems, ...rest} = this.props;\n const [tableSettings, ...restItems] = tabItems;\n\n return (\n <div className={block(null, className)}>\n {this.renderAddColumnRow()}\n <ColumnsWrapperConnected\n className={block('columns')}\n {...rest}\n tabItems={restItems}\n activeTab={activeTab}\n onAddColumn={this.onAddColumn}\n />\n <TabFieldVertical\n className={block('table-settings')}\n activeTab={activeTab}\n tabItems={[tableSettings]}\n {...rest}\n virtualized={false}\n />\n </div>\n );\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport moment from 'moment';\nimport {useSelector} from 'react-redux';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {getCluster} from '../../../store/selectors/global';\n\nimport MetaTable from '../../../components/MetaTable/MetaTable';\nimport {showErrorPopup} from '../../../utils/utils';\nimport format from '../../../common/hammer/format';\n\nimport ypath from '../../../common/thor/ypath';\nimport {TYPED_OUTPUT_FORMAT} from '../../../constants';\nimport {ClickableText} from '../../../components/ClickableText/ClickableText';\nimport Link from '../../../components/Link/Link';\n\nimport './OperationShortInfo.scss';\n\nconst block = cn('operation-short-info');\n\ninterface Props {\n id: string;\n type?: string;\n output_attribute_name?: string; // example: '/@spec/output_table_path'\n}\n\nexport function OperationShortInfo(props: Props) {\n const {id, type, output_attribute_name} = props;\n\n const [operation, setOperation] = React.useState();\n\n const finishTimeRaw = ypath.getValue(operation, '/finish_time');\n React.useEffect(() => {\n if (finishTimeRaw) {\n return;\n }\n const timerId = setInterval(() => {\n yt.v3\n .getOperation({\n output_format: TYPED_OUTPUT_FORMAT,\n operation_id: id,\n })\n .then((operation: any) => {\n setOperation(operation);\n });\n }, 3000);\n return () => {\n clearInterval(timerId);\n };\n }, [finishTimeRaw, setOperation]);\n\n const cluster = useSelector(getCluster);\n const output = output_attribute_name\n ? ypath.getValue(operation, output_attribute_name) || '...'\n : '...';\n const error = ypath.getValue(operation, '/result/error');\n const code = ypath.getValue(error, '/code');\n\n const startTime = moment(ypath.getValue(operation, '/start_time'));\n const finishTime = moment(finishTimeRaw);\n const diff = finishTime.diff(startTime);\n\n return (\n <div className={block()}>\n <MetaTable\n items={[\n {\n key: 'Id',\n value: <Link url={`/${cluster}/operations/${id}`}>{id}</Link>,\n },\n {\n key: 'Type',\n value: (\n <span className={block('value')}>\n {ypath.getValue(operation, '/type') || type || '...'}\n </span>\n ),\n },\n ...(!output_attribute_name\n ? []\n : [\n {\n key: 'Output',\n value: <span title={output}>{output}</span>,\n },\n ]),\n {\n key: 'Duration',\n value: format.TimeDuration(diff),\n },\n {\n key: 'Status',\n value: (\n <OperationState state={ypath.getValue(operation, '/state') || '...'} />\n ),\n },\n ...(!code || code === '0'\n ? []\n : [\n {\n key: 'Error',\n value: (\n <ClickableText onClick={() => showErrorPopup(error)}>\n {ypath.getValue(error, '/message')}\n </ClickableText>\n ),\n },\n ]),\n ]}\n />\n </div>\n );\n}\n\nfunction OperationState({state}: {state: string}) {\n return <span className={block('state', {state})}>{state}</span>;\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport metrics from '../../../../common/utils/metrics';\nimport ypath from '@ytsaurus/interface-helpers/lib/ypath';\nimport hammer from '../../../../common/hammer';\nimport CancelHelper from '../../../../utils/cancel-helper';\nimport {prepareRequest} from '../../../../utils/navigation';\nimport {TYPED_OUTPUT_FORMAT} from '../../../../constants/index';\nimport {getPath, getTransaction} from '../../../../store/selectors/navigation';\nimport {YTApiId, ytApiV3, ytApiV3Id} from '../../../../rum/rum-wrap-api';\n\nimport {\n LOAD_REPLICAS_CANCELLED,\n LOAD_REPLICAS_FAILURE,\n LOAD_REPLICAS_REQUEST,\n LOAD_REPLICAS_SUCCESS,\n} from '../../../../constants/navigation/content/replicated-table';\nimport {updateView} from '..';\n\nimport sortBy_ from 'lodash/sortBy';\n\nconst requests = new CancelHelper();\n\nexport function loadReplicas() {\n return (dispatch, getState) => {\n const state = getState();\n const path = getPath(state);\n const transaction = getTransaction(state);\n\n dispatch({type: LOAD_REPLICAS_REQUEST});\n requests.removeAllRequests();\n\n return ytApiV3Id\n .get(YTApiId.navigationRTReplicas, {\n parameters: prepareRequest('/@replicas', {\n path,\n transaction,\n output_format: TYPED_OUTPUT_FORMAT,\n }),\n cancellation: requests.saveCancelToken,\n })\n .then((data) => {\n const replicas = hammer.utils.mapToYSONList(data);\n dispatch({\n type: LOAD_REPLICAS_SUCCESS,\n data: {\n replicas: sortBy_(replicas, '$value'),\n },\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({type: LOAD_REPLICAS_CANCELLED});\n } else {\n dispatch({\n type: LOAD_REPLICAS_FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\nexport function performReplicaAction({mode, state, auto_replica_tracker, replica}) {\n return (dispatch) => {\n const prevMode = ypath.getValue(replica, '/@mode');\n const prevState = ypath.getValue(replica, '/@state');\n\n const prevAutoReplicaTracker = ypath.getValue(replica, '/@enable_replicated_table_tracker');\n\n const actionName = [\n mode !== prevMode && 'mode',\n state !== prevState && 'state',\n prevAutoReplicaTracker !== auto_replica_tracker && 'enable_replicated_table_tracker',\n ]\n .filter(Boolean)\n .join('_');\n if (!actionName) {\n return Promise.resolve();\n }\n\n metrics.countEvent({\n navigation_replicated_table_replica_action: actionName,\n });\n\n const replicaId = ypath.getValue(replica, '');\n const parameters = {\n replica_id: replicaId,\n mode,\n enabled: state === 'enabled',\n };\n\n return Promise.all([\n ytApiV3.alterTableReplica(parameters),\n prevAutoReplicaTracker === auto_replica_tracker\n ? Promise.resolve()\n : ytApiV3.set(\n {path: `#${replicaId}/@enable_replicated_table_tracker`},\n auto_replica_tracker === 'enabled',\n ),\n ]).then(() => dispatch(loadReplicas()));\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_REPLICAS_CANCELLED});\n };\n}\n\nexport function updateEnableReplicatedTableTracker(path, value) {\n return (dispatch) => {\n return yt.v3\n .set({path: path + '/@replicated_table_options/enable_replicated_table_tracker'}, value)\n .then(() => {\n dispatch(updateView());\n });\n };\n}\n","import yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport metrics from '../../../common/utils/metrics';\nimport {navigationTrackVisit} from '../../../store/actions/favourites';\nimport {RumWrapper, YTApiId, ytApiV3, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\n\nimport {isPathAutoCorrectionSettingEnabled} from '../../../store/selectors/settings';\nimport {getPath, getTransaction} from '../../../store/selectors/navigation';\n\nimport {\n autoCorrectPath,\n cancelRequests,\n getParentPath,\n prepareRequest,\n saveRequestCancellation,\n} from '../../../utils/navigation';\nimport {prepareAttributes} from '../../../utils/index';\nimport {getBatchError} from '../../../utils/utils';\nimport {getPermissionDeniedError} from '../../../utils/errors';\n\nimport {GENERIC_ERROR_MESSAGE, TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {\n CLEAR_TRANSACTION,\n NAVIGATION_PARTIAL,\n SET_MODE,\n SET_TRANSACTION,\n Tab,\n UPDATE_PATH,\n UPDATE_VIEW,\n} from '../../../constants/navigation/index';\nimport {getCluster, getCurrentUserName} from '../../../store/selectors/global';\nimport {fetchTableMountConfig} from '../../../store/actions/navigation/content/table/table-mount-config';\nimport {checkPermissions} from '../../../utils/acl/acl-api';\nimport {getAnnotation} from './tabs/annotation';\nimport {loadTabletErrorsCount} from './tabs/tablet-errors/tablet-errors-background';\nimport {isSupportedEffectiveExpiration} from '../../../store/selectors/thor/support';\nimport {getTabs} from '../../../store/selectors/navigation/navigation';\n\nexport function updateView(settings = {}) {\n return (dispatch, getState) => {\n const state = getState();\n const currentPath = getPath(state);\n const transaction = getTransaction(state);\n\n dispatch({type: UPDATE_VIEW.REQUEST});\n // Update path for use default path and auto correct path\n const path = dispatch(updatePath(currentPath, false));\n cancelRequests();\n\n dispatch(getAnnotation());\n dispatch(loadTabletErrorsCount({path, saveCancelTokenSource: saveRequestCancellation}));\n\n const allowEffectiveExpiration = isSupportedEffectiveExpiration(state);\n\n const requestParams = {\n path,\n transaction,\n };\n\n const cluster = getCluster(state);\n\n const id = new RumWrapper(cluster, RumMeasureTypes.NAVIGATION_PRELOAD);\n\n return id\n .fetch(\n YTApiId.navigationAttributes,\n ytApiV3Id.executeBatch(\n YTApiId.navigationAttributes,\n {\n requests: [\n {command: 'get', parameters: prepareRequest('/@', requestParams)},\n {\n command: 'get',\n parameters: prepareRequest('/@', {\n ...requestParams,\n attributes: [\n 'path',\n ...(allowEffectiveExpiration\n ? ['effective_expiration']\n : []),\n ],\n }),\n },\n ],\n output_format: TYPED_OUTPUT_FORMAT,\n },\n saveRequestCancellation,\n ),\n )\n .then((results) => {\n const [attrs, {output: opaqueAttrs} = {}] = results;\n const pathError = prepareAttributes(path.error);\n if (pathError?.code === yt.codes.NODE_DOES_NOT_EXIST) {\n delete path.error;\n }\n\n const error = getBatchError(results, 'Failed to get navigation attributes');\n if (error) {\n throw error;\n }\n\n return {\n ...attrs.output,\n ...(opaqueAttrs?.effective_expiration\n ? {effective_expiration: opaqueAttrs.effective_expiration}\n : {}),\n ...(path.output ? {path: opaqueAttrs.path} : {}),\n };\n })\n .then((attributes) => {\n const preparedAttributes = prepareAttributes(attributes, {\n asHTML: false,\n });\n\n if (settings.trackVisit) {\n dispatch(navigationTrackVisit(path));\n }\n\n metrics.countEvent({\n navigation_path: {\n type: preparedAttributes.type,\n },\n });\n\n const user = getCurrentUserName(state);\n const {account} = preparedAttributes;\n\n dispatch({\n type: UPDATE_VIEW.SUCCESS,\n data: {\n attributesWithTypes: attributes,\n attributes: preparedAttributes,\n },\n });\n\n const dispatchAccountPermissions = ({\n isWriteable,\n isAccountUsable,\n checkPermissionsError,\n }) => {\n dispatch({\n type: NAVIGATION_PARTIAL,\n data: {isWriteable, isAccountUsable, checkPermissionsError},\n });\n };\n\n dispatch(fetchTableMountConfig(path));\n\n if (!account) {\n /**\n * If account is not defined we just pretend that everything is awesome\n * and the code works the same as there are no any checks of permissions.\n */\n return dispatchAccountPermissions({\n isWriteable: true,\n isAccountUsable: true,\n });\n }\n\n checkPermissions(\n [\n {\n user,\n permission: 'write',\n path,\n transaction_id: transaction,\n },\n {\n user,\n permission: 'use',\n path: `//sys/accounts/${account}`,\n transaction_id: transaction,\n },\n ],\n YTApiId.navigationCheckPermissions,\n )\n .then(([{action: writeAction}, {action: useAction}]) => {\n dispatchAccountPermissions({\n isWriteable: writeAction === 'allow',\n isAccountUsable: useAction === 'allow',\n });\n })\n .catch((checkPermissionsError) => {\n dispatchAccountPermissions({checkPermissionsError});\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({\n type: UPDATE_VIEW.CANCELLED,\n });\n } else {\n const permissionDeniedError = getPermissionDeniedError(error);\n const message = ['Error occurred when loading path.'];\n if (!permissionDeniedError) message.push(GENERIC_ERROR_MESSAGE);\n\n ytApiV3\n .exists({path: '//sys/idm/lock'})\n .catch(() => false)\n .then((isIdmSupported) => {\n dispatch({\n type: UPDATE_VIEW.FAILURE,\n data: {\n message: message.join(' '),\n details: error,\n isIdmSupported,\n },\n });\n });\n }\n });\n };\n}\n\nexport function setMode(mode) {\n return (dispatch, getState) => {\n const [firstTab] = getTabs(getState());\n\n dispatch({\n type: SET_MODE,\n data: mode === firstTab?.value ? Tab.AUTO : mode,\n });\n };\n}\n\nexport function onTransactionChange() {\n return (dispatch) => {\n dispatch(updateView({trackVisit: true}));\n // Need to update breadcrumbs dimensions after transaction change\n window.dispatchEvent(new Event('resize'));\n };\n}\n\nexport function setTransaction(transaction) {\n return (dispatch) => {\n dispatch({\n type: SET_TRANSACTION,\n data: transaction,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function clearTransaction() {\n return (dispatch) => {\n dispatch({\n type: CLEAR_TRANSACTION,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function updatePath(path, shouldUpdateContentMode = true) {\n return (dispatch, getState) => {\n const autoCorrectionEnabled = isPathAutoCorrectionSettingEnabled(getState());\n\n const correctedPath = autoCorrectionEnabled ? autoCorrectPath(path) : path;\n\n dispatch({\n type: UPDATE_PATH,\n data: {\n path: correctedPath,\n shouldUpdateContentMode,\n },\n });\n\n return correctedPath;\n };\n}\n\nexport function navigateParent() {\n return (dispatch, getState) => {\n const {path} = getState().navigation.navigation;\n const nextPath = getParentPath(path);\n dispatch(updatePath(nextPath));\n };\n}\n","// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\n\nimport {TABLE_MOUNT_CONFIG} from '../../../../../constants/navigation/content/table';\nimport {ThunkAction} from 'redux-thunk';\nimport {YTApiId, ytApiV3Id} from '../../../../../rum/rum-wrap-api';\nimport {RootState} from '../../../../../store/reducers';\nimport {TableMountConfigAction} from '../../../../../store/reducers/navigation/content/table/table-mount-config';\nimport {isCancelled} from '../../../../../utils/cancel-helper';\n\ntype TableMountConfigThunkAction = ThunkAction<unknown, RootState, unknown, TableMountConfigAction>;\n\nexport function fetchTableMountConfig(path: string): TableMountConfigThunkAction {\n return (dispatch) => {\n dispatch({type: TABLE_MOUNT_CONFIG.REQUEST});\n\n return ytApiV3Id\n .executeBatch(YTApiId.navigationTableMountConfig, {\n requests: [{command: 'get', parameters: {path: `${path}/@mount_config`}}],\n })\n .then(([{output, error}]) => {\n if (error && error?.code !== yt.codes.NODE_DOES_NOT_EXIST) {\n dispatch({type: TABLE_MOUNT_CONFIG.FAILURE, data: {error}});\n return;\n }\n\n dispatch({\n type: TABLE_MOUNT_CONFIG.SUCCESS,\n data: {data: output},\n });\n })\n .catch((error: any) => {\n if (isCancelled(error)) {\n dispatch({type: TABLE_MOUNT_CONFIG.CANCELLED});\n } else {\n dispatch({type: TABLE_MOUNT_CONFIG.FAILURE, data: {error}});\n }\n });\n };\n}\n","import React from 'react';\nimport axios from 'axios';\n\nimport uniq_ from 'lodash/uniq';\n\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {updateView} from '../../../../store/actions/navigation';\n\nimport {CREATE_TABLE_MODAL_DATA_FIELDS} from '../../../../constants/navigation/modals/create-table';\nimport {initialState} from '../../../../store/reducers/navigation/modals/create-table';\nimport {showErrorPopup} from '../../../../utils/utils';\nimport Link from '../../../../components/Link/Link';\nimport {genNavigationUrl} from '../../../../utils/navigation/navigation';\nimport {getCluster} from '../../../selectors/global';\n\nexport function openCreateTableModal(parentDirectory) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {...initialState, showModal: true, parentDirectory},\n });\n };\n}\n\nexport function closeCreateTableModal() {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {showModal: false},\n });\n };\n}\n\nconst toaster = new Toaster();\n\nexport function createTable(path, attributes) {\n return (dispatch, getState) => {\n const params = {\n path,\n type: 'table',\n attributes,\n };\n\n const what = attributes.dynamic ? 'Dynamic table' : 'Static table';\n const cluster = getCluster(getState());\n\n return yt.v3\n .create(params)\n .then(() => {\n dispatch(updateView());\n toaster.add({\n name: path,\n timeout: 10000,\n theme: 'success',\n title: 'Table created',\n content: (\n <React.Fragment>\n {what} <Link url={genNavigationUrl({cluster, path})}>{path}</Link>{' '}\n successfully created\n </React.Fragment>\n ),\n });\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {error},\n });\n const data = error?.response?.data || error?.response || error;\n const {code, message} = data;\n\n toaster.add({\n name: path,\n timeout: 10000,\n theme: 'danger',\n content: `[code ${code}] ${message}`,\n title: 'Table creation failure',\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(data),\n },\n ],\n });\n return Promise.reject(error);\n }\n });\n };\n}\n\nexport function setCreateTableKeyColumns(keyColumns) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {keyColumns},\n });\n };\n}\n\nexport function setCreateTableColumnsOrder(columnsOrder) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnsOrder},\n });\n };\n}\n\nexport function setCreateTableLockSuggestions(allColumnLockValues = []) {\n return {\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnLockSuggestions: uniq_(allColumnLockValues.sort())},\n };\n}\n\nexport function setCreateTableGroupSuggestions(allColumnGroups = []) {\n return {\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnGroupSuggestions: uniq_(allColumnGroups.sort())},\n };\n}\n","import React from 'react';\n\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\nimport toLower_ from 'lodash/toLower';\n\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../../store/reducers';\nimport axios, {CancelTokenSource} from 'axios';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport ypath from '../../../../common/thor/ypath';\nimport {\n USE_SKIP_ERROR_FN_NODE_DOES_NOT_EXIST,\n getBatchError,\n wrapApiPromiseByToaster,\n} from '../../../../utils/utils';\nimport {loadPoolTreesIfNotLoaded} from '../../../../store/actions/global';\nimport {OperationShortInfo} from '../../../../pages/components/OperationShortInfo/OperationShortInfo';\nimport {AppStoreProvider} from '../../../../containers/App/AppStoreProvider';\nimport {CypressNodeTypes, makeUiMarker} from '../../../../utils/cypress-attributes';\nimport {Page} from '../../../../constants';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {\n PathAttribute,\n changeAttribute,\n setModalPartial,\n} from '../../../reducers/navigation/modals/tableMergeSortModalSlice';\nimport {Action} from 'redux';\nimport {getNavigationTableOutputPathAttributes} from '../../../selectors/navigation/modals/table-merge-sort-modal';\n\ntype TableMergeSortThunkAction<T = void> = ThunkAction<T, RootState, any, Action>;\n\nexport function showTableSortModal(paths: Array<string>): TableMergeSortThunkAction<Promise<void>> {\n return (dispatch) => {\n return dispatch(loadPoolTreesIfNotLoaded()).finally(() => {\n dispatch(setModalPartial({sortVisible: true, paths}));\n dispatch(tableSortModalLoadColumns(paths));\n });\n };\n}\n\nexport function hideTableSortModal() {\n return setModalPartial({sortVisible: false, paths: []});\n}\n\nexport function showTableMergeModal(\n paths: Array<string>,\n): ThunkAction<Promise<void>, RootState, any, Action> {\n return (dispatch) => {\n return dispatch(loadPoolTreesIfNotLoaded()).finally(() => {\n dispatch(\n setModalPartial({\n mergeVisible: true,\n paths,\n }),\n );\n dispatch(tableSortModalLoadColumns(paths));\n });\n };\n}\n\nexport function hideTableMergeModal() {\n return setModalPartial({mergeVisible: false, paths: []});\n}\n\nexport function tableSortModalLoadColumns(\n paths: Array<string>,\n): ThunkAction<any, RootState, any, Action> {\n return (dispatch) => {\n if (!paths?.length) {\n return undefined;\n }\n const requests = map_(paths, (path) => {\n return {\n command: 'get' as const,\n parameters: {path: `${path}/@schema`},\n };\n });\n return ytApiV3Id\n .executeBatch(YTApiId.navigationTableSortLoadColumns, {requests})\n .then((results: Array<any>) => {\n const error = getBatchError(\n results,\n 'Column names cannot be loaded, autocompletion might not work properly',\n );\n if (error) {\n dispatch(setModalPartial({error}));\n return;\n }\n const columns: {[name: string]: boolean} = {};\n forEach_(results, ({output}) => {\n forEach_(ypath.getValue(output), ({name}) => {\n columns[name] = true;\n });\n });\n dispatch(\n setModalPartial({\n suggestColumns: sortBy_(\n map_(columns, (_v, name) => name),\n (name) => toLower_(name),\n ),\n }),\n );\n })\n .catch((error: any) => {\n return dispatch(\n setModalPartial({\n error,\n }),\n );\n });\n };\n}\n\ninterface SortParams {\n input_table_paths: Array<string>;\n output_table_path: {$value: string; $attributes: Record<string, string>};\n sort_by: Array<{name: string; sort_order: 'ascending' | 'descending'}>;\n pool?: string;\n}\n\nexport function runTableSort(spec: SortParams): TableMergeSortThunkAction {\n return () => {\n const parameters = {\n spec,\n ...makeUiMarker(`${Page.NAVIGATION}:sort`),\n };\n return wrapApiPromiseByToaster(yt.v3.sort(parameters), {\n toasterName: 'table_sort_' + spec.output_table_path,\n successContent(res: string) {\n const opId = JSON.parse(res);\n return (\n <AppStoreProvider>\n <OperationShortInfo\n id={opId}\n type={'sort'}\n output_attribute_name={'/spec/output_table_path'}\n />\n </AppStoreProvider>\n );\n },\n successTitle: 'Sort operation is started',\n errorTitle: 'Sort operation is failed',\n autoHide: false,\n });\n };\n}\n\nexport const loadStorageAttributes =\n (path: string): TableMergeSortThunkAction =>\n async (dispatch, getState) => {\n const state = getState();\n const outputPathAttributes = getNavigationTableOutputPathAttributes(state);\n\n const response: Record<PathAttribute, string> = await wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.attributesEditorGetAttrs, {\n parameters: {\n path: path + '/@',\n attributes: [\n PathAttribute.OPTIMIZE_FOR,\n PathAttribute.COMPRESSION_CODEC,\n PathAttribute.ERASURE_CODEC,\n ],\n },\n }),\n {\n toasterName: 'get_table_attributes',\n errorTitle: 'Get table attributes request is failed',\n autoHide: false,\n skipSuccessToast: true,\n ...USE_SKIP_ERROR_FN_NODE_DOES_NOT_EXIST,\n },\n );\n\n Object.entries(outputPathAttributes).forEach(([key, attribute]) => {\n dispatch(changeAttribute({...attribute, value: response[key as PathAttribute]}));\n });\n };\n\ninterface MergeParams {\n pool: string;\n pool_trees: Array<string>;\n input_table_paths: Array<string>;\n output_table_path: string;\n merge_by: Array<string>;\n mode: 'unordered' | 'sorted' | 'ordered';\n}\n\nexport function runTableMerge(spec: MergeParams): TableMergeSortThunkAction {\n return () => {\n const parameters = {\n spec,\n ...makeUiMarker(`${Page.NAVIGATION}:merge`),\n };\n return wrapApiPromiseByToaster(yt.v3.merge(parameters), {\n toasterName: 'table_merge_' + spec.output_table_path,\n successContent(res: string) {\n const opId = JSON.parse(res);\n return (\n <AppStoreProvider>\n <OperationShortInfo\n id={opId}\n type={'merge'}\n output_attribute_name={'/spec/output_table_path'}\n />\n </AppStoreProvider>\n );\n },\n successTitle: 'Merge operation is started',\n errorTitle: 'Merge operation is failed',\n autoHide: false,\n });\n };\n}\n\nlet cancelTokenSrc: Pick<CancelTokenSource, 'cancel'> = {cancel: () => {}};\n\nexport function isPathStaticTable(path: string) {\n if (!path) return;\n\n cancelTokenSrc.cancel();\n return ytApiV3Id\n .get(\n YTApiId.navigationIsStaticTable,\n {\n path,\n attributes: ['type', 'dynamic'],\n },\n (cancelSrc: CancelTokenSource) => {\n cancelTokenSrc = cancelSrc;\n },\n )\n .then((d: any) => {\n const type = ypath.getValue(d, '/@type');\n const isDynamic = ypath.getValue(d, '/@dynamic');\n return type !== CypressNodeTypes.TABLE || isDynamic\n ? 'Please make sure the destination is an existing static table'\n : undefined;\n })\n .catch((e: any) => {\n if (axios.isCancel(e)) {\n return undefined;\n }\n return e?.message || 'Cannot get type of node';\n });\n}\n","// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport CancelHelper from '../../../../utils/cancel-helper';\nimport {prepareRequest} from '../../../../utils/navigation';\nimport {getPath, getTransaction} from '../../../selectors/navigation';\nimport {\n GET_ANNOTATION,\n SET_ANNOTATION_EDITING,\n SET_ANNOTATION_SAVING,\n} from '../../../../constants/navigation/tabs/annotation';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {getBatchError, wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../reducers';\nimport {NavigationTabsAnnotationAction} from '../../../reducers/navigation/tabs/annotation';\nimport {getNavigationAnnotation} from '../../../selectors/navigation/tabs/annotation';\n\nconst cancelHelper = new CancelHelper();\n\ntype TabletErrorsThunkAction = ThunkAction<any, RootState, unknown, NavigationTabsAnnotationAction>;\n\nexport const getAnnotation = (): TabletErrorsThunkAction => (dispatch, getState) => {\n const state = getState();\n const path = getPath(state) || '';\n\n const transaction = getTransaction(state);\n\n dispatch({type: GET_ANNOTATION.REQUEST});\n cancelHelper.removeAllRequests();\n\n const requests = [\n {\n command: 'get' as const,\n parameters: prepareRequest('/@annotation', {\n path,\n transaction,\n }),\n },\n ];\n\n ytApiV3Id\n .executeBatch(YTApiId.navigationGetAnnotation, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((results) => {\n const err = getBatchError(results, 'Cannot fetch annotation');\n if (yt.codes.NODE_DOES_NOT_EXIST !== results[0]?.error?.code && err) {\n throw err;\n }\n\n const [{output: annotation}] = results;\n dispatch({\n type: GET_ANNOTATION.SUCCESS,\n data: {annotation, path},\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({type: GET_ANNOTATION.CANCELLED});\n } else {\n dispatch({\n type: GET_ANNOTATION.FAILURE,\n data: {error, path},\n });\n }\n });\n};\n\nexport const saveAnnotation =\n (path: string): TabletErrorsThunkAction =>\n async (dispatch, getState) => {\n const annotation = getNavigationAnnotation(getState());\n dispatch({type: SET_ANNOTATION_SAVING, data: true});\n wrapApiPromiseByToaster(yt.v3.set({path: `${path}/@annotation`}, annotation), {\n toasterName: 'navigation_save_annotation',\n successTitle: 'Annotation saved',\n errorTitle: 'Failed save annotation',\n })\n .then(() => {\n dispatch({type: SET_ANNOTATION_EDITING, data: false});\n })\n .finally(() => {\n dispatch({type: SET_ANNOTATION_SAVING, data: false});\n });\n };\n","import {CancelTokenSource} from 'axios';\n\nimport CancelHelper, {isCancelled} from '../../../../../utils/cancel-helper';\nimport {getPath} from '../../../../../store/selectors/navigation';\nimport {GET_TABLET_ERRORS} from '../../../../../constants/navigation/tabs/tablet-errors';\nimport {YTApiId, ytApiV3Id, ytApiV4Id} from '../../../../../rum/rum-wrap-api';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../../../store/reducers';\nimport {\n NavigationTabletErrorsMode,\n TabletErrorsAction,\n} from '../../../../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-background';\nimport {wrapApiPromiseByToaster} from '../../../../../utils/utils';\n\nimport {loadReplicas} from '../../content/replicated-table';\nimport {TYPED_OUTPUT_FORMAT} from '../../../../../constants';\n\nconst requests = new CancelHelper();\n\ntype TabletErrorsThunkAction<T = unknown> = ThunkAction<T, RootState, unknown, TabletErrorsAction>;\n\nexport function getTabletErrors(): TabletErrorsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const path = getPath(state);\n\n dispatch({type: GET_TABLET_ERRORS.REQUEST});\n\n dispatch(loadReplicas());\n\n ytApiV4Id\n .getTabletErrors(YTApiId.navigationTabletErrors, {\n parameters: {path, output_format: TYPED_OUTPUT_FORMAT},\n cancellation: requests.removeAllAndSave,\n })\n .then((tabletErrors) => {\n dispatch({\n type: GET_TABLET_ERRORS.SUCCESS,\n data: {tabletErrors, tabletErrorsPath: path},\n });\n })\n .catch((error) => {\n if (isCancelled(error)) {\n dispatch({type: GET_TABLET_ERRORS.CANCELLED});\n } else {\n dispatch({\n type: GET_TABLET_ERRORS.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\ninterface LoadTabletErrorOptions {\n path: string;\n saveCancelTokenSource: (tokenSource: CancelTokenSource) => void;\n}\n\nexport function loadTabletErrorsCount(options: LoadTabletErrorOptions): TabletErrorsThunkAction {\n const {path} = options;\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.executeBatch(YTApiId.navigationTypeDynamic, {\n parameters: {\n requests: [\n {\n command: 'get',\n parameters: {path: `${path}/@type`},\n },\n {\n command: 'get',\n parameters: {path: `${path}/@dynamic`},\n },\n ],\n },\n cancellation: options.saveCancelTokenSource,\n }),\n {\n toasterName: 'get_type_dynamic',\n skipSuccessToast: true,\n },\n ).then(([{output: type}, {output: dynamic}]) => {\n if (dynamic && (type === 'table' || type === 'replication_log_table')) {\n return dispatch(loadTabletErrorsCountOfDynamicTable(options));\n }\n\n if (type === 'replicated_table') {\n return dispatch(loadTabletErrorsCountOfReplicatedTable(options));\n }\n\n return undefined;\n });\n };\n}\n\nfunction loadTabletErrorsCountOfDynamicTable({\n path,\n saveCancelTokenSource,\n}: LoadTabletErrorOptions): TabletErrorsThunkAction {\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.navigationTabletErrorsCountDynTable, {\n parameters: {\n path: `${path}/@tablet_error_count`,\n },\n cancellation: saveCancelTokenSource,\n }),\n {\n toasterName: 'tablet_erros_count',\n skipSuccessToast: true,\n },\n ).then((errorsCount: number) => {\n dispatch(updateTabletErrrosCount(errorsCount, path));\n });\n };\n}\n\nfunction loadTabletErrorsCountOfReplicatedTable({\n path,\n saveCancelTokenSource,\n}: LoadTabletErrorOptions): TabletErrorsThunkAction {\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.executeBatch<number>(YTApiId.navigationTabletErrorsCountReplicatedTable, {\n requests: [\n {\n command: 'get',\n parameters: {\n path: `${path}/@replicas/@error_count`,\n },\n },\n {command: 'get', parameters: {path: `${path}/@tablet_error_count`}},\n ],\n cancellation: saveCancelTokenSource,\n }),\n {\n toasterName: 'tablet_errors_count',\n skipSuccessToast: true,\n },\n ).then((results) => {\n const count = results.reduce((acc, {output = 0}) => acc + output, 0);\n dispatch(updateTabletErrrosCount(count, path));\n });\n };\n}\n\nexport function updateTabletErrrosCount(\n errorsCount: number,\n errorsCountPath: string,\n): TabletErrorsAction {\n return {type: GET_TABLET_ERRORS.PARTITION, data: {errorsCountPath, errorsCount}};\n}\n\nexport function updateTabletErrorsViewMode(viewMode: NavigationTabletErrorsMode) {\n return {type: GET_TABLET_ERRORS.PARTITION, data: {viewMode}};\n}\n","import isEmpty_ from 'lodash/isEmpty';\n\nimport {createSelector} from 'reselect';\nimport {RootState} from '../../../../store/reducers';\n\nexport const getNavigationTableMountConfig = (state: RootState) =>\n state.navigation.content.tableMountConfig;\n\nconst getTableMountConfigData = (state: RootState) =>\n state.navigation.content.tableMountConfig.data || {};\n\nconst getTableMountConfigError = (state: RootState) =>\n state.navigation.content.tableMountConfig.error;\n\nexport const getTableMountConfigHasData = createSelector(\n [getTableMountConfigData, getTableMountConfigError],\n (data, error) => {\n return !isEmpty_(data) || !isEmpty_(error);\n },\n);\n","import map_ from 'lodash/map';\n\nimport {createSelector} from 'reselect';\n\nexport const getCreateTableModalState = (state) => state.navigation.modals.createTable;\nexport const isCreateTableModalVisible = (state) => state.navigation.modals.createTable.showModal;\nexport const getCreateTableLockSuggestions = (state) =>\n state.navigation.modals.createTable.columnLockSuggestions;\nexport const getCreateTableGroupSuggestions = (state) =>\n state.navigation.modals.createTable.columnGroupSuggestions;\n\nexport const getColumnLockSuggestions = createSelector([getCreateTableLockSuggestions], (locks) => {\n const res = map_(locks, (item) => item);\n return res;\n});\n\nexport const getColumnGroupSuggestions = createSelector(\n [getCreateTableGroupSuggestions],\n (groups) => {\n const res = map_(groups, (item) => item);\n return res;\n },\n);\n","import {RootState} from '../../../reducers';\nimport {createSelector} from 'reselect';\nimport {PathAttribute} from '../../../reducers/navigation/modals/tableMergeSortModalSlice';\nexport const getNavigationTableSortPaths = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.paths;\nexport const getNavigationTableOutputPathAttributes = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.outputPathAttributes;\nexport const getNavigationTableAttributesValues = createSelector(\n [getNavigationTableOutputPathAttributes],\n (outputPathAttributes) => {\n const result: Record<string, string> = {};\n for (const key in outputPathAttributes) {\n if (Object.prototype.hasOwnProperty.call(outputPathAttributes, key)) {\n result[key] = outputPathAttributes[key as PathAttribute].value;\n }\n }\n return result;\n },\n);\nexport const getNavigationTableSortError = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.error;\nexport const getNavigationTableSortVisible = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.sortVisible;\nexport const getNavigationTableMergeVisible = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.mergeVisible;\nexport const getNavigationTableSortSuggestColumns = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.suggestColumns;\n","import compact_ from 'lodash/compact';\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\n\nimport {createSelector} from 'reselect';\n\nimport ypath from '../../../common/thor/ypath';\nimport unipika from '../../../common/thor/unipika';\n\nimport type {RootState} from '../../../store/reducers';\nimport type {ValueOf, YTError} from '../../../types';\nimport {getAttributes, getParsedPath, getPath, getTransaction} from './index';\nimport {ParsedPath, prepareNavigationState} from '../../../utils/navigation';\nimport {Tab} from '../../../constants/navigation/index';\n\nimport {getTableMountConfigHasData} from '../../../store/selectors/navigation/content/table-mount-config';\nimport {getAccessLogBasePath} from '../../../config';\nimport {getTabletErrorsBackgroundCount} from '../../../store/selectors/navigation/tabs/tablet-errors-background';\nimport UIFactory from '../../../UIFactory';\nimport {getConfigData} from '../../../config/ui-settings';\n\nexport function getNavigationPathAttributesLoadState(state: RootState) {\n return state.navigation.navigation.loadState;\n}\n\nexport const getNavigationPathAttributes = (state: RootState) =>\n state.navigation.navigation.attributes as any;\nexport const getNavigationIsWritable = (state: RootState) =>\n state.navigation.navigation.isWriteable as boolean;\nexport const getNavigationIsAccountUsable = (state: RootState) =>\n state.navigation.navigation.isAccountUsable as boolean;\nexport const getNavigationCheckPermissionsError = (state: RootState) =>\n state.navigation.navigation.checkPermissionsError as YTError | undefined;\nexport const getMode = (state: RootState) => state.navigation.navigation.mode;\n\nexport const getNavigationPathAccount = createSelector(\n [getNavigationPathAttributes],\n (attrs) => attrs.account,\n);\n\nexport const getNavigationBreadcrumbs = createSelector(\n [getPath, getParsedPath, getTransaction],\n (path: string, parsedPath?: ParsedPath, transaction?: string) => {\n if (parsedPath) {\n return map_(parsedPath?.fragments, (item, index) => {\n return {\n text: item.name,\n state: prepareNavigationState(parsedPath, transaction, index),\n };\n });\n } else {\n return [\n {\n text: prepareBrokenPath(path),\n state: prepareNavigationState(path, transaction),\n },\n ];\n }\n },\n);\n\nfunction prepareBrokenPath(path: string): string {\n return unipika.prettyprint(path, {\n break: false,\n indent: 0,\n binaryAsHex: false,\n });\n}\n\nexport const getNavigationRestorePath = createSelector([getNavigationPathAttributes], (attrs) => {\n return ypath.getValue(attrs, '/_restore_path');\n});\n\nexport const getSupportedTabs = createSelector(\n [getNavigationPathAttributes, getTableMountConfigHasData, getTabletErrorsBackgroundCount],\n (attributes, mountConfigHasData, tabletErrorsCount) => {\n const isDynamic = attributes.dynamic === true;\n const isPipeline = attributes.pipeline_format_version !== undefined;\n const mountConfigVisible = mountConfigHasData || isDynamic;\n const alwaysSupportedTabs = compact_([\n Tab.CONTENT,\n isPipeline && Tab.FLOW,\n Tab.ATTRIBUTES,\n Tab.USER_ATTRIBUTES,\n mountConfigVisible && Tab.MOUNT_CONFIG,\n Tab.ACL,\n Boolean(getAccessLogBasePath()) && Tab.ACCESS_LOG,\n ]);\n const supportedByAttribute = filter_<ValueOf<typeof Tab>>(\n [Tab.SCHEMA, Tab.LOCKS],\n // eslint-disable-next-line no-prototype-builtins\n (name) => attributes?.hasOwnProperty(name),\n );\n\n if (\n (attributes?.type === 'table' && attributes?.dynamic === true) ||\n attributes?.type === 'replicated_table' ||\n attributes?.type === 'replication_log_table'\n ) {\n supportedByAttribute.push(Tab.TABLETS);\n }\n\n if (\n attributes?.dynamic === true &&\n attributes?.sorted === false &&\n (attributes?.type === 'table' ||\n attributes?.type === 'replicated_table' ||\n attributes?.type === 'chaos_replicated_table')\n ) {\n supportedByAttribute.push(Tab.QUEUE);\n }\n\n if (attributes?.type == 'queue_consumer' || attributes?.treat_as_queue_consumer == true) {\n supportedByAttribute.push(Tab.CONSUMER);\n }\n\n let supportedTabletErrors: Array<ValueOf<typeof Tab>> = [];\n if (\n tabletErrorsCount > 0 ||\n (getConfigData().allowTabletErrorsAPI && attributes.tablet_error_count >= 0)\n ) {\n supportedTabletErrors = [Tab.TABLET_ERRORS];\n }\n\n const supportedTabs = new Set<string>([\n ...alwaysSupportedTabs,\n ...supportedByAttribute,\n ...supportedTabletErrors,\n ]);\n\n UIFactory.getNavigationExtraTabs().forEach((tab) => {\n if (tab.isSupported(attributes)) {\n supportedTabs.add(tab.value);\n }\n });\n\n return supportedTabs;\n },\n);\n\nexport const getTabs = createSelector(\n [getSupportedTabs, getTabletErrorsBackgroundCount, getAttributes],\n (supportedTabs, tabletErrorsCount, attributes) => {\n const isACO = attributes?.type === 'access_control_object';\n\n const tabs: {\n value: string;\n title: string;\n hotkey?: {\n keys: string;\n tab: string;\n scope: string;\n }[];\n text?: string;\n caption?: string;\n counter?: number;\n }[] = [\n {\n value: Tab.CONSUMER,\n title: 'Go to consumer [Alt+R]',\n hotkey: [\n {\n keys: 'alt+r',\n tab: Tab.CONSUMER,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.CONTENT,\n title: 'Go to content [Alt+C]',\n text: isACO ? 'Principal ACL' : undefined,\n hotkey: [\n {\n keys: 'alt+c',\n tab: Tab.CONTENT,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.QUEUE,\n title: 'Go to queue [Alt+Q]',\n hotkey: [\n {\n keys: 'alt+q',\n tab: Tab.QUEUE,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.ATTRIBUTES,\n title: 'Go to attributes [Alt+A]',\n hotkey: [\n {\n keys: 'alt+a',\n tab: Tab.ATTRIBUTES,\n scope: 'all',\n },\n ],\n caption: 'Attributes',\n },\n {\n value: Tab.USER_ATTRIBUTES,\n title: 'Go to user attributes [Alt+U]',\n hotkey: [\n {\n keys: 'alt+u',\n tab: Tab.USER_ATTRIBUTES,\n scope: 'all',\n },\n ],\n caption: 'User Attributes',\n },\n {\n value: Tab.MOUNT_CONFIG,\n title: 'Go to mount config',\n hotkey: [\n {\n keys: 'alt+m',\n tab: Tab.MOUNT_CONFIG,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.ACL,\n title: 'Go to ACL [Alt+P]',\n hotkey: [\n {\n keys: 'alt+p',\n tab: Tab.ACL,\n scope: 'all',\n },\n ],\n caption: 'ACL',\n },\n {\n value: Tab.ACCESS_LOG,\n title: 'Access log',\n },\n {\n value: Tab.FLOW,\n title: 'Go to content [Alt+F]',\n text: 'Flow',\n hotkey: [\n {\n keys: 'alt+f',\n tab: Tab.FLOW,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.LOCKS,\n title: 'Go to locks [Alt+L]',\n hotkey: [\n {\n keys: 'alt+l',\n tab: Tab.LOCKS,\n scope: 'all',\n },\n ],\n counter: ypath.getValue(attributes, '/lock_count'),\n },\n {\n value: Tab.ANNOTATION,\n title: 'Go to annotation [Alt+N]',\n hotkey: [\n {\n keys: 'alt+n',\n tab: Tab.ACL,\n scope: 'all',\n },\n ],\n caption: 'Annotation',\n },\n {\n value: Tab.SCHEMA,\n title: 'Go to schema [Alt+S]',\n hotkey: [\n {\n keys: 'alt+s',\n tab: Tab.SCHEMA,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.TABLETS,\n title: 'Go to tablets [Alt+T]',\n hotkey: [\n {\n keys: 'alt+t',\n tab: Tab.TABLETS,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.TABLET_ERRORS,\n title: 'Go to tablets errors',\n counter: tabletErrorsCount > 0 ? tabletErrorsCount : undefined,\n },\n ];\n\n UIFactory.getNavigationExtraTabs().forEach((extraTab) => {\n for (let i = 0; i < tabs.length; i++) {\n let indexOffset = 0;\n let tabToFind;\n\n if ('before' in extraTab.position) {\n tabToFind = extraTab.position.before;\n }\n\n if ('after' in extraTab.position) {\n tabToFind = extraTab.position.after;\n indexOffset = 1;\n }\n\n if (tabs[i].value === tabToFind) {\n const newTab = {\n value: extraTab.value,\n title: extraTab.title,\n hotkey: extraTab.hotkey\n ? [{keys: extraTab.hotkey, tab: extraTab.value, scope: 'all'}]\n : undefined,\n text: extraTab.text,\n caption: extraTab.caption,\n };\n tabs.splice(i + indexOffset, 0, newTab);\n break;\n }\n }\n });\n\n return tabs.filter((tab) => supportedTabs.has(tab.value));\n },\n);\n\nexport const getEffectiveMode = createSelector([getMode, getTabs], (mode, tabs) => {\n const [firstTab] = tabs;\n\n return mode === Tab.AUTO ? firstTab.value : mode;\n});\n","import {RootState} from '../../../reducers';\n\nexport const getNavigationAnnotationError = (state: RootState) =>\n state.navigation.tabs.annotation.error;\n\nexport const getNavigationAnnotation = (state: RootState) =>\n state.navigation.tabs.annotation.annotation;\nexport const getNavigationAnnotationPath = (state: RootState) =>\n state.navigation.tabs.annotation.path;\nexport const getNavigationAnnotationSaving = (state: RootState) =>\n state.navigation.tabs.annotation.saving;\nexport const getNavigationAnnotationEditing = (state: RootState) =>\n state.navigation.tabs.annotation.editing;\n","import {createSelector} from 'reselect';\nimport {RootState} from '../../../../store/reducers';\nimport {calculateLoadingStatus} from '../../../../utils/utils';\nimport {getPath} from '../../../../store/selectors/navigation/index';\n\nimport reduce_ from 'lodash/reduce';\n\nimport {ValueOf, YTError} from '../../../../types';\nimport ypath from '../../../../common/thor/ypath';\n\nconst getTabletErrorsErrorCount = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.errorsCount;\nconst getTabletErrorsErrorCountPath = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.errorsCountPath;\nconst getTabletErrorsRaw = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.tabletErrors;\nconst getTabletErrorsPathRaw = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.tabletErrorsPath;\n\nexport const getTabletErrorsViewMode = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.viewMode;\n\nexport const getTabletErrorsLoadingStatus = createSelector(\n [\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.loading,\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.loaded,\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.error,\n ],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n\nexport const getTabletErrorsBackgroundCount = createSelector(\n [getPath, getTabletErrorsErrorCountPath, getTabletErrorsErrorCount],\n (path, errorCountPath, errorCount) => {\n if (path !== errorCountPath) {\n return 0;\n }\n\n return errorCount;\n },\n);\n\nexport const getTabletErrors = createSelector(\n [getPath, getTabletErrorsPathRaw, getTabletErrorsRaw],\n (path, errPath, errors) => {\n if (path !== errPath) {\n return undefined;\n }\n\n return errors;\n },\n);\n\nexport const getTabletErrorsBackgroundCountNoticeVisbile = createSelector(\n [getTabletErrorsBackgroundCount, getTabletErrors],\n (count, data) => {\n const {tablet_errors, replication_errors} = data || {};\n const tabletErrorsCount = calculateSubitemsCount(tablet_errors);\n const replicationErrorsCount = calculateSubitemsCount(replication_errors);\n\n return count !== tabletErrorsCount + replicationErrorsCount;\n },\n);\n\nfunction calculateSubitemsCount(items?: Record<string, Array<unknown>>) {\n return reduce_(\n items,\n (acc, subItems) => {\n return acc + subItems.length;\n },\n 0,\n );\n}\n\ntype ReplicaId = string;\ntype TabletId = string;\n\nexport const getTabletErrorsReplicationErrors = createSelector([getTabletErrors], (data) => {\n return reduce_(\n data?.replication_errors,\n (acc, errors, replicaId) => {\n const errorsByTablet = reduce_(\n errors,\n (errAcc, error) => {\n const {tablet_id} = error.attributes || {};\n const id =\n typeof tablet_id === 'object' ? ypath.getValue(tablet_id, '') : tablet_id;\n if (!errAcc[tablet_id]) {\n errAcc[id] = [];\n }\n errAcc[id].push(error);\n return errAcc;\n },\n {} as ValueOf<typeof acc>,\n );\n acc[replicaId] = errorsByTablet;\n return acc;\n },\n {} as Record<ReplicaId, Record<TabletId, Array<YTError>>>,\n );\n});\n","import filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\n\nimport unipika from '../../common/thor/unipika';\nimport ypath from '../../common/thor/ypath';\n\nimport CancelHelper from '../cancel-helper';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\nexport const pathEditorRequests = new CancelHelper();\n\nfunction prepareSuggestions(initialPath, parentPath, children) {\n let suggestions = map_(children, (child) => {\n const prepared = {};\n\n prepared.parentPath = parentPath;\n prepared.childPath = '/' + unipika.decode(ypath.getValue(child));\n prepared.path = prepared.parentPath + prepared.childPath;\n prepared.type = ypath.getValue(child, '/@type');\n prepared.dynamic = ypath.getValue(child, '/@dynamic');\n prepared.targetPathBroken = ypath.getValue(child, '/@broken');\n\n return prepared;\n });\n\n suggestions = sortBy_(suggestions, 'childPath');\n\n return suggestions;\n}\n\nexport function preparePath(currentPath) {\n return ypath.YPath.create(currentPath, 'absolute').toSubpath(-2).stringify();\n}\n\nexport function loadSuggestions(path, customFilter) {\n const parentPath = preparePath(path);\n\n return ytApiV3Id\n .list(YTApiId.pathEditorLoadSuggestions, {\n parameters: {path: parentPath, attributes: ['type', 'dynamic']},\n cancellation: pathEditorRequests.saveCancelToken,\n })\n .then(ypath.getValue)\n .then((nodes) => prepareSuggestions(path, parentPath, nodes))\n .then((suggestions) => (customFilter ? customFilter(suggestions) : suggestions));\n}\n\nexport function filterByCurrentPath(currentPath, suggestions) {\n const path = currentPath.toLowerCase();\n\n return filter_(suggestions, (child) => {\n const hasPartOfPath = child.path.startsWith(path);\n const isShowCurrentChild = child.path !== path || child.type === 'map_node';\n\n return hasPartOfPath && isShowCurrentChild;\n });\n}\n\nexport function getNextSelectedIndex(suggestion, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === suggestion.length - 1) {\n return 0;\n }\n\n return selectedIndex + 1;\n}\n\nexport function getPrevSelectedIndex(suggestions, selectedIndex) {\n if (selectedIndex === -1 || selectedIndex === 0) {\n return suggestions.length - 1;\n }\n\n return selectedIndex - 1;\n}\n\nexport function getCompletedPath(suggestion) {\n return suggestion.type === 'map_node' ? suggestion.path + '/' : suggestion.path;\n}\n\nexport function getIconNameForType(type, targetPathBroken) {\n const icons = {\n document: 'file-alt',\n string_node: 'file-alt',\n int64_node: 'file-alt',\n uint64_node: 'file-alt',\n double_node: 'file-alt',\n boolean_node: 'file-alt',\n map_node: 'folder',\n scheduler_pool_tree_map: 'folder-tree',\n scheduler_pool: 'tasks',\n tablet_cell: 'th',\n journal: 'book',\n table: 'th',\n table_dynamic: 'dyn-th',\n replicated_table: 'th',\n chaos_replicated_table: 'chaos-replicated-table',\n replication_log_table: 'replication-log-table',\n file: 'file',\n topmost_transaction_map: 'folder',\n transaction_map: 'folder',\n transaction: 'code-branch',\n nested_transaction: 'code-branch',\n link: ypath.getBoolean(targetPathBroken) ? 'unlink' : 'link',\n rootstock: 'link',\n portal_entrance: 'link',\n cell_node: 'circle',\n cell_node_map: 'far circle',\n sys_node: 'cog',\n access_control_object_namespace_map: 'acl-namespace-map',\n access_control_object_namespace: 'acl-namespace',\n access_control_object: 'acl-object',\n };\n\n const icon = type ? icons[type] || 'not-suported' : 'eye-slash';\n\n return icon;\n}\n","import type {TabsOrientation} from './plugin/transform';\nimport type {TabsController} from './runtime/TabsController';\n\nexport const TABS_CLASSNAME = 'yfm-tabs';\nexport const TABS_VERTICAL_CLASSNAME = 'yfm-tabs-vertical';\nexport const TABS_LIST_CLASSNAME = 'yfm-tab-list';\nexport const TAB_CLASSNAME = 'yfm-tab';\nexport const TAB_PANEL_CLASSNAME = 'yfm-tab-panel';\nexport const ACTIVE_CLASSNAME = 'active';\nexport const VERTICAL_TAB_CLASSNAME = 'yfm-vertical-tab';\n\nexport const GROUP_DATA_KEY = 'data-diplodoc-group';\nexport const TAB_DATA_KEY = 'data-diplodoc-key';\nexport const TAB_DATA_ID = 'data-diplodoc-id';\nexport const TAB_DATA_VERTICAL_TAB = 'data-diplodoc-vertical-tab';\nexport const TAB_ACTIVE_KEY = 'data-diplodoc-is-active';\nexport const TAB_RADIO_KEY = 'data-diplodoc-input';\n\nexport const DEFAULT_TABS_GROUP_PREFIX = 'defaultTabsGroup-';\n\nexport interface Tab {\n group?: string;\n key: string;\n align: TabsOrientation;\n}\n\nexport interface SelectedTabEvent {\n tab: Tab;\n currentTabId?: string;\n}\n\nexport const GLOBAL_SYMBOL: unique symbol = Symbol.for('diplodocTabs');\n\ndeclare global {\n interface Window {\n [GLOBAL_SYMBOL]: TabsController;\n }\n}\n","export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n\nexport const getClosestScrollableParent = (element: HTMLElement): HTMLElement | undefined => {\n if (Math.abs(element.scrollHeight - element.clientHeight) > 1) {\n return element;\n }\n\n return element.parentElement ? getClosestScrollableParent(element.parentElement) : undefined;\n};\n\nexport interface ElementOffset {\n top: number;\n left: number;\n scrollTop: number;\n scrollLeft: number;\n}\n\nexport const getOffsetByScrollableParent = (\n element: HTMLElement,\n scrollableParent: HTMLElement,\n): ElementOffset => {\n const elementBounds = element.getBoundingClientRect();\n const scrollableParentBounds = scrollableParent.getBoundingClientRect();\n return {\n top: elementBounds.top - scrollableParentBounds.top,\n left: elementBounds.left - scrollableParentBounds.left,\n scrollTop: scrollableParent.scrollTop,\n scrollLeft: scrollableParent.scrollLeft,\n };\n};\n","import {\n ACTIVE_CLASSNAME,\n DEFAULT_TABS_GROUP_PREFIX,\n GROUP_DATA_KEY,\n SelectedTabEvent,\n TABS_CLASSNAME,\n TABS_LIST_CLASSNAME,\n TABS_VERTICAL_CLASSNAME,\n TAB_CLASSNAME,\n TAB_DATA_ID,\n TAB_DATA_KEY,\n TAB_PANEL_CLASSNAME,\n Tab,\n} from '../common';\nimport type {TabsOrientation} from '../plugin/transform';\nimport {\n ElementOffset,\n getClosestScrollableParent,\n getEventTarget,\n getOffsetByScrollableParent,\n isCustom,\n} from './utils';\n\nconst Selector = {\n TABS: `.${TABS_CLASSNAME}`,\n TAB_LIST: `.${TABS_LIST_CLASSNAME}`,\n TAB: `.${TAB_CLASSNAME}`,\n TAB_PANEL: `.${TAB_PANEL_CLASSNAME}`,\n VERTICAL_TABS: `.${TABS_VERTICAL_CLASSNAME}`,\n};\n\nexport interface ISelectTabByIdOptions {\n scrollToElement: boolean;\n}\n\ntype Handler = (data: SelectedTabEvent) => void;\n\ntype TabSwitchDirection = 'left' | 'right';\n\nexport class TabsController {\n private _document: Document;\n\n private _onSelectTabHandlers: Set<Handler> = new Set();\n\n constructor(document: Document) {\n this._document = document;\n this._document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n const areVertical = this.areTabsVertical(target);\n\n if (isCustom(event)) {\n return;\n }\n\n if (!(this.isValidTabElement(target) || areVertical)) {\n return;\n }\n\n const tab = this.getTabDataFromHTMLElement(target);\n\n if (tab) {\n this._selectTab(tab, target);\n }\n });\n this._document.addEventListener('keydown', (event) => {\n let direction: TabSwitchDirection | null = null;\n switch (event.key) {\n case 'ArrowLeft': {\n direction = 'left';\n break;\n }\n case 'ArrowRight': {\n direction = 'right';\n break;\n }\n }\n if (!direction) {\n return;\n }\n\n const target = getEventTarget(event) as HTMLElement;\n\n if (isCustom(event) || !this.isValidTabElement(target)) {\n return;\n }\n\n const {tabs, nodes} = this.getTabs(target);\n const currentTab = this.getTabDataFromHTMLElement(target);\n const currentTabIndex = tabs.findIndex(\n ({key}) => currentTab?.key && key === currentTab.key,\n );\n if (!currentTab || tabs.length <= 1 || currentTabIndex === -1) {\n return;\n }\n\n const newIndex =\n (currentTabIndex + (direction === 'left' ? -1 : 1) + tabs.length) % tabs.length;\n\n this.selectTab(tabs[newIndex]);\n nodes[newIndex].focus();\n });\n }\n\n onSelectTab(handler: Handler) {\n this._onSelectTabHandlers.add(handler);\n\n return () => {\n this._onSelectTabHandlers.delete(handler);\n };\n }\n\n selectTabById(id: string, options?: ISelectTabByIdOptions) {\n const target = this._document.querySelector(\n `${Selector.TAB}[${TAB_DATA_ID}=\"${id}\"]`,\n ) as HTMLElement;\n\n if (!target || !this.isValidTabElement(target)) {\n return;\n }\n\n const tab = this.getTabDataFromHTMLElement(target);\n\n if (tab) {\n this._selectTab(tab, target);\n }\n\n if (options?.scrollToElement) {\n target.scrollIntoView();\n }\n }\n\n selectTab(tab: Tab) {\n this._selectTab(tab);\n }\n\n private _selectTab(tab: Tab, targetTab?: HTMLElement) {\n const {group, key, align} = tab;\n\n if (!group) {\n return;\n }\n\n const scrollableParent = targetTab && getClosestScrollableParent(targetTab);\n const previousTargetOffset =\n scrollableParent && getOffsetByScrollableParent(targetTab, scrollableParent);\n\n const updatedTabs = this.updateHTML({group, key, align}, align);\n\n if (updatedTabs > 0) {\n this.fireSelectTabEvent({group, key, align}, targetTab?.dataset.diplodocId);\n\n if (previousTargetOffset) {\n this.resetScroll(targetTab, scrollableParent, previousTargetOffset);\n }\n }\n }\n\n private updateHTML(tab: Required<Tab>, align: TabsOrientation) {\n switch (align) {\n case 'vertical': {\n return this.updateHTMLVertical(tab);\n }\n case 'horizontal': {\n return this.updateHTMLHorizontal(tab);\n }\n }\n\n return 0;\n }\n\n private updateHTMLVertical(tab: Required<Tab>) {\n const {group, key} = tab;\n\n const [tabs] = this._document.querySelectorAll(\n `${Selector.TABS}[${GROUP_DATA_KEY}=\"${group}\"] ${Selector.TAB}[${TAB_DATA_KEY}=\"${key}\"]`,\n );\n\n let updated = 0;\n const root = tabs.parentNode!;\n const elements = root.children;\n\n for (let i = 0; i < elements.length; i += 2) {\n const [title, content] = [elements.item(i), elements.item(i + 1)] as HTMLElement[];\n\n const input = title.children.item(0) as HTMLInputElement;\n\n if (input.hasAttribute('checked')) {\n title.classList.remove('active');\n content?.classList.remove('active');\n input.removeAttribute('checked');\n }\n\n if (title === tabs) {\n title.classList.add('active');\n content?.classList.add('active');\n input.setAttribute('checked', 'true');\n }\n\n updated++;\n }\n\n return updated;\n }\n\n private updateHTMLHorizontal(tab: Required<Tab>) {\n const {group, key} = tab;\n\n const tabs = this._document.querySelectorAll(\n `${Selector.TABS}[${GROUP_DATA_KEY}=\"${group}\"] ${Selector.TAB}[${TAB_DATA_KEY}=\"${key}\"]`,\n );\n\n let updated = 0;\n\n tabs.forEach((element) => {\n const htmlElem = element as HTMLElement;\n if (!this.isValidTabElement(htmlElem) || htmlElem.dataset.diplodocIsActive === 'true') {\n return;\n }\n\n updated++;\n\n const tab = element;\n const tabList = tab.parentNode;\n const tabsContainer = tabList?.parentNode;\n const allTabs = Array.from(tabList?.querySelectorAll(Selector.TAB) || []);\n const allPanels = Array.from(tabsContainer?.children || []).filter((node) =>\n node.classList.contains(TAB_PANEL_CLASSNAME),\n );\n const targetIndex = allTabs.indexOf(tab);\n\n allTabs.forEach((tab, i) => {\n const panel = allPanels[i];\n const isTargetTab = i === targetIndex;\n const htmlElem = tab as HTMLElement;\n\n htmlElem.dataset.diplodocIsActive = isTargetTab ? 'true' : 'false';\n\n tab.classList.toggle(ACTIVE_CLASSNAME, isTargetTab);\n tab.setAttribute('aria-selected', isTargetTab.toString());\n tab.setAttribute('tabindex', isTargetTab ? '0' : '-1');\n panel.classList.toggle(ACTIVE_CLASSNAME, isTargetTab);\n });\n });\n\n return updated;\n }\n\n private resetScroll(\n target: HTMLElement,\n scrollableParent: HTMLElement,\n previousTargetOffset: ElementOffset,\n ) {\n const targetOffset = getOffsetByScrollableParent(target, scrollableParent);\n const topDelta = targetOffset.top - previousTargetOffset.top;\n const leftDelta = targetOffset.left - previousTargetOffset.left;\n const scrollTopDelta = targetOffset.scrollTop - previousTargetOffset.scrollTop;\n const scrollLeftDelta = targetOffset.scrollLeft - previousTargetOffset.scrollLeft;\n scrollableParent.scrollTo(\n scrollableParent.scrollLeft + leftDelta - scrollLeftDelta,\n scrollableParent.scrollTop + topDelta - scrollTopDelta,\n );\n }\n\n private fireSelectTabEvent(tab: Required<Tab>, diplodocId?: string) {\n const {group, key, align} = tab;\n\n const eventTab: Tab = group.startsWith(DEFAULT_TABS_GROUP_PREFIX) ? {key, align} : tab;\n\n this._onSelectTabHandlers.forEach((handler) => {\n handler({tab: eventTab, currentTabId: diplodocId});\n });\n }\n\n private isValidTabElement(element: HTMLElement) {\n const tabList =\n element.matches(Selector.TAB) && element.dataset.diplodocId\n ? element.closest(Selector.TAB_LIST)\n : null;\n\n return tabList?.closest(Selector.TABS);\n }\n\n private areTabsVertical(target: HTMLElement) {\n const parent = target.parentElement;\n\n return target.dataset.diplodocVerticalTab || Boolean(parent?.dataset.diplodocVerticalTab);\n }\n\n private getTabDataFromHTMLElement(target: HTMLElement): Tab | null {\n if (this.areTabsVertical(target)) {\n const tab = target.dataset.diplodocVerticalTab ? target : target.parentElement!;\n\n const key = tab.dataset.diplodocKey;\n const group = (tab.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, align: 'vertical'} : null;\n }\n\n const key = target.dataset.diplodocKey;\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n return key && group ? {group, key, align: 'horizontal'} : null;\n }\n\n private getTabs(target: HTMLElement): {tabs: Tab[]; nodes: NodeListOf<HTMLElement>} {\n const group = (target.closest(Selector.TABS) as HTMLElement)?.dataset.diplodocGroup;\n const nodes = (\n target.closest(Selector.TAB_LIST) as HTMLElement\n )?.querySelectorAll<HTMLElement>(Selector.TAB);\n\n const tabs: Tab[] = [];\n nodes.forEach((tabEl) => {\n const key = tabEl?.dataset.diplodocKey;\n if (!key) {\n return;\n }\n\n /** horizontal-only supported feature (used in left/right button click) */\n tabs.push({\n group,\n key,\n align: 'horizontal',\n });\n });\n\n return {tabs, nodes};\n }\n}\n","'use strict';\n\n// Node getRootNode(optional GetRootNodeOptions options);\n\n/**\n * Returns the context object’s shadow-including root if options’s composed is true.\n * Returns the context object’s root otherwise.\n *\n * The root of an object is itself, if its parent is null, or else it is the root of its parent.\n *\n * The shadow-including root of an object is its root’s host’s shadow-including root,\n * if the object’s root is a shadow root, and its root otherwise.\n *\n * https://dom.spec.whatwg.org/#dom-node-getrootnode\n *\n * @memberof Node.prototype\n * @param {!Object} [opt = {}] - Options.\n * @param {!boolean} [opt.composed] - See above description.\n * @returns {!Node} The root node.\n */\nfunction getRootNode(opt) {\n var composed = typeof opt === 'object' && Boolean(opt.composed);\n\n return composed ? getShadowIncludingRoot(this) : getRoot(this);\n}\n\nfunction getShadowIncludingRoot(node) {\n var root = getRoot(node);\n\n if (isShadowRoot(root)) {\n return getShadowIncludingRoot(root.host);\n }\n\n return root;\n}\n\nfunction getRoot(node) {\n if (node.parentNode != null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\nfunction isShadowRoot(node) {\n return node.nodeName === '#document-fragment' && node.constructor.name === 'ShadowRoot';\n}\n\nif (typeof module === 'object' && module.exports) {\n module.exports = getRootNode;\n}\n","import {GLOBAL_SYMBOL} from '../common';\nimport {TabsController} from './TabsController';\nimport './scss/tabs.scss';\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && !window[GLOBAL_SYMBOL]) {\n window[GLOBAL_SYMBOL] = new TabsController(document);\n}\n","import getRootNode from 'get-root-node-polyfill';\n\nif (typeof document !== 'undefined') {\n // matches polyfill for old edge\n (function (e) {\n const matches =\n e.matches ||\n e.matchesSelector ||\n e.webkitMatchesSelector ||\n e.mozMatchesSelector ||\n e.msMatchesSelector ||\n e.oMatchesSelector;\n\n if (matches) {\n e.matches = e.matchesSelector = matches;\n } else {\n e.matches = e.matchesSelector = function matches(selector) {\n const rootNode = e.getRootNode ? e.getRootNode() : getRootNode.call(e);\n const matches = rootNode.querySelectorAll(selector);\n const th = this;\n return Array.prototype.some.call(matches, (e) => {\n return e === th;\n });\n };\n }\n })(Element.prototype);\n}\n","export const getEventTarget = (event: Event) => {\n const path = event.composedPath();\n return Array.isArray(path) && path.length > 0 ? path[0] : event.target;\n};\n\nexport const isCustom = (event: Event) => {\n const target = getEventTarget(event);\n return !target || !(target as HTMLElement).matches;\n};\n","import {getEventTarget, isCustom} from './utils';\n\nconst BUTTON_SELECTOR = '.yfm-clipboard-button';\n\nfunction copyToClipboard(text: string) {\n if (!text) {\n return Promise.resolve();\n }\n\n if (navigator.clipboard && typeof navigator.clipboard.writeText) {\n return navigator.clipboard.writeText(text);\n }\n const textarea = document.createElement('textarea');\n textarea.setAttribute('style', 'position: absolute; left: 1000%');\n textarea.textContent = text;\n document.body.append(textarea);\n\n textarea.select();\n document.execCommand('copy');\n\n document.body.removeChild(textarea);\n\n return Promise.resolve();\n}\n\nfunction notifySuccess(svgButton: HTMLElement | null) {\n if (!svgButton) {\n return;\n }\n\n const id = svgButton.getAttribute('data-animation');\n // @ts-expect-error\n const icon = svgButton.getRootNode().getElementById(`visibileAnimation-${id}`);\n\n if (!icon) {\n return;\n }\n\n icon.beginElement();\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n const target = getEventTarget(event) as HTMLElement;\n\n if (isCustom(event) || !target.matches(BUTTON_SELECTOR)) {\n return;\n }\n\n const parent = target.parentNode;\n\n if (!parent) {\n return;\n }\n\n const code = parent.querySelector<HTMLElement>('pre code');\n if (!code) {\n return;\n }\n\n copyToClipboard(code.innerText).then(() => {\n notifySuccess(parent.querySelector('.yfm-clipboard-button'));\n });\n });\n}\n","import {getEventTarget, isCustom} from './utils';\n\nconst Selector = {\n CUT: '.yfm .yfm-cut',\n TITLE: '.yfm .yfm-cut-title',\n CONTENT: '.yfm .yfm-cut-content',\n};\n\nconst ClassName = {\n OPEN: 'open',\n};\n\nfunction toggleCut(element: HTMLElement) {\n const cutNode = element.parentNode;\n\n if (!(cutNode instanceof HTMLElement)) {\n return;\n }\n\n cutNode.classList.toggle(ClassName.OPEN);\n}\n\nfunction matchTitle(target: EventTarget | null) {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n\n return target?.matches?.(Selector.TITLE);\n}\n\nfunction findTitleInPath(event: MouseEvent): HTMLElement | undefined {\n const target = getEventTarget(event);\n\n if (matchTitle(target)) {\n return target as HTMLElement;\n }\n\n const path = event.composedPath?.();\n\n return path?.find(matchTitle) as HTMLElement | undefined;\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n if (isCustom(event)) {\n return;\n }\n\n const title = findTitleInPath(event);\n\n if (!title) {\n return;\n }\n\n toggleCut(title);\n });\n}\n","export const Selector = {\n TITLE: '.yfm .yfm-term_title',\n CONTENT: '.yfm .yfm-term_dfn',\n};\nexport const openClass = 'open';\nexport const openDefinitionClass = Selector.CONTENT.replace(/\\./g, '') + ' ' + openClass;\nlet isListenerNeeded = true;\n\nexport function createDefinitionElement(termElement: HTMLElement) {\n const termKey = termElement.getAttribute('term-key');\n const definitionTemplate = document.getElementById(\n `${termKey}_template`,\n ) as HTMLTemplateElement;\n const definitionElement = definitionTemplate?.content.cloneNode(true).firstChild as HTMLElement;\n\n definitionTemplate?.parentElement?.appendChild(definitionElement);\n definitionTemplate.remove();\n\n return definitionElement;\n}\n\nexport function setDefinitionId(definitionElement: HTMLElement, termElement: HTMLElement): void {\n const termId = termElement.getAttribute('id') || Math.random().toString(36).substr(2, 8);\n definitionElement?.setAttribute('term-id', termId);\n}\n\nexport function setDefinitionPosition(\n definitionElement: HTMLElement,\n termElement: HTMLElement,\n): void {\n const {\n x: termX,\n y: termY,\n right: termRight,\n left: termLeft,\n width: termWidth,\n height: termHeight,\n } = termElement.getBoundingClientRect();\n\n const termParent = termParentElement(termElement);\n\n if (!termParent) {\n return;\n }\n\n const {right: termParentRight, left: termParentLeft} = termParent.getBoundingClientRect();\n\n if ((termParentRight < termLeft || termParentLeft > termRight) && !isListenerNeeded) {\n closeDefinition(definitionElement);\n return;\n }\n\n if (isListenerNeeded && termParent) {\n termParent.addEventListener('scroll', termOnResize);\n isListenerNeeded = false;\n }\n\n const relativeX = Number(definitionElement.getAttribute('relativeX'));\n const relativeY = Number(definitionElement.getAttribute('relativeY'));\n\n if (relativeX === termX && relativeY === termY) {\n return;\n }\n\n definitionElement.setAttribute('relativeX', String(termX));\n definitionElement.setAttribute('relativeY', String(termY));\n\n const offsetTop = termHeight + 5;\n const definitionParent = definitionElement.parentElement;\n\n if (!definitionParent) {\n return;\n }\n\n const {width: definitionWidth} = definitionElement.getBoundingClientRect();\n const {left: definitionParentLeft} = definitionParent.getBoundingClientRect();\n\n // If definition not fit document change base alignment\n const definitionLeftCoordinate = Number(getCoords(termElement).left);\n const definitionRightCoordinate = definitionWidth + definitionLeftCoordinate;\n\n const definitionOutOfScreenOnLeft = definitionLeftCoordinate - definitionWidth < 0;\n const definitionOutOfScreenOnRight = definitionRightCoordinate > document.body.clientWidth;\n\n const isAlignSwapped = definitionOutOfScreenOnRight || document.dir === 'rtl';\n const fitDefinitionDocument =\n isAlignSwapped && !definitionOutOfScreenOnLeft ? definitionWidth - termWidth : 0;\n const customHeaderTop = getCoords(definitionParent).top - definitionParent.offsetTop;\n\n definitionElement.style.top =\n Number(getCoords(termElement).top + offsetTop - customHeaderTop) + 'px';\n definitionElement.style.left =\n Number(\n getCoords(termElement).left -\n definitionParentLeft +\n definitionParent.offsetLeft -\n fitDefinitionDocument,\n ) + 'px';\n}\n\nfunction termOnResize() {\n const openDefinition = document.getElementsByClassName(openDefinitionClass)[0] as HTMLElement;\n\n if (!openDefinition) {\n return;\n }\n const termId = openDefinition.getAttribute('term-id') || '';\n const termElement = document.getElementById(termId);\n\n if (!termElement) {\n return;\n }\n\n setDefinitionPosition(openDefinition, termElement);\n}\n\nfunction termParentElement(term: HTMLElement | null) {\n if (!term) {\n return null;\n }\n\n const closestScrollableParent = term.closest('table') || term.closest('code');\n\n return closestScrollableParent || term.parentElement;\n}\n\nexport function closeDefinition(definition: HTMLElement) {\n definition.classList.remove(openClass);\n const termId = definition.getAttribute('term-id') || '';\n const termParent = termParentElement(document.getElementById(termId));\n\n if (!termParent) {\n return;\n }\n\n termParent.removeEventListener('scroll', termOnResize);\n isListenerNeeded = true;\n}\n\nfunction getCoords(elem: HTMLElement) {\n const box = elem.getBoundingClientRect();\n\n const body = document.body;\n const docEl = document.documentElement;\n\n const scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n const scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n\n const top = box.top + scrollTop - clientTop;\n const left = box.left + scrollLeft - clientLeft;\n\n return {top: Math.round(top), left: Math.round(left)};\n}\n","import {\n Selector,\n closeDefinition,\n createDefinitionElement,\n openClass,\n openDefinitionClass,\n setDefinitionId,\n setDefinitionPosition,\n} from './utils';\nimport {getEventTarget, isCustom} from '../utils';\n\nif (typeof document !== 'undefined') {\n document.addEventListener('click', (event) => {\n const openDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n const target = getEventTarget(event) as HTMLElement;\n\n const termId = target.getAttribute('id');\n const termKey = target.getAttribute('term-key');\n let definitionElement = document.getElementById(termKey + '_element');\n\n if (termKey && !definitionElement) {\n definitionElement = createDefinitionElement(target);\n }\n\n const isSameTerm = openDefinition && termId === openDefinition.getAttribute('term-id');\n if (isSameTerm) {\n closeDefinition(openDefinition);\n return;\n }\n\n const isTargetDefinitionContent = target.closest(\n [Selector.CONTENT.replace(' ', ''), openClass].join('.'),\n );\n\n if (openDefinition && !isTargetDefinitionContent) {\n closeDefinition(openDefinition);\n }\n\n if (isCustom(event) || !target.matches(Selector.TITLE) || !definitionElement) {\n return;\n }\n\n setDefinitionId(definitionElement, target);\n setDefinitionPosition(definitionElement, target);\n\n definitionElement.classList.toggle(openClass);\n });\n\n document.addEventListener('keydown', (event) => {\n const openDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n if (event.key === 'Escape' && openDefinition) {\n closeDefinition(openDefinition);\n }\n });\n\n window.addEventListener('resize', () => {\n const openDefinition = document.getElementsByClassName(\n openDefinitionClass,\n )[0] as HTMLElement;\n\n if (!openDefinition) {\n return;\n }\n\n const termId = openDefinition.getAttribute('term-id') || '';\n const termElement = document.getElementById(termId);\n\n if (!termElement) {\n openDefinition.classList.toggle(openClass);\n return;\n }\n\n setDefinitionPosition(openDefinition, termElement);\n });\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// GENERATED DO NOT EDIT\nmodule.exports = [\n \"alignContent\",\n \"MozAlignContent\",\n \"WebkitAlignContent\",\n \"MSAlignContent\",\n \"OAlignContent\",\n \"alignItems\",\n \"MozAlignItems\",\n \"WebkitAlignItems\",\n \"MSAlignItems\",\n \"OAlignItems\",\n \"alignSelf\",\n \"MozAlignSelf\",\n \"WebkitAlignSelf\",\n \"MSAlignSelf\",\n \"OAlignSelf\",\n \"all\",\n \"MozAll\",\n \"WebkitAll\",\n \"MSAll\",\n \"OAll\",\n \"animation\",\n \"MozAnimation\",\n \"WebkitAnimation\",\n \"MSAnimation\",\n \"OAnimation\",\n \"animationDelay\",\n \"MozAnimationDelay\",\n \"WebkitAnimationDelay\",\n \"MSAnimationDelay\",\n \"OAnimationDelay\",\n \"animationDirection\",\n \"MozAnimationDirection\",\n \"WebkitAnimationDirection\",\n \"MSAnimationDirection\",\n \"OAnimationDirection\",\n \"animationDuration\",\n \"MozAnimationDuration\",\n \"WebkitAnimationDuration\",\n \"MSAnimationDuration\",\n \"OAnimationDuration\",\n \"animationFillMode\",\n \"MozAnimationFillMode\",\n \"WebkitAnimationFillMode\",\n \"MSAnimationFillMode\",\n \"OAnimationFillMode\",\n \"animationIterationCount\",\n \"MozAnimationIterationCount\",\n \"WebkitAnimationIterationCount\",\n \"MSAnimationIterationCount\",\n \"OAnimationIterationCount\",\n \"animationName\",\n \"MozAnimationName\",\n \"WebkitAnimationName\",\n \"MSAnimationName\",\n \"OAnimationName\",\n \"animationPlayState\",\n \"MozAnimationPlayState\",\n \"WebkitAnimationPlayState\",\n \"MSAnimationPlayState\",\n \"OAnimationPlayState\",\n \"animationTimingFunction\",\n \"MozAnimationTimingFunction\",\n \"WebkitAnimationTimingFunction\",\n \"MSAnimationTimingFunction\",\n \"OAnimationTimingFunction\",\n \"backfaceVisibility\",\n \"MozBackfaceVisibility\",\n \"WebkitBackfaceVisibility\",\n \"MSBackfaceVisibility\",\n \"OBackfaceVisibility\",\n \"background\",\n \"MozBackground\",\n \"WebkitBackground\",\n \"MSBackground\",\n \"OBackground\",\n \"backgroundAttachment\",\n \"MozBackgroundAttachment\",\n \"WebkitBackgroundAttachment\",\n \"MSBackgroundAttachment\",\n \"OBackgroundAttachment\",\n \"backgroundBlendMode\",\n \"MozBackgroundBlendMode\",\n \"WebkitBackgroundBlendMode\",\n \"MSBackgroundBlendMode\",\n \"OBackgroundBlendMode\",\n \"backgroundClip\",\n \"MozBackgroundClip\",\n \"WebkitBackgroundClip\",\n \"MSBackgroundClip\",\n \"OBackgroundClip\",\n \"backgroundColor\",\n \"MozBackgroundColor\",\n \"WebkitBackgroundColor\",\n \"MSBackgroundColor\",\n \"OBackgroundColor\",\n \"backgroundImage\",\n \"MozBackgroundImage\",\n \"WebkitBackgroundImage\",\n \"MSBackgroundImage\",\n \"OBackgroundImage\",\n \"backgroundOrigin\",\n \"MozBackgroundOrigin\",\n \"WebkitBackgroundOrigin\",\n \"MSBackgroundOrigin\",\n \"OBackgroundOrigin\",\n \"backgroundPosition\",\n \"MozBackgroundPosition\",\n \"WebkitBackgroundPosition\",\n \"MSBackgroundPosition\",\n \"OBackgroundPosition\",\n \"backgroundRepeat\",\n \"MozBackgroundRepeat\",\n \"WebkitBackgroundRepeat\",\n \"MSBackgroundRepeat\",\n \"OBackgroundRepeat\",\n \"backgroundSize\",\n \"MozBackgroundSize\",\n \"WebkitBackgroundSize\",\n \"MSBackgroundSize\",\n \"OBackgroundSize\",\n \"blockSize\",\n \"MozBlockSize\",\n \"WebkitBlockSize\",\n \"MSBlockSize\",\n \"OBlockSize\",\n \"border\",\n \"MozBorder\",\n \"WebkitBorder\",\n \"MSBorder\",\n \"OBorder\",\n \"borderBlockEnd\",\n \"MozBorderBlockEnd\",\n \"WebkitBorderBlockEnd\",\n \"MSBorderBlockEnd\",\n \"OBorderBlockEnd\",\n \"borderBlockEndColor\",\n \"MozBorderBlockEndColor\",\n \"WebkitBorderBlockEndColor\",\n \"MSBorderBlockEndColor\",\n \"OBorderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"MozBorderBlockEndStyle\",\n \"WebkitBorderBlockEndStyle\",\n \"MSBorderBlockEndStyle\",\n \"OBorderBlockEndStyle\",\n \"borderBlockEndWidth\",\n \"MozBorderBlockEndWidth\",\n \"WebkitBorderBlockEndWidth\",\n \"MSBorderBlockEndWidth\",\n \"OBorderBlockEndWidth\",\n \"borderBlockStart\",\n \"MozBorderBlockStart\",\n \"WebkitBorderBlockStart\",\n \"MSBorderBlockStart\",\n \"OBorderBlockStart\",\n \"borderBlockStartColor\",\n \"MozBorderBlockStartColor\",\n \"WebkitBorderBlockStartColor\",\n \"MSBorderBlockStartColor\",\n \"OBorderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"MozBorderBlockStartStyle\",\n \"WebkitBorderBlockStartStyle\",\n \"MSBorderBlockStartStyle\",\n \"OBorderBlockStartStyle\",\n \"borderBlockStartWidth\",\n \"MozBorderBlockStartWidth\",\n \"WebkitBorderBlockStartWidth\",\n \"MSBorderBlockStartWidth\",\n \"OBorderBlockStartWidth\",\n \"borderBottom\",\n \"MozBorderBottom\",\n \"WebkitBorderBottom\",\n \"MSBorderBottom\",\n \"OBorderBottom\",\n \"borderBottomColor\",\n \"MozBorderBottomColor\",\n \"WebkitBorderBottomColor\",\n \"MSBorderBottomColor\",\n \"OBorderBottomColor\",\n \"borderBottomLeftRadius\",\n \"MozBorderBottomLeftRadius\",\n \"WebkitBorderBottomLeftRadius\",\n \"MSBorderBottomLeftRadius\",\n \"OBorderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"MozBorderBottomRightRadius\",\n \"WebkitBorderBottomRightRadius\",\n \"MSBorderBottomRightRadius\",\n \"OBorderBottomRightRadius\",\n \"borderBottomStyle\",\n \"MozBorderBottomStyle\",\n \"WebkitBorderBottomStyle\",\n \"MSBorderBottomStyle\",\n \"OBorderBottomStyle\",\n \"borderBottomWidth\",\n \"MozBorderBottomWidth\",\n \"WebkitBorderBottomWidth\",\n \"MSBorderBottomWidth\",\n \"OBorderBottomWidth\",\n \"borderCollapse\",\n \"MozBorderCollapse\",\n \"WebkitBorderCollapse\",\n \"MSBorderCollapse\",\n \"OBorderCollapse\",\n \"borderColor\",\n \"MozBorderColor\",\n \"WebkitBorderColor\",\n \"MSBorderColor\",\n \"OBorderColor\",\n \"borderImage\",\n \"MozBorderImage\",\n \"WebkitBorderImage\",\n \"MSBorderImage\",\n \"OBorderImage\",\n \"borderImageOutset\",\n \"MozBorderImageOutset\",\n \"WebkitBorderImageOutset\",\n \"MSBorderImageOutset\",\n \"OBorderImageOutset\",\n \"borderImageRepeat\",\n \"MozBorderImageRepeat\",\n \"WebkitBorderImageRepeat\",\n \"MSBorderImageRepeat\",\n \"OBorderImageRepeat\",\n \"borderImageSlice\",\n \"MozBorderImageSlice\",\n \"WebkitBorderImageSlice\",\n \"MSBorderImageSlice\",\n \"OBorderImageSlice\",\n \"borderImageSource\",\n \"MozBorderImageSource\",\n \"WebkitBorderImageSource\",\n \"MSBorderImageSource\",\n \"OBorderImageSource\",\n \"borderImageWidth\",\n \"MozBorderImageWidth\",\n \"WebkitBorderImageWidth\",\n \"MSBorderImageWidth\",\n \"OBorderImageWidth\",\n \"borderInlineEnd\",\n \"MozBorderInlineEnd\",\n \"WebkitBorderInlineEnd\",\n \"MSBorderInlineEnd\",\n \"OBorderInlineEnd\",\n \"borderInlineEndColor\",\n \"MozBorderInlineEndColor\",\n \"WebkitBorderInlineEndColor\",\n \"MSBorderInlineEndColor\",\n \"OBorderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"MozBorderInlineEndStyle\",\n \"WebkitBorderInlineEndStyle\",\n \"MSBorderInlineEndStyle\",\n \"OBorderInlineEndStyle\",\n \"borderInlineEndWidth\",\n \"MozBorderInlineEndWidth\",\n \"WebkitBorderInlineEndWidth\",\n \"MSBorderInlineEndWidth\",\n \"OBorderInlineEndWidth\",\n \"borderInlineStart\",\n \"MozBorderInlineStart\",\n \"WebkitBorderInlineStart\",\n \"MSBorderInlineStart\",\n \"OBorderInlineStart\",\n \"borderInlineStartColor\",\n \"MozBorderInlineStartColor\",\n \"WebkitBorderInlineStartColor\",\n \"MSBorderInlineStartColor\",\n \"OBorderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"MozBorderInlineStartStyle\",\n \"WebkitBorderInlineStartStyle\",\n \"MSBorderInlineStartStyle\",\n \"OBorderInlineStartStyle\",\n \"borderInlineStartWidth\",\n \"MozBorderInlineStartWidth\",\n \"WebkitBorderInlineStartWidth\",\n \"MSBorderInlineStartWidth\",\n \"OBorderInlineStartWidth\",\n \"borderLeft\",\n \"MozBorderLeft\",\n \"WebkitBorderLeft\",\n \"MSBorderLeft\",\n \"OBorderLeft\",\n \"borderLeftColor\",\n \"MozBorderLeftColor\",\n \"WebkitBorderLeftColor\",\n \"MSBorderLeftColor\",\n \"OBorderLeftColor\",\n \"borderLeftStyle\",\n \"MozBorderLeftStyle\",\n \"WebkitBorderLeftStyle\",\n \"MSBorderLeftStyle\",\n \"OBorderLeftStyle\",\n \"borderLeftWidth\",\n \"MozBorderLeftWidth\",\n \"WebkitBorderLeftWidth\",\n \"MSBorderLeftWidth\",\n \"OBorderLeftWidth\",\n \"borderRadius\",\n \"MozBorderRadius\",\n \"WebkitBorderRadius\",\n \"MSBorderRadius\",\n \"OBorderRadius\",\n \"borderRight\",\n \"MozBorderRight\",\n \"WebkitBorderRight\",\n \"MSBorderRight\",\n \"OBorderRight\",\n \"borderRightColor\",\n \"MozBorderRightColor\",\n \"WebkitBorderRightColor\",\n \"MSBorderRightColor\",\n \"OBorderRightColor\",\n \"borderRightStyle\",\n \"MozBorderRightStyle\",\n \"WebkitBorderRightStyle\",\n \"MSBorderRightStyle\",\n \"OBorderRightStyle\",\n \"borderRightWidth\",\n \"MozBorderRightWidth\",\n \"WebkitBorderRightWidth\",\n \"MSBorderRightWidth\",\n \"OBorderRightWidth\",\n \"borderSpacing\",\n \"MozBorderSpacing\",\n \"WebkitBorderSpacing\",\n \"MSBorderSpacing\",\n \"OBorderSpacing\",\n \"borderStyle\",\n \"MozBorderStyle\",\n \"WebkitBorderStyle\",\n \"MSBorderStyle\",\n \"OBorderStyle\",\n \"borderTop\",\n \"MozBorderTop\",\n \"WebkitBorderTop\",\n \"MSBorderTop\",\n \"OBorderTop\",\n \"borderTopColor\",\n \"MozBorderTopColor\",\n \"WebkitBorderTopColor\",\n \"MSBorderTopColor\",\n \"OBorderTopColor\",\n \"borderTopLeftRadius\",\n \"MozBorderTopLeftRadius\",\n \"WebkitBorderTopLeftRadius\",\n \"MSBorderTopLeftRadius\",\n \"OBorderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"MozBorderTopRightRadius\",\n \"WebkitBorderTopRightRadius\",\n \"MSBorderTopRightRadius\",\n \"OBorderTopRightRadius\",\n \"borderTopStyle\",\n \"MozBorderTopStyle\",\n \"WebkitBorderTopStyle\",\n \"MSBorderTopStyle\",\n \"OBorderTopStyle\",\n \"borderTopWidth\",\n \"MozBorderTopWidth\",\n \"WebkitBorderTopWidth\",\n \"MSBorderTopWidth\",\n \"OBorderTopWidth\",\n \"borderWidth\",\n \"MozBorderWidth\",\n \"WebkitBorderWidth\",\n \"MSBorderWidth\",\n \"OBorderWidth\",\n \"bottom\",\n \"MozBottom\",\n \"WebkitBottom\",\n \"MSBottom\",\n \"OBottom\",\n \"boxDecorationBreak\",\n \"MozBoxDecorationBreak\",\n \"WebkitBoxDecorationBreak\",\n \"MSBoxDecorationBreak\",\n \"OBoxDecorationBreak\",\n \"boxShadow\",\n \"MozBoxShadow\",\n \"WebkitBoxShadow\",\n \"MSBoxShadow\",\n \"OBoxShadow\",\n \"boxSizing\",\n \"MozBoxSizing\",\n \"WebkitBoxSizing\",\n \"MSBoxSizing\",\n \"OBoxSizing\",\n \"breakAfter\",\n \"MozBreakAfter\",\n \"WebkitBreakAfter\",\n \"MSBreakAfter\",\n \"OBreakAfter\",\n \"breakBefore\",\n \"MozBreakBefore\",\n \"WebkitBreakBefore\",\n \"MSBreakBefore\",\n \"OBreakBefore\",\n \"breakInside\",\n \"MozBreakInside\",\n \"WebkitBreakInside\",\n \"MSBreakInside\",\n \"OBreakInside\",\n \"captionSide\",\n \"MozCaptionSide\",\n \"WebkitCaptionSide\",\n \"MSCaptionSide\",\n \"OCaptionSide\",\n \"caretColor\",\n \"MozCaretColor\",\n \"WebkitCaretColor\",\n \"MSCaretColor\",\n \"OCaretColor\",\n \"ch\",\n \"MozCh\",\n \"WebkitCh\",\n \"MSCh\",\n \"OCh\",\n \"clear\",\n \"MozClear\",\n \"WebkitClear\",\n \"MSClear\",\n \"OClear\",\n \"clip\",\n \"MozClip\",\n \"WebkitClip\",\n \"MSClip\",\n \"OClip\",\n \"clipPath\",\n \"MozClipPath\",\n \"WebkitClipPath\",\n \"MSClipPath\",\n \"OClipPath\",\n \"cm\",\n \"MozCm\",\n \"WebkitCm\",\n \"MSCm\",\n \"OCm\",\n \"color\",\n \"MozColor\",\n \"WebkitColor\",\n \"MSColor\",\n \"OColor\",\n \"columnCount\",\n \"MozColumnCount\",\n \"WebkitColumnCount\",\n \"MSColumnCount\",\n \"OColumnCount\",\n \"columnFill\",\n \"MozColumnFill\",\n \"WebkitColumnFill\",\n \"MSColumnFill\",\n \"OColumnFill\",\n \"columnGap\",\n \"MozColumnGap\",\n \"WebkitColumnGap\",\n \"MSColumnGap\",\n \"OColumnGap\",\n \"columnRule\",\n \"MozColumnRule\",\n \"WebkitColumnRule\",\n \"MSColumnRule\",\n \"OColumnRule\",\n \"columnRuleColor\",\n \"MozColumnRuleColor\",\n \"WebkitColumnRuleColor\",\n \"MSColumnRuleColor\",\n \"OColumnRuleColor\",\n \"columnRuleStyle\",\n \"MozColumnRuleStyle\",\n \"WebkitColumnRuleStyle\",\n \"MSColumnRuleStyle\",\n \"OColumnRuleStyle\",\n \"columnRuleWidth\",\n \"MozColumnRuleWidth\",\n \"WebkitColumnRuleWidth\",\n \"MSColumnRuleWidth\",\n \"OColumnRuleWidth\",\n \"columnSpan\",\n \"MozColumnSpan\",\n \"WebkitColumnSpan\",\n \"MSColumnSpan\",\n \"OColumnSpan\",\n \"columnWidth\",\n \"MozColumnWidth\",\n \"WebkitColumnWidth\",\n \"MSColumnWidth\",\n \"OColumnWidth\",\n \"columns\",\n \"MozColumns\",\n \"WebkitColumns\",\n \"MSColumns\",\n \"OColumns\",\n \"content\",\n \"MozContent\",\n \"WebkitContent\",\n \"MSContent\",\n \"OContent\",\n \"counterIncrement\",\n \"MozCounterIncrement\",\n \"WebkitCounterIncrement\",\n \"MSCounterIncrement\",\n \"OCounterIncrement\",\n \"counterReset\",\n \"MozCounterReset\",\n \"WebkitCounterReset\",\n \"MSCounterReset\",\n \"OCounterReset\",\n \"cursor\",\n \"MozCursor\",\n \"WebkitCursor\",\n \"MSCursor\",\n \"OCursor\",\n \"deg\",\n \"MozDeg\",\n \"WebkitDeg\",\n \"MSDeg\",\n \"ODeg\",\n \"direction\",\n \"MozDirection\",\n \"WebkitDirection\",\n \"MSDirection\",\n \"ODirection\",\n \"display\",\n \"MozDisplay\",\n \"WebkitDisplay\",\n \"MSDisplay\",\n \"ODisplay\",\n \"dpcm\",\n \"MozDpcm\",\n \"WebkitDpcm\",\n \"MSDpcm\",\n \"ODpcm\",\n \"dpi\",\n \"MozDpi\",\n \"WebkitDpi\",\n \"MSDpi\",\n \"ODpi\",\n \"dppx\",\n \"MozDppx\",\n \"WebkitDppx\",\n \"MSDppx\",\n \"ODppx\",\n \"em\",\n \"MozEm\",\n \"WebkitEm\",\n \"MSEm\",\n \"OEm\",\n \"emptyCells\",\n \"MozEmptyCells\",\n \"WebkitEmptyCells\",\n \"MSEmptyCells\",\n \"OEmptyCells\",\n \"ex\",\n \"MozEx\",\n \"WebkitEx\",\n \"MSEx\",\n \"OEx\",\n \"filter\",\n \"MozFilter\",\n \"WebkitFilter\",\n \"MSFilter\",\n \"OFilter\",\n \"flexBasis\",\n \"MozFlexBasis\",\n \"WebkitFlexBasis\",\n \"MSFlexBasis\",\n \"OFlexBasis\",\n \"flexDirection\",\n \"MozFlexDirection\",\n \"WebkitFlexDirection\",\n \"MSFlexDirection\",\n \"OFlexDirection\",\n \"flexFlow\",\n \"MozFlexFlow\",\n \"WebkitFlexFlow\",\n \"MSFlexFlow\",\n \"OFlexFlow\",\n \"flexGrow\",\n \"MozFlexGrow\",\n \"WebkitFlexGrow\",\n \"MSFlexGrow\",\n \"OFlexGrow\",\n \"flexShrink\",\n \"MozFlexShrink\",\n \"WebkitFlexShrink\",\n \"MSFlexShrink\",\n \"OFlexShrink\",\n \"flexWrap\",\n \"MozFlexWrap\",\n \"WebkitFlexWrap\",\n \"MSFlexWrap\",\n \"OFlexWrap\",\n \"float\",\n \"MozFloat\",\n \"WebkitFloat\",\n \"MSFloat\",\n \"OFloat\",\n \"font\",\n \"MozFont\",\n \"WebkitFont\",\n \"MSFont\",\n \"OFont\",\n \"fontFamily\",\n \"MozFontFamily\",\n \"WebkitFontFamily\",\n \"MSFontFamily\",\n \"OFontFamily\",\n \"fontFeatureSettings\",\n \"MozFontFeatureSettings\",\n \"WebkitFontFeatureSettings\",\n \"MSFontFeatureSettings\",\n \"OFontFeatureSettings\",\n \"fontKerning\",\n \"MozFontKerning\",\n \"WebkitFontKerning\",\n \"MSFontKerning\",\n \"OFontKerning\",\n \"fontLanguageOverride\",\n \"MozFontLanguageOverride\",\n \"WebkitFontLanguageOverride\",\n \"MSFontLanguageOverride\",\n \"OFontLanguageOverride\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"fontSizeAdjust\",\n \"MozFontSizeAdjust\",\n \"WebkitFontSizeAdjust\",\n \"MSFontSizeAdjust\",\n \"OFontSizeAdjust\",\n \"fontStretch\",\n \"MozFontStretch\",\n \"WebkitFontStretch\",\n \"MSFontStretch\",\n \"OFontStretch\",\n \"fontStyle\",\n \"MozFontStyle\",\n \"WebkitFontStyle\",\n \"MSFontStyle\",\n \"OFontStyle\",\n \"fontSynthesis\",\n \"MozFontSynthesis\",\n \"WebkitFontSynthesis\",\n \"MSFontSynthesis\",\n \"OFontSynthesis\",\n \"fontVariant\",\n \"MozFontVariant\",\n \"WebkitFontVariant\",\n \"MSFontVariant\",\n \"OFontVariant\",\n \"fontVariantAlternates\",\n \"MozFontVariantAlternates\",\n \"WebkitFontVariantAlternates\",\n \"MSFontVariantAlternates\",\n \"OFontVariantAlternates\",\n \"fontVariantCaps\",\n \"MozFontVariantCaps\",\n \"WebkitFontVariantCaps\",\n \"MSFontVariantCaps\",\n \"OFontVariantCaps\",\n \"fontVariantEastAsian\",\n \"MozFontVariantEastAsian\",\n \"WebkitFontVariantEastAsian\",\n \"MSFontVariantEastAsian\",\n \"OFontVariantEastAsian\",\n \"fontVariantLigatures\",\n \"MozFontVariantLigatures\",\n \"WebkitFontVariantLigatures\",\n \"MSFontVariantLigatures\",\n \"OFontVariantLigatures\",\n \"fontVariantNumeric\",\n \"MozFontVariantNumeric\",\n \"WebkitFontVariantNumeric\",\n \"MSFontVariantNumeric\",\n \"OFontVariantNumeric\",\n \"fontVariantPosition\",\n \"MozFontVariantPosition\",\n \"WebkitFontVariantPosition\",\n \"MSFontVariantPosition\",\n \"OFontVariantPosition\",\n \"fontWeight\",\n \"MozFontWeight\",\n \"WebkitFontWeight\",\n \"MSFontWeight\",\n \"OFontWeight\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"grad\",\n \"MozGrad\",\n \"WebkitGrad\",\n \"MSGrad\",\n \"OGrad\",\n \"grid\",\n \"MozGrid\",\n \"WebkitGrid\",\n \"MSGrid\",\n \"OGrid\",\n \"gridArea\",\n \"MozGridArea\",\n \"WebkitGridArea\",\n \"MSGridArea\",\n \"OGridArea\",\n \"gridAutoColumns\",\n \"MozGridAutoColumns\",\n \"WebkitGridAutoColumns\",\n \"MSGridAutoColumns\",\n \"OGridAutoColumns\",\n \"gridAutoFlow\",\n \"MozGridAutoFlow\",\n \"WebkitGridAutoFlow\",\n \"MSGridAutoFlow\",\n \"OGridAutoFlow\",\n \"gridAutoRows\",\n \"MozGridAutoRows\",\n \"WebkitGridAutoRows\",\n \"MSGridAutoRows\",\n \"OGridAutoRows\",\n \"gridColumn\",\n \"MozGridColumn\",\n \"WebkitGridColumn\",\n \"MSGridColumn\",\n \"OGridColumn\",\n \"gridColumnEnd\",\n \"MozGridColumnEnd\",\n \"WebkitGridColumnEnd\",\n \"MSGridColumnEnd\",\n \"OGridColumnEnd\",\n \"gridColumnGap\",\n \"MozGridColumnGap\",\n \"WebkitGridColumnGap\",\n \"MSGridColumnGap\",\n \"OGridColumnGap\",\n \"gridColumnStart\",\n \"MozGridColumnStart\",\n \"WebkitGridColumnStart\",\n \"MSGridColumnStart\",\n \"OGridColumnStart\",\n \"gridGap\",\n \"MozGridGap\",\n \"WebkitGridGap\",\n \"MSGridGap\",\n \"OGridGap\",\n \"gridRow\",\n \"MozGridRow\",\n \"WebkitGridRow\",\n \"MSGridRow\",\n \"OGridRow\",\n \"gridRowEnd\",\n \"MozGridRowEnd\",\n \"WebkitGridRowEnd\",\n \"MSGridRowEnd\",\n \"OGridRowEnd\",\n \"gridRowGap\",\n \"MozGridRowGap\",\n \"WebkitGridRowGap\",\n \"MSGridRowGap\",\n \"OGridRowGap\",\n \"gridRowStart\",\n \"MozGridRowStart\",\n \"WebkitGridRowStart\",\n \"MSGridRowStart\",\n \"OGridRowStart\",\n \"gridTemplate\",\n \"MozGridTemplate\",\n \"WebkitGridTemplate\",\n \"MSGridTemplate\",\n \"OGridTemplate\",\n \"gridTemplateAreas\",\n \"MozGridTemplateAreas\",\n \"WebkitGridTemplateAreas\",\n \"MSGridTemplateAreas\",\n \"OGridTemplateAreas\",\n \"gridTemplateColumns\",\n \"MozGridTemplateColumns\",\n \"WebkitGridTemplateColumns\",\n \"MSGridTemplateColumns\",\n \"OGridTemplateColumns\",\n \"gridTemplateRows\",\n \"MozGridTemplateRows\",\n \"WebkitGridTemplateRows\",\n \"MSGridTemplateRows\",\n \"OGridTemplateRows\",\n \"height\",\n \"MozHeight\",\n \"WebkitHeight\",\n \"MSHeight\",\n \"OHeight\",\n \"hyphens\",\n \"MozHyphens\",\n \"WebkitHyphens\",\n \"MSHyphens\",\n \"OHyphens\",\n \"hz\",\n \"MozHz\",\n \"WebkitHz\",\n \"MSHz\",\n \"OHz\",\n \"imageOrientation\",\n \"MozImageOrientation\",\n \"WebkitImageOrientation\",\n \"MSImageOrientation\",\n \"OImageOrientation\",\n \"imageRendering\",\n \"MozImageRendering\",\n \"WebkitImageRendering\",\n \"MSImageRendering\",\n \"OImageRendering\",\n \"imageResolution\",\n \"MozImageResolution\",\n \"WebkitImageResolution\",\n \"MSImageResolution\",\n \"OImageResolution\",\n \"imeMode\",\n \"MozImeMode\",\n \"WebkitImeMode\",\n \"MSImeMode\",\n \"OImeMode\",\n \"in\",\n \"MozIn\",\n \"WebkitIn\",\n \"MSIn\",\n \"OIn\",\n \"inherit\",\n \"MozInherit\",\n \"WebkitInherit\",\n \"MSInherit\",\n \"OInherit\",\n \"initial\",\n \"MozInitial\",\n \"WebkitInitial\",\n \"MSInitial\",\n \"OInitial\",\n \"inlineSize\",\n \"MozInlineSize\",\n \"WebkitInlineSize\",\n \"MSInlineSize\",\n \"OInlineSize\",\n \"isolation\",\n \"MozIsolation\",\n \"WebkitIsolation\",\n \"MSIsolation\",\n \"OIsolation\",\n \"justifyContent\",\n \"MozJustifyContent\",\n \"WebkitJustifyContent\",\n \"MSJustifyContent\",\n \"OJustifyContent\",\n \"khz\",\n \"MozKhz\",\n \"WebkitKhz\",\n \"MSKhz\",\n \"OKhz\",\n \"left\",\n \"MozLeft\",\n \"WebkitLeft\",\n \"MSLeft\",\n \"OLeft\",\n \"letterSpacing\",\n \"MozLetterSpacing\",\n \"WebkitLetterSpacing\",\n \"MSLetterSpacing\",\n \"OLetterSpacing\",\n \"lineBreak\",\n \"MozLineBreak\",\n \"WebkitLineBreak\",\n \"MSLineBreak\",\n \"OLineBreak\",\n \"lineHeight\",\n \"MozLineHeight\",\n \"WebkitLineHeight\",\n \"MSLineHeight\",\n \"OLineHeight\",\n \"listStyle\",\n \"MozListStyle\",\n \"WebkitListStyle\",\n \"MSListStyle\",\n \"OListStyle\",\n \"listStyleImage\",\n \"MozListStyleImage\",\n \"WebkitListStyleImage\",\n \"MSListStyleImage\",\n \"OListStyleImage\",\n \"listStylePosition\",\n \"MozListStylePosition\",\n \"WebkitListStylePosition\",\n \"MSListStylePosition\",\n \"OListStylePosition\",\n \"listStyleType\",\n \"MozListStyleType\",\n \"WebkitListStyleType\",\n \"MSListStyleType\",\n \"OListStyleType\",\n \"margin\",\n \"MozMargin\",\n \"WebkitMargin\",\n \"MSMargin\",\n \"OMargin\",\n \"marginBlockEnd\",\n \"MozMarginBlockEnd\",\n \"WebkitMarginBlockEnd\",\n \"MSMarginBlockEnd\",\n \"OMarginBlockEnd\",\n \"marginBlockStart\",\n \"MozMarginBlockStart\",\n \"WebkitMarginBlockStart\",\n \"MSMarginBlockStart\",\n \"OMarginBlockStart\",\n \"marginBottom\",\n \"MozMarginBottom\",\n \"WebkitMarginBottom\",\n \"MSMarginBottom\",\n \"OMarginBottom\",\n \"marginInlineEnd\",\n \"MozMarginInlineEnd\",\n \"WebkitMarginInlineEnd\",\n \"MSMarginInlineEnd\",\n \"OMarginInlineEnd\",\n \"marginInlineStart\",\n \"MozMarginInlineStart\",\n \"WebkitMarginInlineStart\",\n \"MSMarginInlineStart\",\n \"OMarginInlineStart\",\n \"marginLeft\",\n \"MozMarginLeft\",\n \"WebkitMarginLeft\",\n \"MSMarginLeft\",\n \"OMarginLeft\",\n \"marginRight\",\n \"MozMarginRight\",\n \"WebkitMarginRight\",\n \"MSMarginRight\",\n \"OMarginRight\",\n \"marginTop\",\n \"MozMarginTop\",\n \"WebkitMarginTop\",\n \"MSMarginTop\",\n \"OMarginTop\",\n \"mask\",\n \"MozMask\",\n \"WebkitMask\",\n \"MSMask\",\n \"OMask\",\n \"maskClip\",\n \"MozMaskClip\",\n \"WebkitMaskClip\",\n \"MSMaskClip\",\n \"OMaskClip\",\n \"maskComposite\",\n \"MozMaskComposite\",\n \"WebkitMaskComposite\",\n \"MSMaskComposite\",\n \"OMaskComposite\",\n \"maskImage\",\n \"MozMaskImage\",\n \"WebkitMaskImage\",\n \"MSMaskImage\",\n \"OMaskImage\",\n \"maskMode\",\n \"MozMaskMode\",\n \"WebkitMaskMode\",\n \"MSMaskMode\",\n \"OMaskMode\",\n \"maskOrigin\",\n \"MozMaskOrigin\",\n \"WebkitMaskOrigin\",\n \"MSMaskOrigin\",\n \"OMaskOrigin\",\n \"maskPosition\",\n \"MozMaskPosition\",\n \"WebkitMaskPosition\",\n \"MSMaskPosition\",\n \"OMaskPosition\",\n \"maskRepeat\",\n \"MozMaskRepeat\",\n \"WebkitMaskRepeat\",\n \"MSMaskRepeat\",\n \"OMaskRepeat\",\n \"maskSize\",\n \"MozMaskSize\",\n \"WebkitMaskSize\",\n \"MSMaskSize\",\n \"OMaskSize\",\n \"maskType\",\n \"MozMaskType\",\n \"WebkitMaskType\",\n \"MSMaskType\",\n \"OMaskType\",\n \"maxHeight\",\n \"MozMaxHeight\",\n \"WebkitMaxHeight\",\n \"MSMaxHeight\",\n \"OMaxHeight\",\n \"maxWidth\",\n \"MozMaxWidth\",\n \"WebkitMaxWidth\",\n \"MSMaxWidth\",\n \"OMaxWidth\",\n \"minBlockSize\",\n \"MozMinBlockSize\",\n \"WebkitMinBlockSize\",\n \"MSMinBlockSize\",\n \"OMinBlockSize\",\n \"minHeight\",\n \"MozMinHeight\",\n \"WebkitMinHeight\",\n \"MSMinHeight\",\n \"OMinHeight\",\n \"minInlineSize\",\n \"MozMinInlineSize\",\n \"WebkitMinInlineSize\",\n \"MSMinInlineSize\",\n \"OMinInlineSize\",\n \"minWidth\",\n \"MozMinWidth\",\n \"WebkitMinWidth\",\n \"MSMinWidth\",\n \"OMinWidth\",\n \"mixBlendMode\",\n \"MozMixBlendMode\",\n \"WebkitMixBlendMode\",\n \"MSMixBlendMode\",\n \"OMixBlendMode\",\n \"mm\",\n \"MozMm\",\n \"WebkitMm\",\n \"MSMm\",\n \"OMm\",\n \"ms\",\n \"MozMs\",\n \"WebkitMs\",\n \"MSMs\",\n \"OMs\",\n \"objectFit\",\n \"MozObjectFit\",\n \"WebkitObjectFit\",\n \"MSObjectFit\",\n \"OObjectFit\",\n \"objectPosition\",\n \"MozObjectPosition\",\n \"WebkitObjectPosition\",\n \"MSObjectPosition\",\n \"OObjectPosition\",\n \"offsetBlockEnd\",\n \"MozOffsetBlockEnd\",\n \"WebkitOffsetBlockEnd\",\n \"MSOffsetBlockEnd\",\n \"OOffsetBlockEnd\",\n \"offsetBlockStart\",\n \"MozOffsetBlockStart\",\n \"WebkitOffsetBlockStart\",\n \"MSOffsetBlockStart\",\n \"OOffsetBlockStart\",\n \"offsetInlineEnd\",\n \"MozOffsetInlineEnd\",\n \"WebkitOffsetInlineEnd\",\n \"MSOffsetInlineEnd\",\n \"OOffsetInlineEnd\",\n \"offsetInlineStart\",\n \"MozOffsetInlineStart\",\n \"WebkitOffsetInlineStart\",\n \"MSOffsetInlineStart\",\n \"OOffsetInlineStart\",\n \"opacity\",\n \"MozOpacity\",\n \"WebkitOpacity\",\n \"MSOpacity\",\n \"OOpacity\",\n \"order\",\n \"MozOrder\",\n \"WebkitOrder\",\n \"MSOrder\",\n \"OOrder\",\n \"orphans\",\n \"MozOrphans\",\n \"WebkitOrphans\",\n \"MSOrphans\",\n \"OOrphans\",\n \"outline\",\n \"MozOutline\",\n \"WebkitOutline\",\n \"MSOutline\",\n \"OOutline\",\n \"outlineColor\",\n \"MozOutlineColor\",\n \"WebkitOutlineColor\",\n \"MSOutlineColor\",\n \"OOutlineColor\",\n \"outlineOffset\",\n \"MozOutlineOffset\",\n \"WebkitOutlineOffset\",\n \"MSOutlineOffset\",\n \"OOutlineOffset\",\n \"outlineStyle\",\n \"MozOutlineStyle\",\n \"WebkitOutlineStyle\",\n \"MSOutlineStyle\",\n \"OOutlineStyle\",\n \"outlineWidth\",\n \"MozOutlineWidth\",\n \"WebkitOutlineWidth\",\n \"MSOutlineWidth\",\n \"OOutlineWidth\",\n \"overflow\",\n \"MozOverflow\",\n \"WebkitOverflow\",\n \"MSOverflow\",\n \"OOverflow\",\n \"overflowWrap\",\n \"MozOverflowWrap\",\n \"WebkitOverflowWrap\",\n \"MSOverflowWrap\",\n \"OOverflowWrap\",\n \"overflowX\",\n \"MozOverflowX\",\n \"WebkitOverflowX\",\n \"MSOverflowX\",\n \"OOverflowX\",\n \"overflowY\",\n \"MozOverflowY\",\n \"WebkitOverflowY\",\n \"MSOverflowY\",\n \"OOverflowY\",\n \"padding\",\n \"MozPadding\",\n \"WebkitPadding\",\n \"MSPadding\",\n \"OPadding\",\n \"paddingBlockEnd\",\n \"MozPaddingBlockEnd\",\n \"WebkitPaddingBlockEnd\",\n \"MSPaddingBlockEnd\",\n \"OPaddingBlockEnd\",\n \"paddingBlockStart\",\n \"MozPaddingBlockStart\",\n \"WebkitPaddingBlockStart\",\n \"MSPaddingBlockStart\",\n \"OPaddingBlockStart\",\n \"paddingBottom\",\n \"MozPaddingBottom\",\n \"WebkitPaddingBottom\",\n \"MSPaddingBottom\",\n \"OPaddingBottom\",\n \"paddingInlineEnd\",\n \"MozPaddingInlineEnd\",\n \"WebkitPaddingInlineEnd\",\n \"MSPaddingInlineEnd\",\n \"OPaddingInlineEnd\",\n \"paddingInlineStart\",\n \"MozPaddingInlineStart\",\n \"WebkitPaddingInlineStart\",\n \"MSPaddingInlineStart\",\n \"OPaddingInlineStart\",\n \"paddingLeft\",\n \"MozPaddingLeft\",\n \"WebkitPaddingLeft\",\n \"MSPaddingLeft\",\n \"OPaddingLeft\",\n \"paddingRight\",\n \"MozPaddingRight\",\n \"WebkitPaddingRight\",\n \"MSPaddingRight\",\n \"OPaddingRight\",\n \"paddingTop\",\n \"MozPaddingTop\",\n \"WebkitPaddingTop\",\n \"MSPaddingTop\",\n \"OPaddingTop\",\n \"pageBreakAfter\",\n \"MozPageBreakAfter\",\n \"WebkitPageBreakAfter\",\n \"MSPageBreakAfter\",\n \"OPageBreakAfter\",\n \"pageBreakBefore\",\n \"MozPageBreakBefore\",\n \"WebkitPageBreakBefore\",\n \"MSPageBreakBefore\",\n \"OPageBreakBefore\",\n \"pageBreakInside\",\n \"MozPageBreakInside\",\n \"WebkitPageBreakInside\",\n \"MSPageBreakInside\",\n \"OPageBreakInside\",\n \"pc\",\n \"MozPc\",\n \"WebkitPc\",\n \"MSPc\",\n \"OPc\",\n \"perspective\",\n \"MozPerspective\",\n \"WebkitPerspective\",\n \"MSPerspective\",\n \"OPerspective\",\n \"perspectiveOrigin\",\n \"MozPerspectiveOrigin\",\n \"WebkitPerspectiveOrigin\",\n \"MSPerspectiveOrigin\",\n \"OPerspectiveOrigin\",\n \"pointerEvents\",\n \"MozPointerEvents\",\n \"WebkitPointerEvents\",\n \"MSPointerEvents\",\n \"OPointerEvents\",\n \"position\",\n \"MozPosition\",\n \"WebkitPosition\",\n \"MSPosition\",\n \"OPosition\",\n \"pt\",\n \"MozPt\",\n \"WebkitPt\",\n \"MSPt\",\n \"OPt\",\n \"px\",\n \"MozPx\",\n \"WebkitPx\",\n \"MSPx\",\n \"OPx\",\n \"q\",\n \"MozQ\",\n \"WebkitQ\",\n \"MSQ\",\n \"OQ\",\n \"quotes\",\n \"MozQuotes\",\n \"WebkitQuotes\",\n \"MSQuotes\",\n \"OQuotes\",\n \"rad\",\n \"MozRad\",\n \"WebkitRad\",\n \"MSRad\",\n \"ORad\",\n \"rem\",\n \"MozRem\",\n \"WebkitRem\",\n \"MSRem\",\n \"ORem\",\n \"resize\",\n \"MozResize\",\n \"WebkitResize\",\n \"MSResize\",\n \"OResize\",\n \"revert\",\n \"MozRevert\",\n \"WebkitRevert\",\n \"MSRevert\",\n \"ORevert\",\n \"right\",\n \"MozRight\",\n \"WebkitRight\",\n \"MSRight\",\n \"ORight\",\n \"rubyAlign\",\n \"MozRubyAlign\",\n \"WebkitRubyAlign\",\n \"MSRubyAlign\",\n \"ORubyAlign\",\n \"rubyMerge\",\n \"MozRubyMerge\",\n \"WebkitRubyMerge\",\n \"MSRubyMerge\",\n \"ORubyMerge\",\n \"rubyPosition\",\n \"MozRubyPosition\",\n \"WebkitRubyPosition\",\n \"MSRubyPosition\",\n \"ORubyPosition\",\n \"s\",\n \"MozS\",\n \"WebkitS\",\n \"MSS\",\n \"OS\",\n \"scrollBehavior\",\n \"MozScrollBehavior\",\n \"WebkitScrollBehavior\",\n \"MSScrollBehavior\",\n \"OScrollBehavior\",\n \"scrollSnapCoordinate\",\n \"MozScrollSnapCoordinate\",\n \"WebkitScrollSnapCoordinate\",\n \"MSScrollSnapCoordinate\",\n \"OScrollSnapCoordinate\",\n \"scrollSnapDestination\",\n \"MozScrollSnapDestination\",\n \"WebkitScrollSnapDestination\",\n \"MSScrollSnapDestination\",\n \"OScrollSnapDestination\",\n \"scrollSnapType\",\n \"MozScrollSnapType\",\n \"WebkitScrollSnapType\",\n \"MSScrollSnapType\",\n \"OScrollSnapType\",\n \"shapeImageThreshold\",\n \"MozShapeImageThreshold\",\n \"WebkitShapeImageThreshold\",\n \"MSShapeImageThreshold\",\n \"OShapeImageThreshold\",\n \"shapeMargin\",\n \"MozShapeMargin\",\n \"WebkitShapeMargin\",\n \"MSShapeMargin\",\n \"OShapeMargin\",\n \"shapeOutside\",\n \"MozShapeOutside\",\n \"WebkitShapeOutside\",\n \"MSShapeOutside\",\n \"OShapeOutside\",\n \"tabSize\",\n \"MozTabSize\",\n \"WebkitTabSize\",\n \"MSTabSize\",\n \"OTabSize\",\n \"tableLayout\",\n \"MozTableLayout\",\n \"WebkitTableLayout\",\n \"MSTableLayout\",\n \"OTableLayout\",\n \"textAlign\",\n \"MozTextAlign\",\n \"WebkitTextAlign\",\n \"MSTextAlign\",\n \"OTextAlign\",\n \"textAlignLast\",\n \"MozTextAlignLast\",\n \"WebkitTextAlignLast\",\n \"MSTextAlignLast\",\n \"OTextAlignLast\",\n \"textCombineUpright\",\n \"MozTextCombineUpright\",\n \"WebkitTextCombineUpright\",\n \"MSTextCombineUpright\",\n \"OTextCombineUpright\",\n \"textDecoration\",\n \"MozTextDecoration\",\n \"WebkitTextDecoration\",\n \"MSTextDecoration\",\n \"OTextDecoration\",\n \"textDecorationColor\",\n \"MozTextDecorationColor\",\n \"WebkitTextDecorationColor\",\n \"MSTextDecorationColor\",\n \"OTextDecorationColor\",\n \"textDecorationLine\",\n \"MozTextDecorationLine\",\n \"WebkitTextDecorationLine\",\n \"MSTextDecorationLine\",\n \"OTextDecorationLine\",\n \"textDecorationStyle\",\n \"MozTextDecorationStyle\",\n \"WebkitTextDecorationStyle\",\n \"MSTextDecorationStyle\",\n \"OTextDecorationStyle\",\n \"textEmphasis\",\n \"MozTextEmphasis\",\n \"WebkitTextEmphasis\",\n \"MSTextEmphasis\",\n \"OTextEmphasis\",\n \"textEmphasisColor\",\n \"MozTextEmphasisColor\",\n \"WebkitTextEmphasisColor\",\n \"MSTextEmphasisColor\",\n \"OTextEmphasisColor\",\n \"textEmphasisPosition\",\n \"MozTextEmphasisPosition\",\n \"WebkitTextEmphasisPosition\",\n \"MSTextEmphasisPosition\",\n \"OTextEmphasisPosition\",\n \"textEmphasisStyle\",\n \"MozTextEmphasisStyle\",\n \"WebkitTextEmphasisStyle\",\n \"MSTextEmphasisStyle\",\n \"OTextEmphasisStyle\",\n \"textIndent\",\n \"MozTextIndent\",\n \"WebkitTextIndent\",\n \"MSTextIndent\",\n \"OTextIndent\",\n \"textOrientation\",\n \"MozTextOrientation\",\n \"WebkitTextOrientation\",\n \"MSTextOrientation\",\n \"OTextOrientation\",\n \"textOverflow\",\n \"MozTextOverflow\",\n \"WebkitTextOverflow\",\n \"MSTextOverflow\",\n \"OTextOverflow\",\n \"textRendering\",\n \"MozTextRendering\",\n \"WebkitTextRendering\",\n \"MSTextRendering\",\n \"OTextRendering\",\n \"textShadow\",\n \"MozTextShadow\",\n \"WebkitTextShadow\",\n \"MSTextShadow\",\n \"OTextShadow\",\n \"textTransform\",\n \"MozTextTransform\",\n \"WebkitTextTransform\",\n \"MSTextTransform\",\n \"OTextTransform\",\n \"textUnderlinePosition\",\n \"MozTextUnderlinePosition\",\n \"WebkitTextUnderlinePosition\",\n \"MSTextUnderlinePosition\",\n \"OTextUnderlinePosition\",\n \"top\",\n \"MozTop\",\n \"WebkitTop\",\n \"MSTop\",\n \"OTop\",\n \"touchAction\",\n \"MozTouchAction\",\n \"WebkitTouchAction\",\n \"MSTouchAction\",\n \"OTouchAction\",\n \"transform\",\n \"MozTransform\",\n \"WebkitTransform\",\n \"msTransform\",\n \"OTransform\",\n \"transformBox\",\n \"MozTransformBox\",\n \"WebkitTransformBox\",\n \"MSTransformBox\",\n \"OTransformBox\",\n \"transformOrigin\",\n \"MozTransformOrigin\",\n \"WebkitTransformOrigin\",\n \"MSTransformOrigin\",\n \"OTransformOrigin\",\n \"transformStyle\",\n \"MozTransformStyle\",\n \"WebkitTransformStyle\",\n \"MSTransformStyle\",\n \"OTransformStyle\",\n \"transition\",\n \"MozTransition\",\n \"WebkitTransition\",\n \"MSTransition\",\n \"OTransition\",\n \"transitionDelay\",\n \"MozTransitionDelay\",\n \"WebkitTransitionDelay\",\n \"MSTransitionDelay\",\n \"OTransitionDelay\",\n \"transitionDuration\",\n \"MozTransitionDuration\",\n \"WebkitTransitionDuration\",\n \"MSTransitionDuration\",\n \"OTransitionDuration\",\n \"transitionProperty\",\n \"MozTransitionProperty\",\n \"WebkitTransitionProperty\",\n \"MSTransitionProperty\",\n \"OTransitionProperty\",\n \"transitionTimingFunction\",\n \"MozTransitionTimingFunction\",\n \"WebkitTransitionTimingFunction\",\n \"MSTransitionTimingFunction\",\n \"OTransitionTimingFunction\",\n \"turn\",\n \"MozTurn\",\n \"WebkitTurn\",\n \"MSTurn\",\n \"OTurn\",\n \"unicodeBidi\",\n \"MozUnicodeBidi\",\n \"WebkitUnicodeBidi\",\n \"MSUnicodeBidi\",\n \"OUnicodeBidi\",\n \"unset\",\n \"MozUnset\",\n \"WebkitUnset\",\n \"MSUnset\",\n \"OUnset\",\n \"verticalAlign\",\n \"MozVerticalAlign\",\n \"WebkitVerticalAlign\",\n \"MSVerticalAlign\",\n \"OVerticalAlign\",\n \"vh\",\n \"MozVh\",\n \"WebkitVh\",\n \"MSVh\",\n \"OVh\",\n \"visibility\",\n \"MozVisibility\",\n \"WebkitVisibility\",\n \"MSVisibility\",\n \"OVisibility\",\n \"vmax\",\n \"MozVmax\",\n \"WebkitVmax\",\n \"MSVmax\",\n \"OVmax\",\n \"vmin\",\n \"MozVmin\",\n \"WebkitVmin\",\n \"MSVmin\",\n \"OVmin\",\n \"vw\",\n \"MozVw\",\n \"WebkitVw\",\n \"MSVw\",\n \"OVw\",\n \"whiteSpace\",\n \"MozWhiteSpace\",\n \"WebkitWhiteSpace\",\n \"MSWhiteSpace\",\n \"OWhiteSpace\",\n \"widows\",\n \"MozWidows\",\n \"WebkitWidows\",\n \"MSWidows\",\n \"OWidows\",\n \"width\",\n \"MozWidth\",\n \"WebkitWidth\",\n \"MSWidth\",\n \"OWidth\",\n \"willChange\",\n \"MozWillChange\",\n \"WebkitWillChange\",\n \"MSWillChange\",\n \"OWillChange\",\n \"wordBreak\",\n \"MozWordBreak\",\n \"WebkitWordBreak\",\n \"MSWordBreak\",\n \"OWordBreak\",\n \"wordSpacing\",\n \"MozWordSpacing\",\n \"WebkitWordSpacing\",\n \"MSWordSpacing\",\n \"OWordSpacing\",\n \"wordWrap\",\n \"MozWordWrap\",\n \"WebkitWordWrap\",\n \"MSWordWrap\",\n \"OWordWrap\",\n \"writingMode\",\n \"MozWritingMode\",\n \"WebkitWritingMode\",\n \"MSWritingMode\",\n \"OWritingMode\",\n \"zIndex\",\n \"MozZIndex\",\n \"WebkitZIndex\",\n \"MSZIndex\",\n \"OZIndex\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"flex\",\n \"MozFlex\",\n \"WebkitFlex\",\n \"MSFlex\",\n \"OFlex\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"overflowScrolling\",\n \"MozOverflowScrolling\",\n \"WebkitOverflowScrolling\",\n \"MSOverflowScrolling\",\n \"OOverflowScrolling\",\n \"userSelect\",\n \"MozUserSelect\",\n \"WebkitUserSelect\",\n \"MSUserSelect\",\n \"OUserSelect\"\n]\n","var properties = require('./css-properties.js');\nvar PropTypes = require('prop-types');\n\nmodule.exports = function(props, propName, componentName) {\n var styles = props[propName];\n if (!styles) {\n return;\n }\n\n var failures = [];\n Object.keys(styles).forEach(function(styleKey){\n if (properties.indexOf(styleKey) === -1) {\n failures.push(styleKey);\n }\n });\n if (failures.length) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + '. Has invalid keys ' + failures.join(', '));\n }\n};\n\nmodule.exports.isRequired = function(props, propName, componentName) {\n if (!props[propName]) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + ' is required');\n }\n return module.exports(props, propName, componentName);\n};\n\nmodule.exports.supportingArrays = PropTypes.oneOfType([\n PropTypes.arrayOf(module.exports),\n module.exports\n]);\n"],"names":["EditAnnotationWithPreview","props","valueProp","value","onChangeProp","onChange","initialValueProp","initialValue","valuePathProp","valuePath","hideReset","className","React","newValue","arguments","length","undefined","changed","editorSubTitle","concat","resetActions","push","text","action","_jsx","EditTextWithPreview","editorTitle","editorActions","editorLang","renderPreview","initialSplitSize","Markdown","isEmpty","getDefaultValue","componentWillMount","state","this","constructor","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","source","forEach","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_assertThisInitialized","self","ReferenceError","_createSuper","Derived","result","Super","Reflect","construct","sham","Proxy","Date","toString","call","e","_isNativeReflectConstruct","NewTarget","_possibleConstructorReturn","__suppressDeprecationWarning","Pane","_React$PureComponent","_super","_this$props","children","split","styleProps","style","size","eleRef","classes","flex","position","outline","width","height","display","assign","ref","join","propTypes","isRequired","defaultProps","RESIZER_DEFAULT_CLASSNAME","Resizer","_React$Component","_onClick","onClick","_onDoubleClick","onDoubleClick","_onMouseDown","onMouseDown","_onTouchEnd","onTouchEnd","_onTouchStart","onTouchStart","resizerClassName","role","event","preventDefault","unFocus","document","window","selection","empty","getSelection","removeAllRanges","getDefaultSize","defaultSize","minSize","maxSize","draggedSize","min","max","Infinity","Math","SplitPane","_this","onMouseMove","onTouchMove","onMouseUp","primary","initialSize","active","resized","pane1Size","pane2Size","instanceProps","addEventListener","getSizeUpdate","removeEventListener","eventWithTouches","touches","clientX","clientY","allowResize","onDragStarted","_this$props2","step","_this$state","isPrimaryFirst","pane1","pane2","ref2","node","node2","getBoundingClientRect","positionDelta","abs","sizeDelta","parseInt","getComputedStyle","order","newMaxSize","splitPane","newSize","newPosition","_this$props3","onDragFinished","_this$state2","_this2","_this$props4","onResizerClick","onResizerDoubleClick","paneClassName","pane1ClassName","pane2ClassName","paneStyle","pane1StyleProps","pane1Style","pane2StyleProps","pane2Style","resizerStyle","_this$state3","disabledClass","resizerClassNamesIncludingDefault","notNullChildren","toArray","c","removeNullChildren","overflow","MozUserSelect","WebkitUserSelect","msUserSelect","userSelect","flexDirection","left","right","bottom","minHeight","top","pane1Classes","pane2Classes","newState","isPanel1Primary","Component","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","name","newApiName","componentDidUpdate","maybeSnapshot","snapshot","polyfill","block","cn","TabbedContent","subTitle","actions","contentClassName","actionAsDropdown","growTitle","_jsxs","growable","title","Actions","useDropdown","Boolean","DropdownMenu","items","map","_ref","index","icon","Button","DEFAULT_SIZE","_ref$editorTitle","initialShowPreview","disabled","_React$useState","_React$useState2","_slicedToArray","showPreview","setShowPreview","togglePreview","showHideAction","Icon","awesome","_toConsumableArray","MonacoEditor","language","readOnly","sizeRef","divProps","_objectSpread","current","b","message","emptyTransformResponse","html","headings","logs","info","warn","error","transformMarkdown","_x","_transformMarkdown","_asyncToGenerator","_regeneratorRuntime","_callee2","allowHTML","_yield$wrapApiPromise","data","_context2","prev","next","wrapApiPromiseByToaster","axios","post","toasterName","skipSuccessToast","errorContent","sent","abrupt","t0","stop","useMarkdown","_ref2","_ref2$allowHTML","res","setResult","_transform","_callee","_context","transform","_ref3","_useMarkdown$result","dangerouslySetInnerHTML","__html","parseValue","rawValue","format","skipSpaces","replace","parseBytes","Number","formatValue","settings","hammer","NO_VALUE","toRawValue","NumberInputWithError","_len","args","Array","_key","parsedValue","NaN","errorFromValue","formattedValue","parsedError","onBlur","focused","onFocus","onKeyDown","keyCode","KeyCode","ENTER","onEnterKeyDown","parseFn","decimalPlaces","formatFn","digits","validator","defaultValue","_objectWithoutProperties","_excluded","showHint","showMin","isNaN","showMax","Tooltip","content","String","placement","_Fragment","hidePrettyValue","_this$props5","defaultValueClassName","TextInput","pin","bottomLineVisibility","_this$props6","propsValue","showDefaultValue","rest","getRestProps","view","hasClear","err","autoComplete","onUpdate","renderDefaultValue","isBottomLineVisible","renderPrettyValue","renderMinMaxHint","preciseInitialRawValue","formatted","v","_props$validator","integerOnly","NumberInput","_React$Component2","_super2","_len2","_key2","_this$props7","_excluded2","TimeDuration","formatTimeDuration","parseTimeDuration","MetaTable","makeItems","y","w","M","d","h","m","s","ms","parts","k","count","floor","matchAll","_step","_iterator","_createForOfIteratorHelper","n","done","_input$substring","match","input","type","substring","toAdd","moment","valueOf","f","label","hasErrorRenderer","validate","useEvent","callback","fnRef","memoFn","_fnRef$current","useInternalLayoutEffect","createElement","useLayoutUpdateEffect","deps","firstMountRef","useLayoutEffect","firstMount","useSafeState","destroyRef","setValue","updater","ignoreDestroy","hasValue","warned","preWarningFns","warning","valid","note","method","warningOnce","preMessage","fn","resetWarned","noteOnce","getOffset","getDirectionStyle","direction","offset","positionStyle","getIndex","isArray","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","C","D","E","F","G","H","I","J","K","L","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","altKey","ctrlKey","metaKey","isCharacterKey","navigator","userAgent","indexOf","includedStart","includedEnd","tabIndex","keyboard","styles","classNames","Handle","_getIndex","prefixCls","valueIndex","onStartMove","render","dragging","onOffsetChange","onChangeComplete","onMouseEnter","restProps","_React$useContext","range","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","handlePrefixCls","onInternalStartMove","which","onKeyUp","handleNode","handle","values","handleRender","activeHandleRender","draggingIndex","handlesRef","focus","_handlesRef$current$i","activeIndex","setActiveIndex","handleProps","pointerEvents","included","textCls","stopPropagation","marks","markPrefixCls","activeStyle","dotClassName","mergedStyle","dots","stepDots","dotSet","Set","mark","add","from","dotValue","start","end","replaceCls","trackPrefixCls","offsetStart","offsetEnd","track","startPoint","trackList","startValue","endValue","list","tracksNode","tracks","getPosition","pageX","pageY","Slider","_props$prefixCls","_props$disabled","_props$keyboard","autoFocus","_props$min","_props$max","_props$step","onBeforeChange","onAfterChange","_props$allowCross","allowCross","_props$pushable","pushable","draggableTrack","reverse","vertical","_props$included","trackStyle","handleStyle","railStyle","dotStyle","activeDotStyle","_props$tabIndex","containerRef","mergedMin","isFinite","mergedMax","mergedStep","mergedPush","markList","markObj","sort","a","_useOffset","formatRangeValue","val","formatStepValue","stepValue","round","getDecimal","num","maxDecimal","fixedValue","toFixed","formatNextValue","alignValues","closeValue","closeDist","alignValue","dist","offsetValue","mode","nextValue","originValue","targetDistValue","potentialValues","sign","compareValue","valueDist","potentialValue","cloneValues","offsetChangedValue","needPush","nextValues","pushNum","_offsetChangedValue","_i","_changed","_offsetChangedValue2","_i2","_changed2","_offsetChangedValue3","_i3","_changed3","_offsetChangedValue4","useOffset","_useOffset2","offsetValues","_useMergedState","defaultStateValue","option","postState","_useState","_useState2","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","_useState3","_useState4","prevValue","setPrevValue","useMergedState","_useMergedState2","rawValues","valueList","_valueList$","returnValues","pointCount","slice","_returnValues","rawValuesRef","getTriggerValue","triggerValues","triggerChange","cloneNextValues","obj1","obj2","shallow","refSet","deepEqual","level","circular","has","newLevel","every","finishChange","finishValue","_useDrag","draggingValue","setDraggingValue","_React$useState3","_React$useState4","setDraggingIndex","_React$useState5","_React$useState6","cacheValues","setCacheValues","_React$useState7","_React$useState8","originValues","setOriginValues","mouseMoveEventRef","mouseUpEventRef","flushValues","some","updateCacheValue","offsetPercent","maxStartOffset","maxEndOffset","formatStartValue","cloneCacheValues","offsetDist","sourceValues","targetValues","startValues","initialValues","_getPosition","startX","startY","offSetPercent","_getPosition2","moveX","moveY","offsetX","offsetY","_containerRef$current","_useDrag2","onStartDrag","changeToCloseValue","_document$activeEleme","_document$activeEleme2","activeElement","blur","keyboardValue","setKeyboardValue","mergedDraggableTrack","lastIndexOf","sortedCacheValues","_React$useMemo","_React$useMemo2","_containerRef$current2","contains","context","Provider","percent","rail","prepareValue","_ref$value","_ref$min","_ref$max","getParsedValue","textValue","parse","parseFloat","getTextValue","getClosestValue","low","hi","mid","LEFT_INFO_POINT_STYLE","marginLeft","verticalAlign","textAlign","RIGHT_INFO_POINT_STYLE","RangeInputPicker","_Component","wrapperRef","sliderRef","textInputInnerRef","debouncedCallOnUpdate","debouncedHandleOnAfterUpdate","callOnUpdate","currentValue","prepareChange","actualValue","handleOnAfterUpdate","onAfterUpdate","handleInputBlur","getDisplayTextValue","handleInputFocus","handleInputUpdate","patternRegex","test","handleKeyDown","onSubmit","handleSliderChange","handleWrapperClick","slider","handleInfoPointClick","handleOutsideClick","onOutsideClick","wrapper","renderItem","renderRangeItem","renderRangeInfoItems","_this$props5$infoPoin","infoPointsCount","_this$props5$minValue","minValue","_this$props5$maxValue","maxValue","infoItems","point","pointWidth","pointsRange","renderInfoItems","_this$props$infoPoint","_this$state4","points","mapInfoPoints","el","arr","ceil","range_","getInfoPoints","reduce","acc","debounce_","debounceDelay","getPreparedState","cancel","rangeInfoItems","rcSliderInfoItems","placeholder","pattern","controlProps","_this$state5","controlRef","get","RegExp","displayFormat","currentState","availableValues","_props$minValue","_props$maxValue","_ref$focused","_ref$textValue","v1","v2","prepareAvailableValues","PermissionsControl","handleCheckboxChange","permissionName","permissionsToSet","permissions","_toPropertyKey","disabledChoices","itemDisabled","indexOf_","Checkbox","checked","ReadableField","choices","_this3","map_","item","getChoiceName","renderPermissionCheckbox","renderChoices","choice","isEmpty_","AppStoreProvider","store","getWindowStore","ErrorBoundary","PathEditor","_props$defaultPath","suggestionsList","prevScope","hideSuggestions","inputFocus","selectedIndex","handleInputChange","path","inputChange","debounceLoading","setScope","callCallback","ARROW_DOWN","selectNextSuggestion","ARROW_UP","selectPrevSuggestion","handleEnterClick","ESCAPE","handleEscClick","handleTabClick","actualSuggestions","dynamic","iconType","completedPath","getCompletedPath","isSelected","iconName","getIconNameForType","targetPathBroken","selected","defaultPath","loadSuggestionsList","customFilter","getScope","_setFocus","removeActiveRequests","_this$input$current","offsetWidth","cb","params","prevIndex","getPrevSelectedIndex","nextIndex","getNextSelectedIndex","onApply","inputPath","currentTarget","suggestion","find_","_","_this$input$current2","onCancel","ReactList","itemRenderer","errorMessage","ErrorMessage","suggestionsError","showErrors","inputWidth","isVisible","renderError","renderSuggestions","Popup","onClose","anchorRef","open","renderInput","renderPopup","suggestions","filterByCurrentPath","connect","navigation","pathEditor","dispatch","getState","currentParentPath","_getState$navigation$","suggestionsPath","suggestionsLoaded","preparePath","FETCH_SUGGESTIONS","FAILURE","REQUEST","loadSuggestions","then","SUCCESS","pathEditorRequests","removeAllRequests","CANCELLED","usePoolTreesLoaded","useDispatch","loadPoolTreesIfNotLoaded","PoolTreesLoader","useDefaultPoolTree","defaultPoolTree","setDefaultPoolTree","loadDefaultPoolTree","WaitForDefaultPoolTree","DESCENDING","ColumnsWrapper","tabItems","orderedTabItems","keyColumns","onOrderChanged","newIndex","oldIndex","moved","id","setKeyColumns","setOrderedTabItems","toggleKeyColumn","sortBy_","onCloneColumn","setTimeout","onAddColumn","duplicate","renderKeyIcon","switcher","onMoveTab","newTabItems","itemToMove","splice","setColumnsOrder","activeTab","TabFieldVertical","sortable","wrapTo","prevTabItems","prevOrderedTabItems","tabItemsMap","forEach_","itemsToAdd","differenceBy_","_ref4","idsToRemove","_ref5","filtered","filter_","_ref6","_ref7","mapDispatchToProps","setCreateTableKeyColumns","setCreateTableColumnsOrder","ColumnsWrapperConnected","CreateTableTabField","_this2$props$onCreate","onCreateTab","userOptions","_tabItems","_toArray","tableSettings","restItems","renderAddColumnRow","virtualized","isTabControl","isTabControlVertical","OperationShortInfo","output_attribute_name","operation","setOperation","finishTimeRaw","ypath","getValue","timerId","setInterval","yt","getOperation","output_format","TYPED_OUTPUT_FORMAT","operation_id","clearInterval","cluster","useSelector","getCluster","output","code","startTime","diff","Link","url","OperationState","ClickableText","showErrorPopup","requests","CancelHelper","loadReplicas","getPath","transaction","getTransaction","LOAD_REPLICAS_REQUEST","ytApiV3Id","YTApiId","navigationRTReplicas","parameters","prepareRequest","cancellation","saveCancelToken","replicas","utils","mapToYSONList","LOAD_REPLICAS_SUCCESS","LOAD_REPLICAS_CANCELLED","LOAD_REPLICAS_FAILURE","performReplicaAction","auto_replica_tracker","replica","prevMode","prevAutoReplicaTracker","actionName","Promise","resolve","metrics","countEvent","navigation_replicated_table_replica_action","replicaId","replica_id","enabled","all","ytApiV3","alterTableReplica","set","abortAndReset","updateEnableReplicatedTableTracker","updateView","currentPath","UPDATE_VIEW","updatePath","cancelRequests","getAnnotation","loadTabletErrorsCount","saveCancelTokenSource","saveRequestCancellation","allowEffectiveExpiration","isSupportedEffectiveExpiration","requestParams","RumWrapper","RumMeasureTypes","NAVIGATION_PRELOAD","fetch","navigationAttributes","executeBatch","command","attributes","results","_results","attrs","_results$","opaqueAttrs","pathError","prepareAttributes","NODE_DOES_NOT_EXIST","getBatchError","effective_expiration","preparedAttributes","asHTML","trackVisit","navigationTrackVisit","navigation_path","user","getCurrentUserName","account","attributesWithTypes","dispatchAccountPermissions","isWriteable","isAccountUsable","checkPermissionsError","NAVIGATION_PARTIAL","TABLE_MOUNT_CONFIG","navigationTableMountConfig","_ref2$","isCancelled","fetchTableMountConfig","checkPermissions","permission","transaction_id","navigationCheckPermissions","writeAction","useAction","permissionDeniedError","getPermissionDeniedError","GENERIC_ERROR_MESSAGE","exists","isIdmSupported","details","setMode","_getTabs","getTabs","firstTab","SET_MODE","Tab","AUTO","onTransactionChange","dispatchEvent","Event","setTransaction","SET_TRANSACTION","clearTransaction","CLEAR_TRANSACTION","shouldUpdateContentMode","correctedPath","isPathAutoCorrectionSettingEnabled","autoCorrectPath","UPDATE_PATH","navigateParent","getParentPath","openCreateTableModal","parentDirectory","CREATE_TABLE_MODAL_DATA_FIELDS","initialState","showModal","closeCreateTableModal","toaster","Toaster","createTable","what","timeout","theme","genNavigationUrl","isCancel","_error$response","response","reject","columnsOrder","setCreateTableLockSuggestions","allColumnLockValues","columnLockSuggestions","uniq_","setCreateTableGroupSuggestions","allColumnGroups","columnGroupSuggestions","showTableSortModal","paths","setModalPartial","sortVisible","tableSortModalLoadColumns","hideTableSortModal","showTableMergeModal","mergeVisible","hideTableMergeModal","navigationTableSortLoadColumns","columns","suggestColumns","_v","toLower_","runTableSort","spec","makeUiMarker","Page","NAVIGATION","output_table_path","successContent","opId","JSON","successTitle","errorTitle","autoHide","loadStorageAttributes","outputPathAttributes","getNavigationTableOutputPathAttributes","attributesEditorGetAttrs","PathAttribute","OPTIMIZE_FOR","COMPRESSION_CODEC","ERASURE_CODEC","USE_SKIP_ERROR_FN_NODE_DOES_NOT_EXIST","entries","attribute","changeAttribute","_x2","runTableMerge","merge","cancelTokenSrc","isPathStaticTable","navigationIsStaticTable","cancelSrc","isDynamic","CypressNodeTypes","TABLE","cancelHelper","GET_ANNOTATION","navigationGetAnnotation","annotation","saveAnnotation","getNavigationAnnotation","SET_ANNOTATION_SAVING","SET_ANNOTATION_EDITING","getTabletErrors","GET_TABLET_ERRORS","ytApiV4Id","navigationTabletErrors","removeAllAndSave","tabletErrors","tabletErrorsPath","options","navigationTypeDynamic","navigationTabletErrorsCountReplicatedTable","_ref5$output","updateTabletErrrosCount","loadTabletErrorsCountOfReplicatedTable","navigationTabletErrorsCountDynTable","errorsCount","loadTabletErrorsCountOfDynamicTable","errorsCountPath","PARTITION","updateTabletErrorsViewMode","viewMode","getNavigationTableMountConfig","tableMountConfig","getTableMountConfigHasData","createSelector","getCreateTableModalState","modals","isCreateTableModalVisible","getColumnLockSuggestions","locks","getColumnGroupSuggestions","groups","getNavigationTableSortPaths","tableMergeSortModal","getNavigationTableAttributesValues","hasOwnProperty","getNavigationTableSortError","getNavigationTableSortVisible","getNavigationTableMergeVisible","getNavigationTableSortSuggestColumns","getNavigationPathAttributesLoadState","loadState","getNavigationPathAttributes","getNavigationIsWritable","getNavigationIsAccountUsable","getNavigationCheckPermissionsError","getMode","getNavigationPathAccount","getNavigationBreadcrumbs","getParsedPath","parsedPath","fragments","prepareNavigationState","prepareBrokenPath","unipika","prettyprint","break","indent","binaryAsHex","getNavigationRestorePath","getSupportedTabs","getTabletErrorsBackgroundCount","mountConfigHasData","tabletErrorsCount","isPipeline","pipeline_format_version","mountConfigVisible","alwaysSupportedTabs","compact_","CONTENT","FLOW","ATTRIBUTES","USER_ATTRIBUTES","MOUNT_CONFIG","ACL","getAccessLogBasePath","ACCESS_LOG","supportedByAttribute","SCHEMA","LOCKS","TABLETS","sorted","QUEUE","treat_as_queue_consumer","CONSUMER","supportedTabletErrors","getConfigData","allowTabletErrorsAPI","tablet_error_count","TABLET_ERRORS","supportedTabs","UIFactory","getNavigationExtraTabs","tab","isSupported","getAttributes","isACO","tabs","hotkey","scope","caption","counter","ANNOTATION","extraTab","indexOffset","tabToFind","before","after","newTab","getEffectiveMode","getNavigationAnnotationError","getNavigationAnnotationPath","getNavigationAnnotationSaving","saving","getNavigationAnnotationEditing","editing","getTabletErrorsViewMode","tabletErrorsBackground","getTabletErrorsLoadingStatus","loading","loaded","calculateLoadingStatus","errorCountPath","errorCount","errPath","errors","getTabletErrorsBackgroundCountNoticeVisbile","tablet_errors","replication_errors","calculateSubitemsCount","reduce_","subItems","getTabletErrorsReplicationErrors","errorsByTablet","errAcc","tablet_id","_typeof","YPath","toSubpath","stringify","parentPath","pathEditorLoadSuggestions","nodes","initialPath","child","prepared","childPath","decode","prepareSuggestions","toLowerCase","hasPartOfPath","startsWith","isShowCurrentChild","icons","string_node","int64_node","uint64_node","double_node","boolean_node","map_node","scheduler_pool_tree_map","scheduler_pool","tablet_cell","journal","table","table_dynamic","replicated_table","chaos_replicated_table","replication_log_table","file","topmost_transaction_map","transaction_map","nested_transaction","link","getBoolean","rootstock","portal_entrance","cell_node","cell_node_map","sys_node","access_control_object_namespace_map","access_control_object_namespace","access_control_object","TAB_PANEL_CLASSNAME","ACTIVE_CLASSNAME","GROUP_DATA_KEY","TAB_DATA_KEY","GLOBAL_SYMBOL","getEventTarget","isCustom","getClosestScrollableParent","getOffsetByScrollableParent","Selector","getShadowIncludingRoot","root","getRoot","nodeName","isShadowRoot","host","parentNode","module","exports","opt","composed","Symbol","for","composedPath","matches","element","scrollHeight","clientHeight","parentElement","scrollableParent","elementBounds","scrollableParentBounds","scrollTop","scrollLeft","TABS","TAB_LIST","TAB_PANEL","VERTICAL_TABS","_onSelectTabHandlers","_document","areVertical","areTabsVertical","isValidTabElement","getTabDataFromHTMLElement","_selectTab","currentTab","currentTabIndex","findIndex","selectTab","onSelectTab","handler","delete","selectTabById","querySelector","scrollToElement","scrollIntoView","targetTab","group","align","previousTargetOffset","updateHTML","fireSelectTabEvent","dataset","diplodocId","resetScroll","updateHTMLVertical","updateHTMLHorizontal","querySelectorAll","updated","elements","hasAttribute","classList","remove","removeAttribute","setAttribute","htmlElem","diplodocIsActive","tabList","tabsContainer","allTabs","allPanels","targetIndex","panel","isTargetTab","toggle","targetOffset","topDelta","leftDelta","scrollTopDelta","scrollLeftDelta","scrollTo","eventTab","currentTabId","closest","parent","diplodocVerticalTab","_a","_b","diplodocKey","diplodocGroup","tabEl","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","selector","getRootNode","th","Element","clipboard","writeText","textarea","textContent","body","append","select","execCommand","removeChild","copyToClipboard","innerText","svgButton","getAttribute","getElementById","beginElement","notifySuccess","matchTitle","HTMLElement","find","findTitleInPath","cutNode","toggleCut","TITLE","openClass","openDefinitionClass","isListenerNeeded","setDefinitionPosition","definitionElement","termElement","x","termX","termY","termRight","termLeft","termWidth","termHeight","termParent","termParentElement","termParentRight","termParentLeft","closeDefinition","termOnResize","relativeX","relativeY","offsetTop","definitionParent","definitionWidth","definitionParentLeft","definitionLeftCoordinate","getCoords","definitionOutOfScreenOnLeft","fitDefinitionDocument","clientWidth","dir","customHeaderTop","offsetLeft","openDefinition","getElementsByClassName","termId","term","definition","elem","box","docEl","documentElement","pageYOffset","pageXOffset","clientTop","clientLeft","termKey","definitionTemplate","cloneNode","firstChild","appendChild","createDefinitionElement","isTargetDefinitionContent","random","substr","setDefinitionId","hasOwn","arg","argType","inner","includes","default","properties","PropTypes","propName","failures","styleKey","supportingArrays","oneOfType","arrayOf"],"sourceRoot":""}
|