@ytsaurus/ui 1.62.0 → 1.63.1
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 +69 -69
- package/dist/public/build/css/7540.b48a154e.chunk.css +2 -0
- package/dist/public/build/css/7540.b48a154e.chunk.css.map +1 -0
- package/dist/public/build/css/{cluster-page-wrapper.0b62c90f.chunk.css → cluster-page-wrapper.0b6a786f.chunk.css} +2 -2
- package/dist/public/build/css/cluster-page-wrapper.0b6a786f.chunk.css.map +1 -0
- package/dist/public/build/css/{main.a99b07c5.css → main.070fd473.css} +2 -2
- package/dist/public/build/css/main.070fd473.css.map +1 -0
- package/dist/public/build/css/navigation.0a141599.chunk.css +2 -0
- package/dist/public/build/css/navigation.0a141599.chunk.css.map +1 -0
- package/dist/public/build/css/{system.17b114fc.chunk.css → system.221e5d53.chunk.css} +2 -2
- package/dist/public/build/css/{system.17b114fc.chunk.css.map → system.221e5d53.chunk.css.map} +1 -1
- package/dist/public/build/js/1110.a7382226.chunk.js +2 -0
- package/dist/public/build/js/1110.a7382226.chunk.js.map +1 -0
- package/dist/public/build/js/1394.011da2d1.chunk.js +2 -0
- package/dist/public/build/js/1394.011da2d1.chunk.js.map +1 -0
- package/dist/public/build/js/2447.35b478a9.chunk.js +2 -0
- package/dist/public/build/js/2447.35b478a9.chunk.js.map +1 -0
- package/dist/public/build/js/4364.aa1ab5fb.chunk.js +2 -0
- package/dist/public/build/js/4364.aa1ab5fb.chunk.js.map +1 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js +3 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js.LICENSE.txt +5 -0
- package/dist/public/build/js/5451.50d8f2b2.chunk.js.map +1 -0
- package/dist/public/build/js/5770.0d8fda01.chunk.js +2 -0
- package/dist/public/build/js/5770.0d8fda01.chunk.js.map +1 -0
- package/dist/public/build/js/{7077.b11a392b.chunk.js → 7077.7dab612c.chunk.js} +2 -2
- package/dist/public/build/js/{7077.b11a392b.chunk.js.map → 7077.7dab612c.chunk.js.map} +1 -1
- package/dist/public/build/js/7959.e0d47dec.chunk.js +2 -0
- package/dist/public/build/js/7959.e0d47dec.chunk.js.map +1 -0
- package/dist/public/build/js/{8460.b18e700b.chunk.js → 8460.2b27e2b7.chunk.js} +2 -2
- package/dist/public/build/js/{8460.b18e700b.chunk.js.map → 8460.2b27e2b7.chunk.js.map} +1 -1
- package/dist/public/build/js/{8778.8d098a1f.chunk.js → 8778.d97acdd6.chunk.js} +2 -2
- package/dist/public/build/js/8778.d97acdd6.chunk.js.map +1 -0
- package/dist/public/build/js/accounts.badfc837.chunk.js +2 -0
- package/dist/public/build/js/{accounts.63268a11.chunk.js.map → accounts.badfc837.chunk.js.map} +1 -1
- package/dist/public/build/js/{acl.aa7a9df7.chunk.js → acl.cd1fe761.chunk.js} +2 -2
- package/dist/public/build/js/acl.cd1fe761.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-menu.bf57160d.chunk.js +2 -0
- package/dist/public/build/js/cluster-menu.bf57160d.chunk.js.map +1 -0
- package/dist/public/build/js/cluster-page-wrapper.c9e6c27c.chunk.js +2 -0
- package/dist/public/build/js/cluster-page-wrapper.c9e6c27c.chunk.js.map +1 -0
- package/dist/public/build/js/job.31c91355.chunk.js +2 -0
- package/dist/public/build/js/job.31c91355.chunk.js.map +1 -0
- package/dist/public/build/js/main.61fc9935.js +3 -0
- package/dist/public/build/js/main.61fc9935.js.map +1 -0
- package/dist/public/build/js/{manage-tokens.c996037c.chunk.js → manage-tokens.e9106aad.chunk.js} +2 -2
- package/dist/public/build/js/{manage-tokens.c996037c.chunk.js.map → manage-tokens.e9106aad.chunk.js.map} +1 -1
- package/dist/public/build/js/navigation.22bd542f.chunk.js +2 -0
- package/dist/public/build/js/navigation.22bd542f.chunk.js.map +1 -0
- package/dist/public/build/js/{odin.ddcd41de.chunk.js → odin.7eefabce.chunk.js} +2 -2
- package/dist/public/build/js/{odin.ddcd41de.chunk.js.map → odin.7eefabce.chunk.js.map} +1 -1
- package/dist/public/build/js/operations.3feb2deb.chunk.js +2 -0
- package/dist/public/build/js/operations.3feb2deb.chunk.js.map +1 -0
- package/dist/public/build/js/{query-results.99804b61.chunk.js → query-results.4c207fef.chunk.js} +2 -2
- package/dist/public/build/js/{query-results.99804b61.chunk.js.map → query-results.4c207fef.chunk.js.map} +1 -1
- package/dist/public/build/js/query-tracker.badbc586.chunk.js +2 -0
- package/dist/public/build/js/query-tracker.badbc586.chunk.js.map +1 -0
- package/dist/public/build/js/{runtime.8be0e5c6.js → runtime.f98c3e55.js} +2 -2
- package/dist/public/build/js/{runtime.8be0e5c6.js.map → runtime.f98c3e55.js.map} +1 -1
- package/dist/public/build/js/scheduling.73b1257c.chunk.js +2 -0
- package/dist/public/build/js/scheduling.73b1257c.chunk.js.map +1 -0
- package/dist/public/build/js/{system.6843a1a3.chunk.js → system.25e9136a.chunk.js} +2 -2
- package/dist/public/build/js/system.25e9136a.chunk.js.map +1 -0
- package/dist/public/build/js/tablet.7401a5ec.chunk.js +2 -0
- package/dist/public/build/js/tablet.7401a5ec.chunk.js.map +1 -0
- package/dist/public/build/js/{yt-df-dialog.6b4604c0.chunk.js → yt-df-dialog.69fc013a.chunk.js} +2 -2
- package/dist/public/build/js/{yt-df-dialog.6b4604c0.chunk.js.map → yt-df-dialog.69fc013a.chunk.js.map} +1 -1
- package/dist/public/build/manifest.json +64 -64
- package/dist/shared/ui-settings.d.ts +0 -1
- package/package.json +3 -3
- package/dist/public/build/css/7540.56f97199.chunk.css +0 -2
- package/dist/public/build/css/7540.56f97199.chunk.css.map +0 -1
- package/dist/public/build/css/cluster-page-wrapper.0b62c90f.chunk.css.map +0 -1
- package/dist/public/build/css/main.a99b07c5.css.map +0 -1
- package/dist/public/build/css/navigation.adb62abd.chunk.css +0 -2
- package/dist/public/build/css/navigation.adb62abd.chunk.css.map +0 -1
- package/dist/public/build/js/1110.d02f593c.chunk.js +0 -2
- package/dist/public/build/js/1110.d02f593c.chunk.js.map +0 -1
- package/dist/public/build/js/1394.f5423b9c.chunk.js +0 -2
- package/dist/public/build/js/1394.f5423b9c.chunk.js.map +0 -1
- package/dist/public/build/js/2447.d0a0e8ad.chunk.js +0 -2
- package/dist/public/build/js/2447.d0a0e8ad.chunk.js.map +0 -1
- package/dist/public/build/js/4364.277e1cfa.chunk.js +0 -2
- package/dist/public/build/js/4364.277e1cfa.chunk.js.map +0 -1
- package/dist/public/build/js/5770.c5499ce7.chunk.js +0 -2
- package/dist/public/build/js/5770.c5499ce7.chunk.js.map +0 -1
- package/dist/public/build/js/7891.2ce56be7.chunk.js +0 -3
- package/dist/public/build/js/7891.2ce56be7.chunk.js.LICENSE.txt +0 -14
- package/dist/public/build/js/7891.2ce56be7.chunk.js.map +0 -1
- package/dist/public/build/js/7959.eb292cbd.chunk.js +0 -2
- package/dist/public/build/js/7959.eb292cbd.chunk.js.map +0 -1
- package/dist/public/build/js/8778.8d098a1f.chunk.js.map +0 -1
- package/dist/public/build/js/accounts.63268a11.chunk.js +0 -2
- package/dist/public/build/js/acl.aa7a9df7.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-menu.e484a2ca.chunk.js +0 -2
- package/dist/public/build/js/cluster-menu.e484a2ca.chunk.js.map +0 -1
- package/dist/public/build/js/cluster-page-wrapper.8c8aa8a1.chunk.js +0 -2
- package/dist/public/build/js/cluster-page-wrapper.8c8aa8a1.chunk.js.map +0 -1
- package/dist/public/build/js/job.5ed7166b.chunk.js +0 -2
- package/dist/public/build/js/job.5ed7166b.chunk.js.map +0 -1
- package/dist/public/build/js/main.00809a7d.js +0 -3
- package/dist/public/build/js/main.00809a7d.js.map +0 -1
- package/dist/public/build/js/navigation.c3108a21.chunk.js +0 -2
- package/dist/public/build/js/navigation.c3108a21.chunk.js.map +0 -1
- package/dist/public/build/js/operations.b353981f.chunk.js +0 -2
- package/dist/public/build/js/operations.b353981f.chunk.js.map +0 -1
- package/dist/public/build/js/query-tracker.fba0ec95.chunk.js +0 -2
- package/dist/public/build/js/query-tracker.fba0ec95.chunk.js.map +0 -1
- package/dist/public/build/js/scheduling.115669fe.chunk.js +0 -2
- package/dist/public/build/js/scheduling.115669fe.chunk.js.map +0 -1
- package/dist/public/build/js/system.6843a1a3.chunk.js.map +0 -1
- package/dist/public/build/js/tablet.40ad9054.chunk.js +0 -2
- package/dist/public/build/js/tablet.40ad9054.chunk.js.map +0 -1
- /package/dist/public/build/js/{main.00809a7d.js.LICENSE.txt → main.61fc9935.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"js/5451.50d8f2b2.chunk.js","mappings":"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U0C,GACpB,GAAK4oD,EAAL,CAEA,IAAIC,SAAiBD,EAErB,GAAgB,WAAZC,GAAoC,WAAZA,EAC3BxkD,EAAQxG,KAAK+qD,QACP,GAAIp1C,MAAM2P,QAAQylC,IACxB,GAAIA,EAAIrrD,OAAQ,CACf,IAAIurD,EAAQhtC,EAAWva,MAAM,KAAMqnD,GAC/BE,GACHzkD,EAAQxG,KAAKirD,EAEf,OACM,GAAgB,WAAZD,EAAsB,CAChC,GAAID,EAAIxlD,WAAa/C,OAAOM,UAAUyC,WAAawlD,EAAIxlD,SAASA,WAAW2lD,SAAS,iBAAkB,CACrG1kD,EAAQxG,KAAK+qD,EAAIxlD,YACjB,QACD,CAEA,IAAK,IAAI7C,KAAOqoD,EACXD,EAAOtlD,KAAKulD,EAAKroD,IAAQqoD,EAAIroD,IAChC8D,EAAQxG,KAAK0C,EAGhB,CAxBkB,CAyBnB,CAEA,OAAO8D,EAAQS,KAAK,IACrB,CAEqCi5C,EAAOC,SAC3CliC,EAAWktC,QAAUltC,EACrBiiC,EAAOC,QAAUliC,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIH,CApDA,cCNAiiC,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,SAASvhD,EAAO0sD,EAAUx8C,GACzC,IAAIkP,EAASpf,EAAM0sD,GACnB,GAAKttC,EAAL,CAIA,IAAIutC,EAAW,GAMf,GALA/oD,OAAOY,KAAK4a,GAAQna,SAAQ,SAAS2nD,IACG,IAAlCJ,EAAWpmC,QAAQwmC,IACrBD,EAASvrD,KAAKwrD,EAElB,IACID,EAAS7rD,OACX,MAAM,IAAI6O,MAAM,QAAU+8C,EAAW,cAAgBx8C,EAAgB,sBAAwBy8C,EAAStkD,KAAK,MAT7G,CAWF,EAEAi5C,EAAOC,QAAQh5C,WAAa,SAASvI,EAAO0sD,EAAUx8C,GACpD,IAAKlQ,EAAM0sD,GACT,MAAM,IAAI/8C,MAAM,QAAU+8C,EAAW,cAAgBx8C,EAAgB,gBAEvE,OAAOoxC,EAAOC,QAAQvhD,EAAO0sD,EAAUx8C,EACzC,EAEAoxC,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/context.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/KeyCode.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/util.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/hooks/useDrag.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/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.js","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.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.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/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 */","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;","/**\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;","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}","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\"];\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 _cls, _getIndex;\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 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\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 handleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: cls(handlePrefixCls, (_cls = {}, _defineProperty(_cls, \"\".concat(handlePrefixCls, \"-\").concat(valueIndex + 1), range), _defineProperty(_cls, \"\".concat(handlePrefixCls, \"-dragging\"), dragging), _cls), classNames.handle),\n style: _objectSpread(_objectSpread(_objectSpread({}, positionStyle), style), styles.handle),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove,\n onKeyDown: onKeyDown,\n onKeyUp: handleKeyUp,\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 }, 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 _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"onStartMove\", \"onOffsetChange\", \"values\", \"handleRender\", \"draggingIndex\"];\nimport * as React from 'react';\nimport Handle from \"./Handle\";\nimport { getIndex } from \"../util\";\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 draggingIndex = props.draggingIndex,\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 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 prefixCls: prefixCls,\n style: getIndex(style, index),\n key: index,\n value: value,\n valueIndex: index,\n onStartMove: onStartMove,\n onOffsetChange: onOffsetChange,\n render: handleRender\n }, restProps));\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Handles.displayName = 'Handles';\n}\nexport default Handles;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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}\nexport default function 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.useEffect(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 = function updateCacheValue(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\n // Resolve closure\n var updateCacheValueRef = React.useRef(updateCacheValue);\n updateCacheValueRef.current = updateCacheValue;\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 updateCacheValueRef.current(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}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { getDirectionStyle } from \"../util\";\nimport SliderContext from \"../context\";\nexport default 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}","import * as React from 'react';\nimport Mark from \"./Mark\";\nexport default 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}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { getDirectionStyle } from \"../util\";\nimport SliderContext from \"../context\";\nexport default 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}","import * as React from 'react';\nimport SliderContext from \"../context\";\nimport Dot from \"./Dot\";\nexport default 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}","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\";\nexport default function Track(props) {\n var _cls;\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, (_cls = {}, _defineProperty(_cls, \"\".concat(trackPrefixCls, \"-\").concat(index + 1), index !== null && range), _defineProperty(_cls, \"\".concat(prefixCls, \"-track-draggable\"), onStartMove), _cls), 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}","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\";\nexport default 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\n // ========================== Render ==========================\n var tracksNode = null;\n if (classNames.tracks || styles.tracks) {\n tracksNode = /*#__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 });\n }\n return included ? /*#__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 })) : null;\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 SliderContext from \"./context\";\nimport Handles from \"./Handles\";\nimport useDrag from \"./hooks/useDrag\";\nimport useOffset from \"./hooks/useOffset\";\nimport Marks from \"./Marks\";\nimport Steps from \"./Steps\";\nimport Tracks from \"./Tracks\";\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 _cls;\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 _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();\n var containerRef = React.useRef();\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 var keys = Object.keys(marks || {});\n return keys.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 onAfterChange === null || onAfterChange === void 0 || onAfterChange(getTriggerValue(rawValuesRef.current));\n warning(!onAfterChange, '[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.');\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete(getTriggerValue(rawValuesRef.current));\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 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 _document = document,\n activeElement = _document.activeElement;\n if (containerRef.current.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, (_cls = {}, _defineProperty(_cls, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_cls, \"\".concat(prefixCls, \"-vertical\"), vertical), _defineProperty(_cls, \"\".concat(prefixCls, \"-horizontal\"), !vertical), _defineProperty(_cls, \"\".concat(prefixCls, \"-with-marks\"), markList.length), _cls)),\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 : null\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 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 var formatNextValue = isFinite(val) ? val : min;\n formatNextValue = Math.min(max, val);\n formatNextValue = Math.max(min, formatNextValue);\n return formatNextValue;\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} from 'react';\nimport {connect} from 'react-redux';\nimport ReactList from 'react-list';\nimport PropTypes from 'prop-types';\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 {KeyCode} from '../../constants/index';\n\nimport './PathEditor.scss';\n\nconst debounceTime = 300;\nconst b = block('path-editor');\n\nexport class PathEditor extends Component {\n static propTypes = {\n // from connect\n suggestions: PropTypes.arrayOf(\n PropTypes.shape({\n path: PropTypes.string.isRequired,\n targetPathBroken: PropTypes.bool,\n type: PropTypes.string,\n }),\n ).isRequired,\n suggestionsError: PropTypes.bool,\n errorMessage: PropTypes.string,\n\n loadSuggestionsList: PropTypes.func.isRequired,\n removeActiveRequests: PropTypes.func.isRequired,\n // from parent component\n className: PropTypes.string,\n placeholder: PropTypes.string,\n customFilter: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onApply: PropTypes.func,\n onCancel: PropTypes.func,\n defaultPath: PropTypes.string,\n disabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n hasClear: PropTypes.bool,\n showErrors: PropTypes.bool,\n };\n\n static defaultProps = {\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 constructor(props) {\n super(props);\n\n this.suggestionsList = React.createRef();\n this.input = React.createRef();\n\n this.debounceLoading = debounce_(this.debounceLoading, debounceTime);\n this.prevScope = null;\n\n this.state = {\n path: props.defaultPath,\n actualSuggestions: [],\n inputFocus: false,\n inputChange: false,\n selectedIndex: -1,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\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 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) {\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 callCallback(cb, ...params) {\n if (typeof cb === 'function') {\n return cb(...params);\n }\n }\n\n debounceLoading(path) {\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) => {\n this.setState({path, selectedIndex: -1, inputChange: true});\n this.debounceLoading(path);\n };\n\n handleInputFocus = (e) => {\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(evt) {\n evt.preventDefault();\n\n const {selectedIndex, actualSuggestions} = this.state;\n const {onApply} = this.props;\n const inputPath = evt.target.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, (item, 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(evt) {\n evt.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 = (evt) => {\n const key = evt.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(evt);\n break;\n case KeyCode.ESCAPE:\n this.handleEscClick();\n break;\n case KeyCode.TAB:\n this.handleTabClick(evt);\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, 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 = (evt) => {\n this.handleInputChange(completedPath);\n evt.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 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 =\n (actualSuggestions.length || (suggestionsError && showErrors)) && inputFocus;\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={[undefined, 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}) => ({\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\nfunction 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 usePoolTreeOrLoadDefault(poolTree?: string) {\n const [defaultPoolTree, setDefaultPoolTree] = React.useState<string | undefined>(poolTree);\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 = usePoolTreeOrLoadDefault();\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';\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 // Convert typed errors to regular ones\n error.inner_errors = error.inner_errors.map(prepareAttributes);\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 reduce_ from 'lodash/reduce';\n\nimport CancelHelper, {isCancelled} from '../../../../utils/cancel-helper';\nimport {getPath} from '../../../../store/selectors/navigation';\nimport {\n GET_TABLET_ERRORS,\n GET_TABLET_ERRORS_COUNT,\n} 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 {TabletErrorsAction} from '../../../../store/reducers/navigation/tabs/tablet-errors';\nimport {wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {loadReplicas} from '../content/replicated-table';\nimport {CancelTokenSource} from 'axios';\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') {\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.get(YTApiId.navigationTabletErrorsCountReplicatedTable, {\n parameters: {\n path: `${path}/@replicas`,\n attributes: ['error_count'],\n },\n cancellation: saveCancelTokenSource,\n }),\n {\n toasterName: 'tablet_errors_count',\n skipSuccessToast: true,\n },\n ).then((data: Record<string, {error_count?: number}>) => {\n const count = reduce_(data, (acc, item) => acc + (item.error_count ?? 0), 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_COUNT, data: {errorsCountPath, errorsCount}};\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 {getTabletErrorsCount} from '../../../store/selectors/navigation/tabs/tablet-errors';\nimport UIFactory from '../../../UIFactory';\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, getTabletErrorsCount],\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 (tabletErrorsCount > 0) {\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, getTabletErrorsCount, 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,\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';\n\nconst getTabletErrorsErrorCount = (state: RootState) =>\n state.navigation.tabs.tabletErrors.errorsCount;\nconst getTabletErrorsErrorCountPath = (state: RootState) =>\n state.navigation.tabs.tabletErrors.errorsCountPath;\nconst getTabletErrorsRaw = (state: RootState) => state.navigation.tabs.tabletErrors.tabletErrors;\nconst getTabletErrorsPathRaw = (state: RootState) =>\n state.navigation.tabs.tabletErrors.tabletErrorsPath;\n\nexport const getTabletErrorsLoadingStatus = createSelector(\n [\n (state: RootState) => state.navigation.tabs.tabletErrors.loading,\n (state: RootState) => state.navigation.tabs.tabletErrors.loaded,\n (state: RootState) => state.navigation.tabs.tabletErrors.error,\n ],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n\nexport const getTabletErrorsCount = 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 getTabletErrorCountNoticeVisbile = createSelector(\n [getTabletErrorsCount, 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 if (!errAcc[tablet_id]) {\n errAcc[tablet_id] = [];\n }\n errAcc[tablet_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","// 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","direction","includedStart","includedEnd","tabIndex","keyboard","styles","classNames","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","getOffset","getDirectionStyle","offset","positionStyle","getIndex","isArray","Handle","_cls","_getIndex","prefixCls","valueIndex","onStartMove","render","dragging","onOffsetChange","onChangeComplete","restProps","_React$useContext","range","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","handlePrefixCls","onInternalStartMove","handleNode","handle","which","onKeyUp","values","handleRender","draggingIndex","handlesRef","focus","_handlesRef$current$i","getPosition","pageX","pageY","Mark","included","textCls","stopPropagation","Marks","marks","markPrefixCls","Dot","activeStyle","dotClassName","mergedStyle","Steps","dots","stepDots","dotSet","Set","mark","add","from","dotValue","Track","start","end","replaceCls","trackPrefixCls","offsetStart","offsetEnd","track","Tracks","startPoint","trackList","startValue","endValue","list","tracksNode","tracks","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","formatNextValue","formatStepValue","stepValue","round","getDecimal","num","maxDecimal","fixedValue","toFixed","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","_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","updateCacheValueRef","sourceValues","targetValues","startValues","initialValues","_getPosition","startX","startY","offSetPercent","_getPosition2","moveX","moveY","offsetX","offsetY","_containerRef$current","useDrag","_useDrag2","onStartDrag","changeToCloseValue","keyboardValue","setKeyboardValue","mergedDraggableTrack","lastIndexOf","sortedCacheValues","_React$useMemo","_React$useMemo2","blur","activeElement","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","hideSuggestions","inputFocus","selectedIndex","handleInputChange","path","inputChange","debounceLoading","setScope","prevScope","callCallback","evt","ARROW_DOWN","selectNextSuggestion","ARROW_UP","selectPrevSuggestion","handleEnterClick","ESCAPE","handleEscClick","handleTabClick","actualSuggestions","dynamic","iconType","completedPath","getCompletedPath","isSelected","iconName","getIconNameForType","targetPathBroken","selected","suggestionsList","defaultPath","loadSuggestionsList","customFilter","getScope","_setFocus","removeActiveRequests","offsetWidth","cb","params","prevIndex","getPrevSelectedIndex","nextIndex","getNextSelectedIndex","onApply","inputPath","suggestion","find_","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","PoolTreesLoader","useDispatch","loadPoolTreesIfNotLoaded","usePoolTreeOrLoadDefault","poolTree","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","inner_errors","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","navigationTabletErrorsCountDynTable","errorsCount","updateTabletErrrosCount","loadTabletErrorsCountOfDynamicTable","navigationTabletErrorsCountReplicatedTable","reduce_","_item$error_count","error_count","loadTabletErrorsCountOfReplicatedTable","errorsCountPath","GET_TABLET_ERRORS_COUNT","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","getTabletErrorsCount","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","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","getTabletErrorsLoadingStatus","loading","loaded","calculateLoadingStatus","errorCountPath","errorCount","errPath","errors","getTabletErrorCountNoticeVisbile","tablet_errors","replication_errors","calculateSubitemsCount","subItems","getTabletErrorsReplicationErrors","errorsByTablet","errAcc","tablet_id","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":""}
|