@ytsaurus/ui 1.90.1 → 1.91.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/build/assets-manifest.json +31 -31
- package/dist/public/build/css/2140.254b6ed2.chunk.css +2 -0
- package/dist/public/build/css/2140.254b6ed2.chunk.css.map +1 -0
- package/dist/public/build/css/{2747.49a10cfc.chunk.css → 2747.46d89bd1.chunk.css} +2 -2
- package/dist/public/build/css/2747.46d89bd1.chunk.css.map +1 -0
- package/dist/public/build/css/{yt-monaco-editor.35fedd61.chunk.css → yt-monaco-editor.f3c34bec.chunk.css} +2 -2
- package/dist/public/build/css/yt-monaco-editor.f3c34bec.chunk.css.map +1 -0
- package/dist/public/build/js/{8674.ba5cb9f1.chunk.js → 4330.37e8a0dd.chunk.js} +3 -3
- package/dist/public/build/js/4330.37e8a0dd.chunk.js.map +1 -0
- package/dist/public/build/js/9312.ce15a566.chunk.js +3 -0
- package/dist/public/build/js/9312.ce15a566.chunk.js.map +1 -0
- package/dist/public/build/js/{chyt.ca9dd200.chunk.js → chyt.a8612ac3.chunk.js} +2 -2
- package/dist/public/build/js/{chyt.ca9dd200.chunk.js.map → chyt.a8612ac3.chunk.js.map} +1 -1
- package/dist/public/build/js/{cluster-page-wrapper.96c4ce3a.chunk.js → cluster-page-wrapper.d6af732a.chunk.js} +2 -2
- package/dist/public/build/js/{cluster-page-wrapper.96c4ce3a.chunk.js.map → cluster-page-wrapper.d6af732a.chunk.js.map} +1 -1
- package/dist/public/build/js/main.376121e5.js +3 -0
- package/dist/public/build/js/main.376121e5.js.map +1 -0
- package/dist/public/build/js/{navigation.ac5ef83f.chunk.js → navigation.7e77d5e0.chunk.js} +2 -2
- package/dist/public/build/js/navigation.7e77d5e0.chunk.js.map +1 -0
- package/dist/public/build/js/{query-tracker.bd67de7b.chunk.js → query-tracker.b8789080.chunk.js} +2 -2
- package/dist/public/build/js/{query-tracker.bd67de7b.chunk.js.map → query-tracker.b8789080.chunk.js.map} +1 -1
- package/dist/public/build/js/{query-widget.e13e8196.chunk.js → query-widget.261b2836.chunk.js} +2 -2
- package/dist/public/build/js/{query-widget.e13e8196.chunk.js.map → query-widget.261b2836.chunk.js.map} +1 -1
- package/dist/public/build/js/{runtime.1a91f59f.js → runtime.dc94a394.js} +2 -2
- package/dist/public/build/js/{runtime.1a91f59f.js.map → runtime.dc94a394.js.map} +1 -1
- package/dist/public/build/js/{yt-monaco-editor.46876bce.chunk.js → yt-monaco-editor.b3cf8d2a.chunk.js} +2 -2
- package/dist/public/build/js/yt-monaco-editor.b3cf8d2a.chunk.js.map +1 -0
- package/dist/public/build/manifest.json +26 -26
- package/dist/shared/constants/settings-types.d.ts +4 -2
- package/package.json +3 -3
- package/dist/public/build/css/2140.0fdc720d.chunk.css +0 -2
- package/dist/public/build/css/2140.0fdc720d.chunk.css.map +0 -1
- package/dist/public/build/css/2747.49a10cfc.chunk.css.map +0 -1
- package/dist/public/build/css/yt-monaco-editor.35fedd61.chunk.css.map +0 -1
- package/dist/public/build/js/8674.ba5cb9f1.chunk.js.map +0 -1
- package/dist/public/build/js/9312.ae95dc3d.chunk.js +0 -3
- package/dist/public/build/js/9312.ae95dc3d.chunk.js.map +0 -1
- package/dist/public/build/js/main.adf0339f.js +0 -3
- package/dist/public/build/js/main.adf0339f.js.map +0 -1
- package/dist/public/build/js/navigation.ac5ef83f.chunk.js.map +0 -1
- package/dist/public/build/js/yt-monaco-editor.46876bce.chunk.js.map +0 -1
- /package/dist/public/build/js/{8674.ba5cb9f1.chunk.js.LICENSE.txt → 4330.37e8a0dd.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{9312.ae95dc3d.chunk.js.LICENSE.txt → 9312.ce15a566.chunk.js.LICENSE.txt} +0 -0
- /package/dist/public/build/js/{main.adf0339f.js.LICENSE.txt → main.376121e5.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"js/9312.ce15a566.chunk.js","mappings":"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BACA,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,IAAImL,EAAa,EAAQ,OACrBC,EAAY,EAAQ,OAExBrL,EAAOC,QAAU,SAAS7+C,EAAOkqD,EAAUh6C,GACzC,IAAIgQ,EAASlgB,EAAMkqD,GACnB,GAAKhqC,EAAL,CAIA,IAAIiqC,EAAW,GAMf,GALAvmD,OAAOY,KAAK0b,GAAQjb,SAAQ,SAASmlD,IACG,IAAlCJ,EAAWnqC,QAAQuqC,IACrBD,EAAS/oD,KAAKgpD,EAElB,IACID,EAASrpD,OACX,MAAM,IAAI6O,MAAM,QAAUu6C,EAAW,cAAgBh6C,EAAgB,sBAAwBi6C,EAAS9hD,KAAK,MAT7G,CAWF,EAEAu2C,EAAOC,QAAQt2C,WAAa,SAASvI,EAAOkqD,EAAUh6C,GACpD,IAAKlQ,EAAMkqD,GACT,MAAM,IAAIv6C,MAAM,QAAUu6C,EAAW,cAAgBh6C,EAAgB,gBAEvE,OAAO0uC,EAAOC,QAAQ7+C,EAAOkqD,EAAUh6C,EACzC,EAEA0uC,EAAOC,QAAQwL,iBAAmBJ,EAAUK,UAAU,CACpDL,EAAUM,QAAQ3L,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/./node_modules/rc-util/es/hooks/useEvent.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useLayoutEffect.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/Dom/canUseDom.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useState.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/hooks/useMergedState.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/warning.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/util.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/KeyCode.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/context.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Handles/Handle.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Handles/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Marks/Mark.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Marks/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Steps/Dot.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Steps/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Tracks/Track.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Tracks/index.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/hooks/useDrag.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/utils/set.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/Slider.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/hooks/useOffset.js","webpack://@ytsaurus/ui/./node_modules/rc-util/es/isEqual.js","webpack://@ytsaurus/ui/./node_modules/rc-slider/es/index.js","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/utils.ts","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/constants.ts","webpack://@ytsaurus/ui/./src/ui/components/common/RangeInputPicker/RangeInputPicker.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/PermissionsControl/PermissionsControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/PathEditor/PathEditor.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/path-editor/path-editor.js","webpack://@ytsaurus/ui/./src/ui/hooks/global-pool-trees.ts","webpack://@ytsaurus/ui/./src/ui/pages/components/OperationShortInfo/OperationShortInfo.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/modals/CreateTableModal/CreateTableTabField/CreateTableTabField.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/content/replicated-table.js","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/index.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/content/table/table-mount-config.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/tabs/queue/exports.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/create-table.js","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/modals/table-merge-sort-modal.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/tabs/annotation.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/navigation/tabs/tablet-errors/tablet-errors-background.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/content/table-mount-config.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/modals/create-table.js","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/modals/table-merge-sort-modal.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/navigation.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/tabs/annotation.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/navigation/tabs/tablet-errors-background.ts","webpack://@ytsaurus/ui/./src/ui/utils/navigation/path-editor.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/common.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/TabsController.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/get-root-node-polyfill/index.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/node_modules/@diplodoc/tabs-extension/src/runtime/index.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/polyfill.js","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/code.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/cut.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/term/utils.ts","webpack://@ytsaurus/ui/./node_modules/@diplodoc/transform/src/js/term/index.ts","webpack://@ytsaurus/ui/./node_modules/classnames/index.js","webpack://@ytsaurus/ui/./node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","webpack://@ytsaurus/ui/./node_modules/rc-util/node_modules/react-is/index.js","webpack://@ytsaurus/ui/./node_modules/react-style-proptype/src/css-properties.js","webpack://@ytsaurus/ui/./node_modules/react-style-proptype/src/index.js"],"sourcesContent":["import React from 'react';\n\nimport {DialogControlProps} from '../Dialog/Dialog.types';\nimport {EditTextWithPreview, EditTextWithPreviewProps} from '../EditTextWithPreview';\nimport {Markdown} from '../Markdown/Markdown';\n\nexport type EditAnnotationProps = DialogControlProps<\n EditTextWithPreviewProps['value'],\n {\n initialValue: EditAnnotationProps['value'];\n valuePath: string;\n hideReset?: boolean;\n className: string;\n }\n>;\n\nEditAnnotationWithPreview.isEmpty = (value: EditTextWithPreviewProps['value']) => {\n return !value;\n};\n\nEditAnnotationWithPreview.getDefaultValue = () => {\n return {value: undefined};\n};\n\nexport function EditAnnotationWithPreview(props: EditAnnotationProps) {\n const {\n value: valueProp,\n onChange: onChangeProp,\n initialValue: initialValueProp,\n valuePath: valuePathProp,\n hideReset,\n className,\n } = props;\n\n const {value: initialValue} = initialValueProp;\n const {value} = valueProp;\n const onChange = React.useCallback(\n ({value: newValue}: {value?: string} = {}) => {\n if (value !== newValue) {\n const prevIsUndefined = value === undefined;\n if (prevIsUndefined && newValue === '') {\n // nothing to do\n } else {\n onChangeProp({value: newValue});\n }\n }\n },\n [onChangeProp, value],\n );\n\n const valuePath = value === undefined ? undefined : valuePathProp;\n const changed = initialValue !== value;\n\n let editorSubTitle = value === undefined ? '(reset to inheritance)' : '';\n if (valuePath) editorSubTitle = `(from ${valuePath})`;\n\n /**\n * value === undefined means it is already inherited or user already pressed 'Reset to inheritance' button\n */\n const resetActions: EditTextWithPreviewProps['editorActions'] = [];\n if (value === undefined || value === null) {\n if (changed) {\n resetActions.push({\n text: 'Restore',\n action: () => onChangeProp(initialValueProp),\n });\n }\n } else if (!valuePath || changed) {\n resetActions.push({\n text: 'Reset to inheritance',\n action: () => {\n if (valuePath) {\n onChangeProp(initialValueProp);\n } else {\n onChange(undefined);\n }\n },\n });\n }\n\n return (\n <EditTextWithPreview\n className={className}\n value={valueProp}\n onChange={onChange}\n editorTitle={'Description'}\n editorSubTitle={editorSubTitle}\n editorActions={hideReset ? undefined : resetActions}\n editorLang={'markdown'}\n renderPreview={renderPreview}\n initialSplitSize=\"50%\"\n />\n );\n}\n\nfunction renderPreview(value?: string) {\n return <Markdown text={value || ''} />;\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport stylePropType from 'react-style-proptype';\nimport { polyfill } from 'react-lifecycles-compat';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar Pane = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Pane, _React$PureComponent);\n\n var _super = _createSuper(Pane);\n\n function Pane() {\n _classCallCheck(this, Pane);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Pane, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n split = _this$props.split,\n styleProps = _this$props.style,\n size = _this$props.size,\n eleRef = _this$props.eleRef;\n var classes = ['Pane', split, className];\n var style = {\n flex: 1,\n position: 'relative',\n outline: 'none'\n };\n\n if (size !== undefined) {\n if (split === 'vertical') {\n style.width = size;\n } else {\n style.height = size;\n style.display = 'flex';\n }\n\n style.flex = 'none';\n }\n\n style = Object.assign({}, style, styleProps || {});\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: eleRef,\n className: classes.join(' '),\n style: style\n }, children);\n }\n }]);\n\n return Pane;\n}(React.PureComponent);\n\nPane.propTypes = {\n className: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n eleRef: PropTypes.func\n};\nPane.defaultProps = {};\n\nvar RESIZER_DEFAULT_CLASSNAME = 'Resizer';\n\nvar Resizer = /*#__PURE__*/function (_React$Component) {\n _inherits(Resizer, _React$Component);\n\n var _super = _createSuper(Resizer);\n\n function Resizer() {\n _classCallCheck(this, Resizer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Resizer, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n _onClick = _this$props.onClick,\n _onDoubleClick = _this$props.onDoubleClick,\n _onMouseDown = _this$props.onMouseDown,\n _onTouchEnd = _this$props.onTouchEnd,\n _onTouchStart = _this$props.onTouchStart,\n resizerClassName = _this$props.resizerClassName,\n split = _this$props.split,\n style = _this$props.style;\n var classes = [resizerClassName, split, className];\n return /*#__PURE__*/React.createElement(\"span\", {\n role: \"presentation\",\n className: classes.join(' '),\n style: style,\n onMouseDown: function onMouseDown(event) {\n return _onMouseDown(event);\n },\n onTouchStart: function onTouchStart(event) {\n event.preventDefault();\n\n _onTouchStart(event);\n },\n onTouchEnd: function onTouchEnd(event) {\n event.preventDefault();\n\n _onTouchEnd(event);\n },\n onClick: function onClick(event) {\n if (_onClick) {\n event.preventDefault();\n\n _onClick(event);\n }\n },\n onDoubleClick: function onDoubleClick(event) {\n if (_onDoubleClick) {\n event.preventDefault();\n\n _onDoubleClick(event);\n }\n }\n });\n }\n }]);\n\n return Resizer;\n}(React.Component);\n\nResizer.propTypes = {\n className: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n onMouseDown: PropTypes.func.isRequired,\n onTouchStart: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired,\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n style: stylePropType,\n resizerClassName: PropTypes.string.isRequired\n};\nResizer.defaultProps = {\n resizerClassName: RESIZER_DEFAULT_CLASSNAME\n};\n\nfunction unFocus(document, window) {\n if (document.selection) {\n document.selection.empty();\n } else {\n try {\n window.getSelection().removeAllRanges(); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction getDefaultSize(defaultSize, minSize, maxSize, draggedSize) {\n if (typeof draggedSize === 'number') {\n var min = typeof minSize === 'number' ? minSize : 0;\n var max = typeof maxSize === 'number' && maxSize >= 0 ? maxSize : Infinity;\n return Math.max(min, Math.min(max, draggedSize));\n }\n\n if (defaultSize !== undefined) {\n return defaultSize;\n }\n\n return minSize;\n}\n\nfunction removeNullChildren(children) {\n return React.Children.toArray(children).filter(function (c) {\n return c;\n });\n}\n\nvar SplitPane = /*#__PURE__*/function (_React$Component) {\n _inherits(SplitPane, _React$Component);\n\n var _super = _createSuper(SplitPane);\n\n function SplitPane(props) {\n var _this;\n\n _classCallCheck(this, SplitPane);\n\n _this = _super.call(this, props);\n _this.onMouseDown = _this.onMouseDown.bind(_assertThisInitialized(_this));\n _this.onTouchStart = _this.onTouchStart.bind(_assertThisInitialized(_this));\n _this.onMouseMove = _this.onMouseMove.bind(_assertThisInitialized(_this));\n _this.onTouchMove = _this.onTouchMove.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this)); // order of setting panel sizes.\n // 1. size\n // 2. getDefaultSize(defaultSize, minsize, maxSize)\n\n var size = props.size,\n defaultSize = props.defaultSize,\n minSize = props.minSize,\n maxSize = props.maxSize,\n primary = props.primary;\n var initialSize = size !== undefined ? size : getDefaultSize(defaultSize, minSize, maxSize, null);\n _this.state = {\n active: false,\n resized: false,\n pane1Size: primary === 'first' ? initialSize : undefined,\n pane2Size: primary === 'second' ? initialSize : undefined,\n // these are props that are needed in static functions. ie: gDSFP\n instanceProps: {\n size: size\n }\n };\n return _this;\n }\n\n _createClass(SplitPane, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mouseup', this.onMouseUp);\n document.addEventListener('mousemove', this.onMouseMove);\n document.addEventListener('touchmove', this.onTouchMove);\n this.setState(SplitPane.getSizeUpdate(this.props, this.state));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mouseup', this.onMouseUp);\n document.removeEventListener('mousemove', this.onMouseMove);\n document.removeEventListener('touchmove', this.onTouchMove);\n }\n }, {\n key: \"onMouseDown\",\n value: function onMouseDown(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchStart(eventWithTouches);\n }\n }, {\n key: \"onTouchStart\",\n value: function onTouchStart(event) {\n var _this$props = this.props,\n allowResize = _this$props.allowResize,\n onDragStarted = _this$props.onDragStarted,\n split = _this$props.split;\n\n if (allowResize) {\n unFocus(document, window);\n var position = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n\n if (typeof onDragStarted === 'function') {\n onDragStarted();\n }\n\n this.setState({\n active: true,\n position: position\n });\n }\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n var eventWithTouches = Object.assign({}, event, {\n touches: [{\n clientX: event.clientX,\n clientY: event.clientY\n }]\n });\n this.onTouchMove(eventWithTouches);\n }\n }, {\n key: \"onTouchMove\",\n value: function onTouchMove(event) {\n var _this$props2 = this.props,\n allowResize = _this$props2.allowResize,\n maxSize = _this$props2.maxSize,\n minSize = _this$props2.minSize,\n onChange = _this$props2.onChange,\n split = _this$props2.split,\n step = _this$props2.step;\n var _this$state = this.state,\n active = _this$state.active,\n position = _this$state.position;\n\n if (allowResize && active) {\n unFocus(document, window);\n var isPrimaryFirst = this.props.primary === 'first';\n var ref = isPrimaryFirst ? this.pane1 : this.pane2;\n var ref2 = isPrimaryFirst ? this.pane2 : this.pane1;\n\n if (ref) {\n var node = ref;\n var node2 = ref2;\n\n if (node.getBoundingClientRect) {\n var width = node.getBoundingClientRect().width;\n var height = node.getBoundingClientRect().height;\n var current = split === 'vertical' ? event.touches[0].clientX : event.touches[0].clientY;\n var size = split === 'vertical' ? width : height;\n var positionDelta = position - current;\n\n if (step) {\n if (Math.abs(positionDelta) < step) {\n return;\n } // Integer division\n // eslint-disable-next-line no-bitwise\n\n\n positionDelta = ~~(positionDelta / step) * step;\n }\n\n var sizeDelta = isPrimaryFirst ? positionDelta : -positionDelta;\n var pane1Order = parseInt(window.getComputedStyle(node).order);\n var pane2Order = parseInt(window.getComputedStyle(node2).order);\n\n if (pane1Order > pane2Order) {\n sizeDelta = -sizeDelta;\n }\n\n var newMaxSize = maxSize;\n\n if (maxSize !== undefined && maxSize <= 0) {\n var splitPane = this.splitPane;\n\n if (split === 'vertical') {\n newMaxSize = splitPane.getBoundingClientRect().width + maxSize;\n } else {\n newMaxSize = splitPane.getBoundingClientRect().height + maxSize;\n }\n }\n\n var newSize = size - sizeDelta;\n var newPosition = position - positionDelta;\n\n if (newSize < minSize) {\n newSize = minSize;\n } else if (maxSize !== undefined && newSize > newMaxSize) {\n newSize = newMaxSize;\n } else {\n this.setState({\n position: newPosition,\n resized: true\n });\n }\n\n if (onChange) onChange(newSize);\n this.setState(_defineProperty({\n draggedSize: newSize\n }, isPrimaryFirst ? 'pane1Size' : 'pane2Size', newSize));\n }\n }\n }\n }\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp() {\n var _this$props3 = this.props,\n allowResize = _this$props3.allowResize,\n onDragFinished = _this$props3.onDragFinished;\n var _this$state2 = this.state,\n active = _this$state2.active,\n draggedSize = _this$state2.draggedSize;\n\n if (allowResize && active) {\n if (typeof onDragFinished === 'function') {\n onDragFinished(draggedSize);\n }\n\n this.setState({\n active: false\n });\n }\n } // we have to check values since gDSFP is called on every render and more in StrictMode\n\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props4 = this.props,\n allowResize = _this$props4.allowResize,\n children = _this$props4.children,\n className = _this$props4.className,\n onResizerClick = _this$props4.onResizerClick,\n onResizerDoubleClick = _this$props4.onResizerDoubleClick,\n paneClassName = _this$props4.paneClassName,\n pane1ClassName = _this$props4.pane1ClassName,\n pane2ClassName = _this$props4.pane2ClassName,\n paneStyle = _this$props4.paneStyle,\n pane1StyleProps = _this$props4.pane1Style,\n pane2StyleProps = _this$props4.pane2Style,\n resizerClassName = _this$props4.resizerClassName,\n resizerStyle = _this$props4.resizerStyle,\n split = _this$props4.split,\n styleProps = _this$props4.style;\n var _this$state3 = this.state,\n pane1Size = _this$state3.pane1Size,\n pane2Size = _this$state3.pane2Size;\n var disabledClass = allowResize ? '' : 'disabled';\n var resizerClassNamesIncludingDefault = resizerClassName ? \"\".concat(resizerClassName, \" \").concat(RESIZER_DEFAULT_CLASSNAME) : resizerClassName;\n var notNullChildren = removeNullChildren(children);\n\n var style = _objectSpread2({\n display: 'flex',\n flex: 1,\n height: '100%',\n position: 'absolute',\n outline: 'none',\n overflow: 'hidden',\n MozUserSelect: 'text',\n WebkitUserSelect: 'text',\n msUserSelect: 'text',\n userSelect: 'text'\n }, styleProps);\n\n if (split === 'vertical') {\n Object.assign(style, {\n flexDirection: 'row',\n left: 0,\n right: 0\n });\n } else {\n Object.assign(style, {\n bottom: 0,\n flexDirection: 'column',\n minHeight: '100%',\n top: 0,\n width: '100%'\n });\n }\n\n var classes = ['SplitPane', className, split, disabledClass];\n\n var pane1Style = _objectSpread2({}, paneStyle, {}, pane1StyleProps);\n\n var pane2Style = _objectSpread2({}, paneStyle, {}, pane2StyleProps);\n\n var pane1Classes = ['Pane1', paneClassName, pane1ClassName].join(' ');\n var pane2Classes = ['Pane2', paneClassName, pane2ClassName].join(' ');\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classes.join(' '),\n ref: function ref(node) {\n _this2.splitPane = node;\n },\n style: style\n }, /*#__PURE__*/React.createElement(Pane, {\n className: pane1Classes,\n key: \"pane1\",\n eleRef: function eleRef(node) {\n _this2.pane1 = node;\n },\n size: pane1Size,\n split: split,\n style: pane1Style\n }, notNullChildren[0]), /*#__PURE__*/React.createElement(Resizer, {\n className: disabledClass,\n onClick: onResizerClick,\n onDoubleClick: onResizerDoubleClick,\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n onTouchEnd: this.onMouseUp,\n key: \"resizer\",\n resizerClassName: resizerClassNamesIncludingDefault,\n split: split,\n style: resizerStyle || {}\n }), /*#__PURE__*/React.createElement(Pane, {\n className: pane2Classes,\n key: \"pane2\",\n eleRef: function eleRef(node) {\n _this2.pane2 = node;\n },\n size: pane2Size,\n split: split,\n style: pane2Style\n }, notNullChildren[1]));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n return SplitPane.getSizeUpdate(nextProps, prevState);\n }\n }, {\n key: \"getSizeUpdate\",\n value: function getSizeUpdate(props, state) {\n var newState = {};\n var instanceProps = state.instanceProps;\n\n if (instanceProps.size === props.size && props.size !== undefined) {\n return {};\n }\n\n var newSize = props.size !== undefined ? props.size : getDefaultSize(props.defaultSize, props.minSize, props.maxSize, state.draggedSize);\n\n if (props.size !== undefined) {\n newState.draggedSize = newSize;\n }\n\n var isPanel1Primary = props.primary === 'first';\n newState[isPanel1Primary ? 'pane1Size' : 'pane2Size'] = newSize;\n newState[isPanel1Primary ? 'pane2Size' : 'pane1Size'] = undefined;\n newState.instanceProps = {\n size: props.size\n };\n return newState;\n }\n }]);\n\n return SplitPane;\n}(React.Component);\n\nSplitPane.propTypes = {\n allowResize: PropTypes.bool,\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n className: PropTypes.string,\n primary: PropTypes.oneOf(['first', 'second']),\n minSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // eslint-disable-next-line react/no-unused-prop-types\n defaultSize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n split: PropTypes.oneOf(['vertical', 'horizontal']),\n onDragStarted: PropTypes.func,\n onDragFinished: PropTypes.func,\n onChange: PropTypes.func,\n onResizerClick: PropTypes.func,\n onResizerDoubleClick: PropTypes.func,\n style: stylePropType,\n resizerStyle: stylePropType,\n paneClassName: PropTypes.string,\n pane1ClassName: PropTypes.string,\n pane2ClassName: PropTypes.string,\n paneStyle: stylePropType,\n pane1Style: stylePropType,\n pane2Style: stylePropType,\n resizerClassName: PropTypes.string,\n step: PropTypes.number\n};\nSplitPane.defaultProps = {\n allowResize: true,\n minSize: 50,\n primary: 'first',\n split: 'vertical',\n paneClassName: '',\n pane1ClassName: '',\n pane2ClassName: ''\n};\npolyfill(SplitPane);\n\nexport default SplitPane;\nexport { Pane };\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport Button from '../../components/Button/Button';\n\nimport './TabbedContent.scss';\nimport {DropdownMenu, DropdownMenuItem} from '@gravity-ui/uikit';\n\nconst block = cn('yt-tabbed-content');\n\ninterface Props {\n className?: string;\n name: string;\n subTitle?: string;\n actions?: Array<DropdownMenuItem<unknown>>;\n actionAsDropdown?: boolean;\n children: React.ReactNode;\n contentClassName?: string;\n}\n\nexport default function TabbedContent(props: Props) {\n const {name, subTitle, actions, children, className, contentClassName, actionAsDropdown} =\n props;\n const growTitle = !subTitle;\n return (\n <div className={block(null, className)}>\n <div className={block('header')}>\n <span className={block('title', {growable: growTitle})} title={name}>\n {name}\n </span>\n {subTitle && (\n <React.Fragment>\n <span className={block('sub-title')} title={subTitle}>\n {subTitle}\n </span>\n </React.Fragment>\n )}\n {actions && <Actions actions={actions} useDropdown={Boolean(actionAsDropdown)} />}\n </div>\n <div className={block('content', contentClassName)}>{children}</div>\n </div>\n );\n}\n\nfunction Actions(props: {actions: Required<Props>['actions']; useDropdown: boolean}) {\n const {actions, useDropdown} = props;\n\n return !actions.length ? null : (\n <span className={block('actions')}>\n {useDropdown ? (\n <DropdownMenu items={actions} />\n ) : (\n actions.map(({text, icon, action}, index) => {\n return (\n <Button\n key={index}\n onClick={action}\n size={'m'}\n className={block('actions-item')}\n >\n {icon}\n {text}\n </Button>\n );\n })\n )}\n </span>\n );\n}\n","import React, {useRef} 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';\nimport type {editor} from 'monaco-editor';\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 editorRef = useRef<editor.IStandaloneCodeEditor>();\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 editorRef={editorRef}\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 * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","export function getOffset(value, min, max) {\n return (value - min) / (max - min);\n}\nexport function getDirectionStyle(direction, value, min, max) {\n var offset = getOffset(value, min, max);\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(50%)';\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(50%)';\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateY(-50%)';\n break;\n default:\n positionStyle.left = \"\".concat(offset * 100, \"%\");\n positionStyle.transform = 'translateX(-50%)';\n break;\n }\n return positionStyle;\n}\n\n/** Return index value if is list or return value directly */\nexport function getIndex(value, index) {\n return Array.isArray(value) ? value[index] : value;\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import * as React from 'react';\nvar SliderContext = /*#__PURE__*/React.createContext({\n min: 0,\n max: 0,\n direction: 'ltr',\n step: 1,\n includedStart: 0,\n includedEnd: 0,\n tabIndex: 0,\n keyboard: true,\n styles: {},\n classNames: {}\n});\nexport default SliderContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"value\", \"valueIndex\", \"onStartMove\", \"style\", \"render\", \"dragging\", \"onOffsetChange\", \"onChangeComplete\", \"onFocus\", \"onMouseEnter\"];\nimport cls from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle, getIndex } from \"../util\";\nvar Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n value = props.value,\n valueIndex = props.valueIndex,\n onStartMove = props.onStartMove,\n style = props.style,\n render = props.render,\n dragging = props.dragging,\n onOffsetChange = props.onOffsetChange,\n onChangeComplete = props.onChangeComplete,\n onFocus = props.onFocus,\n onMouseEnter = props.onMouseEnter,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n disabled = _React$useContext.disabled,\n keyboard = _React$useContext.keyboard,\n range = _React$useContext.range,\n tabIndex = _React$useContext.tabIndex,\n ariaLabelForHandle = _React$useContext.ariaLabelForHandle,\n ariaLabelledByForHandle = _React$useContext.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _React$useContext.ariaValueTextFormatterForHandle,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n var handlePrefixCls = \"\".concat(prefixCls, \"-handle\");\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled) {\n onStartMove(e, valueIndex);\n }\n };\n var onInternalFocus = function onInternalFocus(e) {\n onFocus === null || onFocus === void 0 || onFocus(e, valueIndex);\n };\n var onInternalMouseEnter = function onInternalMouseEnter(e) {\n onMouseEnter(e, valueIndex);\n };\n\n // =========================== Keyboard ===========================\n var onKeyDown = function onKeyDown(e) {\n if (!disabled && keyboard) {\n var offset = null;\n\n // Change the value\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n offset = direction === 'ltr' || direction === 'btt' ? -1 : 1;\n break;\n case KeyCode.RIGHT:\n offset = direction === 'ltr' || direction === 'btt' ? 1 : -1;\n break;\n\n // Up is plus\n case KeyCode.UP:\n offset = direction !== 'ttb' ? 1 : -1;\n break;\n\n // Down is minus\n case KeyCode.DOWN:\n offset = direction !== 'ttb' ? -1 : 1;\n break;\n case KeyCode.HOME:\n offset = 'min';\n break;\n case KeyCode.END:\n offset = 'max';\n break;\n case KeyCode.PAGE_UP:\n offset = 2;\n break;\n case KeyCode.PAGE_DOWN:\n offset = -2;\n break;\n }\n if (offset !== null) {\n e.preventDefault();\n onOffsetChange(offset, valueIndex);\n }\n }\n };\n var handleKeyUp = function handleKeyUp(e) {\n switch (e.which || e.keyCode) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.HOME:\n case KeyCode.END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete();\n break;\n }\n };\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n\n // ============================ Render ============================\n var divProps = {};\n if (valueIndex !== null) {\n var _getIndex;\n divProps = {\n tabIndex: disabled ? null : getIndex(tabIndex, valueIndex),\n role: 'slider',\n 'aria-valuemin': min,\n 'aria-valuemax': max,\n 'aria-valuenow': value,\n 'aria-disabled': disabled,\n 'aria-label': getIndex(ariaLabelForHandle, valueIndex),\n 'aria-labelledby': getIndex(ariaLabelledByForHandle, valueIndex),\n 'aria-valuetext': (_getIndex = getIndex(ariaValueTextFormatterForHandle, valueIndex)) === null || _getIndex === void 0 ? void 0 : _getIndex(value),\n 'aria-orientation': direction === 'ltr' || direction === 'rtl' ? 'horizontal' : 'vertical',\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove,\n onFocus: onInternalFocus,\n onMouseEnter: onInternalMouseEnter,\n onKeyDown: onKeyDown,\n onKeyUp: handleKeyUp\n };\n }\n var handleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: cls(handlePrefixCls, _defineProperty(_defineProperty({}, \"\".concat(handlePrefixCls, \"-\").concat(valueIndex + 1), valueIndex !== null && range), \"\".concat(handlePrefixCls, \"-dragging\"), dragging), classNames.handle),\n style: _objectSpread(_objectSpread(_objectSpread({}, positionStyle), style), styles.handle)\n }, divProps, restProps));\n\n // Customize\n if (render) {\n handleNode = render(handleNode, {\n index: valueIndex,\n prefixCls: prefixCls,\n value: value,\n dragging: dragging\n });\n }\n return handleNode;\n});\nif (process.env.NODE_ENV !== 'production') {\n Handle.displayName = 'Handle';\n}\nexport default Handle;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"style\", \"onStartMove\", \"onOffsetChange\", \"values\", \"handleRender\", \"activeHandleRender\", \"draggingIndex\", \"onFocus\"];\nimport * as React from 'react';\nimport { getIndex } from \"../util\";\nimport Handle from \"./Handle\";\nvar Handles = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n onStartMove = props.onStartMove,\n onOffsetChange = props.onOffsetChange,\n values = props.values,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n draggingIndex = props.draggingIndex,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded);\n var handlesRef = React.useRef({});\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus(index) {\n var _handlesRef$current$i;\n (_handlesRef$current$i = handlesRef.current[index]) === null || _handlesRef$current$i === void 0 || _handlesRef$current$i.focus();\n }\n };\n });\n\n // =========================== Active ===========================\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var onHandleFocus = function onHandleFocus(e, index) {\n setActiveIndex(index);\n onFocus === null || onFocus === void 0 || onFocus(e);\n };\n var onHandleMouseEnter = function onHandleMouseEnter(e, index) {\n setActiveIndex(index);\n };\n\n // =========================== Render ===========================\n // Handle Props\n var handleProps = _objectSpread({\n prefixCls: prefixCls,\n onStartMove: onStartMove,\n onOffsetChange: onOffsetChange,\n render: handleRender,\n onFocus: onHandleFocus,\n onMouseEnter: onHandleMouseEnter\n }, restProps);\n return /*#__PURE__*/React.createElement(React.Fragment, null, values.map(function (value, index) {\n return /*#__PURE__*/React.createElement(Handle, _extends({\n ref: function ref(node) {\n if (!node) {\n delete handlesRef.current[index];\n } else {\n handlesRef.current[index] = node;\n }\n },\n dragging: draggingIndex === index,\n style: getIndex(style, index),\n key: index,\n value: value,\n valueIndex: index\n }, handleProps));\n }), activeHandleRender && /*#__PURE__*/React.createElement(Handle, _extends({\n key: \"a11y\"\n }, handleProps, {\n value: values[activeIndex],\n valueIndex: null,\n dragging: draggingIndex !== -1,\n render: activeHandleRender,\n style: {\n pointerEvents: 'none'\n },\n tabIndex: null,\n \"aria-hidden\": true\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Handles.displayName = 'Handles';\n}\nexport default Handles;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Mark = function Mark(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n children = props.children,\n value = props.value,\n _onClick = props.onClick;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd,\n included = _React$useContext.included;\n var textCls = \"\".concat(prefixCls, \"-text\");\n\n // ============================ Offset ============================\n var positionStyle = getDirectionStyle(direction, value, min, max);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(textCls, _defineProperty({}, \"\".concat(textCls, \"-active\"), included && includedStart <= value && value <= includedEnd)),\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: function onMouseDown(e) {\n e.stopPropagation();\n },\n onClick: function onClick() {\n _onClick(value);\n }\n }, children);\n};\nexport default Mark;","import * as React from 'react';\nimport Mark from \"./Mark\";\nvar Marks = function Marks(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n onClick = props.onClick;\n var markPrefixCls = \"\".concat(prefixCls, \"-mark\");\n\n // Not render mark if empty\n if (!marks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: markPrefixCls\n }, marks.map(function (_ref) {\n var value = _ref.value,\n style = _ref.style,\n label = _ref.label;\n return /*#__PURE__*/React.createElement(Mark, {\n key: value,\n prefixCls: markPrefixCls,\n style: style,\n value: value,\n onClick: onClick\n }, label);\n }));\n};\nexport default Marks;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getDirectionStyle } from \"../util\";\nvar Dot = function Dot(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n direction = _React$useContext.direction,\n included = _React$useContext.included,\n includedStart = _React$useContext.includedStart,\n includedEnd = _React$useContext.includedEnd;\n var dotClassName = \"\".concat(prefixCls, \"-dot\");\n var active = included && includedStart <= value && value <= includedEnd;\n\n // ============================ Offset ============================\n var mergedStyle = _objectSpread(_objectSpread({}, getDirectionStyle(direction, value, min, max)), typeof style === 'function' ? style(value) : style);\n if (active) {\n mergedStyle = _objectSpread(_objectSpread({}, mergedStyle), typeof activeStyle === 'function' ? activeStyle(value) : activeStyle);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(dotClassName, _defineProperty({}, \"\".concat(dotClassName, \"-active\"), active)),\n style: mergedStyle\n });\n};\nexport default Dot;","import * as React from 'react';\nimport SliderContext from \"../context\";\nimport Dot from \"./Dot\";\nvar Steps = function Steps(props) {\n var prefixCls = props.prefixCls,\n marks = props.marks,\n dots = props.dots,\n style = props.style,\n activeStyle = props.activeStyle;\n var _React$useContext = React.useContext(SliderContext),\n min = _React$useContext.min,\n max = _React$useContext.max,\n step = _React$useContext.step;\n var stepDots = React.useMemo(function () {\n var dotSet = new Set();\n\n // Add marks\n marks.forEach(function (mark) {\n dotSet.add(mark.value);\n });\n\n // Fill dots\n if (dots && step !== null) {\n var current = min;\n while (current <= max) {\n dotSet.add(current);\n current += step;\n }\n }\n return Array.from(dotSet);\n }, [min, max, step, dots, marks]);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, stepDots.map(function (dotValue) {\n return /*#__PURE__*/React.createElement(Dot, {\n prefixCls: prefixCls,\n key: dotValue,\n value: dotValue,\n style: style,\n activeStyle: activeStyle\n });\n }));\n};\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getOffset } from \"../util\";\nvar Track = function Track(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n start = props.start,\n end = props.end,\n index = props.index,\n onStartMove = props.onStartMove,\n replaceCls = props.replaceCls;\n var _React$useContext = React.useContext(SliderContext),\n direction = _React$useContext.direction,\n min = _React$useContext.min,\n max = _React$useContext.max,\n disabled = _React$useContext.disabled,\n range = _React$useContext.range,\n classNames = _React$useContext.classNames;\n var trackPrefixCls = \"\".concat(prefixCls, \"-track\");\n var offsetStart = getOffset(start, min, max);\n var offsetEnd = getOffset(end, min, max);\n\n // ============================ Events ============================\n var onInternalStartMove = function onInternalStartMove(e) {\n if (!disabled && onStartMove) {\n onStartMove(e, -1);\n }\n };\n\n // ============================ Render ============================\n var positionStyle = {};\n switch (direction) {\n case 'rtl':\n positionStyle.right = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'btt':\n positionStyle.bottom = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n case 'ttb':\n positionStyle.top = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.height = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n break;\n default:\n positionStyle.left = \"\".concat(offsetStart * 100, \"%\");\n positionStyle.width = \"\".concat(offsetEnd * 100 - offsetStart * 100, \"%\");\n }\n var className = replaceCls || cls(trackPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(trackPrefixCls, \"-\").concat(index + 1), index !== null && range), \"\".concat(prefixCls, \"-track-draggable\"), onStartMove), classNames.track);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: _objectSpread(_objectSpread({}, positionStyle), style),\n onMouseDown: onInternalStartMove,\n onTouchStart: onInternalStartMove\n });\n};\nexport default Track;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport cls from 'classnames';\nimport * as React from 'react';\nimport SliderContext from \"../context\";\nimport { getIndex } from \"../util\";\nimport Track from \"./Track\";\nvar Tracks = function Tracks(props) {\n var prefixCls = props.prefixCls,\n style = props.style,\n values = props.values,\n startPoint = props.startPoint,\n onStartMove = props.onStartMove;\n var _React$useContext = React.useContext(SliderContext),\n included = _React$useContext.included,\n range = _React$useContext.range,\n min = _React$useContext.min,\n styles = _React$useContext.styles,\n classNames = _React$useContext.classNames;\n\n // =========================== List ===========================\n var trackList = React.useMemo(function () {\n if (!range) {\n // null value do not have track\n if (values.length === 0) {\n return [];\n }\n var startValue = startPoint !== null && startPoint !== void 0 ? startPoint : min;\n var endValue = values[0];\n return [{\n start: Math.min(startValue, endValue),\n end: Math.max(startValue, endValue)\n }];\n }\n\n // Multiple\n var list = [];\n for (var i = 0; i < values.length - 1; i += 1) {\n list.push({\n start: values[i],\n end: values[i + 1]\n });\n }\n return list;\n }, [values, range, startPoint, min]);\n if (!included) {\n return null;\n }\n\n // ========================== Render ==========================\n var tracksNode = classNames.tracks || styles.tracks ? /*#__PURE__*/React.createElement(Track, {\n index: null,\n prefixCls: prefixCls,\n start: trackList[0].start,\n end: trackList[trackList.length - 1].end,\n replaceCls: cls(classNames.tracks, \"\".concat(prefixCls, \"-tracks\")),\n style: styles.tracks\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, tracksNode, trackList.map(function (_ref, index) {\n var start = _ref.start,\n end = _ref.end;\n return /*#__PURE__*/React.createElement(Track, {\n index: index,\n prefixCls: prefixCls,\n style: _objectSpread(_objectSpread({}, getIndex(style, index)), styles.track),\n start: start,\n end: end,\n key: index,\n onStartMove: onStartMove\n });\n }));\n};\nexport default Tracks;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport * as React from 'react';\nfunction getPosition(e) {\n var obj = 'touches' in e ? e.touches[0] : e;\n return {\n pageX: obj.pageX,\n pageY: obj.pageY\n };\n}\nfunction useDrag(containerRef, direction, rawValues, min, max, formatValue, triggerChange, finishChange, offsetValues) {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n draggingValue = _React$useState2[0],\n setDraggingValue = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n draggingIndex = _React$useState4[0],\n setDraggingIndex = _React$useState4[1];\n var _React$useState5 = React.useState(rawValues),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n cacheValues = _React$useState6[0],\n setCacheValues = _React$useState6[1];\n var _React$useState7 = React.useState(rawValues),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n originValues = _React$useState8[0],\n setOriginValues = _React$useState8[1];\n var mouseMoveEventRef = React.useRef(null);\n var mouseUpEventRef = React.useRef(null);\n React.useLayoutEffect(function () {\n if (draggingIndex === -1) {\n setCacheValues(rawValues);\n }\n }, [rawValues, draggingIndex]);\n\n // Clean up event\n React.useEffect(function () {\n return function () {\n document.removeEventListener('mousemove', mouseMoveEventRef.current);\n document.removeEventListener('mouseup', mouseUpEventRef.current);\n document.removeEventListener('touchmove', mouseMoveEventRef.current);\n document.removeEventListener('touchend', mouseUpEventRef.current);\n };\n }, []);\n var flushValues = function flushValues(nextValues, nextValue) {\n // Perf: Only update state when value changed\n if (cacheValues.some(function (val, i) {\n return val !== nextValues[i];\n })) {\n if (nextValue !== undefined) {\n setDraggingValue(nextValue);\n }\n setCacheValues(nextValues);\n triggerChange(nextValues);\n }\n };\n var updateCacheValue = useEvent(function (valueIndex, offsetPercent) {\n // Basic point offset\n\n if (valueIndex === -1) {\n // >>>> Dragging on the track\n var startValue = originValues[0];\n var endValue = originValues[originValues.length - 1];\n var maxStartOffset = min - startValue;\n var maxEndOffset = max - endValue;\n\n // Get valid offset\n var offset = offsetPercent * (max - min);\n offset = Math.max(offset, maxStartOffset);\n offset = Math.min(offset, maxEndOffset);\n\n // Use first value to revert back of valid offset (like steps marks)\n var formatStartValue = formatValue(startValue + offset);\n offset = formatStartValue - startValue;\n var cloneCacheValues = originValues.map(function (val) {\n return val + offset;\n });\n flushValues(cloneCacheValues);\n } else {\n // >>>> Dragging on the handle\n var offsetDist = (max - min) * offsetPercent;\n\n // Always start with the valueIndex origin value\n var cloneValues = _toConsumableArray(cacheValues);\n cloneValues[valueIndex] = originValues[valueIndex];\n var next = offsetValues(cloneValues, offsetDist, valueIndex, 'dist');\n flushValues(next.values, next.value);\n }\n });\n var onStartMove = function onStartMove(e, valueIndex, startValues) {\n e.stopPropagation();\n\n // 如果是点击 track 触发的,需要传入变化后的初始值,而不能直接用 rawValues\n var initialValues = startValues || rawValues;\n var originValue = initialValues[valueIndex];\n setDraggingIndex(valueIndex);\n setDraggingValue(originValue);\n setOriginValues(initialValues);\n var _getPosition = getPosition(e),\n startX = _getPosition.pageX,\n startY = _getPosition.pageY;\n\n // Moving\n var onMouseMove = function onMouseMove(event) {\n event.preventDefault();\n var _getPosition2 = getPosition(event),\n moveX = _getPosition2.pageX,\n moveY = _getPosition2.pageY;\n var offsetX = moveX - startX;\n var offsetY = moveY - startY;\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height;\n var offSetPercent;\n switch (direction) {\n case 'btt':\n offSetPercent = -offsetY / height;\n break;\n case 'ttb':\n offSetPercent = offsetY / height;\n break;\n case 'rtl':\n offSetPercent = -offsetX / width;\n break;\n default:\n offSetPercent = offsetX / width;\n }\n updateCacheValue(valueIndex, offSetPercent);\n };\n\n // End\n var onMouseUp = function onMouseUp(event) {\n event.preventDefault();\n document.removeEventListener('mouseup', onMouseUp);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('touchend', onMouseUp);\n document.removeEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = null;\n mouseUpEventRef.current = null;\n setDraggingIndex(-1);\n finishChange();\n };\n document.addEventListener('mouseup', onMouseUp);\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('touchend', onMouseUp);\n document.addEventListener('touchmove', onMouseMove);\n mouseMoveEventRef.current = onMouseMove;\n mouseUpEventRef.current = onMouseUp;\n };\n\n // Only return cache value when it mapping with rawValues\n var returnValues = React.useMemo(function () {\n var sourceValues = _toConsumableArray(rawValues).sort(function (a, b) {\n return a - b;\n });\n var targetValues = _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n return sourceValues.every(function (val, index) {\n return val === targetValues[index];\n }) ? cacheValues : rawValues;\n }, [rawValues, cacheValues]);\n return [draggingIndex, draggingValue, returnValues, onStartMove];\n}\nexport default useDrag;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport cls from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Handles from \"./Handles\";\nimport Marks from \"./Marks\";\nimport Steps from \"./Steps\";\nimport Tracks from \"./Tracks\";\nimport SliderContext from \"./context\";\nimport useDrag from \"./hooks/useDrag\";\nimport useOffset from \"./hooks/useOffset\";\n\n/**\n * New:\n * - click mark to update range value\n * - handleRender\n * - Fix handle with count not correct\n * - Fix pushable not work in some case\n * - No more FindDOMNode\n * - Move all position related style into inline style\n * - Key: up is plus, down is minus\n * - fix Key with step = null not align with marks\n * - Change range should not trigger onChange\n * - keyboard support pushable\n */\n\nvar Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-slider' : _props$prefixCls,\n className = props.className,\n style = props.style,\n classNames = props.classNames,\n styles = props.styles,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n autoFocus = props.autoFocus,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n _props$min = props.min,\n min = _props$min === void 0 ? 0 : _props$min,\n _props$max = props.max,\n max = _props$max === void 0 ? 100 : _props$max,\n _props$step = props.step,\n step = _props$step === void 0 ? 1 : _props$step,\n value = props.value,\n defaultValue = props.defaultValue,\n range = props.range,\n count = props.count,\n onChange = props.onChange,\n onBeforeChange = props.onBeforeChange,\n onAfterChange = props.onAfterChange,\n onChangeComplete = props.onChangeComplete,\n _props$allowCross = props.allowCross,\n allowCross = _props$allowCross === void 0 ? true : _props$allowCross,\n _props$pushable = props.pushable,\n pushable = _props$pushable === void 0 ? false : _props$pushable,\n draggableTrack = props.draggableTrack,\n reverse = props.reverse,\n vertical = props.vertical,\n _props$included = props.included,\n included = _props$included === void 0 ? true : _props$included,\n startPoint = props.startPoint,\n trackStyle = props.trackStyle,\n handleStyle = props.handleStyle,\n railStyle = props.railStyle,\n dotStyle = props.dotStyle,\n activeDotStyle = props.activeDotStyle,\n marks = props.marks,\n dots = props.dots,\n handleRender = props.handleRender,\n activeHandleRender = props.activeHandleRender,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n ariaLabelForHandle = props.ariaLabelForHandle,\n ariaLabelledByForHandle = props.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = props.ariaValueTextFormatterForHandle;\n var handlesRef = React.useRef(null);\n var containerRef = React.useRef(null);\n var direction = React.useMemo(function () {\n if (vertical) {\n return reverse ? 'ttb' : 'btt';\n }\n return reverse ? 'rtl' : 'ltr';\n }, [reverse, vertical]);\n\n // ============================ Range =============================\n var mergedMin = React.useMemo(function () {\n return isFinite(min) ? min : 0;\n }, [min]);\n var mergedMax = React.useMemo(function () {\n return isFinite(max) ? max : 100;\n }, [max]);\n\n // ============================= Step =============================\n var mergedStep = React.useMemo(function () {\n return step !== null && step <= 0 ? 1 : step;\n }, [step]);\n\n // ============================= Push =============================\n var mergedPush = React.useMemo(function () {\n if (typeof pushable === 'boolean') {\n return pushable ? mergedStep : false;\n }\n return pushable >= 0 ? pushable : false;\n }, [pushable, mergedStep]);\n\n // ============================ Marks =============================\n var markList = React.useMemo(function () {\n return Object.keys(marks || {}).map(function (key) {\n var mark = marks[key];\n var markObj = {\n value: Number(key)\n };\n if (mark && _typeof(mark) === 'object' && ! /*#__PURE__*/React.isValidElement(mark) && ('label' in mark || 'style' in mark)) {\n markObj.style = mark.style;\n markObj.label = mark.label;\n } else {\n markObj.label = mark;\n }\n return markObj;\n }).filter(function (_ref) {\n var label = _ref.label;\n return label || typeof label === 'number';\n }).sort(function (a, b) {\n return a.value - b.value;\n });\n }, [marks]);\n\n // ============================ Format ============================\n var _useOffset = useOffset(mergedMin, mergedMax, mergedStep, markList, allowCross, mergedPush),\n _useOffset2 = _slicedToArray(_useOffset, 2),\n formatValue = _useOffset2[0],\n offsetValues = _useOffset2[1];\n\n // ============================ Values ============================\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var rawValues = React.useMemo(function () {\n var valueList = mergedValue === null || mergedValue === undefined ? [] : Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n var _valueList = _slicedToArray(valueList, 1),\n _valueList$ = _valueList[0],\n val0 = _valueList$ === void 0 ? mergedMin : _valueList$;\n var returnValues = mergedValue === null ? [] : [val0];\n\n // Format as range\n if (range) {\n returnValues = _toConsumableArray(valueList);\n\n // When count provided or value is `undefined`, we fill values\n if (count || mergedValue === undefined) {\n var pointCount = count >= 0 ? count + 1 : 2;\n returnValues = returnValues.slice(0, pointCount);\n\n // Fill with count\n while (returnValues.length < pointCount) {\n var _returnValues;\n returnValues.push((_returnValues = returnValues[returnValues.length - 1]) !== null && _returnValues !== void 0 ? _returnValues : mergedMin);\n }\n }\n returnValues.sort(function (a, b) {\n return a - b;\n });\n }\n\n // Align in range\n returnValues.forEach(function (val, index) {\n returnValues[index] = formatValue(val);\n });\n return returnValues;\n }, [mergedValue, range, mergedMin, count, formatValue]);\n\n // =========================== onChange ===========================\n var rawValuesRef = React.useRef(rawValues);\n rawValuesRef.current = rawValues;\n var getTriggerValue = function getTriggerValue(triggerValues) {\n return range ? triggerValues : triggerValues[0];\n };\n var triggerChange = function triggerChange(nextValues) {\n // Order first\n var cloneNextValues = _toConsumableArray(nextValues).sort(function (a, b) {\n return a - b;\n });\n\n // Trigger event if needed\n if (onChange && !isEqual(cloneNextValues, rawValuesRef.current, true)) {\n onChange(getTriggerValue(cloneNextValues));\n }\n\n // We set this later since it will re-render component immediately\n setValue(cloneNextValues);\n };\n var finishChange = function finishChange() {\n var finishValue = getTriggerValue(rawValuesRef.current);\n onAfterChange === null || onAfterChange === void 0 || onAfterChange(finishValue);\n warning(!onAfterChange, '[rc-slider] `onAfterChange` is deprecated. Please use `onChangeComplete` instead.');\n onChangeComplete === null || onChangeComplete === void 0 || onChangeComplete(finishValue);\n };\n var _useDrag = useDrag(containerRef, direction, rawValues, mergedMin, mergedMax, formatValue, triggerChange, finishChange, offsetValues),\n _useDrag2 = _slicedToArray(_useDrag, 4),\n draggingIndex = _useDrag2[0],\n draggingValue = _useDrag2[1],\n cacheValues = _useDrag2[2],\n onStartDrag = _useDrag2[3];\n var changeToCloseValue = function changeToCloseValue(newValue, e) {\n if (!disabled) {\n var valueIndex = 0;\n var valueDist = mergedMax - mergedMin;\n rawValues.forEach(function (val, index) {\n var dist = Math.abs(newValue - val);\n if (dist <= valueDist) {\n valueDist = dist;\n valueIndex = index;\n }\n });\n\n // Create new values\n var cloneNextValues = _toConsumableArray(rawValues);\n cloneNextValues[valueIndex] = newValue;\n\n // Fill value to match default 2\n if (range && !rawValues.length && count === undefined) {\n cloneNextValues.push(newValue);\n }\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(cloneNextValues));\n triggerChange(cloneNextValues);\n if (e) {\n var _document$activeEleme, _document$activeEleme2;\n (_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 || (_document$activeEleme2 = _document$activeEleme.blur) === null || _document$activeEleme2 === void 0 || _document$activeEleme2.call(_document$activeEleme);\n handlesRef.current.focus(valueIndex);\n onStartDrag(e, valueIndex, cloneNextValues);\n }\n }\n };\n\n // ============================ Click =============================\n var onSliderMouseDown = function onSliderMouseDown(e) {\n e.preventDefault();\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n width = _containerRef$current.width,\n height = _containerRef$current.height,\n left = _containerRef$current.left,\n top = _containerRef$current.top,\n bottom = _containerRef$current.bottom,\n right = _containerRef$current.right;\n var clientX = e.clientX,\n clientY = e.clientY;\n var percent;\n switch (direction) {\n case 'btt':\n percent = (bottom - clientY) / height;\n break;\n case 'ttb':\n percent = (clientY - top) / height;\n break;\n case 'rtl':\n percent = (right - clientX) / width;\n break;\n default:\n percent = (clientX - left) / width;\n }\n var nextValue = mergedMin + percent * (mergedMax - mergedMin);\n changeToCloseValue(formatValue(nextValue), e);\n };\n\n // =========================== Keyboard ===========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n keyboardValue = _React$useState2[0],\n setKeyboardValue = _React$useState2[1];\n var onHandleOffsetChange = function onHandleOffsetChange(offset, valueIndex) {\n if (!disabled) {\n var next = offsetValues(rawValues, offset, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValues));\n triggerChange(next.values);\n setKeyboardValue(next.value);\n }\n };\n React.useEffect(function () {\n if (keyboardValue !== null) {\n var valueIndex = rawValues.indexOf(keyboardValue);\n if (valueIndex >= 0) {\n handlesRef.current.focus(valueIndex);\n }\n }\n setKeyboardValue(null);\n }, [keyboardValue]);\n\n // ============================= Drag =============================\n var mergedDraggableTrack = React.useMemo(function () {\n if (draggableTrack && mergedStep === null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`draggableTrack` is not supported when `step` is `null`.');\n }\n return false;\n }\n return draggableTrack;\n }, [draggableTrack, mergedStep]);\n var onStartMove = function onStartMove(e, valueIndex) {\n onStartDrag(e, valueIndex);\n onBeforeChange === null || onBeforeChange === void 0 || onBeforeChange(getTriggerValue(rawValuesRef.current));\n };\n\n // Auto focus for updated handle\n var dragging = draggingIndex !== -1;\n React.useEffect(function () {\n if (!dragging) {\n var valueIndex = rawValues.lastIndexOf(draggingValue);\n handlesRef.current.focus(valueIndex);\n }\n }, [dragging]);\n\n // =========================== Included ===========================\n var sortedCacheValues = React.useMemo(function () {\n return _toConsumableArray(cacheValues).sort(function (a, b) {\n return a - b;\n });\n }, [cacheValues]);\n\n // Provide a range values with included [min, max]\n // Used for Track, Mark & Dot\n var _React$useMemo = React.useMemo(function () {\n if (!range) {\n return [mergedMin, sortedCacheValues[0]];\n }\n return [sortedCacheValues[0], sortedCacheValues[sortedCacheValues.length - 1]];\n }, [sortedCacheValues, range, mergedMin]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n includedStart = _React$useMemo2[0],\n includedEnd = _React$useMemo2[1];\n\n // ============================= Refs =============================\n React.useImperativeHandle(ref, function () {\n return {\n focus: function focus() {\n handlesRef.current.focus(0);\n },\n blur: function blur() {\n var _containerRef$current2;\n var _document = document,\n activeElement = _document.activeElement;\n if ((_containerRef$current2 = containerRef.current) !== null && _containerRef$current2 !== void 0 && _containerRef$current2.contains(activeElement)) {\n activeElement === null || activeElement === void 0 || activeElement.blur();\n }\n }\n };\n });\n\n // ========================== Auto Focus ==========================\n React.useEffect(function () {\n if (autoFocus) {\n handlesRef.current.focus(0);\n }\n }, []);\n\n // =========================== Context ============================\n var context = React.useMemo(function () {\n return {\n min: mergedMin,\n max: mergedMax,\n direction: direction,\n disabled: disabled,\n keyboard: keyboard,\n step: mergedStep,\n included: included,\n includedStart: includedStart,\n includedEnd: includedEnd,\n range: range,\n tabIndex: tabIndex,\n ariaLabelForHandle: ariaLabelForHandle,\n ariaLabelledByForHandle: ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle: ariaValueTextFormatterForHandle,\n styles: styles || {},\n classNames: classNames || {}\n };\n }, [mergedMin, mergedMax, direction, disabled, keyboard, mergedStep, included, includedStart, includedEnd, range, tabIndex, ariaLabelForHandle, ariaLabelledByForHandle, ariaValueTextFormatterForHandle, styles, classNames]);\n\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(SliderContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: containerRef,\n className: cls(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-vertical\"), vertical), \"\".concat(prefixCls, \"-horizontal\"), !vertical), \"\".concat(prefixCls, \"-with-marks\"), markList.length)),\n style: style,\n onMouseDown: onSliderMouseDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: cls(\"\".concat(prefixCls, \"-rail\"), classNames === null || classNames === void 0 ? void 0 : classNames.rail),\n style: _objectSpread(_objectSpread({}, railStyle), styles === null || styles === void 0 ? void 0 : styles.rail)\n }), /*#__PURE__*/React.createElement(Tracks, {\n prefixCls: prefixCls,\n style: trackStyle,\n values: sortedCacheValues,\n startPoint: startPoint,\n onStartMove: mergedDraggableTrack ? onStartMove : undefined\n }), /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n marks: markList,\n dots: dots,\n style: dotStyle,\n activeStyle: activeDotStyle\n }), /*#__PURE__*/React.createElement(Handles, {\n ref: handlesRef,\n prefixCls: prefixCls,\n style: handleStyle,\n values: cacheValues,\n draggingIndex: draggingIndex,\n onStartMove: onStartMove,\n onOffsetChange: onHandleOffsetChange,\n onFocus: onFocus,\n onBlur: onBlur,\n handleRender: handleRender,\n activeHandleRender: activeHandleRender,\n onChangeComplete: finishChange\n }), /*#__PURE__*/React.createElement(Marks, {\n prefixCls: prefixCls,\n marks: markList,\n onClick: changeToCloseValue\n })));\n});\nif (process.env.NODE_ENV !== 'production') {\n Slider.displayName = 'Slider';\n}\nexport default Slider;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\n\n/** Format the value in the range of [min, max] */\n\n/** Format value align with step */\n\n/** Format value align with step & marks */\n\nexport default function useOffset(min, max, step, markList, allowCross, pushable) {\n var formatRangeValue = React.useCallback(function (val) {\n return Math.max(min, Math.min(max, val));\n }, [min, max]);\n var formatStepValue = React.useCallback(function (val) {\n if (step !== null) {\n var stepValue = min + Math.round((formatRangeValue(val) - min) / step) * step;\n\n // Cut number in case to be like 0.30000000000000004\n var getDecimal = function getDecimal(num) {\n return (String(num).split('.')[1] || '').length;\n };\n var maxDecimal = Math.max(getDecimal(step), getDecimal(max), getDecimal(min));\n var fixedValue = Number(stepValue.toFixed(maxDecimal));\n return min <= fixedValue && fixedValue <= max ? fixedValue : null;\n }\n return null;\n }, [step, min, max, formatRangeValue]);\n var formatValue = React.useCallback(function (val) {\n var formatNextValue = formatRangeValue(val);\n\n // List align values\n var alignValues = markList.map(function (mark) {\n return mark.value;\n });\n if (step !== null) {\n alignValues.push(formatStepValue(val));\n }\n\n // min & max\n alignValues.push(min, max);\n\n // Align with marks\n var closeValue = alignValues[0];\n var closeDist = max - min;\n alignValues.forEach(function (alignValue) {\n var dist = Math.abs(formatNextValue - alignValue);\n if (dist <= closeDist) {\n closeValue = alignValue;\n closeDist = dist;\n }\n });\n return closeValue;\n }, [min, max, markList, step, formatRangeValue, formatStepValue]);\n\n // ========================== Offset ==========================\n // Single Value\n var offsetValue = function offsetValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n if (typeof offset === 'number') {\n var nextValue;\n var originValue = values[valueIndex];\n\n // Only used for `dist` mode\n var targetDistValue = originValue + offset;\n\n // Compare next step value & mark value which is best match\n var potentialValues = [];\n markList.forEach(function (mark) {\n potentialValues.push(mark.value);\n });\n\n // Min & Max\n potentialValues.push(min, max);\n\n // In case origin value is align with mark but not with step\n potentialValues.push(formatStepValue(originValue));\n\n // Put offset step value also\n var sign = offset > 0 ? 1 : -1;\n if (mode === 'unit') {\n potentialValues.push(formatStepValue(originValue + sign * step));\n } else {\n potentialValues.push(formatStepValue(targetDistValue));\n }\n\n // Find close one\n potentialValues = potentialValues.filter(function (val) {\n return val !== null;\n })\n // Remove reverse value\n .filter(function (val) {\n return offset < 0 ? val <= originValue : val >= originValue;\n });\n if (mode === 'unit') {\n // `unit` mode can not contain itself\n potentialValues = potentialValues.filter(function (val) {\n return val !== originValue;\n });\n }\n var compareValue = mode === 'unit' ? originValue : targetDistValue;\n nextValue = potentialValues[0];\n var valueDist = Math.abs(nextValue - compareValue);\n potentialValues.forEach(function (potentialValue) {\n var dist = Math.abs(potentialValue - compareValue);\n if (dist < valueDist) {\n nextValue = potentialValue;\n valueDist = dist;\n }\n });\n\n // Out of range will back to range\n if (nextValue === undefined) {\n return offset < 0 ? min : max;\n }\n\n // `dist` mode\n if (mode === 'dist') {\n return nextValue;\n }\n\n // `unit` mode may need another round\n if (Math.abs(offset) > 1) {\n var cloneValues = _toConsumableArray(values);\n cloneValues[valueIndex] = nextValue;\n return offsetValue(cloneValues, offset - sign, valueIndex, mode);\n }\n return nextValue;\n } else if (offset === 'min') {\n return min;\n } else if (offset === 'max') {\n return max;\n }\n };\n\n /** Same as `offsetValue` but return `changed` mark to tell value changed */\n var offsetChangedValue = function offsetChangedValue(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var originValue = values[valueIndex];\n var nextValue = offsetValue(values, offset, valueIndex, mode);\n return {\n value: nextValue,\n changed: nextValue !== originValue\n };\n };\n var needPush = function needPush(dist) {\n return pushable === null && dist === 0 || typeof pushable === 'number' && dist < pushable;\n };\n\n // Values\n var offsetValues = function offsetValues(values, offset, valueIndex) {\n var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'unit';\n var nextValues = values.map(formatValue);\n var originValue = nextValues[valueIndex];\n var nextValue = offsetValue(nextValues, offset, valueIndex, mode);\n nextValues[valueIndex] = nextValue;\n if (allowCross === false) {\n // >>>>> Allow Cross\n var pushNum = pushable || 0;\n\n // ============ AllowCross ===============\n if (valueIndex > 0 && nextValues[valueIndex - 1] !== originValue) {\n nextValues[valueIndex] = Math.max(nextValues[valueIndex], nextValues[valueIndex - 1] + pushNum);\n }\n if (valueIndex < nextValues.length - 1 && nextValues[valueIndex + 1] !== originValue) {\n nextValues[valueIndex] = Math.min(nextValues[valueIndex], nextValues[valueIndex + 1] - pushNum);\n }\n } else if (typeof pushable === 'number' || pushable === null) {\n // >>>>> Pushable\n // =============== Push ==================\n\n // >>>>>> Basic push\n // End values\n for (var i = valueIndex + 1; i < nextValues.length; i += 1) {\n var changed = true;\n while (needPush(nextValues[i] - nextValues[i - 1]) && changed) {\n var _offsetChangedValue = offsetChangedValue(nextValues, 1, i);\n nextValues[i] = _offsetChangedValue.value;\n changed = _offsetChangedValue.changed;\n }\n }\n\n // Start values\n for (var _i = valueIndex; _i > 0; _i -= 1) {\n var _changed = true;\n while (needPush(nextValues[_i] - nextValues[_i - 1]) && _changed) {\n var _offsetChangedValue2 = offsetChangedValue(nextValues, -1, _i - 1);\n nextValues[_i - 1] = _offsetChangedValue2.value;\n _changed = _offsetChangedValue2.changed;\n }\n }\n\n // >>>>> Revert back to safe push range\n // End to Start\n for (var _i2 = nextValues.length - 1; _i2 > 0; _i2 -= 1) {\n var _changed2 = true;\n while (needPush(nextValues[_i2] - nextValues[_i2 - 1]) && _changed2) {\n var _offsetChangedValue3 = offsetChangedValue(nextValues, -1, _i2 - 1);\n nextValues[_i2 - 1] = _offsetChangedValue3.value;\n _changed2 = _offsetChangedValue3.changed;\n }\n }\n\n // Start to End\n for (var _i3 = 0; _i3 < nextValues.length - 1; _i3 += 1) {\n var _changed3 = true;\n while (needPush(nextValues[_i3 + 1] - nextValues[_i3]) && _changed3) {\n var _offsetChangedValue4 = offsetChangedValue(nextValues, 1, _i3 + 1);\n nextValues[_i3 + 1] = _offsetChangedValue4.value;\n _changed3 = _offsetChangedValue4.changed;\n }\n }\n }\n return {\n value: nextValues[valueIndex],\n values: nextValues\n };\n };\n return [formatValue, offsetValues];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","import Slider from \"./Slider\";\nexport default Slider;","import range_ from 'lodash/range';\n\nexport const prepareAvailableValues = (availableValues?: number[]): number[] | undefined => {\n if (!availableValues || !availableValues.length) {\n return undefined;\n }\n\n return [...availableValues].sort((v1, v2) => v1 - v2);\n};\n\nexport const prepareValue = ({\n value = 0,\n min = 0,\n max = 100,\n}: {\n value?: number;\n min?: number;\n max?: number;\n}) => {\n if (value > max) {\n return max;\n }\n if (value < min) {\n return min;\n }\n\n return value;\n};\n\nexport const getInfoPoints = ({\n infoPointsCount,\n min,\n max,\n values,\n}: {\n infoPointsCount: number;\n min: number;\n max: number;\n values?: number[];\n}) => {\n let mapInfoPoints;\n\n if (values && infoPointsCount >= values.length) {\n return values;\n }\n\n if (infoPointsCount < 1) {\n return [];\n }\n\n if (infoPointsCount === 1) {\n return [min];\n }\n\n if (!values || !values.length) {\n const step = Math.abs(max - min) / (infoPointsCount - 1);\n mapInfoPoints = (el: number): number => Math.round((min + step * el) * 100) / 100;\n } else {\n const step = values.length / infoPointsCount;\n mapInfoPoints = (el: number, i: number, arr: number[]) => {\n let index = Math.ceil(el * step);\n if (i === arr.length - 1) {\n // to make sure if the last point is equal to the last available value\n index = values.length - 1;\n }\n return values[index];\n };\n }\n\n return range_(0, infoPointsCount).map(mapInfoPoints);\n};\n\nexport const getParsedValue = (textValue: string, parse?: (value: string) => number): number => {\n return parse ? parse(textValue) : parseFloat(textValue);\n};\n\nexport const getTextValue = (value: number, format?: (value: number) => string): string => {\n return format ? format(value) : value.toString();\n};\n\nexport const getClosestValue = (value: number, values?: number[]): number => {\n if (!values || !values.length) {\n return value;\n }\n\n let low = 0;\n let hi = values.length - 1;\n\n while (hi - low > 1) {\n const mid = Math.floor((low + hi) / 2);\n if (values[mid] < value) {\n low = mid;\n } else {\n hi = mid;\n }\n }\n\n const left = values[low];\n const right = values[hi];\n return value - left <= right - value ? left : right;\n};\n","export const LEFT_INFO_POINT_STYLE = {\n position: 'static',\n marginLeft: 0,\n display: 'flex',\n verticalAlign: 'none',\n textAlign: 'none',\n};\n\nexport const RIGHT_INFO_POINT_STYLE = {\n position: 'static',\n marginLeft: 0,\n display: 'flex',\n verticalAlign: 'none',\n textAlign: 'none',\n flexDirection: 'row-reverse',\n};\n","import React, {Component, ReactElement} from 'react';\nimport block from 'bem-cn-lite';\n\nimport Slider, {type SliderProps, type SliderRef} from 'rc-slider';\nimport {IconProps, TextInput, TextInputSize} from '@gravity-ui/uikit';\nimport debounce_ from 'lodash/debounce';\n// eslint-disable-next-line lodash/import-scope\nimport type {DebouncedFunc} from 'lodash';\n\nimport {\n getClosestValue,\n getInfoPoints,\n getParsedValue,\n getTextValue,\n prepareAvailableValues,\n prepareValue,\n} from './utils';\nimport {LEFT_INFO_POINT_STYLE, RIGHT_INFO_POINT_STYLE} from './constants';\n\nimport './RangeInputPicker.scss';\n\nconst b = block('yc-range-input-picker');\n\ninterface RangeInputPickerDefaultProps {\n value?: number;\n minValue?: number;\n maxValue?: number;\n size?: TextInputSize;\n placeholder?: string;\n debounceDelay?: number;\n infoPointsCount?: number;\n step?: number;\n disabled?: boolean;\n readOnly?: boolean;\n autoFocus?: boolean;\n}\n\nexport interface RangeInputPickerGeneralProps {\n onUpdate?: (value: number) => void;\n onAfterUpdate?: (value: number) => void;\n onOutsideClick?: (value: number) => void;\n displayFormat?: (value?: number) => string;\n format?: (value?: number) => string;\n parse?: (value: string) => number;\n onSubmit?: (value: number) => void;\n onBlur?: (value: number) => void;\n onFocus?: (value: number) => void;\n pattern?: string;\n iconLeft?: ReactElement<IconProps>;\n iconRight?: ReactElement<IconProps>;\n availableValues?: number[];\n className?: string;\n controlProps?: React.InputHTMLAttributes<HTMLInputElement>;\n}\n\nexport type RangeInputPickerProps = RangeInputPickerDefaultProps & RangeInputPickerGeneralProps;\n\ninterface RangeInputPickerState {\n prevProps: RangeInputPickerProps;\n textValue: string;\n currentValue: number;\n min: number;\n max: number;\n values?: number[];\n focused: boolean;\n}\n\nexport class RangeInputPicker extends Component<RangeInputPickerProps, RangeInputPickerState> {\n static defaultProps: RangeInputPickerDefaultProps = {\n size: 'm',\n placeholder: '',\n value: 0,\n minValue: 0,\n maxValue: 100,\n debounceDelay: 200,\n disabled: false,\n readOnly: false,\n autoFocus: false,\n infoPointsCount: 2,\n step: 1,\n };\n\n static getDisplayTextValue(props: RangeInputPickerProps, value?: number): string {\n const {displayFormat, format} = props;\n const formatFunc = displayFormat || format || String;\n\n return formatFunc(value);\n }\n\n static getPreparedState(props: RangeInputPickerProps, currentState?: RangeInputPickerState) {\n const {availableValues, value, minValue = 0, maxValue = 100} = props;\n const {focused = false, textValue = ''} = currentState || {};\n const values = prepareAvailableValues(availableValues);\n const min = values ? values[0] : minValue;\n const max = values ? values[values.length - 1] : maxValue;\n const actualValue = prepareValue({value, min, max});\n\n return {\n prevProps: props,\n textValue: focused ? textValue : RangeInputPicker.getDisplayTextValue(props, value),\n currentValue: actualValue,\n min,\n max,\n values,\n focused,\n };\n }\n\n static getDerivedStateFromProps(\n nextProps: RangeInputPickerProps,\n state: RangeInputPickerState,\n ) {\n if (nextProps === state.prevProps) {\n return null;\n }\n\n return RangeInputPicker.getPreparedState(nextProps, state);\n }\n\n private wrapperRef = React.createRef<HTMLDivElement>();\n private sliderRef = React.createRef<SliderRef>();\n private textInputInnerRef = React.createRef<HTMLInputElement>();\n private debouncedCallOnUpdate: DebouncedFunc<() => void>;\n private debouncedHandleOnAfterUpdate: DebouncedFunc<() => void>;\n\n constructor(props: RangeInputPickerProps) {\n super(props);\n\n this.debouncedCallOnUpdate = debounce_(this.callOnUpdate, props.debounceDelay);\n this.debouncedHandleOnAfterUpdate = debounce_(\n this.handleOnAfterUpdate,\n props.debounceDelay,\n );\n this.state = RangeInputPicker.getPreparedState(props);\n }\n\n componentDidMount() {\n const {onOutsideClick} = this.props;\n\n if (onOutsideClick) {\n document.addEventListener('touchstart', this.handleOutsideClick);\n document.addEventListener('mousedown', this.handleOutsideClick);\n }\n }\n\n componentWillUnmount() {\n this.debouncedCallOnUpdate.cancel();\n this.debouncedHandleOnAfterUpdate.cancel();\n\n document.removeEventListener('touchstart', this.handleOutsideClick);\n document.removeEventListener('mousedown', this.handleOutsideClick);\n }\n\n render() {\n const {\n placeholder,\n autoFocus,\n disabled,\n readOnly,\n // iconRight,\n // iconLeft,\n size,\n pattern,\n className,\n controlProps,\n } = this.props;\n const {currentValue, textValue, min, max, values} = this.state;\n\n let rangeInfoItems;\n let rcSliderInfoItems;\n\n // use our own info items implementation unless available values are not empty\n if (!values || !values.length) {\n rangeInfoItems = this.renderRangeInfoItems();\n } else {\n rcSliderInfoItems = this.renderInfoItems();\n }\n\n return (\n <div\n ref={this.wrapperRef}\n className={b({size}, className)}\n tabIndex={0}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleWrapperClick}\n >\n <TextInput\n controlRef={this.textInputInnerRef}\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n onUpdate={this.handleInputUpdate}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n value={textValue}\n autoFocus={autoFocus}\n // iconRight={iconRight}\n // iconLeft={iconLeft}\n controlProps={{readOnly, pattern, ...controlProps}}\n />\n\n <Slider\n ref={this.sliderRef}\n tabIndex={0}\n min={min}\n max={max}\n value={currentValue}\n disabled={disabled}\n onChange={this.handleSliderChange}\n step={this.step}\n marks={rcSliderInfoItems}\n onChangeComplete={this.debouncedHandleOnAfterUpdate}\n />\n\n {rangeInfoItems && (\n <div className={b('range-info-items-list')}>{rangeInfoItems}</div>\n )}\n </div>\n );\n }\n\n private get patternRegex(): RegExp | null {\n const {pattern} = this.props;\n\n if (!pattern) {\n return null;\n }\n\n return new RegExp(`^(?:${pattern})$`);\n }\n\n private get step(): number | undefined {\n const {step} = this.props;\n const {values} = this.state;\n\n return !values || !values.length ? step : undefined;\n }\n\n private callOnUpdate = () => {\n const {onUpdate} = this.props;\n const {currentValue} = this.state;\n\n if (onUpdate) {\n onUpdate(currentValue);\n }\n };\n\n private prepareChange = (textValue: string): number => {\n const {parse} = this.props;\n const {values, min, max, currentValue} = this.state;\n let value = getParsedValue(textValue, parse);\n\n if (isNaN(value)) {\n value = currentValue;\n }\n\n let actualValue = prepareValue({value, min, max});\n\n if (values && values.length) {\n actualValue = getClosestValue(actualValue, values);\n }\n\n return actualValue;\n };\n\n private handleOnAfterUpdate = () => {\n const {onAfterUpdate} = this.props;\n const {currentValue} = this.state;\n\n if (onAfterUpdate) {\n onAfterUpdate(currentValue);\n }\n };\n\n private handleInputBlur = (event: React.FocusEvent<HTMLSpanElement>) => {\n event.preventDefault();\n\n const {onBlur} = this.props;\n const {textValue} = this.state;\n\n const actualValue = this.prepareChange(textValue);\n\n this.setState(\n {\n focused: false,\n currentValue: actualValue,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, actualValue),\n },\n () => {\n if (onBlur) {\n onBlur(actualValue);\n }\n },\n );\n };\n\n private handleInputFocus = () => {\n const {format, onFocus} = this.props;\n const {currentValue} = this.state;\n\n this.setState(\n {\n textValue: getTextValue(currentValue, format),\n },\n () => {\n if (onFocus) {\n onFocus(currentValue);\n }\n },\n );\n };\n\n private handleInputUpdate = (newValue: string) => {\n if (this.patternRegex && !this.patternRegex.test(newValue)) {\n return;\n }\n\n const actualValue = this.prepareChange(newValue);\n\n this.setState(\n {\n currentValue: actualValue,\n textValue: newValue,\n },\n this.debouncedCallOnUpdate,\n );\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== 'Enter') {\n return;\n }\n\n const {format, onSubmit} = this.props;\n const {textValue} = this.state;\n const actualValue = this.prepareChange(textValue);\n\n this.setState(\n {\n currentValue: actualValue,\n textValue: getTextValue(actualValue, format),\n focused: false,\n },\n () => {\n if (this.textInputInnerRef.current) {\n this.textInputInnerRef.current.blur();\n }\n\n if (onSubmit) {\n onSubmit(actualValue);\n }\n },\n );\n };\n\n private handleSliderChange: SliderProps['onChange'] = (newValue) => {\n if (typeof newValue === 'number') {\n const {min, max, values} = this.state;\n\n const value = getClosestValue(prepareValue({min, max, value: newValue}), values);\n\n this.setState(\n {\n currentValue: value,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, value),\n },\n this.debouncedCallOnUpdate,\n );\n }\n };\n\n private handleWrapperClick = (event: React.MouseEvent<HTMLDivElement>) => {\n // TODO: написать свои тайпинги для Slider, т.к. родные описаны некорректно\n // @ts-ignore\n const slider = this.sliderRef.current && this.sliderRef.current.sliderRef;\n const isSliderContainsTarget = slider && slider.contains(event.target as Node);\n\n if (!isSliderContainsTarget) {\n this.setState({focused: true});\n }\n };\n\n private handleInfoPointClick = (value: number) => {\n return (event: React.MouseEvent<HTMLAnchorElement>) => {\n const {format, parse} = this.props;\n\n event.preventDefault();\n\n const val = getParsedValue(getTextValue(value, format), parse);\n\n this.setState(\n {\n currentValue: val,\n textValue: RangeInputPicker.getDisplayTextValue(this.props, val),\n },\n () => {\n const {onUpdate, onAfterUpdate} = this.props;\n\n if (onUpdate) {\n onUpdate(val);\n }\n\n if (onAfterUpdate) {\n onAfterUpdate(val);\n }\n },\n );\n };\n };\n\n private handleOutsideClick = (event: Event) => {\n const {onOutsideClick} = this.props;\n const {currentValue, focused} = this.state;\n const wrapper = this.wrapperRef.current;\n\n if (!onOutsideClick || !wrapper) {\n return;\n }\n\n if (!wrapper.contains(event.target as Node) && focused) {\n this.setState(\n {\n focused: false,\n },\n () => {\n if (onOutsideClick) {\n onOutsideClick(currentValue);\n }\n },\n );\n }\n };\n\n private renderItem = (value: number): string =>\n RangeInputPicker.getDisplayTextValue(this.props, value);\n\n private renderRangeItem = (value: number): JSX.Element => (\n <span\n key={value}\n className={b('range-info-item')}\n onClick={this.handleInfoPointClick(value)}\n >\n {RangeInputPicker.getDisplayTextValue(this.props, value)}\n </span>\n );\n\n private renderRangeInfoItems = () => {\n const {infoPointsCount = 2, minValue = 0, maxValue = 100} = this.props;\n const {values} = this.state;\n\n if (infoPointsCount < 1) {\n return [];\n }\n\n let infoItems: number[] = [];\n\n if (infoPointsCount === 1) {\n infoItems.push(minValue);\n } else if (!values || !values.length) {\n const step = Math.abs(maxValue - minValue) / (infoPointsCount - 1);\n\n for (let i = 0; i < infoPointsCount; i++) {\n const point = Math.round((minValue + step * i) * 100) / 100;\n\n infoItems.push(point);\n }\n } else {\n infoItems = values;\n }\n\n const pointsCount = infoItems.length;\n const unit = 100 / (pointsCount - 1);\n const pointWidth = unit * 0.9;\n const pointsRange = maxValue - minValue;\n\n return infoItems.map((point, i) => {\n const style = {\n width: pointWidth + '%',\n marginLeft: -pointWidth / 2 + '%',\n left: ((point - minValue) / pointsRange) * 100 + '%',\n };\n\n if (i === 0) {\n Object.assign(style, LEFT_INFO_POINT_STYLE);\n } else if (i === infoItems.length - 1) {\n Object.assign(style, RIGHT_INFO_POINT_STYLE);\n }\n\n return (\n <span className={b('range-info-item-container')} style={style} key={point}>\n {this.renderRangeItem(point)}\n </span>\n );\n });\n };\n\n private renderInfoItems = () => {\n const {infoPointsCount = 2} = this.props;\n const {values, min, max} = this.state;\n\n const points = getInfoPoints({infoPointsCount, min, max, values});\n\n const infoItems = points.reduce<NonNullable<SliderProps['marks']>>((acc, point: number) => {\n acc[point] = {label: this.renderItem(point), style: {}};\n\n return acc;\n }, {});\n\n return infoItems;\n };\n}\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport indexOf_ from 'lodash/indexOf';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\n\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport format from '../../../../common/hammer/format';\nimport {YTPermissionTypeUI} from '../../../../utils/acl/acl-api';\n\nimport './PermissionsControl.scss';\n\nconst block = cn('acl-permissions-control');\n\ninterface Props {\n value: Record<string, Array<YTPermissionTypeUI>>;\n onChange: (value: Props['value']) => void;\n disabled?: boolean;\n choices?: Array<Array<YTPermissionTypeUI>>;\n disabledChoices?: Array<number>; // array of indices\n validate?: (value: Props['value']) => string | undefined;\n\n error?: string;\n}\n\ninterface State {\n errorMessage?: string;\n}\n\nexport default class PermissionsControl extends Component<Props, State> {\n static getChoiceName(choice: Array<string>) {\n return choice.join('/');\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static hasErrorRenderer = true;\n\n static getDefaultValue = () => ({});\n static isEmpty(value: Props['value']) {\n return isEmpty_(value);\n }\n\n state: State = {};\n\n handleCheckboxChange = (\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n ) => {\n const {value, onChange} = this.props;\n const {[permissionName]: permissions, ...rest} = value || {};\n\n const updatedValue = permissions ? rest : {...rest, [permissionName]: permissionsToSet};\n onChange(updatedValue);\n };\n\n renderPermissionCheckbox(\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n index: number,\n ) {\n const {value, disabled, disabledChoices} = this.props;\n const itemDisabled = disabled || indexOf_(disabledChoices, index) !== -1;\n\n return (\n <Checkbox\n checked={Boolean(value?.[permissionName])}\n key={permissionName}\n content={format.ReadableField(permissionName)}\n onChange={() => this.handleCheckboxChange(permissionName, permissionsToSet)}\n disabled={itemDisabled}\n className={block('item')}\n />\n );\n }\n\n renderChoices(choices?: Required<Props>['choices']) {\n return map_(choices, (item, index) => {\n const name = PermissionsControl.getChoiceName(item);\n return (\n <React.Fragment key={index}>\n {this.renderPermissionCheckbox(name, item, index)}\n </React.Fragment>\n );\n });\n }\n\n render() {\n const {choices, error} = this.props;\n\n return (\n <div className={block()}>\n {this.renderChoices(choices)}\n {error && <div className={block('error-message')}>{error}</div>}\n </div>\n );\n }\n}\n","import React, {Component, FocusEvent, Key, KeyboardEvent, MouseEvent} from 'react';\nimport {connect} from 'react-redux';\nimport ReactList from 'react-list';\nimport block from 'bem-cn-lite';\nimport key from 'hotkeys-js';\n\nimport debounce_ from 'lodash/debounce';\nimport find_ from 'lodash/find';\nimport isEmpty_ from 'lodash/isEmpty';\n\nimport {Popup, TextInput} from '@gravity-ui/uikit';\n\nimport thorYPath from '../../common/thor/ypath';\n\nimport Icon from '../../components/Icon/Icon';\nimport ErrorMessage from '../../components/ErrorMessage/ErrorMessage';\n\nimport {\n filterByCurrentPath,\n getCompletedPath,\n getIconNameForType,\n getNextSelectedIndex,\n getPrevSelectedIndex,\n} from '../../utils/navigation/path-editor';\nimport {\n loadSuggestionsList,\n removeActiveRequests,\n} from '../../store/actions/navigation/path-editor/path-editor';\nimport {RootState} from '../../store/reducers';\nimport {KeyCode} from '../../constants/index';\n\nimport './PathEditor.scss';\n\ninterface Suggestion {\n parentPath: string;\n childPath: string;\n path: string;\n targetPathBroken?: boolean;\n type?: string;\n dynamic?: unknown;\n}\n\ntype SuggestionFilter = (suggestions: Suggestion[]) => Suggestion[];\n\nexport interface EventPayload {\n path: string;\n}\n\nexport interface PathEditorProps {\n suggestions: Suggestion[];\n suggestionsError?: boolean;\n errorMessage?: string;\n loadSuggestionsList: (path: string, customFilter?: SuggestionFilter) => void;\n removeActiveRequests: () => void;\n // from parent component\n className?: string;\n placeholder?: string;\n defaultPath?: string;\n disabled?: boolean;\n autoFocus?: boolean;\n hasClear?: boolean;\n showErrors?: boolean;\n customFilter?: SuggestionFilter;\n onChange?: (newPath: string) => void;\n onFocus?: (e: FocusEvent<HTMLInputElement>, payload: EventPayload) => void;\n onBlur?: (path: string) => void;\n onApply?: (newPath: string) => void;\n onCancel?: () => void;\n}\n\ninterface PathEditorState {\n path: string;\n actualSuggestions: Suggestion[];\n inputFocus: boolean;\n inputChange: boolean;\n selectedIndex: number;\n}\n\nconst debounceTime = 300;\nconst b = block('path-editor');\n\nexport class PathEditor extends Component<PathEditorProps, PathEditorState> {\n static defaultProps: Partial<PathEditorProps> = {\n errorMessage: 'Oops, something went wrong',\n placeholder: 'Enter the path...',\n suggestionsError: false,\n autoFocus: false,\n showErrors: true,\n defaultPath: undefined,\n disabled: false,\n hasClear: false,\n };\n\n static getDerivedStateFromProps(props: PathEditorProps, state: PathEditorState) {\n const res = {};\n if (state.inputFocus && state.inputChange) {\n Object.assign(res, {\n actualSuggestions: props.suggestions.length\n ? filterByCurrentPath(state.path, props.suggestions)\n : [],\n });\n }\n\n if (state.path === undefined && props.defaultPath !== undefined) {\n Object.assign(res, {\n path: props.defaultPath,\n });\n }\n\n return isEmpty_(res) ? null : res;\n }\n\n state: PathEditorState;\n\n private suggestionsList = React.createRef<HTMLDivElement>();\n private input = React.createRef<HTMLInputElement>();\n private prevScope = '';\n\n constructor(props: PathEditorProps) {\n super(props);\n\n this.debounceLoading = debounce_(this.debounceLoading, debounceTime);\n\n this.state = {\n path: props.defaultPath ?? '',\n actualSuggestions: [],\n inputFocus: false,\n inputChange: false,\n selectedIndex: -1,\n };\n }\n\n componentDidMount() {\n const {loadSuggestionsList, customFilter, autoFocus} = this.props;\n const {path} = this.state;\n\n this.prevScope = key.getScope();\n if (path) {\n loadSuggestionsList(path, customFilter);\n }\n if (autoFocus) {\n this._setFocus();\n }\n }\n\n componentDidUpdate(prevProps: PathEditorProps) {\n if (prevProps.disabled && !this.props.disabled && this.input.current) {\n this._setFocus();\n }\n }\n\n componentWillUnmount() {\n this.props.removeActiveRequests();\n }\n\n _setFocus() {\n this.input.current?.focus();\n }\n\n get inputWidth() {\n // Is there a way to avoid using private _control property?\n return this.input.current && this.input.current.offsetWidth - 2;\n }\n\n /**\n * @deprecated Please replace usages of it to direct call.\\\n * For example: use `onFocus?.(event, payload)` instead `callCallback(onFocus, [event, payload])`.\\\n * Also, pass event as first agument of callback.\n */\n callCallback<T extends unknown[] = unknown[]>(\n cb: undefined | ((...args: T) => unknown),\n ...params: T\n ) {\n if (typeof cb === 'function') {\n return cb(...params);\n }\n\n return undefined;\n }\n\n debounceLoading(path: string) {\n const {loadSuggestionsList, customFilter, onChange} = this.props;\n\n loadSuggestionsList(path, customFilter);\n this.callCallback(onChange, path);\n }\n\n hideSuggestions = () => {\n this.setState({inputFocus: false, selectedIndex: -1});\n };\n\n selectPrevSuggestion() {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const prevIndex = getPrevSelectedIndex(actualSuggestions, selectedIndex);\n this.setState({selectedIndex: prevIndex});\n }\n\n selectNextSuggestion() {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const nextIndex = getNextSelectedIndex(actualSuggestions, selectedIndex);\n this.setState({selectedIndex: nextIndex});\n }\n\n handleInputChange = (path: string) => {\n this.setState({path, selectedIndex: -1, inputChange: true});\n this.debounceLoading(path);\n };\n\n handleInputFocus = (e: FocusEvent<HTMLInputElement>) => {\n const {onFocus} = this.props;\n const {path} = this.state;\n\n key.setScope('path-editor');\n this.setState({inputFocus: true});\n onFocus?.(e, {path});\n };\n\n handleInputBlur = () => {\n const {onBlur} = this.props;\n const {path} = this.state;\n\n key.setScope(this.prevScope);\n this.hideSuggestions();\n this.callCallback(onBlur, path);\n };\n\n handleEnterClick(event: KeyboardEvent<HTMLInputElement>) {\n event.preventDefault();\n\n const {selectedIndex, actualSuggestions} = this.state;\n const {onApply} = this.props;\n const inputPath = event.currentTarget.value;\n\n if (selectedIndex === -1) {\n this.setState({path: inputPath, selectedIndex: -1});\n this.callCallback(onApply, inputPath);\n } else {\n const suggestion = find_(actualSuggestions, (_, index) => index === selectedIndex);\n const completedPath = getCompletedPath(suggestion);\n\n this.handleInputChange(completedPath);\n }\n }\n\n handleEscClick() {\n const {onCancel} = this.props;\n\n this.input.current?.blur();\n this.callCallback(onCancel);\n }\n\n handleTabClick(event: KeyboardEvent<HTMLInputElement>) {\n event.preventDefault();\n const {actualSuggestions} = this.state;\n\n if (actualSuggestions.length === 1) {\n const completedPath = getCompletedPath(actualSuggestions[0]);\n\n this.handleInputChange(completedPath);\n } else if (actualSuggestions.length > 1) {\n this.selectNextSuggestion();\n }\n }\n\n handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n const key = event.keyCode;\n\n switch (key) {\n case KeyCode.ARROW_DOWN:\n this.selectNextSuggestion();\n break;\n case KeyCode.ARROW_UP:\n this.selectPrevSuggestion();\n break;\n case KeyCode.ENTER:\n this.handleEnterClick(event);\n break;\n case KeyCode.ESCAPE:\n this.handleEscClick();\n break;\n case KeyCode.TAB:\n this.handleTabClick(event);\n break;\n }\n };\n\n renderInput() {\n const {placeholder, autoFocus, hasClear, disabled} = this.props;\n const {path} = this.state;\n\n return (\n <TextInput\n onKeyDown={this.handleKeyDown}\n onUpdate={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n placeholder={placeholder}\n hasClear={hasClear}\n autoFocus={autoFocus}\n disabled={disabled}\n controlRef={this.input}\n value={path}\n />\n );\n }\n\n renderItem = (index: number, key: Key) => {\n const {selectedIndex, actualSuggestions} = this.state;\n\n const item = actualSuggestions[index];\n const {type, dynamic} = item;\n const iconType = type === 'table' && dynamic ? 'table_dynamic' : type;\n const completedPath = getCompletedPath(item);\n const isSelected = index === selectedIndex ? 'yes' : 'no';\n const iconName = getIconNameForType(iconType, item.targetPathBroken);\n\n const mouseDownHandler = (event: MouseEvent<HTMLDivElement>) => {\n this.handleInputChange(completedPath);\n event.preventDefault();\n };\n\n let lastFragment: string | undefined = '';\n try {\n const {fragments} = new thorYPath.YPath(item.path, 'absolute');\n lastFragment = fragments[fragments.length - 1]?.name;\n } catch {}\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')}>\n {lastFragment ? `\\u2026/${lastFragment}` : item.path}\n </span>\n </div>\n );\n };\n\n renderSuggestions() {\n const {actualSuggestions} = this.state;\n\n return actualSuggestions.length ? (\n <ReactList\n itemRenderer={this.renderItem}\n length={actualSuggestions.length}\n type=\"simple\"\n />\n ) : null;\n }\n\n renderError() {\n const {errorMessage} = this.props;\n\n if (!errorMessage) {\n return;\n }\n\n return <ErrorMessage className={b('item', {error: true})} message={errorMessage} />;\n }\n\n renderPopup() {\n const {suggestionsError, showErrors} = this.props;\n const {actualSuggestions, inputFocus} = this.state;\n\n const width = this.inputWidth || 0;\n const isVisible = Boolean(\n (actualSuggestions.length || (suggestionsError && showErrors)) && inputFocus,\n );\n const content =\n suggestionsError && showErrors ? this.renderError() : this.renderSuggestions();\n\n return (\n <Popup\n className={b('popup')}\n placement={['bottom-start', 'top-start']}\n onClose={this.hideSuggestions}\n anchorRef={this.input}\n open={isVisible}\n offset={[0, 0]}\n >\n <div className={b('items')} style={{width}} ref={this.suggestionsList}>\n {content}\n </div>\n </Popup>\n );\n }\n\n render() {\n return (\n <div className={b(null, this.props.className)}>\n {this.renderInput()}\n {this.renderPopup()}\n </div>\n );\n }\n}\n\nconst mapStateToProps = ({navigation}: RootState) => ({\n suggestions: navigation.pathEditor.suggestions,\n suggestionsError: navigation.pathEditor.suggestionsError,\n errorMessage: navigation.pathEditor.errorMessage,\n});\n\nexport default connect(mapStateToProps, {\n loadSuggestionsList,\n removeActiveRequests,\n})(PathEditor);\n","import {FETCH_SUGGESTIONS} from '../../../../constants/navigation/path-editor';\nimport {\n loadSuggestions,\n pathEditorRequests,\n preparePath,\n} from '../../../../utils/navigation/path-editor';\n\nexport function loadSuggestionsList(path, customFilter) {\n return (dispatch, getState) => {\n const {suggestionsPath, suggestionsLoaded} = getState().navigation.pathEditor;\n let currentParentPath;\n\n try {\n currentParentPath = preparePath(path);\n } catch (error) {\n return dispatch({\n type: FETCH_SUGGESTIONS.FAILURE,\n data: {message: error.message},\n });\n }\n\n if (suggestionsPath === currentParentPath && suggestionsLoaded) {\n return;\n }\n dispatch({type: FETCH_SUGGESTIONS.REQUEST});\n\n return loadSuggestions(path, customFilter)\n .then((suggestions) => {\n dispatch({\n type: FETCH_SUGGESTIONS.SUCCESS,\n data: {suggestions, path, currentParentPath},\n });\n })\n .catch((error) => {\n dispatch({\n type: FETCH_SUGGESTIONS.FAILURE,\n data: {message: error.message},\n });\n });\n };\n}\n\nexport function removeActiveRequests() {\n return (dispatch) => {\n pathEditorRequests.removeAllRequests();\n dispatch({type: FETCH_SUGGESTIONS.CANCELLED});\n };\n}\n","import React from 'react';\nimport {useDispatch} from 'react-redux';\n\nimport {loadPoolTreesIfNotLoaded} from '../store/actions/global';\nimport {loadDefaultPoolTree} from '../utils/poolTrees';\n\nexport function usePoolTreesLoaded() {\n const dispatch = useDispatch();\n\n React.useEffect(() => {\n dispatch(loadPoolTreesIfNotLoaded());\n }, [dispatch]);\n}\n\nexport function PoolTreesLoader() {\n usePoolTreesLoaded();\n return null;\n}\n\nexport function useDefaultPoolTree() {\n const [defaultPoolTree, setDefaultPoolTree] = React.useState<string | undefined>();\n\n React.useEffect(() => {\n loadDefaultPoolTree().then((value) => {\n setDefaultPoolTree(value);\n });\n }, []);\n\n return defaultPoolTree;\n}\n\nexport function WaitForDefaultPoolTree({\n children,\n}: {\n children: ({defaultPoolTree}: {defaultPoolTree: string}) => React.ReactNode;\n}) {\n const defaultPoolTree = useDefaultPoolTree();\n\n return defaultPoolTree ? children({defaultPoolTree}) : null;\n}\n","import React from 'react';\nimport 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 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 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 enable_replicated_table_tracker: auto_replica_tracker === 'enabled',\n };\n\n return ytApiV3.alterTableReplica(parameters).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 {ThunkAction} from 'redux-thunk';\n\n// @ts-expect-error\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport metrics from '../../../common/utils/metrics';\nimport {navigationTrackVisit} from '../../../store/actions/favourites';\nimport {RumWrapper, YTApiId, ytApiV3, ytApiV3Id} from '../../../rum/rum-wrap-api';\nimport {RumMeasureTypes} from '../../../rum/rum-measure-types';\n\nimport {isPathAutoCorrectionSettingEnabled} from '../../../store/selectors/settings';\nimport {getPath, getTransaction} from '../../../store/selectors/navigation';\n\nimport {\n autoCorrectPath,\n cancelRequests,\n getParentPath,\n prepareRequest,\n saveRequestCancellation,\n} from '../../../utils/navigation';\nimport {prepareAttributes} from '../../../utils/index';\nimport {getBatchError} from '../../../utils/utils';\nimport {getPermissionDeniedError} from '../../../utils/errors';\n\nimport {GENERIC_ERROR_MESSAGE, TYPED_OUTPUT_FORMAT} from '../../../constants/index';\nimport {\n CLEAR_TRANSACTION,\n NAVIGATION_PARTIAL,\n SET_MODE,\n SET_TRANSACTION,\n Tab,\n UPDATE_PATH,\n UPDATE_VIEW,\n} from '../../../constants/navigation/index';\nimport {getCluster, getCurrentUserName} from '../../../store/selectors/global';\nimport {fetchTableMountConfig} from '../../../store/actions/navigation/content/table/table-mount-config';\nimport {checkPermissions} from '../../../utils/acl/acl-api';\nimport {getAnnotation} from './tabs/annotation';\nimport {loadTabletErrorsCount} from './tabs/tablet-errors/tablet-errors-background';\nimport {getTabs} from '../../../store/selectors/navigation/navigation';\nimport UIFactory from '../../../UIFactory';\nimport {RootState} from '../../../store/reducers';\nimport {NavigationAction, NavigationState} from '../../../store/reducers/navigation/navigation';\nimport {fetchOriginatingQueuePath} from './tabs/queue/exports';\n\ntype NavigationThunk<T = void> = ThunkAction<T, RootState, unknown, NavigationAction>;\n\nexport function updateView(settings: {trackVisit?: boolean} = {}): NavigationThunk {\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 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 {\n command: 'get' as const,\n parameters: {\n ...prepareRequest('/@', requestParams),\n attributes: getAttributesToLoad(),\n },\n },\n ],\n output_format: TYPED_OUTPUT_FORMAT,\n },\n saveRequestCancellation,\n ),\n )\n .then((results) => {\n const [attrs] = results;\n\n const error = getBatchError(results, 'Failed to get navigation attributes');\n if (error) {\n throw error;\n }\n\n return attrs.output;\n })\n .then((attributes) => {\n const preparedAttributes = prepareAttributes(attributes, {\n asHTML: false,\n }) as {account: string; type: string};\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 }: Pick<\n Partial<NavigationState>,\n 'isWriteable' | 'isAccountUsable' | 'checkPermissionsError'\n >) => {\n dispatch({\n type: NAVIGATION_PARTIAL,\n data: {isWriteable, isAccountUsable, checkPermissionsError},\n });\n };\n\n dispatch(fetchTableMountConfig(path));\n dispatch(fetchOriginatingQueuePath());\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: NavigationState['mode']): NavigationThunk {\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(): NavigationThunk {\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?: string): NavigationThunk {\n return (dispatch) => {\n dispatch({\n type: SET_TRANSACTION,\n data: transaction,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function clearTransaction(): NavigationThunk {\n return (dispatch) => {\n dispatch({\n type: CLEAR_TRANSACTION,\n });\n dispatch(onTransactionChange());\n };\n}\n\nexport function updatePath(path: string, shouldUpdateContentMode = true): NavigationThunk<string> {\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(): NavigationThunk {\n return (dispatch, getState) => {\n const {path} = getState().navigation.navigation;\n const nextPath = getParentPath(path);\n dispatch(updatePath(nextPath));\n };\n}\n\nconst attributesToLoad = [\n '_format',\n '_read_schema',\n '_restore_path',\n '_yql_key_meta',\n '_yql_op_id',\n '_yql_row_spec',\n '_yql_subkey_meta',\n '_yql_type',\n '_yql_value_meta',\n 'access_time',\n 'account',\n 'acl',\n 'atomicity',\n 'broken',\n 'chunk_count',\n 'chunk_row_count',\n 'cluster_name',\n 'compressed_data_size',\n 'compression_codec',\n 'compression_ratio',\n 'creation_time',\n 'data_weight',\n 'default_disk_space',\n 'disk_space',\n 'dynamic',\n 'effective_expiration',\n 'enable_dynamic_store_read',\n 'erasure_codec',\n 'expiration_time',\n 'expiration_timeout',\n 'id',\n 'in_memory_mode',\n 'key',\n 'key_columns',\n 'leader_controller_address',\n 'lock_count',\n 'lock_mode',\n 'locks',\n 'mode',\n 'modification_time',\n 'monitoring_cluster',\n 'monitoring_project',\n 'optimize_for',\n 'owner',\n 'path',\n 'pipeline_format_version',\n 'primary_medium',\n 'queue_static_export_destination',\n 'remount_needed_tablet_count',\n 'replica_path',\n 'replicated_table_options',\n 'replication_factor',\n 'resource_usage',\n 'schema',\n 'schema_mode',\n 'security_tags',\n 'sorted',\n 'sorted_by',\n 'start_time',\n 'state',\n 'tablet_cell_bundle',\n 'tablet_count',\n 'tablet_error_count',\n 'tablet_state',\n 'target_path',\n 'timeout',\n 'title',\n 'treat_as_queue_consumer',\n 'type',\n 'uncompressed_data_size',\n];\n\nfunction getAttributesToLoad() {\n const additionalAttributes: Array<string> = [];\n\n UIFactory.getNavigationExtraTabs().forEach((extraTab) => {\n additionalAttributes.push(...extraTab.additionalAttributes);\n });\n\n const attributesSet = new Set([...attributesToLoad, ...additionalAttributes]);\n\n return [...attributesSet];\n}\n\nexport function setNavigationSidePanelMode(\n sidePanelMode: NavigationState['sidePanelMode'],\n): NavigationAction {\n return {type: NAVIGATION_PARTIAL, data: {sidePanelMode}};\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 {ThunkAction, UnknownAction} from '@reduxjs/toolkit';\nimport ypath from '../../../../../common/thor/ypath';\n\nimport {RootState} from '../../../../reducers';\nimport {getAttributes} from '../../../../selectors/navigation';\n\nimport {ytApiV3} from '../../../../../rum/rum-wrap-api';\nimport {SET_ORIGINATING_QUEUE_PATH} from '../../../../../constants/navigation';\ntype AsyncAction<R = void> = ThunkAction<R, RootState, unknown, UnknownAction>;\n\nexport function fetchOriginatingQueuePath(): AsyncAction {\n return async (dispatch, getState) => {\n const state = getState();\n const attributes = getAttributes(state);\n const queueId = ypath.getValue(\n attributes,\n '/queue_static_export_destination/originating_queue_id',\n );\n try {\n const originatingPath = await ytApiV3.executeBatch({\n parameters: {\n requests: [\n {\n command: 'get' as const,\n parameters: {\n path: `#${queueId}/@path`,\n },\n },\n ],\n },\n });\n dispatch({\n type: SET_ORIGINATING_QUEUE_PATH,\n data: originatingPath[0].output,\n });\n } catch (error: any) {}\n };\n}\n","import React from 'react';\nimport axios from 'axios';\n\nimport uniq_ from 'lodash/uniq';\n\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {updateView} from '../../../../store/actions/navigation';\n\nimport {CREATE_TABLE_MODAL_DATA_FIELDS} from '../../../../constants/navigation/modals/create-table';\nimport {initialState} from '../../../../store/reducers/navigation/modals/create-table';\nimport {showErrorPopup} from '../../../../utils/utils';\nimport Link from '../../../../components/Link/Link';\nimport {genNavigationUrl} from '../../../../utils/navigation/navigation';\nimport {getCluster} from '../../../selectors/global';\n\nexport function openCreateTableModal(parentDirectory) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {...initialState, showModal: true, parentDirectory},\n });\n };\n}\n\nexport function closeCreateTableModal() {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {showModal: false},\n });\n };\n}\n\nconst toaster = new Toaster();\n\nexport function createTable(path, attributes) {\n return (dispatch, getState) => {\n const params = {\n path,\n type: 'table',\n attributes,\n };\n\n const what = attributes.dynamic ? 'Dynamic table' : 'Static table';\n const cluster = getCluster(getState());\n\n return yt.v3\n .create(params)\n .then(() => {\n dispatch(updateView());\n toaster.add({\n name: path,\n timeout: 10000,\n theme: 'success',\n title: 'Table created',\n content: (\n <React.Fragment>\n {what} <Link url={genNavigationUrl({cluster, path})}>{path}</Link>{' '}\n successfully created\n </React.Fragment>\n ),\n });\n })\n .catch((error) => {\n if (!axios.isCancel(error)) {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {error},\n });\n const data = error?.response?.data || error?.response || error;\n const {code, message} = data;\n\n toaster.add({\n name: path,\n timeout: 10000,\n theme: 'danger',\n content: `[code ${code}] ${message}`,\n title: 'Table creation failure',\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(data),\n },\n ],\n });\n return Promise.reject(error);\n }\n });\n };\n}\n\nexport function setCreateTableKeyColumns(keyColumns) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {keyColumns},\n });\n };\n}\n\nexport function setCreateTableColumnsOrder(columnsOrder) {\n return (dispatch) => {\n dispatch({\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnsOrder},\n });\n };\n}\n\nexport function setCreateTableLockSuggestions(allColumnLockValues = []) {\n return {\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnLockSuggestions: uniq_(allColumnLockValues.sort())},\n };\n}\n\nexport function setCreateTableGroupSuggestions(allColumnGroups = []) {\n return {\n type: CREATE_TABLE_MODAL_DATA_FIELDS,\n data: {columnGroupSuggestions: uniq_(allColumnGroups.sort())},\n };\n}\n","import React from 'react';\n\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\nimport toLower_ from 'lodash/toLower';\n\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../../store/reducers';\nimport axios, {CancelTokenSource} from 'axios';\n\n// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport ypath from '../../../../common/thor/ypath';\nimport {\n USE_SKIP_ERROR_FN_NODE_DOES_NOT_EXIST,\n getBatchError,\n wrapApiPromiseByToaster,\n} from '../../../../utils/utils';\nimport {loadPoolTreesIfNotLoaded} from '../../../../store/actions/global';\nimport {OperationShortInfo} from '../../../../pages/components/OperationShortInfo/OperationShortInfo';\nimport {AppStoreProvider} from '../../../../containers/App/AppStoreProvider';\nimport {CypressNodeTypes, makeUiMarker} from '../../../../utils/cypress-attributes';\nimport {Page} from '../../../../constants';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {\n PathAttribute,\n changeAttribute,\n setModalPartial,\n} from '../../../reducers/navigation/modals/tableMergeSortModalSlice';\nimport {Action} from 'redux';\nimport {getNavigationTableOutputPathAttributes} from '../../../selectors/navigation/modals/table-merge-sort-modal';\n\ntype TableMergeSortThunkAction<T = void> = ThunkAction<T, RootState, any, Action>;\n\nexport function showTableSortModal(paths: Array<string>): TableMergeSortThunkAction<Promise<void>> {\n return (dispatch) => {\n return dispatch(loadPoolTreesIfNotLoaded()).finally(() => {\n dispatch(setModalPartial({sortVisible: true, paths}));\n dispatch(tableSortModalLoadColumns(paths));\n });\n };\n}\n\nexport function hideTableSortModal() {\n return setModalPartial({sortVisible: false, paths: []});\n}\n\nexport function showTableMergeModal(\n paths: Array<string>,\n): ThunkAction<Promise<void>, RootState, any, Action> {\n return (dispatch) => {\n return dispatch(loadPoolTreesIfNotLoaded()).finally(() => {\n dispatch(\n setModalPartial({\n mergeVisible: true,\n paths,\n }),\n );\n dispatch(tableSortModalLoadColumns(paths));\n });\n };\n}\n\nexport function hideTableMergeModal() {\n return setModalPartial({mergeVisible: false, paths: []});\n}\n\nexport function tableSortModalLoadColumns(\n paths: Array<string>,\n): ThunkAction<any, RootState, any, Action> {\n return (dispatch) => {\n if (!paths?.length) {\n return undefined;\n }\n const requests = map_(paths, (path) => {\n return {\n command: 'get' as const,\n parameters: {path: `${path}/@schema`},\n };\n });\n return ytApiV3Id\n .executeBatch(YTApiId.navigationTableSortLoadColumns, {requests})\n .then((results: Array<any>) => {\n const error = getBatchError(\n results,\n 'Column names cannot be loaded, autocompletion might not work properly',\n );\n if (error) {\n dispatch(setModalPartial({error}));\n return;\n }\n const columns: {[name: string]: boolean} = {};\n forEach_(results, ({output}) => {\n forEach_(ypath.getValue(output), ({name}) => {\n columns[name] = true;\n });\n });\n dispatch(\n setModalPartial({\n suggestColumns: sortBy_(\n map_(columns, (_v, name) => name),\n (name) => toLower_(name),\n ),\n }),\n );\n })\n .catch((error: any) => {\n return dispatch(\n setModalPartial({\n error,\n }),\n );\n });\n };\n}\n\ninterface SortParams {\n input_table_paths: Array<string>;\n output_table_path: {$value: string; $attributes: Record<string, string>};\n sort_by: Array<{name: string; sort_order: 'ascending' | 'descending'}>;\n pool?: string;\n}\n\nexport function runTableSort(spec: SortParams): TableMergeSortThunkAction {\n return () => {\n const parameters = {\n spec,\n ...makeUiMarker(`${Page.NAVIGATION}:sort`),\n };\n return wrapApiPromiseByToaster(yt.v3.sort(parameters), {\n toasterName: 'table_sort_' + spec.output_table_path,\n successContent(res: string) {\n const opId = JSON.parse(res);\n return (\n <AppStoreProvider>\n <OperationShortInfo\n id={opId}\n type={'sort'}\n output_attribute_name={'/spec/output_table_path'}\n />\n </AppStoreProvider>\n );\n },\n successTitle: 'Sort operation is started',\n errorTitle: 'Sort operation is failed',\n autoHide: false,\n });\n };\n}\n\nexport const loadStorageAttributes =\n (path: string): TableMergeSortThunkAction =>\n async (dispatch, getState) => {\n const state = getState();\n const outputPathAttributes = getNavigationTableOutputPathAttributes(state);\n\n const response: Record<PathAttribute, string> = await wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.attributesEditorGetAttrs, {\n parameters: {\n path: path + '/@',\n attributes: [\n PathAttribute.OPTIMIZE_FOR,\n PathAttribute.COMPRESSION_CODEC,\n PathAttribute.ERASURE_CODEC,\n ],\n },\n }),\n {\n toasterName: 'get_table_attributes',\n errorTitle: 'Get table attributes request is failed',\n autoHide: false,\n skipSuccessToast: true,\n ...USE_SKIP_ERROR_FN_NODE_DOES_NOT_EXIST,\n },\n );\n\n Object.entries(outputPathAttributes).forEach(([key, attribute]) => {\n dispatch(changeAttribute({...attribute, value: response[key as PathAttribute]}));\n });\n };\n\ninterface MergeParams {\n pool: string;\n pool_trees: Array<string>;\n input_table_paths: Array<string>;\n output_table_path: string;\n merge_by: Array<string>;\n mode: 'unordered' | 'sorted' | 'ordered';\n}\n\nexport function runTableMerge(spec: MergeParams): TableMergeSortThunkAction {\n return () => {\n const parameters = {\n spec,\n ...makeUiMarker(`${Page.NAVIGATION}:merge`),\n };\n return wrapApiPromiseByToaster(yt.v3.merge(parameters), {\n toasterName: 'table_merge_' + spec.output_table_path,\n successContent(res: string) {\n const opId = JSON.parse(res);\n return (\n <AppStoreProvider>\n <OperationShortInfo\n id={opId}\n type={'merge'}\n output_attribute_name={'/spec/output_table_path'}\n />\n </AppStoreProvider>\n );\n },\n successTitle: 'Merge operation is started',\n errorTitle: 'Merge operation is failed',\n autoHide: false,\n });\n };\n}\n\nlet cancelTokenSrc: Pick<CancelTokenSource, 'cancel'> = {cancel: () => {}};\n\nexport function isPathStaticTable(path: string) {\n if (!path) return;\n\n cancelTokenSrc.cancel();\n return ytApiV3Id\n .get(\n YTApiId.navigationIsStaticTable,\n {\n path,\n attributes: ['type', 'dynamic'],\n },\n (cancelSrc: CancelTokenSource) => {\n cancelTokenSrc = cancelSrc;\n },\n )\n .then((d: any) => {\n const type = ypath.getValue(d, '/@type');\n const isDynamic = ypath.getValue(d, '/@dynamic');\n return type !== CypressNodeTypes.TABLE || isDynamic\n ? 'Please make sure the destination is an existing static table'\n : undefined;\n })\n .catch((e: any) => {\n if (axios.isCancel(e)) {\n return undefined;\n }\n return e?.message || 'Cannot get type of node';\n });\n}\n","// @ts-ignore\nimport yt from '@ytsaurus/javascript-wrapper/lib/yt';\nimport CancelHelper from '../../../../utils/cancel-helper';\nimport {prepareRequest} from '../../../../utils/navigation';\nimport {getPath, getTransaction} from '../../../selectors/navigation';\nimport {\n GET_ANNOTATION,\n SET_ANNOTATION_EDITING,\n SET_ANNOTATION_SAVING,\n} from '../../../../constants/navigation/tabs/annotation';\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {getBatchError, wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../reducers';\nimport {NavigationTabsAnnotationAction} from '../../../reducers/navigation/tabs/annotation';\nimport {getNavigationAnnotation} from '../../../selectors/navigation/tabs/annotation';\n\nconst cancelHelper = new CancelHelper();\n\ntype TabletErrorsThunkAction = ThunkAction<any, RootState, unknown, NavigationTabsAnnotationAction>;\n\nexport const getAnnotation = (): TabletErrorsThunkAction => (dispatch, getState) => {\n const state = getState();\n const path = getPath(state) || '';\n\n const transaction = getTransaction(state);\n\n dispatch({type: GET_ANNOTATION.REQUEST});\n cancelHelper.removeAllRequests();\n\n const requests = [\n {\n command: 'get' as const,\n parameters: prepareRequest('/@annotation', {\n path,\n transaction,\n }),\n },\n ];\n\n ytApiV3Id\n .executeBatch(YTApiId.navigationGetAnnotation, {\n parameters: {requests},\n cancellation: cancelHelper.saveCancelToken,\n })\n .then((results) => {\n const err = getBatchError(results, 'Cannot fetch annotation');\n if (yt.codes.NODE_DOES_NOT_EXIST !== results[0]?.error?.code && err) {\n throw err;\n }\n\n const [{output: annotation}] = results;\n dispatch({\n type: GET_ANNOTATION.SUCCESS,\n data: {annotation, path},\n });\n })\n .catch((error) => {\n if (error.code === yt.codes.CANCELLED) {\n dispatch({type: GET_ANNOTATION.CANCELLED});\n } else {\n dispatch({\n type: GET_ANNOTATION.FAILURE,\n data: {error, path},\n });\n }\n });\n};\n\nexport const saveAnnotation =\n (path: string): TabletErrorsThunkAction =>\n async (dispatch, getState) => {\n const annotation = getNavigationAnnotation(getState());\n dispatch({type: SET_ANNOTATION_SAVING, data: true});\n wrapApiPromiseByToaster(yt.v3.set({path: `${path}/@annotation`}, annotation), {\n toasterName: 'navigation_save_annotation',\n successTitle: 'Annotation saved',\n errorTitle: 'Failed save annotation',\n })\n .then(() => {\n dispatch({type: SET_ANNOTATION_EDITING, data: false});\n })\n .finally(() => {\n dispatch({type: SET_ANNOTATION_SAVING, data: false});\n });\n };\n","import {CancelTokenSource} from 'axios';\n\nimport CancelHelper, {isCancelled} from '../../../../../utils/cancel-helper';\nimport {getPath} from '../../../../../store/selectors/navigation';\nimport {GET_TABLET_ERRORS} from '../../../../../constants/navigation/tabs/tablet-errors';\nimport {YTApiId, ytApiV3Id, ytApiV4Id} from '../../../../../rum/rum-wrap-api';\nimport {ThunkAction} from 'redux-thunk';\nimport {RootState} from '../../../../../store/reducers';\nimport {\n NavigationTabletErrorsMode,\n TabletErrorsAction,\n} from '../../../../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-background';\nimport {wrapApiPromiseByToaster} from '../../../../../utils/utils';\n\nimport {loadReplicas} from '../../content/replicated-table';\nimport {TYPED_OUTPUT_FORMAT} from '../../../../../constants';\n\nconst requests = new CancelHelper();\n\ntype TabletErrorsThunkAction<T = unknown> = ThunkAction<T, RootState, unknown, TabletErrorsAction>;\n\nexport function getTabletErrors(): TabletErrorsThunkAction {\n return (dispatch, getState) => {\n const state = getState();\n const path = getPath(state);\n\n dispatch({type: GET_TABLET_ERRORS.REQUEST});\n\n dispatch(loadReplicas());\n\n ytApiV4Id\n .getTabletErrors(YTApiId.navigationTabletErrors, {\n parameters: {path, output_format: TYPED_OUTPUT_FORMAT},\n cancellation: requests.removeAllAndSave,\n })\n .then((tabletErrors) => {\n dispatch({\n type: GET_TABLET_ERRORS.SUCCESS,\n data: {tabletErrors, tabletErrorsPath: path},\n });\n })\n .catch((error) => {\n if (isCancelled(error)) {\n dispatch({type: GET_TABLET_ERRORS.CANCELLED});\n } else {\n dispatch({\n type: GET_TABLET_ERRORS.FAILURE,\n data: {error},\n });\n }\n });\n };\n}\n\ninterface LoadTabletErrorOptions {\n path: string;\n saveCancelTokenSource: (tokenSource: CancelTokenSource) => void;\n}\n\nexport function loadTabletErrorsCount(options: LoadTabletErrorOptions): TabletErrorsThunkAction {\n const {path} = options;\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.executeBatch(YTApiId.navigationTypeDynamic, {\n parameters: {\n requests: [\n {\n command: 'get',\n parameters: {path: `${path}/@type`},\n },\n {\n command: 'get',\n parameters: {path: `${path}/@dynamic`},\n },\n ],\n },\n cancellation: options.saveCancelTokenSource,\n }),\n {\n toasterName: 'get_type_dynamic',\n skipSuccessToast: true,\n },\n ).then(([{output: type}, {output: dynamic}]) => {\n if (dynamic && (type === 'table' || type === 'replication_log_table')) {\n return dispatch(loadTabletErrorsCountOfDynamicTable(options));\n }\n\n if (type === 'replicated_table') {\n return dispatch(loadTabletErrorsCountOfReplicatedTable(options));\n }\n\n return undefined;\n });\n };\n}\n\nfunction loadTabletErrorsCountOfDynamicTable({\n path,\n saveCancelTokenSource,\n}: LoadTabletErrorOptions): TabletErrorsThunkAction {\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.get(YTApiId.navigationTabletErrorsCountDynTable, {\n parameters: {\n path: `${path}/@tablet_error_count`,\n },\n cancellation: saveCancelTokenSource,\n }),\n {\n toasterName: 'tablet_erros_count',\n skipSuccessToast: true,\n },\n ).then((errorsCount: number) => {\n dispatch(updateTabletErrrosCount(errorsCount, path));\n });\n };\n}\n\nfunction loadTabletErrorsCountOfReplicatedTable({\n path,\n saveCancelTokenSource,\n}: LoadTabletErrorOptions): TabletErrorsThunkAction {\n return (dispatch) => {\n return wrapApiPromiseByToaster(\n ytApiV3Id.executeBatch<number>(YTApiId.navigationTabletErrorsCountReplicatedTable, {\n requests: [\n {\n command: 'get',\n parameters: {\n path: `${path}/@replicas/@error_count`,\n },\n },\n {command: 'get', parameters: {path: `${path}/@tablet_error_count`}},\n ],\n cancellation: saveCancelTokenSource,\n }),\n {\n toasterName: 'tablet_errors_count',\n skipSuccessToast: true,\n },\n ).then((results) => {\n const count = results.reduce((acc, {output = 0}) => acc + output, 0);\n dispatch(updateTabletErrrosCount(count, path));\n });\n };\n}\n\nexport function updateTabletErrrosCount(\n errorsCount: number,\n errorsCountPath: string,\n): TabletErrorsAction {\n return {type: GET_TABLET_ERRORS.PARTITION, data: {errorsCountPath, errorsCount}};\n}\n\nexport function updateTabletErrorsViewMode(viewMode: NavigationTabletErrorsMode) {\n return {type: GET_TABLET_ERRORS.PARTITION, data: {viewMode}};\n}\n","import isEmpty_ from 'lodash/isEmpty';\n\nimport {createSelector} from 'reselect';\nimport {RootState} from '../../../../store/reducers';\n\nexport const getNavigationTableMountConfig = (state: RootState) =>\n state.navigation.content.tableMountConfig;\n\nconst getTableMountConfigData = (state: RootState) =>\n state.navigation.content.tableMountConfig.data || {};\n\nconst getTableMountConfigError = (state: RootState) =>\n state.navigation.content.tableMountConfig.error;\n\nexport const getTableMountConfigHasData = createSelector(\n [getTableMountConfigData, getTableMountConfigError],\n (data, error) => {\n return !isEmpty_(data) || !isEmpty_(error);\n },\n);\n","import map_ from 'lodash/map';\n\nimport {createSelector} from 'reselect';\n\nexport const getCreateTableModalState = (state) => state.navigation.modals.createTable;\nexport const isCreateTableModalVisible = (state) => state.navigation.modals.createTable.showModal;\nexport const getCreateTableLockSuggestions = (state) =>\n state.navigation.modals.createTable.columnLockSuggestions;\nexport const getCreateTableGroupSuggestions = (state) =>\n state.navigation.modals.createTable.columnGroupSuggestions;\n\nexport const getColumnLockSuggestions = createSelector([getCreateTableLockSuggestions], (locks) => {\n const res = map_(locks, (item) => item);\n return res;\n});\n\nexport const getColumnGroupSuggestions = createSelector(\n [getCreateTableGroupSuggestions],\n (groups) => {\n const res = map_(groups, (item) => item);\n return res;\n },\n);\n","import {RootState} from '../../../reducers';\nimport {createSelector} from 'reselect';\nimport {PathAttribute} from '../../../reducers/navigation/modals/tableMergeSortModalSlice';\nexport const getNavigationTableSortPaths = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.paths;\nexport const getNavigationTableOutputPathAttributes = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.outputPathAttributes;\nexport const getNavigationTableAttributesValues = createSelector(\n [getNavigationTableOutputPathAttributes],\n (outputPathAttributes) => {\n const result: Record<string, string> = {};\n for (const key in outputPathAttributes) {\n if (Object.prototype.hasOwnProperty.call(outputPathAttributes, key)) {\n result[key] = outputPathAttributes[key as PathAttribute].value;\n }\n }\n return result;\n },\n);\nexport const getNavigationTableSortError = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.error;\nexport const getNavigationTableSortVisible = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.sortVisible;\nexport const getNavigationTableMergeVisible = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.mergeVisible;\nexport const getNavigationTableSortSuggestColumns = (state: RootState) =>\n state.navigation.modals.tableMergeSortModal.suggestColumns;\n","import compact_ from 'lodash/compact';\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\n\nimport {createSelector} from 'reselect';\n\nimport ypath from '../../../common/thor/ypath';\nimport unipika from '../../../common/thor/unipika';\n\nimport type {RootState} from '../../../store/reducers';\nimport type {ValueOf, YTError} from '../../../types';\nimport {getAttributes, getParsedPath, getPath, getTransaction} from './index';\nimport {ParsedPath, prepareNavigationState} from '../../../utils/navigation';\nimport {Tab} from '../../../constants/navigation/index';\n\nimport {getTableMountConfigHasData} from '../../../store/selectors/navigation/content/table-mount-config';\nimport {getAccessLogBasePath} from '../../../config';\nimport {getTabletErrorsBackgroundCount} from '../../../store/selectors/navigation/tabs/tablet-errors-background';\nimport UIFactory from '../../../UIFactory';\nimport {getConfigData} from '../../../config/ui-settings';\nimport {getCluster} from '../global';\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 getNavigationOriginatingQueuePath = (state: RootState) =>\n state.navigation.navigation.originatingQueuePath;\n\nexport const getSupportedTabs = createSelector(\n [\n getNavigationPathAttributes,\n getTableMountConfigHasData,\n getTabletErrorsBackgroundCount,\n getNavigationOriginatingQueuePath,\n ],\n (attributes, mountConfigHasData, tabletErrorsCount, originatingQueuePath) => {\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 if (originatingQueuePath) {\n supportedByAttribute.push(Tab.ORIGINATING_QUEUE);\n }\n\n let supportedTabletErrors: Array<ValueOf<typeof Tab>> = [];\n if (\n tabletErrorsCount > 0 ||\n (getConfigData().allowTabletErrorsAPI && attributes.tablet_error_count >= 0)\n ) {\n supportedTabletErrors = [Tab.TABLET_ERRORS];\n }\n\n const supportedTabs = new Set<string>([\n ...alwaysSupportedTabs,\n ...supportedByAttribute,\n ...supportedTabletErrors,\n ]);\n\n UIFactory.getNavigationExtraTabs().forEach((tab) => {\n if (tab.isSupported(attributes)) {\n supportedTabs.add(tab.value);\n }\n });\n\n return supportedTabs;\n },\n);\n\nexport const getTabs = createSelector(\n [\n getSupportedTabs,\n getTabletErrorsBackgroundCount,\n getAttributes,\n getNavigationOriginatingQueuePath,\n getCluster,\n ],\n (supportedTabs, tabletErrorsCount, attributes, originatingQueuePath, cluster) => {\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 url?: string;\n external?: boolean;\n routed?: false;\n }[] = [\n {\n value: Tab.CONSUMER,\n title: 'Go to consumer [Alt+R]',\n hotkey: [\n {\n keys: 'alt+r',\n tab: Tab.CONSUMER,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.CONTENT,\n title: 'Go to content [Alt+C]',\n text: isACO ? 'Principal ACL' : undefined,\n hotkey: [\n {\n keys: 'alt+c',\n tab: Tab.CONTENT,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.QUEUE,\n title: 'Go to queue [Alt+Q]',\n hotkey: [\n {\n keys: 'alt+q',\n tab: Tab.QUEUE,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.ATTRIBUTES,\n title: 'Go to attributes [Alt+A]',\n hotkey: [\n {\n keys: 'alt+a',\n tab: Tab.ATTRIBUTES,\n scope: 'all',\n },\n ],\n caption: 'Attributes',\n },\n {\n value: Tab.USER_ATTRIBUTES,\n title: 'Go to user attributes [Alt+U]',\n hotkey: [\n {\n keys: 'alt+u',\n tab: Tab.USER_ATTRIBUTES,\n scope: 'all',\n },\n ],\n caption: 'User Attributes',\n },\n {\n value: Tab.MOUNT_CONFIG,\n title: 'Go to mount config',\n hotkey: [\n {\n keys: 'alt+m',\n tab: Tab.MOUNT_CONFIG,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.ACL,\n title: 'Go to ACL [Alt+P]',\n hotkey: [\n {\n keys: 'alt+p',\n tab: Tab.ACL,\n scope: 'all',\n },\n ],\n caption: 'ACL',\n },\n {\n value: Tab.ACCESS_LOG,\n title: 'Access log',\n },\n {\n value: Tab.FLOW,\n title: 'Go to content [Alt+F]',\n text: 'Flow',\n hotkey: [\n {\n keys: 'alt+f',\n tab: Tab.FLOW,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.LOCKS,\n title: 'Go to locks [Alt+L]',\n hotkey: [\n {\n keys: 'alt+l',\n tab: Tab.LOCKS,\n scope: 'all',\n },\n ],\n counter: ypath.getValue(attributes, '/lock_count'),\n },\n {\n value: Tab.ANNOTATION,\n title: 'Go to annotation [Alt+N]',\n hotkey: [\n {\n keys: 'alt+n',\n tab: Tab.ACL,\n scope: 'all',\n },\n ],\n caption: 'Annotation',\n },\n {\n value: Tab.SCHEMA,\n title: 'Go to schema [Alt+S]',\n hotkey: [\n {\n keys: 'alt+s',\n tab: Tab.SCHEMA,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.TABLETS,\n title: 'Go to tablets [Alt+T]',\n hotkey: [\n {\n keys: 'alt+t',\n tab: Tab.TABLETS,\n scope: 'all',\n },\n ],\n },\n {\n value: Tab.TABLET_ERRORS,\n title: 'Go to tablets errors',\n counter: tabletErrorsCount > 0 ? tabletErrorsCount : undefined,\n },\n {\n value: Tab.ORIGINATING_QUEUE,\n title: 'Originating queue',\n url: `${window.location.origin}/${cluster}/navigation?path=${originatingQueuePath}`,\n external: true,\n routed: false,\n },\n ];\n\n UIFactory.getNavigationExtraTabs().forEach((extraTab) => {\n for (let i = 0; i < tabs.length; i++) {\n let indexOffset = 0;\n let tabToFind;\n\n if ('before' in extraTab.position) {\n tabToFind = extraTab.position.before;\n }\n\n if ('after' in extraTab.position) {\n tabToFind = extraTab.position.after;\n indexOffset = 1;\n }\n\n if (tabs[i].value === tabToFind) {\n const newTab = {\n value: extraTab.value,\n title: extraTab.title,\n hotkey: extraTab.hotkey\n ? [{keys: extraTab.hotkey, tab: extraTab.value, scope: 'all'}]\n : undefined,\n text: extraTab.text,\n caption: extraTab.caption,\n };\n tabs.splice(i + indexOffset, 0, newTab);\n break;\n }\n }\n });\n\n return tabs.filter((tab) => supportedTabs.has(tab.value));\n },\n);\n\nexport const getEffectiveMode = createSelector([getMode, getTabs], (mode, tabs) => {\n const [firstTab] = tabs;\n\n return mode === Tab.AUTO ? firstTab.value : mode;\n});\n","import {RootState} from '../../../reducers';\n\nexport const getNavigationAnnotationError = (state: RootState) =>\n state.navigation.tabs.annotation.error;\n\nexport const getNavigationAnnotation = (state: RootState) =>\n state.navigation.tabs.annotation.annotation;\nexport const getNavigationAnnotationPath = (state: RootState) =>\n state.navigation.tabs.annotation.path;\nexport const getNavigationAnnotationSaving = (state: RootState) =>\n state.navigation.tabs.annotation.saving;\nexport const getNavigationAnnotationEditing = (state: RootState) =>\n state.navigation.tabs.annotation.editing;\n","import {createSelector} from 'reselect';\nimport {RootState} from '../../../../store/reducers';\nimport {calculateLoadingStatus} from '../../../../utils/utils';\nimport {getPath} from '../../../../store/selectors/navigation/index';\n\nimport reduce_ from 'lodash/reduce';\n\nimport {ValueOf, YTError} from '../../../../types';\nimport ypath from '../../../../common/thor/ypath';\n\nconst getTabletErrorsErrorCount = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.errorsCount;\nconst getTabletErrorsErrorCountPath = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.errorsCountPath;\nconst getTabletErrorsRaw = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.tabletErrors;\nconst getTabletErrorsPathRaw = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.tabletErrorsPath;\n\nexport const getTabletErrorsViewMode = (state: RootState) =>\n state.navigation.tabs.tabletErrorsBackground.viewMode;\n\nexport const getTabletErrorsLoadingStatus = createSelector(\n [\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.loading,\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.loaded,\n (state: RootState) => state.navigation.tabs.tabletErrorsBackground.error,\n ],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n\nexport const getTabletErrorsBackgroundCount = createSelector(\n [getPath, getTabletErrorsErrorCountPath, getTabletErrorsErrorCount],\n (path, errorCountPath, errorCount) => {\n if (path !== errorCountPath) {\n return 0;\n }\n\n return errorCount;\n },\n);\n\nexport const getTabletErrors = createSelector(\n [getPath, getTabletErrorsPathRaw, getTabletErrorsRaw],\n (path, errPath, errors) => {\n if (path !== errPath) {\n return undefined;\n }\n\n return errors;\n },\n);\n\nexport const getTabletErrorsBackgroundCountNoticeVisbile = createSelector(\n [getTabletErrorsBackgroundCount, getTabletErrors],\n (count, data) => {\n const {tablet_errors, replication_errors} = data || {};\n const tabletErrorsCount = calculateSubitemsCount(tablet_errors);\n const replicationErrorsCount = calculateSubitemsCount(replication_errors);\n\n return count !== tabletErrorsCount + replicationErrorsCount;\n },\n);\n\nfunction calculateSubitemsCount(items?: Record<string, Array<unknown>>) {\n return reduce_(\n items,\n (acc, subItems) => {\n return acc + subItems.length;\n },\n 0,\n );\n}\n\ntype ReplicaId = string;\ntype TabletId = string;\n\nexport const getTabletErrorsReplicationErrors = createSelector([getTabletErrors], (data) => {\n return reduce_(\n data?.replication_errors,\n (acc, errors, replicaId) => {\n const errorsByTablet = reduce_(\n errors,\n (errAcc, error) => {\n const tablet_id = ypath.getValue(error.attributes, '/tablet_id');\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","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// GENERATED DO NOT EDIT\nmodule.exports = [\n \"alignContent\",\n \"MozAlignContent\",\n \"WebkitAlignContent\",\n \"MSAlignContent\",\n \"OAlignContent\",\n \"alignItems\",\n \"MozAlignItems\",\n \"WebkitAlignItems\",\n \"MSAlignItems\",\n \"OAlignItems\",\n \"alignSelf\",\n \"MozAlignSelf\",\n \"WebkitAlignSelf\",\n \"MSAlignSelf\",\n \"OAlignSelf\",\n \"all\",\n \"MozAll\",\n \"WebkitAll\",\n \"MSAll\",\n \"OAll\",\n \"animation\",\n \"MozAnimation\",\n \"WebkitAnimation\",\n \"MSAnimation\",\n \"OAnimation\",\n \"animationDelay\",\n \"MozAnimationDelay\",\n \"WebkitAnimationDelay\",\n \"MSAnimationDelay\",\n \"OAnimationDelay\",\n \"animationDirection\",\n \"MozAnimationDirection\",\n \"WebkitAnimationDirection\",\n \"MSAnimationDirection\",\n \"OAnimationDirection\",\n \"animationDuration\",\n \"MozAnimationDuration\",\n \"WebkitAnimationDuration\",\n \"MSAnimationDuration\",\n \"OAnimationDuration\",\n \"animationFillMode\",\n \"MozAnimationFillMode\",\n \"WebkitAnimationFillMode\",\n \"MSAnimationFillMode\",\n \"OAnimationFillMode\",\n \"animationIterationCount\",\n \"MozAnimationIterationCount\",\n \"WebkitAnimationIterationCount\",\n \"MSAnimationIterationCount\",\n \"OAnimationIterationCount\",\n \"animationName\",\n \"MozAnimationName\",\n \"WebkitAnimationName\",\n \"MSAnimationName\",\n \"OAnimationName\",\n \"animationPlayState\",\n \"MozAnimationPlayState\",\n \"WebkitAnimationPlayState\",\n \"MSAnimationPlayState\",\n \"OAnimationPlayState\",\n \"animationTimingFunction\",\n \"MozAnimationTimingFunction\",\n \"WebkitAnimationTimingFunction\",\n \"MSAnimationTimingFunction\",\n \"OAnimationTimingFunction\",\n \"backfaceVisibility\",\n \"MozBackfaceVisibility\",\n \"WebkitBackfaceVisibility\",\n \"MSBackfaceVisibility\",\n \"OBackfaceVisibility\",\n \"background\",\n \"MozBackground\",\n \"WebkitBackground\",\n \"MSBackground\",\n \"OBackground\",\n \"backgroundAttachment\",\n \"MozBackgroundAttachment\",\n \"WebkitBackgroundAttachment\",\n \"MSBackgroundAttachment\",\n \"OBackgroundAttachment\",\n \"backgroundBlendMode\",\n \"MozBackgroundBlendMode\",\n \"WebkitBackgroundBlendMode\",\n \"MSBackgroundBlendMode\",\n \"OBackgroundBlendMode\",\n \"backgroundClip\",\n \"MozBackgroundClip\",\n \"WebkitBackgroundClip\",\n \"MSBackgroundClip\",\n \"OBackgroundClip\",\n \"backgroundColor\",\n \"MozBackgroundColor\",\n \"WebkitBackgroundColor\",\n \"MSBackgroundColor\",\n \"OBackgroundColor\",\n \"backgroundImage\",\n \"MozBackgroundImage\",\n \"WebkitBackgroundImage\",\n \"MSBackgroundImage\",\n \"OBackgroundImage\",\n \"backgroundOrigin\",\n \"MozBackgroundOrigin\",\n \"WebkitBackgroundOrigin\",\n \"MSBackgroundOrigin\",\n \"OBackgroundOrigin\",\n \"backgroundPosition\",\n \"MozBackgroundPosition\",\n \"WebkitBackgroundPosition\",\n \"MSBackgroundPosition\",\n \"OBackgroundPosition\",\n \"backgroundRepeat\",\n \"MozBackgroundRepeat\",\n \"WebkitBackgroundRepeat\",\n \"MSBackgroundRepeat\",\n \"OBackgroundRepeat\",\n \"backgroundSize\",\n \"MozBackgroundSize\",\n \"WebkitBackgroundSize\",\n \"MSBackgroundSize\",\n \"OBackgroundSize\",\n \"blockSize\",\n \"MozBlockSize\",\n \"WebkitBlockSize\",\n \"MSBlockSize\",\n \"OBlockSize\",\n \"border\",\n \"MozBorder\",\n \"WebkitBorder\",\n \"MSBorder\",\n \"OBorder\",\n \"borderBlockEnd\",\n \"MozBorderBlockEnd\",\n \"WebkitBorderBlockEnd\",\n \"MSBorderBlockEnd\",\n \"OBorderBlockEnd\",\n \"borderBlockEndColor\",\n \"MozBorderBlockEndColor\",\n \"WebkitBorderBlockEndColor\",\n \"MSBorderBlockEndColor\",\n \"OBorderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"MozBorderBlockEndStyle\",\n \"WebkitBorderBlockEndStyle\",\n \"MSBorderBlockEndStyle\",\n \"OBorderBlockEndStyle\",\n \"borderBlockEndWidth\",\n \"MozBorderBlockEndWidth\",\n \"WebkitBorderBlockEndWidth\",\n \"MSBorderBlockEndWidth\",\n \"OBorderBlockEndWidth\",\n \"borderBlockStart\",\n \"MozBorderBlockStart\",\n \"WebkitBorderBlockStart\",\n \"MSBorderBlockStart\",\n \"OBorderBlockStart\",\n \"borderBlockStartColor\",\n \"MozBorderBlockStartColor\",\n \"WebkitBorderBlockStartColor\",\n \"MSBorderBlockStartColor\",\n \"OBorderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"MozBorderBlockStartStyle\",\n \"WebkitBorderBlockStartStyle\",\n \"MSBorderBlockStartStyle\",\n \"OBorderBlockStartStyle\",\n \"borderBlockStartWidth\",\n \"MozBorderBlockStartWidth\",\n \"WebkitBorderBlockStartWidth\",\n \"MSBorderBlockStartWidth\",\n \"OBorderBlockStartWidth\",\n \"borderBottom\",\n \"MozBorderBottom\",\n \"WebkitBorderBottom\",\n \"MSBorderBottom\",\n \"OBorderBottom\",\n \"borderBottomColor\",\n \"MozBorderBottomColor\",\n \"WebkitBorderBottomColor\",\n \"MSBorderBottomColor\",\n \"OBorderBottomColor\",\n \"borderBottomLeftRadius\",\n \"MozBorderBottomLeftRadius\",\n \"WebkitBorderBottomLeftRadius\",\n \"MSBorderBottomLeftRadius\",\n \"OBorderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"MozBorderBottomRightRadius\",\n \"WebkitBorderBottomRightRadius\",\n \"MSBorderBottomRightRadius\",\n \"OBorderBottomRightRadius\",\n \"borderBottomStyle\",\n \"MozBorderBottomStyle\",\n \"WebkitBorderBottomStyle\",\n \"MSBorderBottomStyle\",\n \"OBorderBottomStyle\",\n \"borderBottomWidth\",\n \"MozBorderBottomWidth\",\n \"WebkitBorderBottomWidth\",\n \"MSBorderBottomWidth\",\n \"OBorderBottomWidth\",\n \"borderCollapse\",\n \"MozBorderCollapse\",\n \"WebkitBorderCollapse\",\n \"MSBorderCollapse\",\n \"OBorderCollapse\",\n \"borderColor\",\n \"MozBorderColor\",\n \"WebkitBorderColor\",\n \"MSBorderColor\",\n \"OBorderColor\",\n \"borderImage\",\n \"MozBorderImage\",\n \"WebkitBorderImage\",\n \"MSBorderImage\",\n \"OBorderImage\",\n \"borderImageOutset\",\n \"MozBorderImageOutset\",\n \"WebkitBorderImageOutset\",\n \"MSBorderImageOutset\",\n \"OBorderImageOutset\",\n \"borderImageRepeat\",\n \"MozBorderImageRepeat\",\n \"WebkitBorderImageRepeat\",\n \"MSBorderImageRepeat\",\n \"OBorderImageRepeat\",\n \"borderImageSlice\",\n \"MozBorderImageSlice\",\n \"WebkitBorderImageSlice\",\n \"MSBorderImageSlice\",\n \"OBorderImageSlice\",\n \"borderImageSource\",\n \"MozBorderImageSource\",\n \"WebkitBorderImageSource\",\n \"MSBorderImageSource\",\n \"OBorderImageSource\",\n \"borderImageWidth\",\n \"MozBorderImageWidth\",\n \"WebkitBorderImageWidth\",\n \"MSBorderImageWidth\",\n \"OBorderImageWidth\",\n \"borderInlineEnd\",\n \"MozBorderInlineEnd\",\n \"WebkitBorderInlineEnd\",\n \"MSBorderInlineEnd\",\n \"OBorderInlineEnd\",\n \"borderInlineEndColor\",\n \"MozBorderInlineEndColor\",\n \"WebkitBorderInlineEndColor\",\n \"MSBorderInlineEndColor\",\n \"OBorderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"MozBorderInlineEndStyle\",\n \"WebkitBorderInlineEndStyle\",\n \"MSBorderInlineEndStyle\",\n \"OBorderInlineEndStyle\",\n \"borderInlineEndWidth\",\n \"MozBorderInlineEndWidth\",\n \"WebkitBorderInlineEndWidth\",\n \"MSBorderInlineEndWidth\",\n \"OBorderInlineEndWidth\",\n \"borderInlineStart\",\n \"MozBorderInlineStart\",\n \"WebkitBorderInlineStart\",\n \"MSBorderInlineStart\",\n \"OBorderInlineStart\",\n \"borderInlineStartColor\",\n \"MozBorderInlineStartColor\",\n \"WebkitBorderInlineStartColor\",\n \"MSBorderInlineStartColor\",\n \"OBorderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"MozBorderInlineStartStyle\",\n \"WebkitBorderInlineStartStyle\",\n \"MSBorderInlineStartStyle\",\n \"OBorderInlineStartStyle\",\n \"borderInlineStartWidth\",\n \"MozBorderInlineStartWidth\",\n \"WebkitBorderInlineStartWidth\",\n \"MSBorderInlineStartWidth\",\n \"OBorderInlineStartWidth\",\n \"borderLeft\",\n \"MozBorderLeft\",\n \"WebkitBorderLeft\",\n \"MSBorderLeft\",\n \"OBorderLeft\",\n \"borderLeftColor\",\n \"MozBorderLeftColor\",\n \"WebkitBorderLeftColor\",\n \"MSBorderLeftColor\",\n \"OBorderLeftColor\",\n \"borderLeftStyle\",\n \"MozBorderLeftStyle\",\n \"WebkitBorderLeftStyle\",\n \"MSBorderLeftStyle\",\n \"OBorderLeftStyle\",\n \"borderLeftWidth\",\n \"MozBorderLeftWidth\",\n \"WebkitBorderLeftWidth\",\n \"MSBorderLeftWidth\",\n \"OBorderLeftWidth\",\n \"borderRadius\",\n \"MozBorderRadius\",\n \"WebkitBorderRadius\",\n \"MSBorderRadius\",\n \"OBorderRadius\",\n \"borderRight\",\n \"MozBorderRight\",\n \"WebkitBorderRight\",\n \"MSBorderRight\",\n \"OBorderRight\",\n \"borderRightColor\",\n \"MozBorderRightColor\",\n \"WebkitBorderRightColor\",\n \"MSBorderRightColor\",\n \"OBorderRightColor\",\n \"borderRightStyle\",\n \"MozBorderRightStyle\",\n \"WebkitBorderRightStyle\",\n \"MSBorderRightStyle\",\n \"OBorderRightStyle\",\n \"borderRightWidth\",\n \"MozBorderRightWidth\",\n \"WebkitBorderRightWidth\",\n \"MSBorderRightWidth\",\n \"OBorderRightWidth\",\n \"borderSpacing\",\n \"MozBorderSpacing\",\n \"WebkitBorderSpacing\",\n \"MSBorderSpacing\",\n \"OBorderSpacing\",\n \"borderStyle\",\n \"MozBorderStyle\",\n \"WebkitBorderStyle\",\n \"MSBorderStyle\",\n \"OBorderStyle\",\n \"borderTop\",\n \"MozBorderTop\",\n \"WebkitBorderTop\",\n \"MSBorderTop\",\n \"OBorderTop\",\n \"borderTopColor\",\n \"MozBorderTopColor\",\n \"WebkitBorderTopColor\",\n \"MSBorderTopColor\",\n \"OBorderTopColor\",\n \"borderTopLeftRadius\",\n \"MozBorderTopLeftRadius\",\n \"WebkitBorderTopLeftRadius\",\n \"MSBorderTopLeftRadius\",\n \"OBorderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"MozBorderTopRightRadius\",\n \"WebkitBorderTopRightRadius\",\n \"MSBorderTopRightRadius\",\n \"OBorderTopRightRadius\",\n \"borderTopStyle\",\n \"MozBorderTopStyle\",\n \"WebkitBorderTopStyle\",\n \"MSBorderTopStyle\",\n \"OBorderTopStyle\",\n \"borderTopWidth\",\n \"MozBorderTopWidth\",\n \"WebkitBorderTopWidth\",\n \"MSBorderTopWidth\",\n \"OBorderTopWidth\",\n \"borderWidth\",\n \"MozBorderWidth\",\n \"WebkitBorderWidth\",\n \"MSBorderWidth\",\n \"OBorderWidth\",\n \"bottom\",\n \"MozBottom\",\n \"WebkitBottom\",\n \"MSBottom\",\n \"OBottom\",\n \"boxDecorationBreak\",\n \"MozBoxDecorationBreak\",\n \"WebkitBoxDecorationBreak\",\n \"MSBoxDecorationBreak\",\n \"OBoxDecorationBreak\",\n \"boxShadow\",\n \"MozBoxShadow\",\n \"WebkitBoxShadow\",\n \"MSBoxShadow\",\n \"OBoxShadow\",\n \"boxSizing\",\n \"MozBoxSizing\",\n \"WebkitBoxSizing\",\n \"MSBoxSizing\",\n \"OBoxSizing\",\n \"breakAfter\",\n \"MozBreakAfter\",\n \"WebkitBreakAfter\",\n \"MSBreakAfter\",\n \"OBreakAfter\",\n \"breakBefore\",\n \"MozBreakBefore\",\n \"WebkitBreakBefore\",\n \"MSBreakBefore\",\n \"OBreakBefore\",\n \"breakInside\",\n \"MozBreakInside\",\n \"WebkitBreakInside\",\n \"MSBreakInside\",\n \"OBreakInside\",\n \"captionSide\",\n \"MozCaptionSide\",\n \"WebkitCaptionSide\",\n \"MSCaptionSide\",\n \"OCaptionSide\",\n \"caretColor\",\n \"MozCaretColor\",\n \"WebkitCaretColor\",\n \"MSCaretColor\",\n \"OCaretColor\",\n \"ch\",\n \"MozCh\",\n \"WebkitCh\",\n \"MSCh\",\n \"OCh\",\n \"clear\",\n \"MozClear\",\n \"WebkitClear\",\n \"MSClear\",\n \"OClear\",\n \"clip\",\n \"MozClip\",\n \"WebkitClip\",\n \"MSClip\",\n \"OClip\",\n \"clipPath\",\n \"MozClipPath\",\n \"WebkitClipPath\",\n \"MSClipPath\",\n \"OClipPath\",\n \"cm\",\n \"MozCm\",\n \"WebkitCm\",\n \"MSCm\",\n \"OCm\",\n \"color\",\n \"MozColor\",\n \"WebkitColor\",\n \"MSColor\",\n \"OColor\",\n \"columnCount\",\n \"MozColumnCount\",\n \"WebkitColumnCount\",\n \"MSColumnCount\",\n \"OColumnCount\",\n \"columnFill\",\n \"MozColumnFill\",\n \"WebkitColumnFill\",\n \"MSColumnFill\",\n \"OColumnFill\",\n \"columnGap\",\n \"MozColumnGap\",\n \"WebkitColumnGap\",\n \"MSColumnGap\",\n \"OColumnGap\",\n \"columnRule\",\n \"MozColumnRule\",\n \"WebkitColumnRule\",\n \"MSColumnRule\",\n \"OColumnRule\",\n \"columnRuleColor\",\n \"MozColumnRuleColor\",\n \"WebkitColumnRuleColor\",\n \"MSColumnRuleColor\",\n \"OColumnRuleColor\",\n \"columnRuleStyle\",\n \"MozColumnRuleStyle\",\n \"WebkitColumnRuleStyle\",\n \"MSColumnRuleStyle\",\n \"OColumnRuleStyle\",\n \"columnRuleWidth\",\n \"MozColumnRuleWidth\",\n \"WebkitColumnRuleWidth\",\n \"MSColumnRuleWidth\",\n \"OColumnRuleWidth\",\n \"columnSpan\",\n \"MozColumnSpan\",\n \"WebkitColumnSpan\",\n \"MSColumnSpan\",\n \"OColumnSpan\",\n \"columnWidth\",\n \"MozColumnWidth\",\n \"WebkitColumnWidth\",\n \"MSColumnWidth\",\n \"OColumnWidth\",\n \"columns\",\n \"MozColumns\",\n \"WebkitColumns\",\n \"MSColumns\",\n \"OColumns\",\n \"content\",\n \"MozContent\",\n \"WebkitContent\",\n \"MSContent\",\n \"OContent\",\n \"counterIncrement\",\n \"MozCounterIncrement\",\n \"WebkitCounterIncrement\",\n \"MSCounterIncrement\",\n \"OCounterIncrement\",\n \"counterReset\",\n \"MozCounterReset\",\n \"WebkitCounterReset\",\n \"MSCounterReset\",\n \"OCounterReset\",\n \"cursor\",\n \"MozCursor\",\n \"WebkitCursor\",\n \"MSCursor\",\n \"OCursor\",\n \"deg\",\n \"MozDeg\",\n \"WebkitDeg\",\n \"MSDeg\",\n \"ODeg\",\n \"direction\",\n \"MozDirection\",\n \"WebkitDirection\",\n \"MSDirection\",\n \"ODirection\",\n \"display\",\n \"MozDisplay\",\n \"WebkitDisplay\",\n \"MSDisplay\",\n \"ODisplay\",\n \"dpcm\",\n \"MozDpcm\",\n \"WebkitDpcm\",\n \"MSDpcm\",\n \"ODpcm\",\n \"dpi\",\n \"MozDpi\",\n \"WebkitDpi\",\n \"MSDpi\",\n \"ODpi\",\n \"dppx\",\n \"MozDppx\",\n \"WebkitDppx\",\n \"MSDppx\",\n \"ODppx\",\n \"em\",\n \"MozEm\",\n \"WebkitEm\",\n \"MSEm\",\n \"OEm\",\n \"emptyCells\",\n \"MozEmptyCells\",\n \"WebkitEmptyCells\",\n \"MSEmptyCells\",\n \"OEmptyCells\",\n \"ex\",\n \"MozEx\",\n \"WebkitEx\",\n \"MSEx\",\n \"OEx\",\n \"filter\",\n \"MozFilter\",\n \"WebkitFilter\",\n \"MSFilter\",\n \"OFilter\",\n \"flexBasis\",\n \"MozFlexBasis\",\n \"WebkitFlexBasis\",\n \"MSFlexBasis\",\n \"OFlexBasis\",\n \"flexDirection\",\n \"MozFlexDirection\",\n \"WebkitFlexDirection\",\n \"MSFlexDirection\",\n \"OFlexDirection\",\n \"flexFlow\",\n \"MozFlexFlow\",\n \"WebkitFlexFlow\",\n \"MSFlexFlow\",\n \"OFlexFlow\",\n \"flexGrow\",\n \"MozFlexGrow\",\n \"WebkitFlexGrow\",\n \"MSFlexGrow\",\n \"OFlexGrow\",\n \"flexShrink\",\n \"MozFlexShrink\",\n \"WebkitFlexShrink\",\n \"MSFlexShrink\",\n \"OFlexShrink\",\n \"flexWrap\",\n \"MozFlexWrap\",\n \"WebkitFlexWrap\",\n \"MSFlexWrap\",\n \"OFlexWrap\",\n \"float\",\n \"MozFloat\",\n \"WebkitFloat\",\n \"MSFloat\",\n \"OFloat\",\n \"font\",\n \"MozFont\",\n \"WebkitFont\",\n \"MSFont\",\n \"OFont\",\n \"fontFamily\",\n \"MozFontFamily\",\n \"WebkitFontFamily\",\n \"MSFontFamily\",\n \"OFontFamily\",\n \"fontFeatureSettings\",\n \"MozFontFeatureSettings\",\n \"WebkitFontFeatureSettings\",\n \"MSFontFeatureSettings\",\n \"OFontFeatureSettings\",\n \"fontKerning\",\n \"MozFontKerning\",\n \"WebkitFontKerning\",\n \"MSFontKerning\",\n \"OFontKerning\",\n \"fontLanguageOverride\",\n \"MozFontLanguageOverride\",\n \"WebkitFontLanguageOverride\",\n \"MSFontLanguageOverride\",\n \"OFontLanguageOverride\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"fontSizeAdjust\",\n \"MozFontSizeAdjust\",\n \"WebkitFontSizeAdjust\",\n \"MSFontSizeAdjust\",\n \"OFontSizeAdjust\",\n \"fontStretch\",\n \"MozFontStretch\",\n \"WebkitFontStretch\",\n \"MSFontStretch\",\n \"OFontStretch\",\n \"fontStyle\",\n \"MozFontStyle\",\n \"WebkitFontStyle\",\n \"MSFontStyle\",\n \"OFontStyle\",\n \"fontSynthesis\",\n \"MozFontSynthesis\",\n \"WebkitFontSynthesis\",\n \"MSFontSynthesis\",\n \"OFontSynthesis\",\n \"fontVariant\",\n \"MozFontVariant\",\n \"WebkitFontVariant\",\n \"MSFontVariant\",\n \"OFontVariant\",\n \"fontVariantAlternates\",\n \"MozFontVariantAlternates\",\n \"WebkitFontVariantAlternates\",\n \"MSFontVariantAlternates\",\n \"OFontVariantAlternates\",\n \"fontVariantCaps\",\n \"MozFontVariantCaps\",\n \"WebkitFontVariantCaps\",\n \"MSFontVariantCaps\",\n \"OFontVariantCaps\",\n \"fontVariantEastAsian\",\n \"MozFontVariantEastAsian\",\n \"WebkitFontVariantEastAsian\",\n \"MSFontVariantEastAsian\",\n \"OFontVariantEastAsian\",\n \"fontVariantLigatures\",\n \"MozFontVariantLigatures\",\n \"WebkitFontVariantLigatures\",\n \"MSFontVariantLigatures\",\n \"OFontVariantLigatures\",\n \"fontVariantNumeric\",\n \"MozFontVariantNumeric\",\n \"WebkitFontVariantNumeric\",\n \"MSFontVariantNumeric\",\n \"OFontVariantNumeric\",\n \"fontVariantPosition\",\n \"MozFontVariantPosition\",\n \"WebkitFontVariantPosition\",\n \"MSFontVariantPosition\",\n \"OFontVariantPosition\",\n \"fontWeight\",\n \"MozFontWeight\",\n \"WebkitFontWeight\",\n \"MSFontWeight\",\n \"OFontWeight\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"grad\",\n \"MozGrad\",\n \"WebkitGrad\",\n \"MSGrad\",\n \"OGrad\",\n \"grid\",\n \"MozGrid\",\n \"WebkitGrid\",\n \"MSGrid\",\n \"OGrid\",\n \"gridArea\",\n \"MozGridArea\",\n \"WebkitGridArea\",\n \"MSGridArea\",\n \"OGridArea\",\n \"gridAutoColumns\",\n \"MozGridAutoColumns\",\n \"WebkitGridAutoColumns\",\n \"MSGridAutoColumns\",\n \"OGridAutoColumns\",\n \"gridAutoFlow\",\n \"MozGridAutoFlow\",\n \"WebkitGridAutoFlow\",\n \"MSGridAutoFlow\",\n \"OGridAutoFlow\",\n \"gridAutoRows\",\n \"MozGridAutoRows\",\n \"WebkitGridAutoRows\",\n \"MSGridAutoRows\",\n \"OGridAutoRows\",\n \"gridColumn\",\n \"MozGridColumn\",\n \"WebkitGridColumn\",\n \"MSGridColumn\",\n \"OGridColumn\",\n \"gridColumnEnd\",\n \"MozGridColumnEnd\",\n \"WebkitGridColumnEnd\",\n \"MSGridColumnEnd\",\n \"OGridColumnEnd\",\n \"gridColumnGap\",\n \"MozGridColumnGap\",\n \"WebkitGridColumnGap\",\n \"MSGridColumnGap\",\n \"OGridColumnGap\",\n \"gridColumnStart\",\n \"MozGridColumnStart\",\n \"WebkitGridColumnStart\",\n \"MSGridColumnStart\",\n \"OGridColumnStart\",\n \"gridGap\",\n \"MozGridGap\",\n \"WebkitGridGap\",\n \"MSGridGap\",\n \"OGridGap\",\n \"gridRow\",\n \"MozGridRow\",\n \"WebkitGridRow\",\n \"MSGridRow\",\n \"OGridRow\",\n \"gridRowEnd\",\n \"MozGridRowEnd\",\n \"WebkitGridRowEnd\",\n \"MSGridRowEnd\",\n \"OGridRowEnd\",\n \"gridRowGap\",\n \"MozGridRowGap\",\n \"WebkitGridRowGap\",\n \"MSGridRowGap\",\n \"OGridRowGap\",\n \"gridRowStart\",\n \"MozGridRowStart\",\n \"WebkitGridRowStart\",\n \"MSGridRowStart\",\n \"OGridRowStart\",\n \"gridTemplate\",\n \"MozGridTemplate\",\n \"WebkitGridTemplate\",\n \"MSGridTemplate\",\n \"OGridTemplate\",\n \"gridTemplateAreas\",\n \"MozGridTemplateAreas\",\n \"WebkitGridTemplateAreas\",\n \"MSGridTemplateAreas\",\n \"OGridTemplateAreas\",\n \"gridTemplateColumns\",\n \"MozGridTemplateColumns\",\n \"WebkitGridTemplateColumns\",\n \"MSGridTemplateColumns\",\n \"OGridTemplateColumns\",\n \"gridTemplateRows\",\n \"MozGridTemplateRows\",\n \"WebkitGridTemplateRows\",\n \"MSGridTemplateRows\",\n \"OGridTemplateRows\",\n \"height\",\n \"MozHeight\",\n \"WebkitHeight\",\n \"MSHeight\",\n \"OHeight\",\n \"hyphens\",\n \"MozHyphens\",\n \"WebkitHyphens\",\n \"MSHyphens\",\n \"OHyphens\",\n \"hz\",\n \"MozHz\",\n \"WebkitHz\",\n \"MSHz\",\n \"OHz\",\n \"imageOrientation\",\n \"MozImageOrientation\",\n \"WebkitImageOrientation\",\n \"MSImageOrientation\",\n \"OImageOrientation\",\n \"imageRendering\",\n \"MozImageRendering\",\n \"WebkitImageRendering\",\n \"MSImageRendering\",\n \"OImageRendering\",\n \"imageResolution\",\n \"MozImageResolution\",\n \"WebkitImageResolution\",\n \"MSImageResolution\",\n \"OImageResolution\",\n \"imeMode\",\n \"MozImeMode\",\n \"WebkitImeMode\",\n \"MSImeMode\",\n \"OImeMode\",\n \"in\",\n \"MozIn\",\n \"WebkitIn\",\n \"MSIn\",\n \"OIn\",\n \"inherit\",\n \"MozInherit\",\n \"WebkitInherit\",\n \"MSInherit\",\n \"OInherit\",\n \"initial\",\n \"MozInitial\",\n \"WebkitInitial\",\n \"MSInitial\",\n \"OInitial\",\n \"inlineSize\",\n \"MozInlineSize\",\n \"WebkitInlineSize\",\n \"MSInlineSize\",\n \"OInlineSize\",\n \"isolation\",\n \"MozIsolation\",\n \"WebkitIsolation\",\n \"MSIsolation\",\n \"OIsolation\",\n \"justifyContent\",\n \"MozJustifyContent\",\n \"WebkitJustifyContent\",\n \"MSJustifyContent\",\n \"OJustifyContent\",\n \"khz\",\n \"MozKhz\",\n \"WebkitKhz\",\n \"MSKhz\",\n \"OKhz\",\n \"left\",\n \"MozLeft\",\n \"WebkitLeft\",\n \"MSLeft\",\n \"OLeft\",\n \"letterSpacing\",\n \"MozLetterSpacing\",\n \"WebkitLetterSpacing\",\n \"MSLetterSpacing\",\n \"OLetterSpacing\",\n \"lineBreak\",\n \"MozLineBreak\",\n \"WebkitLineBreak\",\n \"MSLineBreak\",\n \"OLineBreak\",\n \"lineHeight\",\n \"MozLineHeight\",\n \"WebkitLineHeight\",\n \"MSLineHeight\",\n \"OLineHeight\",\n \"listStyle\",\n \"MozListStyle\",\n \"WebkitListStyle\",\n \"MSListStyle\",\n \"OListStyle\",\n \"listStyleImage\",\n \"MozListStyleImage\",\n \"WebkitListStyleImage\",\n \"MSListStyleImage\",\n \"OListStyleImage\",\n \"listStylePosition\",\n \"MozListStylePosition\",\n \"WebkitListStylePosition\",\n \"MSListStylePosition\",\n \"OListStylePosition\",\n \"listStyleType\",\n \"MozListStyleType\",\n \"WebkitListStyleType\",\n \"MSListStyleType\",\n \"OListStyleType\",\n \"margin\",\n \"MozMargin\",\n \"WebkitMargin\",\n \"MSMargin\",\n \"OMargin\",\n \"marginBlockEnd\",\n \"MozMarginBlockEnd\",\n \"WebkitMarginBlockEnd\",\n \"MSMarginBlockEnd\",\n \"OMarginBlockEnd\",\n \"marginBlockStart\",\n \"MozMarginBlockStart\",\n \"WebkitMarginBlockStart\",\n \"MSMarginBlockStart\",\n \"OMarginBlockStart\",\n \"marginBottom\",\n \"MozMarginBottom\",\n \"WebkitMarginBottom\",\n \"MSMarginBottom\",\n \"OMarginBottom\",\n \"marginInlineEnd\",\n \"MozMarginInlineEnd\",\n \"WebkitMarginInlineEnd\",\n \"MSMarginInlineEnd\",\n \"OMarginInlineEnd\",\n \"marginInlineStart\",\n \"MozMarginInlineStart\",\n \"WebkitMarginInlineStart\",\n \"MSMarginInlineStart\",\n \"OMarginInlineStart\",\n \"marginLeft\",\n \"MozMarginLeft\",\n \"WebkitMarginLeft\",\n \"MSMarginLeft\",\n \"OMarginLeft\",\n \"marginRight\",\n \"MozMarginRight\",\n \"WebkitMarginRight\",\n \"MSMarginRight\",\n \"OMarginRight\",\n \"marginTop\",\n \"MozMarginTop\",\n \"WebkitMarginTop\",\n \"MSMarginTop\",\n \"OMarginTop\",\n \"mask\",\n \"MozMask\",\n \"WebkitMask\",\n \"MSMask\",\n \"OMask\",\n \"maskClip\",\n \"MozMaskClip\",\n \"WebkitMaskClip\",\n \"MSMaskClip\",\n \"OMaskClip\",\n \"maskComposite\",\n \"MozMaskComposite\",\n \"WebkitMaskComposite\",\n \"MSMaskComposite\",\n \"OMaskComposite\",\n \"maskImage\",\n \"MozMaskImage\",\n \"WebkitMaskImage\",\n \"MSMaskImage\",\n \"OMaskImage\",\n \"maskMode\",\n \"MozMaskMode\",\n \"WebkitMaskMode\",\n \"MSMaskMode\",\n \"OMaskMode\",\n \"maskOrigin\",\n \"MozMaskOrigin\",\n \"WebkitMaskOrigin\",\n \"MSMaskOrigin\",\n \"OMaskOrigin\",\n \"maskPosition\",\n \"MozMaskPosition\",\n \"WebkitMaskPosition\",\n \"MSMaskPosition\",\n \"OMaskPosition\",\n \"maskRepeat\",\n \"MozMaskRepeat\",\n \"WebkitMaskRepeat\",\n \"MSMaskRepeat\",\n \"OMaskRepeat\",\n \"maskSize\",\n \"MozMaskSize\",\n \"WebkitMaskSize\",\n \"MSMaskSize\",\n \"OMaskSize\",\n \"maskType\",\n \"MozMaskType\",\n \"WebkitMaskType\",\n \"MSMaskType\",\n \"OMaskType\",\n \"maxHeight\",\n \"MozMaxHeight\",\n \"WebkitMaxHeight\",\n \"MSMaxHeight\",\n \"OMaxHeight\",\n \"maxWidth\",\n \"MozMaxWidth\",\n \"WebkitMaxWidth\",\n \"MSMaxWidth\",\n \"OMaxWidth\",\n \"minBlockSize\",\n \"MozMinBlockSize\",\n \"WebkitMinBlockSize\",\n \"MSMinBlockSize\",\n \"OMinBlockSize\",\n \"minHeight\",\n \"MozMinHeight\",\n \"WebkitMinHeight\",\n \"MSMinHeight\",\n \"OMinHeight\",\n \"minInlineSize\",\n \"MozMinInlineSize\",\n \"WebkitMinInlineSize\",\n \"MSMinInlineSize\",\n \"OMinInlineSize\",\n \"minWidth\",\n \"MozMinWidth\",\n \"WebkitMinWidth\",\n \"MSMinWidth\",\n \"OMinWidth\",\n \"mixBlendMode\",\n \"MozMixBlendMode\",\n \"WebkitMixBlendMode\",\n \"MSMixBlendMode\",\n \"OMixBlendMode\",\n \"mm\",\n \"MozMm\",\n \"WebkitMm\",\n \"MSMm\",\n \"OMm\",\n \"ms\",\n \"MozMs\",\n \"WebkitMs\",\n \"MSMs\",\n \"OMs\",\n \"objectFit\",\n \"MozObjectFit\",\n \"WebkitObjectFit\",\n \"MSObjectFit\",\n \"OObjectFit\",\n \"objectPosition\",\n \"MozObjectPosition\",\n \"WebkitObjectPosition\",\n \"MSObjectPosition\",\n \"OObjectPosition\",\n \"offsetBlockEnd\",\n \"MozOffsetBlockEnd\",\n \"WebkitOffsetBlockEnd\",\n \"MSOffsetBlockEnd\",\n \"OOffsetBlockEnd\",\n \"offsetBlockStart\",\n \"MozOffsetBlockStart\",\n \"WebkitOffsetBlockStart\",\n \"MSOffsetBlockStart\",\n \"OOffsetBlockStart\",\n \"offsetInlineEnd\",\n \"MozOffsetInlineEnd\",\n \"WebkitOffsetInlineEnd\",\n \"MSOffsetInlineEnd\",\n \"OOffsetInlineEnd\",\n \"offsetInlineStart\",\n \"MozOffsetInlineStart\",\n \"WebkitOffsetInlineStart\",\n \"MSOffsetInlineStart\",\n \"OOffsetInlineStart\",\n \"opacity\",\n \"MozOpacity\",\n \"WebkitOpacity\",\n \"MSOpacity\",\n \"OOpacity\",\n \"order\",\n \"MozOrder\",\n \"WebkitOrder\",\n \"MSOrder\",\n \"OOrder\",\n \"orphans\",\n \"MozOrphans\",\n \"WebkitOrphans\",\n \"MSOrphans\",\n \"OOrphans\",\n \"outline\",\n \"MozOutline\",\n \"WebkitOutline\",\n \"MSOutline\",\n \"OOutline\",\n \"outlineColor\",\n \"MozOutlineColor\",\n \"WebkitOutlineColor\",\n \"MSOutlineColor\",\n \"OOutlineColor\",\n \"outlineOffset\",\n \"MozOutlineOffset\",\n \"WebkitOutlineOffset\",\n \"MSOutlineOffset\",\n \"OOutlineOffset\",\n \"outlineStyle\",\n \"MozOutlineStyle\",\n \"WebkitOutlineStyle\",\n \"MSOutlineStyle\",\n \"OOutlineStyle\",\n \"outlineWidth\",\n \"MozOutlineWidth\",\n \"WebkitOutlineWidth\",\n \"MSOutlineWidth\",\n \"OOutlineWidth\",\n \"overflow\",\n \"MozOverflow\",\n \"WebkitOverflow\",\n \"MSOverflow\",\n \"OOverflow\",\n \"overflowWrap\",\n \"MozOverflowWrap\",\n \"WebkitOverflowWrap\",\n \"MSOverflowWrap\",\n \"OOverflowWrap\",\n \"overflowX\",\n \"MozOverflowX\",\n \"WebkitOverflowX\",\n \"MSOverflowX\",\n \"OOverflowX\",\n \"overflowY\",\n \"MozOverflowY\",\n \"WebkitOverflowY\",\n \"MSOverflowY\",\n \"OOverflowY\",\n \"padding\",\n \"MozPadding\",\n \"WebkitPadding\",\n \"MSPadding\",\n \"OPadding\",\n \"paddingBlockEnd\",\n \"MozPaddingBlockEnd\",\n \"WebkitPaddingBlockEnd\",\n \"MSPaddingBlockEnd\",\n \"OPaddingBlockEnd\",\n \"paddingBlockStart\",\n \"MozPaddingBlockStart\",\n \"WebkitPaddingBlockStart\",\n \"MSPaddingBlockStart\",\n \"OPaddingBlockStart\",\n \"paddingBottom\",\n \"MozPaddingBottom\",\n \"WebkitPaddingBottom\",\n \"MSPaddingBottom\",\n \"OPaddingBottom\",\n \"paddingInlineEnd\",\n \"MozPaddingInlineEnd\",\n \"WebkitPaddingInlineEnd\",\n \"MSPaddingInlineEnd\",\n \"OPaddingInlineEnd\",\n \"paddingInlineStart\",\n \"MozPaddingInlineStart\",\n \"WebkitPaddingInlineStart\",\n \"MSPaddingInlineStart\",\n \"OPaddingInlineStart\",\n \"paddingLeft\",\n \"MozPaddingLeft\",\n \"WebkitPaddingLeft\",\n \"MSPaddingLeft\",\n \"OPaddingLeft\",\n \"paddingRight\",\n \"MozPaddingRight\",\n \"WebkitPaddingRight\",\n \"MSPaddingRight\",\n \"OPaddingRight\",\n \"paddingTop\",\n \"MozPaddingTop\",\n \"WebkitPaddingTop\",\n \"MSPaddingTop\",\n \"OPaddingTop\",\n \"pageBreakAfter\",\n \"MozPageBreakAfter\",\n \"WebkitPageBreakAfter\",\n \"MSPageBreakAfter\",\n \"OPageBreakAfter\",\n \"pageBreakBefore\",\n \"MozPageBreakBefore\",\n \"WebkitPageBreakBefore\",\n \"MSPageBreakBefore\",\n \"OPageBreakBefore\",\n \"pageBreakInside\",\n \"MozPageBreakInside\",\n \"WebkitPageBreakInside\",\n \"MSPageBreakInside\",\n \"OPageBreakInside\",\n \"pc\",\n \"MozPc\",\n \"WebkitPc\",\n \"MSPc\",\n \"OPc\",\n \"perspective\",\n \"MozPerspective\",\n \"WebkitPerspective\",\n \"MSPerspective\",\n \"OPerspective\",\n \"perspectiveOrigin\",\n \"MozPerspectiveOrigin\",\n \"WebkitPerspectiveOrigin\",\n \"MSPerspectiveOrigin\",\n \"OPerspectiveOrigin\",\n \"pointerEvents\",\n \"MozPointerEvents\",\n \"WebkitPointerEvents\",\n \"MSPointerEvents\",\n \"OPointerEvents\",\n \"position\",\n \"MozPosition\",\n \"WebkitPosition\",\n \"MSPosition\",\n \"OPosition\",\n \"pt\",\n \"MozPt\",\n \"WebkitPt\",\n \"MSPt\",\n \"OPt\",\n \"px\",\n \"MozPx\",\n \"WebkitPx\",\n \"MSPx\",\n \"OPx\",\n \"q\",\n \"MozQ\",\n \"WebkitQ\",\n \"MSQ\",\n \"OQ\",\n \"quotes\",\n \"MozQuotes\",\n \"WebkitQuotes\",\n \"MSQuotes\",\n \"OQuotes\",\n \"rad\",\n \"MozRad\",\n \"WebkitRad\",\n \"MSRad\",\n \"ORad\",\n \"rem\",\n \"MozRem\",\n \"WebkitRem\",\n \"MSRem\",\n \"ORem\",\n \"resize\",\n \"MozResize\",\n \"WebkitResize\",\n \"MSResize\",\n \"OResize\",\n \"revert\",\n \"MozRevert\",\n \"WebkitRevert\",\n \"MSRevert\",\n \"ORevert\",\n \"right\",\n \"MozRight\",\n \"WebkitRight\",\n \"MSRight\",\n \"ORight\",\n \"rubyAlign\",\n \"MozRubyAlign\",\n \"WebkitRubyAlign\",\n \"MSRubyAlign\",\n \"ORubyAlign\",\n \"rubyMerge\",\n \"MozRubyMerge\",\n \"WebkitRubyMerge\",\n \"MSRubyMerge\",\n \"ORubyMerge\",\n \"rubyPosition\",\n \"MozRubyPosition\",\n \"WebkitRubyPosition\",\n \"MSRubyPosition\",\n \"ORubyPosition\",\n \"s\",\n \"MozS\",\n \"WebkitS\",\n \"MSS\",\n \"OS\",\n \"scrollBehavior\",\n \"MozScrollBehavior\",\n \"WebkitScrollBehavior\",\n \"MSScrollBehavior\",\n \"OScrollBehavior\",\n \"scrollSnapCoordinate\",\n \"MozScrollSnapCoordinate\",\n \"WebkitScrollSnapCoordinate\",\n \"MSScrollSnapCoordinate\",\n \"OScrollSnapCoordinate\",\n \"scrollSnapDestination\",\n \"MozScrollSnapDestination\",\n \"WebkitScrollSnapDestination\",\n \"MSScrollSnapDestination\",\n \"OScrollSnapDestination\",\n \"scrollSnapType\",\n \"MozScrollSnapType\",\n \"WebkitScrollSnapType\",\n \"MSScrollSnapType\",\n \"OScrollSnapType\",\n \"shapeImageThreshold\",\n \"MozShapeImageThreshold\",\n \"WebkitShapeImageThreshold\",\n \"MSShapeImageThreshold\",\n \"OShapeImageThreshold\",\n \"shapeMargin\",\n \"MozShapeMargin\",\n \"WebkitShapeMargin\",\n \"MSShapeMargin\",\n \"OShapeMargin\",\n \"shapeOutside\",\n \"MozShapeOutside\",\n \"WebkitShapeOutside\",\n \"MSShapeOutside\",\n \"OShapeOutside\",\n \"tabSize\",\n \"MozTabSize\",\n \"WebkitTabSize\",\n \"MSTabSize\",\n \"OTabSize\",\n \"tableLayout\",\n \"MozTableLayout\",\n \"WebkitTableLayout\",\n \"MSTableLayout\",\n \"OTableLayout\",\n \"textAlign\",\n \"MozTextAlign\",\n \"WebkitTextAlign\",\n \"MSTextAlign\",\n \"OTextAlign\",\n \"textAlignLast\",\n \"MozTextAlignLast\",\n \"WebkitTextAlignLast\",\n \"MSTextAlignLast\",\n \"OTextAlignLast\",\n \"textCombineUpright\",\n \"MozTextCombineUpright\",\n \"WebkitTextCombineUpright\",\n \"MSTextCombineUpright\",\n \"OTextCombineUpright\",\n \"textDecoration\",\n \"MozTextDecoration\",\n \"WebkitTextDecoration\",\n \"MSTextDecoration\",\n \"OTextDecoration\",\n \"textDecorationColor\",\n \"MozTextDecorationColor\",\n \"WebkitTextDecorationColor\",\n \"MSTextDecorationColor\",\n \"OTextDecorationColor\",\n \"textDecorationLine\",\n \"MozTextDecorationLine\",\n \"WebkitTextDecorationLine\",\n \"MSTextDecorationLine\",\n \"OTextDecorationLine\",\n \"textDecorationStyle\",\n \"MozTextDecorationStyle\",\n \"WebkitTextDecorationStyle\",\n \"MSTextDecorationStyle\",\n \"OTextDecorationStyle\",\n \"textEmphasis\",\n \"MozTextEmphasis\",\n \"WebkitTextEmphasis\",\n \"MSTextEmphasis\",\n \"OTextEmphasis\",\n \"textEmphasisColor\",\n \"MozTextEmphasisColor\",\n \"WebkitTextEmphasisColor\",\n \"MSTextEmphasisColor\",\n \"OTextEmphasisColor\",\n \"textEmphasisPosition\",\n \"MozTextEmphasisPosition\",\n \"WebkitTextEmphasisPosition\",\n \"MSTextEmphasisPosition\",\n \"OTextEmphasisPosition\",\n \"textEmphasisStyle\",\n \"MozTextEmphasisStyle\",\n \"WebkitTextEmphasisStyle\",\n \"MSTextEmphasisStyle\",\n \"OTextEmphasisStyle\",\n \"textIndent\",\n \"MozTextIndent\",\n \"WebkitTextIndent\",\n \"MSTextIndent\",\n \"OTextIndent\",\n \"textOrientation\",\n \"MozTextOrientation\",\n \"WebkitTextOrientation\",\n \"MSTextOrientation\",\n \"OTextOrientation\",\n \"textOverflow\",\n \"MozTextOverflow\",\n \"WebkitTextOverflow\",\n \"MSTextOverflow\",\n \"OTextOverflow\",\n \"textRendering\",\n \"MozTextRendering\",\n \"WebkitTextRendering\",\n \"MSTextRendering\",\n \"OTextRendering\",\n \"textShadow\",\n \"MozTextShadow\",\n \"WebkitTextShadow\",\n \"MSTextShadow\",\n \"OTextShadow\",\n \"textTransform\",\n \"MozTextTransform\",\n \"WebkitTextTransform\",\n \"MSTextTransform\",\n \"OTextTransform\",\n \"textUnderlinePosition\",\n \"MozTextUnderlinePosition\",\n \"WebkitTextUnderlinePosition\",\n \"MSTextUnderlinePosition\",\n \"OTextUnderlinePosition\",\n \"top\",\n \"MozTop\",\n \"WebkitTop\",\n \"MSTop\",\n \"OTop\",\n \"touchAction\",\n \"MozTouchAction\",\n \"WebkitTouchAction\",\n \"MSTouchAction\",\n \"OTouchAction\",\n \"transform\",\n \"MozTransform\",\n \"WebkitTransform\",\n \"msTransform\",\n \"OTransform\",\n \"transformBox\",\n \"MozTransformBox\",\n \"WebkitTransformBox\",\n \"MSTransformBox\",\n \"OTransformBox\",\n \"transformOrigin\",\n \"MozTransformOrigin\",\n \"WebkitTransformOrigin\",\n \"MSTransformOrigin\",\n \"OTransformOrigin\",\n \"transformStyle\",\n \"MozTransformStyle\",\n \"WebkitTransformStyle\",\n \"MSTransformStyle\",\n \"OTransformStyle\",\n \"transition\",\n \"MozTransition\",\n \"WebkitTransition\",\n \"MSTransition\",\n \"OTransition\",\n \"transitionDelay\",\n \"MozTransitionDelay\",\n \"WebkitTransitionDelay\",\n \"MSTransitionDelay\",\n \"OTransitionDelay\",\n \"transitionDuration\",\n \"MozTransitionDuration\",\n \"WebkitTransitionDuration\",\n \"MSTransitionDuration\",\n \"OTransitionDuration\",\n \"transitionProperty\",\n \"MozTransitionProperty\",\n \"WebkitTransitionProperty\",\n \"MSTransitionProperty\",\n \"OTransitionProperty\",\n \"transitionTimingFunction\",\n \"MozTransitionTimingFunction\",\n \"WebkitTransitionTimingFunction\",\n \"MSTransitionTimingFunction\",\n \"OTransitionTimingFunction\",\n \"turn\",\n \"MozTurn\",\n \"WebkitTurn\",\n \"MSTurn\",\n \"OTurn\",\n \"unicodeBidi\",\n \"MozUnicodeBidi\",\n \"WebkitUnicodeBidi\",\n \"MSUnicodeBidi\",\n \"OUnicodeBidi\",\n \"unset\",\n \"MozUnset\",\n \"WebkitUnset\",\n \"MSUnset\",\n \"OUnset\",\n \"verticalAlign\",\n \"MozVerticalAlign\",\n \"WebkitVerticalAlign\",\n \"MSVerticalAlign\",\n \"OVerticalAlign\",\n \"vh\",\n \"MozVh\",\n \"WebkitVh\",\n \"MSVh\",\n \"OVh\",\n \"visibility\",\n \"MozVisibility\",\n \"WebkitVisibility\",\n \"MSVisibility\",\n \"OVisibility\",\n \"vmax\",\n \"MozVmax\",\n \"WebkitVmax\",\n \"MSVmax\",\n \"OVmax\",\n \"vmin\",\n \"MozVmin\",\n \"WebkitVmin\",\n \"MSVmin\",\n \"OVmin\",\n \"vw\",\n \"MozVw\",\n \"WebkitVw\",\n \"MSVw\",\n \"OVw\",\n \"whiteSpace\",\n \"MozWhiteSpace\",\n \"WebkitWhiteSpace\",\n \"MSWhiteSpace\",\n \"OWhiteSpace\",\n \"widows\",\n \"MozWidows\",\n \"WebkitWidows\",\n \"MSWidows\",\n \"OWidows\",\n \"width\",\n \"MozWidth\",\n \"WebkitWidth\",\n \"MSWidth\",\n \"OWidth\",\n \"willChange\",\n \"MozWillChange\",\n \"WebkitWillChange\",\n \"MSWillChange\",\n \"OWillChange\",\n \"wordBreak\",\n \"MozWordBreak\",\n \"WebkitWordBreak\",\n \"MSWordBreak\",\n \"OWordBreak\",\n \"wordSpacing\",\n \"MozWordSpacing\",\n \"WebkitWordSpacing\",\n \"MSWordSpacing\",\n \"OWordSpacing\",\n \"wordWrap\",\n \"MozWordWrap\",\n \"WebkitWordWrap\",\n \"MSWordWrap\",\n \"OWordWrap\",\n \"writingMode\",\n \"MozWritingMode\",\n \"WebkitWritingMode\",\n \"MSWritingMode\",\n \"OWritingMode\",\n \"zIndex\",\n \"MozZIndex\",\n \"WebkitZIndex\",\n \"MSZIndex\",\n \"OZIndex\",\n \"fontSize\",\n \"MozFontSize\",\n \"WebkitFontSize\",\n \"MSFontSize\",\n \"OFontSize\",\n \"flex\",\n \"MozFlex\",\n \"WebkitFlex\",\n \"MSFlex\",\n \"OFlex\",\n \"fr\",\n \"MozFr\",\n \"WebkitFr\",\n \"MSFr\",\n \"OFr\",\n \"overflowScrolling\",\n \"MozOverflowScrolling\",\n \"WebkitOverflowScrolling\",\n \"MSOverflowScrolling\",\n \"OOverflowScrolling\",\n \"userSelect\",\n \"MozUserSelect\",\n \"WebkitUserSelect\",\n \"MSUserSelect\",\n \"OUserSelect\"\n]\n","var properties = require('./css-properties.js');\nvar PropTypes = require('prop-types');\n\nmodule.exports = function(props, propName, componentName) {\n var styles = props[propName];\n if (!styles) {\n return;\n }\n\n var failures = [];\n Object.keys(styles).forEach(function(styleKey){\n if (properties.indexOf(styleKey) === -1) {\n failures.push(styleKey);\n }\n });\n if (failures.length) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + '. Has invalid keys ' + failures.join(', '));\n }\n};\n\nmodule.exports.isRequired = function(props, propName, componentName) {\n if (!props[propName]) {\n throw new Error('Prop ' + propName + ' passed to ' + componentName + ' is required');\n }\n return module.exports(props, propName, componentName);\n};\n\nmodule.exports.supportingArrays = PropTypes.oneOfType([\n PropTypes.arrayOf(module.exports),\n module.exports\n]);\n"],"names":["EditAnnotationWithPreview","props","valueProp","value","onChangeProp","onChange","initialValueProp","initialValue","valuePathProp","valuePath","hideReset","className","React","newValue","arguments","length","undefined","changed","editorSubTitle","concat","resetActions","push","text","action","_jsx","EditTextWithPreview","editorTitle","editorActions","editorLang","renderPreview","initialSplitSize","Markdown","isEmpty","getDefaultValue","componentWillMount","state","this","constructor","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","i","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","source","forEach","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_assertThisInitialized","self","ReferenceError","_createSuper","Derived","result","Super","Reflect","construct","sham","Proxy","Date","toString","call","e","_isNativeReflectConstruct","NewTarget","_possibleConstructorReturn","__suppressDeprecationWarning","Pane","_React$PureComponent","_super","_this$props","children","split","styleProps","style","size","eleRef","classes","flex","position","outline","width","height","display","assign","ref","join","propTypes","isRequired","defaultProps","RESIZER_DEFAULT_CLASSNAME","Resizer","_React$Component","_onClick","onClick","_onDoubleClick","onDoubleClick","_onMouseDown","onMouseDown","_onTouchEnd","onTouchEnd","_onTouchStart","onTouchStart","resizerClassName","role","event","preventDefault","unFocus","document","window","selection","empty","getSelection","removeAllRanges","getDefaultSize","defaultSize","minSize","maxSize","draggedSize","min","max","Infinity","Math","SplitPane","_this","onMouseMove","onTouchMove","onMouseUp","primary","initialSize","active","resized","pane1Size","pane2Size","instanceProps","addEventListener","getSizeUpdate","removeEventListener","eventWithTouches","touches","clientX","clientY","allowResize","onDragStarted","_this$props2","step","_this$state","isPrimaryFirst","pane1","pane2","ref2","node","node2","getBoundingClientRect","positionDelta","abs","sizeDelta","parseInt","getComputedStyle","order","newMaxSize","splitPane","newSize","newPosition","_this$props3","onDragFinished","_this$state2","_this2","_this$props4","onResizerClick","onResizerDoubleClick","paneClassName","pane1ClassName","pane2ClassName","paneStyle","pane1StyleProps","pane1Style","pane2StyleProps","pane2Style","resizerStyle","_this$state3","disabledClass","resizerClassNamesIncludingDefault","notNullChildren","toArray","c","removeNullChildren","overflow","MozUserSelect","WebkitUserSelect","msUserSelect","userSelect","flexDirection","left","right","bottom","minHeight","top","pane1Classes","pane2Classes","newState","isPanel1Primary","Component","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","name","newApiName","componentDidUpdate","maybeSnapshot","snapshot","polyfill","block","cn","TabbedContent","subTitle","actions","contentClassName","actionAsDropdown","growTitle","_jsxs","growable","title","Actions","useDropdown","Boolean","DropdownMenu","items","map","_ref","index","icon","Button","DEFAULT_SIZE","_ref$editorTitle","initialShowPreview","disabled","editorRef","useRef","_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","useEvent","callback","fnRef","memoFn","_fnRef$current","_len","args","Array","_key","useInternalLayoutEffect","createElement","useLayoutUpdateEffect","deps","firstMountRef","useLayoutEffect","firstMount","useSafeState","defaultValue","destroyRef","setValue","updater","ignoreDestroy","hasValue","warned","preWarningFns","warning","valid","note","method","warningOnce","preMessage","fn","resetWarned","noteOnce","getOffset","getDirectionStyle","direction","offset","positionStyle","getIndex","isArray","KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","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","M","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","keyCode","altKey","ctrlKey","metaKey","isCharacterKey","navigator","userAgent","indexOf","includedStart","includedEnd","tabIndex","keyboard","styles","classNames","_excluded","Handle","_getIndex","prefixCls","valueIndex","onStartMove","render","dragging","onOffsetChange","onChangeComplete","onFocus","onMouseEnter","restProps","_React$useContext","range","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","handlePrefixCls","onInternalStartMove","onKeyDown","which","onKeyUp","handleNode","handle","values","handleRender","activeHandleRender","draggingIndex","handlesRef","focus","_handlesRef$current$i","activeIndex","setActiveIndex","handleProps","pointerEvents","included","textCls","stopPropagation","marks","markPrefixCls","label","activeStyle","dotClassName","mergedStyle","dots","stepDots","dotSet","Set","mark","add","from","dotValue","start","end","replaceCls","trackPrefixCls","offsetStart","offsetEnd","track","startPoint","trackList","startValue","endValue","list","tracksNode","tracks","getPosition","pageX","pageY","Slider","_props$prefixCls","_props$disabled","_props$keyboard","autoFocus","onBlur","_props$min","_props$max","_props$step","count","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","Number","sort","a","_useOffset","formatRangeValue","val","formatStepValue","stepValue","round","getDecimal","num","String","maxDecimal","fixedValue","toFixed","formatValue","formatNextValue","alignValues","closeValue","closeDist","alignValue","dist","offsetValue","mode","nextValue","originValue","targetDistValue","potentialValues","sign","compareValue","valueDist","potentialValue","cloneValues","offsetChangedValue","needPush","nextValues","pushNum","_offsetChangedValue","_i","_changed","_offsetChangedValue2","_i2","_changed2","_offsetChangedValue3","_i3","_changed3","_offsetChangedValue4","useOffset","_useOffset2","offsetValues","_useMergedState","defaultStateValue","option","postState","_useState","_useState2","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","_useState3","_useState4","prevValue","setPrevValue","useMergedState","_useMergedState2","rawValues","valueList","_valueList$","returnValues","pointCount","slice","_returnValues","rawValuesRef","getTriggerValue","triggerValues","triggerChange","cloneNextValues","obj1","obj2","shallow","refSet","deepEqual","level","circular","has","newLevel","every","finishChange","finishValue","_useDrag","draggingValue","setDraggingValue","_React$useState3","_React$useState4","setDraggingIndex","_React$useState5","_React$useState6","cacheValues","setCacheValues","_React$useState7","_React$useState8","originValues","setOriginValues","mouseMoveEventRef","mouseUpEventRef","flushValues","some","updateCacheValue","offsetPercent","maxStartOffset","maxEndOffset","formatStartValue","cloneCacheValues","offsetDist","sourceValues","targetValues","startValues","initialValues","_getPosition","startX","startY","offSetPercent","_getPosition2","moveX","moveY","offsetX","offsetY","_containerRef$current","_useDrag2","onStartDrag","changeToCloseValue","_document$activeEleme","_document$activeEleme2","activeElement","blur","keyboardValue","setKeyboardValue","mergedDraggableTrack","lastIndexOf","sortedCacheValues","_React$useMemo","_React$useMemo2","_containerRef$current2","contains","context","Provider","percent","rail","prepareValue","_ref$value","_ref$min","_ref$max","getParsedValue","textValue","parse","parseFloat","getTextValue","format","getClosestValue","low","hi","mid","floor","LEFT_INFO_POINT_STYLE","marginLeft","verticalAlign","textAlign","RIGHT_INFO_POINT_STYLE","RangeInputPicker","_Component","wrapperRef","sliderRef","textInputInnerRef","debouncedCallOnUpdate","debouncedHandleOnAfterUpdate","callOnUpdate","onUpdate","currentValue","prepareChange","isNaN","actualValue","handleOnAfterUpdate","onAfterUpdate","handleInputBlur","focused","getDisplayTextValue","handleInputFocus","handleInputUpdate","patternRegex","test","handleKeyDown","onSubmit","handleSliderChange","handleWrapperClick","slider","handleInfoPointClick","handleOutsideClick","onOutsideClick","wrapper","renderItem","renderRangeItem","renderRangeInfoItems","_this$props5","_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","_this$props6","placeholder","pattern","controlProps","_this$state5","TextInput","controlRef","get","RegExp","displayFormat","currentState","availableValues","_props$minValue","_props$maxValue","_ref$focused","_ref$textValue","v1","v2","prepareAvailableValues","PermissionsControl","handleCheckboxChange","permissionName","permissionsToSet","permissions","rest","_objectWithoutProperties","_toPropertyKey","disabledChoices","itemDisabled","indexOf_","Checkbox","checked","content","ReadableField","choices","_this3","map_","item","getChoiceName","renderPermissionCheckbox","renderChoices","choice","isEmpty_","hasErrorRenderer","PathEditor","_props$defaultPath","suggestionsList","input","prevScope","hideSuggestions","inputFocus","selectedIndex","handleInputChange","path","inputChange","debounceLoading","setScope","callCallback","ARROW_DOWN","selectNextSuggestion","ARROW_UP","selectPrevSuggestion","handleEnterClick","ESCAPE","handleEscClick","handleTabClick","actualSuggestions","type","dynamic","iconType","completedPath","getCompletedPath","isSelected","iconName","getIconNameForType","targetPathBroken","lastFragment","_fragments","fragments","thorYPath","YPath","_unused","selected","defaultPath","loadSuggestionsList","customFilter","getScope","_setFocus","removeActiveRequests","_this$input$current","offsetWidth","cb","params","prevIndex","getPrevSelectedIndex","nextIndex","getNextSelectedIndex","onApply","inputPath","currentTarget","suggestion","find_","_","_this$input$current2","onCancel","hasClear","ReactList","itemRenderer","errorMessage","ErrorMessage","suggestionsError","showErrors","inputWidth","isVisible","renderError","renderSuggestions","Popup","placement","onClose","anchorRef","open","renderInput","renderPopup","suggestions","filterByCurrentPath","connect","navigation","pathEditor","dispatch","getState","currentParentPath","_getState$navigation$","suggestionsPath","suggestionsLoaded","preparePath","FETCH_SUGGESTIONS","FAILURE","REQUEST","loadSuggestions","then","SUCCESS","pathEditorRequests","removeAllRequests","CANCELLED","usePoolTreesLoaded","useDispatch","loadPoolTreesIfNotLoaded","PoolTreesLoader","useDefaultPoolTree","defaultPoolTree","setDefaultPoolTree","loadDefaultPoolTree","WaitForDefaultPoolTree","OperationShortInfo","id","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","moment","diff","MetaTable","Link","url","TimeDuration","OperationState","ClickableText","showErrorPopup","ASCENDING","DESCENDING","ColumnsWrapper","tabItems","orderedTabItems","keyColumns","onOrderChanged","newIndex","oldIndex","moved","setKeyColumns","setOrderedTabItems","toggleKeyColumn","sortBy_","onCloneColumn","setTimeout","onAddColumn","duplicate","renderKeyIcon","Tooltip","view","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","_React$Component2","_super2","_len2","_key2","_this2$props$onCreate","onCreateTab","userOptions","_excluded2","_tabItems","_toArray","tableSettings","restItems","renderAddColumnRow","virtualized","isTabControl","isTabControlVertical","requests","CancelHelper","loadReplicas","getPath","transaction","getTransaction","LOAD_REPLICAS_REQUEST","ytApiV3Id","YTApiId","navigationRTReplicas","parameters","prepareRequest","cancellation","saveCancelToken","replicas","hammer","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","replica_id","enabled","enable_replicated_table_tracker","ytApiV3","alterTableReplica","abortAndReset","updateEnableReplicatedTableTracker","set","updateView","settings","currentPath","UPDATE_VIEW","updatePath","cancelRequests","getAnnotation","loadTabletErrorsCount","saveCancelTokenSource","saveRequestCancellation","requestParams","RumWrapper","RumMeasureTypes","NAVIGATION_PRELOAD","fetch","navigationAttributes","executeBatch","command","attributes","getAttributesToLoad","results","attrs","getBatchError","preparedAttributes","prepareAttributes","asHTML","trackVisit","navigationTrackVisit","navigation_path","user","getCurrentUserName","account","attributesWithTypes","dispatchAccountPermissions","isWriteable","isAccountUsable","checkPermissionsError","NAVIGATION_PARTIAL","TABLE_MOUNT_CONFIG","navigationTableMountConfig","_ref2$","NODE_DOES_NOT_EXIST","isCancelled","fetchTableMountConfig","queueId","originatingPath","getAttributes","SET_ORIGINATING_QUEUE_PATH","_x2","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","attributesToLoad","additionalAttributes","UIFactory","getNavigationExtraTabs","extraTab","attributesSet","setNavigationSidePanelMode","sidePanelMode","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","AppStoreProvider","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","runTableMerge","merge","cancelTokenSrc","isPathStaticTable","navigationIsStaticTable","cancelSrc","d","isDynamic","CypressNodeTypes","TABLE","cancelHelper","GET_ANNOTATION","navigationGetAnnotation","_results$","err","annotation","saveAnnotation","getNavigationAnnotation","SET_ANNOTATION_SAVING","SET_ANNOTATION_EDITING","getTabletErrors","GET_TABLET_ERRORS","ytApiV4Id","navigationTabletErrors","removeAllAndSave","tabletErrors","tabletErrorsPath","options","navigationTypeDynamic","navigationTabletErrorsCountReplicatedTable","_ref5$output","updateTabletErrrosCount","loadTabletErrorsCountOfReplicatedTable","navigationTabletErrorsCountDynTable","errorsCount","loadTabletErrorsCountOfDynamicTable","errorsCountPath","PARTITION","updateTabletErrorsViewMode","viewMode","getNavigationTableMountConfig","tableMountConfig","getTableMountConfigHasData","createSelector","getCreateTableModalState","modals","isCreateTableModalVisible","getColumnLockSuggestions","locks","getColumnGroupSuggestions","groups","getNavigationTableSortPaths","tableMergeSortModal","getNavigationTableAttributesValues","hasOwnProperty","getNavigationTableSortError","getNavigationTableSortVisible","getNavigationTableMergeVisible","getNavigationTableSortSuggestColumns","getNavigationPathAttributesLoadState","loadState","getNavigationPathAttributes","getNavigationIsWritable","getNavigationIsAccountUsable","getNavigationCheckPermissionsError","getMode","getNavigationPathAccount","getNavigationBreadcrumbs","getParsedPath","parsedPath","prepareNavigationState","prepareBrokenPath","unipika","prettyprint","break","indent","binaryAsHex","getNavigationRestorePath","getNavigationOriginatingQueuePath","originatingQueuePath","getSupportedTabs","getTabletErrorsBackgroundCount","mountConfigHasData","tabletErrorsCount","isPipeline","pipeline_format_version","mountConfigVisible","alwaysSupportedTabs","compact_","CONTENT","FLOW","ATTRIBUTES","USER_ATTRIBUTES","MOUNT_CONFIG","ACL","getAccessLogBasePath","ACCESS_LOG","supportedByAttribute","SCHEMA","LOCKS","TABLETS","sorted","QUEUE","treat_as_queue_consumer","CONSUMER","ORIGINATING_QUEUE","supportedTabletErrors","getConfigData","allowTabletErrorsAPI","tablet_error_count","TABLET_ERRORS","supportedTabs","tab","isSupported","isACO","tabs","hotkey","scope","caption","counter","ANNOTATION","location","origin","external","routed","indexOffset","tabToFind","before","after","newTab","getEffectiveMode","getNavigationAnnotationError","getNavigationAnnotationPath","getNavigationAnnotationSaving","saving","getNavigationAnnotationEditing","editing","getTabletErrorsViewMode","tabletErrorsBackground","getTabletErrorsLoadingStatus","loading","loaded","calculateLoadingStatus","errorCountPath","errorCount","errPath","errors","getTabletErrorsBackgroundCountNoticeVisbile","tablet_errors","replication_errors","calculateSubitemsCount","reduce_","subItems","getTabletErrorsReplicationErrors","replicaId","errorsByTablet","errAcc","tablet_id","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","replace","isListenerNeeded","setDefinitionPosition","definitionElement","termElement","x","termX","y","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":""}
|