@ytsaurus/ui 1.90.0 → 1.90.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/9312.94b6f031.chunk.js","mappings":"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,qBACA,wBACA,2BACA,uBACA,sBACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,0BACA,6BACA,gCACA,4BACA,2BACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,0BACA,6BACA,gCACA,4BACA,2BACA,qBACA,wBACA,2BACA,uBACA,sBACA,aACA,gBACA,mBACA,eACA,cACA,uBACA,0BACA,6BACA,yBACA,wBACA,sBACA,yBACA,4BACA,wBACA,uBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,YACA,eACA,kBACA,cACA,aACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,0BACA,6BACA,gCACA,4BACA,2BACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,gBACA,eACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,uBACA,0BACA,6BACA,yBACA,wBACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,qBACA,wBACA,2BACA,uBACA,sBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,OACA,UACA,aACA,SACA,QACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,SACA,YACA,eACA,WACA,UACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,aACA,gBACA,mBACA,eACA,cACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,uBACA,0BACA,6BACA,yBACA,wBACA,WACA,cACA,iBACA,aACA,YACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,wBACA,2BACA,8BACA,0BACA,yBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,gBACA,mBACA,sBACA,kBACA,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,SACA,YACA,eACA,WACA,UACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,UACA,aACA,gBACA,YACA,WACA,QACA,WACA,cACA,UACA,SACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,KACA,QACA,WACA,OACA,MACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,IACA,OACA,UACA,MACA,KACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,MACA,SACA,YACA,QACA,OACA,SACA,YACA,eACA,WACA,UACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,IACA,OACA,UACA,MACA,KACA,iBACA,oBACA,uBACA,mBACA,kBACA,uBACA,0BACA,6BACA,yBACA,wBACA,wBACA,2BACA,8BACA,0BACA,yBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,UACA,aACA,gBACA,YACA,WACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,wBACA,2BACA,8BACA,0BACA,yBACA,MACA,SACA,YACA,QACA,OACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,iBACA,oBACA,uBACA,mBACA,kBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,qBACA,wBACA,2BACA,uBACA,sBACA,qBACA,wBACA,2BACA,uBACA,sBACA,2BACA,8BACA,iCACA,6BACA,4BACA,OACA,UACA,aACA,SACA,QACA,cACA,iBACA,oBACA,gBACA,eACA,QACA,WACA,cACA,UACA,SACA,gBACA,mBACA,sBACA,kBACA,iBACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,cACA,iBACA,oBACA,gBACA,eACA,WACA,cACA,iBACA,aACA,YACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,WACA,cACA,iBACA,aACA,YACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,gCCljDF,IAAImL,EAAa,EAAQ,OACrBC,EAAY,EAAQ,OAExBrL,EAAOC,QAAU,SAAS3+C,EAAOgqD,EAAU95C,GACzC,IAAI8P,EAAShgB,EAAMgqD,GACnB,GAAKhqC,EAAL,CAIA,IAAIiqC,EAAW,GAMf,GALArmD,OAAOY,KAAKwb,GAAQ/a,SAAQ,SAASilD,IACG,IAAlCJ,EAAWnqC,QAAQuqC,IACrBD,EAAS7oD,KAAK8oD,EAElB,IACID,EAASnpD,OACX,MAAM,IAAI6O,MAAM,QAAUq6C,EAAW,cAAgB95C,EAAgB,sBAAwB+5C,EAAS5hD,KAAK,MAT7G,CAWF,EAEAq2C,EAAOC,QAAQp2C,WAAa,SAASvI,EAAOgqD,EAAU95C,GACpD,IAAKlQ,EAAMgqD,GACT,MAAM,IAAIr6C,MAAM,QAAUq6C,EAAW,cAAgB95C,EAAgB,gBAEvE,OAAOwuC,EAAOC,QAAQ3+C,EAAOgqD,EAAU95C,EACzC,EAEAwuC,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 from 'react';\nimport cn from 'bem-cn-lite';\nimport SplitPane from 'react-split-pane';\n\nimport {DialogControlProps} from '../Dialog/Dialog.types';\nimport MonacoEditor from '../../components/MonacoEditor';\nimport Icon from '../../components/Icon/Icon';\n\nimport TabbedContent from './TabbedContent';\n\nimport './EditTextWithPreview.scss';\nimport {DropdownMenuItem} from '@gravity-ui/uikit';\n\nconst DEFAULT_SIZE = 350;\nconst block = cn('edit-text-with-preview');\n\nexport type EditTextWithPreviewProps = DialogControlProps<\n {value: string | undefined},\n {\n className?: string;\n editorActions?: Array<DropdownMenuItem>;\n editorTitle?: string;\n editorSubTitle?: string;\n disabled?: boolean;\n\n editorLang: 'markdown' | 'json';\n renderPreview: (value?: string) => React.ReactElement;\n\n minHeight?: number;\n\n initialShowPreview?: boolean;\n }\n> & {initialSplitSize?: number | string};\n\nEditTextWithPreview.isEmpty = (value: EditTextWithPreviewProps['value']) => {\n return !value;\n};\n\nEditTextWithPreview.getDefaultValue = () => {\n return {value: undefined};\n};\n\nexport function EditTextWithPreview({\n value: valueProp,\n onChange: onChangeProp,\n editorLang,\n editorActions,\n className,\n editorTitle = 'Text',\n editorSubTitle,\n renderPreview,\n minHeight,\n initialShowPreview,\n disabled,\n initialSplitSize,\n}: EditTextWithPreviewProps) {\n const {value} = valueProp;\n\n const [showPreview, setShowPreview] = React.useState(initialShowPreview);\n const togglePreview = React.useCallback(() => {\n setShowPreview(!showPreview);\n }, [setShowPreview, showPreview]);\n\n const showHideAction = {\n text: !showPreview ? 'Show preview' : 'Hide',\n icon: <Icon awesome={!showPreview ? 'eye' : 'eye-slash'} />,\n action: togglePreview,\n };\n\n const actions = showPreview ? editorActions : [...(editorActions ?? []), showHideAction];\n\n const onChange = React.useCallback(\n (value: string) => {\n onChangeProp({value});\n },\n [onChangeProp],\n );\n\n const left = (\n <TabbedContent\n key=\"editor\"\n className={block('panel', {growable: !showPreview})}\n contentClassName={block('left')}\n name={editorTitle}\n subTitle={editorSubTitle}\n actions={actions}\n actionAsDropdown={showPreview}\n >\n <MonacoEditor\n value={value || ''}\n language={editorLang}\n className={block('monaco')}\n onChange={onChange}\n readOnly={disabled}\n />\n </TabbedContent>\n );\n\n const sizeRef = React.useRef<number | string>(initialSplitSize || DEFAULT_SIZE);\n\n const style = React.useMemo(() => {\n return minHeight ? {minHeight} : undefined;\n }, [minHeight]);\n\n const divProps = {className: block(null, className), style: style};\n\n if (!showPreview) {\n return <div {...divProps}>{left}</div>;\n }\n\n return (\n <div {...divProps}>\n <SplitPane\n allowResize={true}\n minSize={160}\n maxSize={-160}\n defaultSize={sizeRef.current}\n onDragFinished={(size) => {\n sizeRef.current = size;\n }}\n {...{\n children: [\n left,\n !showPreview ? null : (\n <TabbedContent\n key=\"preview\"\n className={block('panel')}\n contentClassName={block('markdown')}\n name={'Preview'}\n actions={[showHideAction]}\n >\n {renderPreview ? renderPreview(value) : value}\n </TabbedContent>\n ),\n ],\n }}\n />\n </div>\n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport block from 'bem-cn-lite';\n\nimport Icon from '../Icon/Icon';\n\nimport './ErrorMessage.scss';\n\nconst b = block('error-message');\n\nfunction ErrorMessage({message, className}) {\n return (\n <div className={b(null, className)}>\n <Icon awesome=\"exclamation-circle\" />\n\n <span className={b('message-text')}>{message}</span>\n </div>\n );\n}\n\nErrorMessage.propTypes = {\n message: PropTypes.string.isRequired,\n className: PropTypes.string,\n};\n\nexport default ErrorMessage;\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport axios from 'axios';\n\nimport {wrapApiPromiseByToaster} from '../../utils/utils';\nimport './Markdown.scss';\nimport '@diplodoc/transform/dist/css/yfm.css';\nimport '@diplodoc/transform/dist/js/yfm';\nimport './yfm-overrides.scss';\nimport {OutputType} from '@diplodoc/transform/lib/typings';\n\nconst block = cn('yt-markdown');\n\ninterface Props {\n text: string;\n allowHTML?: boolean;\n}\n\ninterface Response {\n result?: {html?: string; plainText?: string};\n}\n\nconst emptyTransformResponse: OutputType = {\n result: {html: '', headings: []},\n logs: {info: [], warn: [], error: [], disabled: []},\n};\n\nexport async function transformMarkdown({text, allowHTML}: Props): Promise<OutputType> {\n try {\n const {data} = await wrapApiPromiseByToaster(\n axios.post<Response>('/api/markdown-to-html', {\n text,\n allowHTML,\n }),\n {\n toasterName: 'useMarkdown',\n skipSuccessToast: true,\n errorContent: 'Failed to transform markdown text',\n },\n );\n return data as OutputType;\n } catch (e) {\n return {\n result: {...emptyTransformResponse['result']},\n logs: {...emptyTransformResponse['logs'], error: [(e as Error).message]},\n };\n }\n}\n\nexport function useMarkdown({text, allowHTML = true}: Props) {\n const [res, setResult] = React.useState<OutputType>(emptyTransformResponse);\n\n React.useEffect(() => {\n async function transform() {\n try {\n const data = await transformMarkdown({text, allowHTML});\n\n setResult(data);\n } catch (e) {}\n }\n transform();\n }, [text, allowHTML]);\n\n return res;\n}\n\nexport function Markdown({text}: Props) {\n const {html} = useMarkdown({text, allowHTML: true}).result ?? {};\n\n return (\n <React.Fragment>\n <div className={block(null, 'yfm')} dangerouslySetInnerHTML={{__html: html ?? ''}} />\n </React.Fragment>\n );\n}\n","import * 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 };\n\n return Promise.all([\n ytApiV3.alterTableReplica(parameters),\n prevAutoReplicaTracker === auto_replica_tracker\n ? Promise.resolve()\n : ytApiV3.set(\n {path: `#${replicaId}/@enable_replicated_table_tracker`},\n auto_replica_tracker === 'enabled',\n ),\n ]).then(() => dispatch(loadReplicas()));\n };\n}\n\nexport function abortAndReset() {\n return (dispatch) => {\n requests.removeAllRequests();\n dispatch({type: LOAD_REPLICAS_CANCELLED});\n };\n}\n\nexport function updateEnableReplicatedTableTracker(path, value) {\n return (dispatch) => {\n return yt.v3\n .set({path: path + '/@replicated_table_options/enable_replicated_table_tracker'}, value)\n .then(() => {\n dispatch(updateView());\n });\n };\n}\n","import {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","_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","replicaId","replica_id","enabled","all","ytApiV3","alterTableReplica","set","abortAndReset","updateEnableReplicatedTableTracker","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","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":""}