{"version":3,"file":"DashboardPage.73f5dda94807c3c59e04.js","mappings":"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2NA0W,IA1NKwuD,GAASllE,EAAM/D,UAAYynE,GAAW1jE,GA0NjC8/D,GAAcppD,GAAUitD,GAASjtD,GA3NhE,IAAqB1W,EAqQrBm3D,EAAOrR,QAlNP,SAAiB9lD,EAAOk2D,GACtB,OAAOgL,GAAYlhE,EAAOk2D,K,UCrmD5BiB,EAAOrR,QAAU,CACf,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,qBACA,wBACA,2BACA,uBACA,sBACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,0BACA,6BACA,gCACA,4BACA,2BACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,0BACA,6BACA,gCACA,4BACA,2BACA,qBACA,wBACA,2BACA,uBACA,sBACA,aACA,gBACA,mBACA,eACA,cACA,uBACA,0BACA,6BACA,yBACA,wBACA,sBACA,yBACA,4BACA,wBACA,uBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,YACA,eACA,kBACA,cACA,aACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,wBACA,2BACA,8BACA,0BACA,yBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,0BACA,6BACA,gCACA,4BACA,2BACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,oBACA,uBACA,0BACA,sBACA,qBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,yBACA,4BACA,+BACA,2BACA,0BACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,gBACA,eACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,mBACA,sBACA,yBACA,qBACA,oBACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,uBACA,0BACA,6BACA,yBACA,wBACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,qBACA,wBACA,2BACA,uBACA,sBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,QACA,WACA,cACA,UACA,SACA,cACA,iBACA,oBACA,gBACA,eACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,OACA,UACA,aACA,SACA,QACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,SACA,YACA,eACA,WACA,UACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,QACA,WACA,cACA,UACA,SACA,OACA,UACA,aACA,SACA,QACA,aACA,gBACA,mBACA,eACA,cACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,uBACA,0BACA,6BACA,yBACA,wBACA,WACA,cACA,iBACA,aACA,YACA,iBACA,oBACA,uBACA,mBACA,kBACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,cACA,iBACA,oBACA,gBACA,eACA,wBACA,2BACA,8BACA,0BACA,yBACA,kBACA,qBACA,wBACA,oBACA,mBACA,uBACA,0BACA,6BACA,yBACA,wBACA,uBACA,0BACA,6BACA,yBACA,wBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,aACA,gBACA,mBACA,eACA,cACA,KACA,QACA,WACA,OACA,MACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,gBACA,mBACA,sBACA,kBACA,iBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,sBACA,yBACA,4BACA,wBACA,uBACA,mBACA,sBACA,yBACA,qBACA,oBACA,SACA,YACA,eACA,WACA,UACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,mBACA,sBACA,yBACA,qBACA,oBACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,UACA,aACA,gBACA,YACA,WACA,KACA,QACA,WACA,OACA,MACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,MACA,SACA,YACA,QACA,OACA,OACA,UACA,aACA,SACA,QACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,SACA,YACA,eACA,WACA,UACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,OACA,UACA,aACA,SACA,QACA,WACA,cACA,iBACA,aACA,YACA,gBACA,mBACA,sBACA,kBACA,iBACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,aACA,gBACA,mBACA,eACA,cACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,WACA,cACA,iBACA,aACA,YACA,WACA,cACA,iBACA,aACA,YACA,YACA,eACA,kBACA,cACA,aACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,YACA,eACA,kBACA,cACA,aACA,iBACA,oBACA,uBACA,mBACA,kBACA,iBACA,oBACA,uBACA,mBACA,kBACA,mBACA,sBACA,yBACA,qBACA,oBACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,UACA,aACA,gBACA,YACA,WACA,QACA,WACA,cACA,UACA,SACA,UACA,aACA,gBACA,YACA,WACA,UACA,aACA,gBACA,YACA,WACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,eACA,kBACA,qBACA,iBACA,gBACA,eACA,kBACA,qBACA,iBACA,gBACA,WACA,cACA,iBACA,aACA,YACA,eACA,kBACA,qBACA,iBACA,gBACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,UACA,aACA,gBACA,YACA,WACA,kBACA,qBACA,wBACA,oBACA,mBACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,mBACA,sBACA,yBACA,qBACA,oBACA,qBACA,wBACA,2BACA,uBACA,sBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,aACA,gBACA,mBACA,eACA,cACA,iBACA,oBACA,uBACA,mBACA,kBACA,kBACA,qBACA,wBACA,oBACA,mBACA,kBACA,qBACA,wBACA,oBACA,mBACA,KACA,QACA,WACA,OACA,MACA,cACA,iBACA,oBACA,gBACA,eACA,oBACA,uBACA,0BACA,sBACA,qBACA,gBACA,mBACA,sBACA,kBACA,iBACA,WACA,cACA,iBACA,aACA,YACA,KACA,QACA,WACA,OACA,MACA,KACA,QACA,WACA,OACA,MACA,IACA,OACA,UACA,MACA,KACA,SACA,YACA,eACA,WACA,UACA,MACA,SACA,YACA,QACA,OACA,MACA,SACA,YACA,QACA,OACA,SACA,YACA,eACA,WACA,UACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,YACA,eACA,kBACA,cACA,aACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,IACA,OACA,UACA,MACA,KACA,iBACA,oBACA,uBACA,mBACA,kBACA,uBACA,0BACA,6BACA,yBACA,wBACA,wBACA,2BACA,8BACA,0BACA,yBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,cACA,iBACA,oBACA,gBACA,eACA,eACA,kBACA,qBACA,iBACA,gBACA,UACA,aACA,gBACA,YACA,WACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,gBACA,mBACA,sBACA,kBACA,iBACA,qBACA,wBACA,2BACA,uBACA,sBACA,iBACA,oBACA,uBACA,mBACA,kBACA,sBACA,yBACA,4BACA,wBACA,uBACA,qBACA,wBACA,2BACA,uBACA,sBACA,sBACA,yBACA,4BACA,wBACA,uBACA,eACA,kBACA,qBACA,iBACA,gBACA,oBACA,uBACA,0BACA,sBACA,qBACA,uBACA,0BACA,6BACA,yBACA,wBACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,eACA,kBACA,qBACA,iBACA,gBACA,gBACA,mBACA,sBACA,kBACA,iBACA,aACA,gBACA,mBACA,eACA,cACA,gBACA,mBACA,sBACA,kBACA,iBACA,wBACA,2BACA,8BACA,0BACA,yBACA,MACA,SACA,YACA,QACA,OACA,cACA,iBACA,oBACA,gBACA,eACA,YACA,eACA,kBACA,cACA,aACA,eACA,kBACA,qBACA,iBACA,gBACA,kBACA,qBACA,wBACA,oBACA,mBACA,iBACA,oBACA,uBACA,mBACA,kBACA,aACA,gBACA,mBACA,eACA,cACA,kBACA,qBACA,wBACA,oBACA,mBACA,qBACA,wBACA,2BACA,uBACA,sBACA,qBACA,wBACA,2BACA,uBACA,sBACA,2BACA,8BACA,iCACA,6BACA,4BACA,OACA,UACA,aACA,SACA,QACA,cACA,iBACA,oBACA,gBACA,eACA,QACA,WACA,cACA,UACA,SACA,gBACA,mBACA,sBACA,kBACA,iBACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,OACA,UACA,aACA,SACA,QACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,aACA,gBACA,mBACA,eACA,cACA,SACA,YACA,eACA,WACA,UACA,QACA,WACA,cACA,UACA,SACA,aACA,gBACA,mBACA,eACA,cACA,YACA,eACA,kBACA,cACA,aACA,cACA,iBACA,oBACA,gBACA,eACA,WACA,cACA,iBACA,aACA,YACA,cACA,iBACA,oBACA,gBACA,eACA,SACA,YACA,eACA,WACA,UACA,WACA,cACA,iBACA,aACA,YACA,OACA,UACA,aACA,SACA,QACA,KACA,QACA,WACA,OACA,MACA,oBACA,uBACA,0BACA,sBACA,qBACA,aACA,gBACA,mBACA,eACA,gB,eCljDF,IAAIz8B,EAAa,EAAQ,OACrB+7C,EAAY,EAAQ,OAExBjO,EAAOrR,QAAU,SAASjpD,EAAOiwD,EAAUuY,GACzC,IAAIvoE,EAASD,EAAMiwD,GACnB,GAAKhwD,EAAL,CAIA,IAAIwoE,EAAW,GAMf,GALAzlE,OAAOU,KAAKzD,GAAQsa,SAAQ,SAASmuD,IACG,IAAlCl8C,EAAW4e,QAAQs9B,IACrBD,EAAS7iE,KAAK8iE,MAGdD,EAASrpE,OACX,MAAM,IAAImsD,MAAM,QAAU0E,EAAW,cAAgBuY,EAAgB,sBAAwBC,EAASlrD,KAAK,SAI/G+8C,EAAOrR,QAAQ3kC,WAAa,SAAStkB,EAAOiwD,EAAUuY,GACpD,IAAKxoE,EAAMiwD,GACT,MAAM,IAAI1E,MAAM,QAAU0E,EAAW,cAAgBuY,EAAgB,gBAEvE,OAAOlO,EAAOrR,QAAQjpD,EAAOiwD,EAAUuY,IAGzClO,EAAOrR,QAAQ0f,iBAAmBJ,EAAUjR,UAAU,CACpDiR,EAAUnR,QAAQkD,EAAOrR,SACzBqR,EAAOrR","sources":["webpack://grafana/./public/app/features/alerting/getAlertingValidationMessage.ts","webpack://grafana/./public/app/features/alerting/unified/components/DynamicTableWithGuidelines.tsx","webpack://grafana/./public/app/features/alerting/unified/components/RuleLocation.tsx","webpack://grafana/./public/app/features/alerting/unified/components/rules/RuleConfigStatus.tsx","webpack://grafana/./public/app/features/alerting/unified/components/rules/RuleDetails.tsx","webpack://grafana/./public/app/features/alerting/unified/components/rules/RulesTable.tsx","webpack://grafana/./public/app/features/alerting/unified/hooks/useHasRuler.ts","webpack://grafana/./public/app/features/dashboard/components/DashboardLoading/DashboardFailed.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardLoading/DashboardLoading.tsx","webpack://grafana/./public/app/features/library-panels/components/SaveLibraryPanelModal/SaveLibraryPanelModal.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/actions.ts","webpack://grafana/./public/app/features/dashboard/components/SaveDashboard/UnsavedChangesModal.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardPrompt/DashboardPrompt.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/usePanelLatestData.ts","webpack://grafana/./public/app/features/inspector/InspectMetadataTab.tsx","webpack://grafana/./public/app/features/dashboard/components/Inspector/InspectContent.tsx","webpack://grafana/./public/app/features/dashboard/components/Inspector/hooks.ts","webpack://grafana/./public/app/features/dashboard/components/Inspector/PanelInspector.tsx","webpack://grafana/./.yarn/__virtual__/react-split-pane-virtual-057ebfddec/3/opt/drone/yarncache/react-split-pane-npm-0.1.92-93dbf51dff-4890f17263.zip/node_modules/react-split-pane/dist/index.esm.js","webpack://grafana/./public/app/core/components/SplitPaneWrapper/SplitPaneWrapper.tsx","webpack://grafana/./public/app/features/variables/pickers/PickerRenderer.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/SubMenuItems.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/AngularPanelOptions.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/utils.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/DynamicConfigValueEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/OverrideCategoryTitle.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/getFieldOverrideElements.tsx","webpack://grafana/./public/app/features/library-panels/components/LibraryPanelInfo/LibraryPanelInfo.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/getLibraryPanelOptions.tsx","webpack://grafana/./public/app/features/dashboard/components/RepeatRowSelect/RepeatRowSelect.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/getPanelFrameOptions.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/OptionSearchEngine.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/getRecentOptions.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/OptionsPaneOptions.tsx","webpack://grafana/./public/app/features/dashboard/state/selectors.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/VisualizationButton.tsx","webpack://grafana/./public/app/features/library-panels/components/ChangeLibraryPanelModal/ChangeLibraryPanelModal.tsx","webpack://grafana/./public/app/features/library-panels/components/PanelLibraryOptionsGroup/PanelLibraryOptionsGroup.tsx","webpack://grafana/./public/app/features/panel/state/getAllSuggestions.ts","webpack://grafana/./public/app/features/panel/components/VizTypePicker/VisualizationSuggestionCard.tsx","webpack://grafana/./public/app/features/panel/components/VizTypePicker/VisualizationSuggestions.tsx","webpack://grafana/./public/app/features/panel/components/VizTypePicker/VizTypePickerPlugin.tsx","webpack://grafana/./public/app/features/panel/components/VizTypePicker/VizTypePicker.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/VisualizationSelectPane.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/OptionsPane.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorTableView.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelNotSupported.tsx","webpack://grafana/./public/app/features/alerting/StateHistory.tsx","webpack://grafana/./public/app/features/alerting/TestRuleResult.tsx","webpack://grafana/./public/app/features/alerting/AlertTab.tsx","webpack://grafana/./public/app/features/alerting/unified/components/panel-alerts-tab/NewRuleFromPanelButton.tsx","webpack://grafana/./public/app/features/alerting/unified/hooks/usePanelCombinedRules.ts","webpack://grafana/./public/app/features/alerting/unified/PanelAlertTabContent.tsx","webpack://grafana/./public/app/features/alerting/AlertTabIndex.tsx","webpack://grafana/./public/app/features/alerting/unified/PanelAlertTab.tsx","webpack://grafana/./public/app/core/utils/docsLinks.ts","webpack://grafana/./public/app/features/dashboard/components/TransformationsEditor/TransformationEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/TransformationsEditor/TransformationOperationRow.tsx","webpack://grafana/./public/app/features/dashboard/components/TransformationsEditor/TransformationOperationRows.tsx","webpack://grafana/./public/app/features/dashboard/components/TransformationsEditor/TransformationsEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorQueries.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditorTabs.tsx","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/state/selectors.ts","webpack://grafana/./public/app/features/dashboard/components/PanelEditor/PanelEditor.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/AnnotationPicker.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/Annotations.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/DashboardLinksDashboard.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/DashboardLinks.tsx","webpack://grafana/./public/app/features/dashboard/components/SubMenu/SubMenu.tsx","webpack://grafana/./public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.tsx","webpack://grafana/./public/app/features/dashboard/components/RowOptions/RowOptionsForm.tsx","webpack://grafana/./public/app/features/dashboard/components/RowOptions/RowOptionsModal.tsx","webpack://grafana/./public/app/features/dashboard/components/RowOptions/RowOptionsButton.tsx","webpack://grafana/./public/app/features/dashboard/components/DashboardRow/DashboardRow.tsx","webpack://grafana/./public/app/features/dashboard/dashgrid/DashboardGrid.tsx","webpack://grafana/./public/app/features/dashboard/containers/DashboardPage.tsx","webpack://grafana/./public/app/features/storage/StorageFolderPage.tsx","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/GridItem.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ReactGridLayout.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ReactGridLayoutPropTypes.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/ResponsiveReactGridLayout.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/calculateUtils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/components/WidthProvider.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/fastRGLPropsEqual.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/responsiveUtils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/build/utils.js","webpack://grafana/./.yarn/__virtual__/react-grid-layout-virtual-3d00dcc91b/3/opt/drone/yarncache/react-grid-layout-npm-1.3.4-e416174768-f56c8c452a.zip/node_modules/react-grid-layout/index.js","webpack://grafana/../../opt/drone/yarncache/lodash.isequal-npm-4.5.0-f8b0f64d63-da27515dc5.zip/node_modules/lodash.isequal/index.js","webpack://grafana/../../opt/drone/yarncache/react-style-proptype-npm-3.2.2-d7241ef02d-f0e646e148.zip/node_modules/react-style-proptype/src/css-properties.js","webpack://grafana/../../opt/drone/yarncache/react-style-proptype-npm-3.2.2-d7241ef02d-f0e646e148.zip/node_modules/react-style-proptype/src/index.js"],"sourcesContent":["import { DataQuery, DataSourceRef, DataTransformerConfig } from '@grafana/data';\nimport { DataSourceSrv } from '@grafana/runtime';\n\nexport const getDefaultCondition = () => ({\n type: 'query',\n query: { params: ['A', '5m', 'now'] },\n reducer: { type: 'avg', params: [] as any[] },\n evaluator: { type: 'gt', params: [null] as any[] },\n operator: { type: 'and' },\n});\n\nexport const getAlertingValidationMessage = async (\n transformations: DataTransformerConfig[] | undefined,\n targets: DataQuery[],\n datasourceSrv: DataSourceSrv,\n datasource: DataSourceRef | null\n): Promise => {\n if (targets.length === 0) {\n return 'Could not find any metric queries';\n }\n\n if (transformations && transformations.length) {\n return 'Transformations are not supported in alert queries';\n }\n\n let alertingNotSupported = 0;\n let templateVariablesNotSupported = 0;\n\n for (const target of targets) {\n const dsRef = target.datasource || datasource;\n const ds = await datasourceSrv.get(dsRef);\n if (!ds.meta.alerting) {\n alertingNotSupported++;\n } else if (ds.targetContainsTemplate && ds.targetContainsTemplate(target)) {\n templateVariablesNotSupported++;\n }\n }\n\n if (alertingNotSupported === targets.length) {\n return 'The datasource does not support alerting queries';\n }\n\n if (templateVariablesNotSupported === targets.length) {\n return 'Template variables are not supported in alert queries';\n }\n\n return '';\n};\n","import { css, cx } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\nimport { DynamicTable, DynamicTableProps } from './DynamicTable';\n\nexport type DynamicTableWithGuidelinesProps = Omit, 'renderPrefixHeader, renderPrefixCell'>;\n\n// DynamicTable, but renders visual guidelines on the left, for larger screen widths\nexport const DynamicTableWithGuidelines = ({\n renderExpandedContent,\n ...props\n}: DynamicTableWithGuidelinesProps) => {\n const styles = useStyles2(getStyles);\n return (\n (\n <>\n {!(index === items.length - 1) &&
}\n {renderExpandedContent(item, index, items)}\n \n )\n : undefined\n }\n renderPrefixHeader={() => (\n
\n
\n
\n )}\n renderPrefixCell={(_, index, items) => (\n
\n
\n {!(index === items.length - 1) &&
}\n
\n )}\n {...props}\n />\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme2) => ({\n relative: css`\n position: relative;\n height: 100%;\n `,\n guideline: css`\n left: -19px;\n border-left: 1px solid ${theme.colors.border.medium};\n position: absolute;\n\n ${theme.breakpoints.down('md')} {\n display: none;\n }\n `,\n topGuideline: css`\n width: 18px;\n border-bottom: 1px solid ${theme.colors.border.medium};\n top: 0;\n bottom: 50%;\n `,\n bottomGuideline: css`\n top: 50%;\n bottom: 0;\n `,\n contentGuideline: css`\n top: 0;\n bottom: 0;\n left: -49px !important;\n `,\n headerGuideline: css`\n top: -25px;\n bottom: 0;\n `,\n});\n","import React, { FC } from 'react';\n\nimport { Icon } from '@grafana/ui';\n\ninterface RuleLocationProps {\n namespace: string;\n group?: string;\n}\n\nconst RuleLocation: FC = ({ namespace, group }) => {\n if (!group) {\n return <>{namespace};\n }\n\n return (\n <>\n {namespace} {group}\n \n );\n};\n\nexport { RuleLocation };\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data/src';\nimport { config } from '@grafana/runtime/src';\nimport { Icon, Tooltip, useStyles2 } from '@grafana/ui/src';\n\nimport { CombinedRule } from '../../../../../types/unified-alerting';\nimport { checkEvaluationIntervalGlobalLimit } from '../../utils/config';\n\ninterface RuleConfigStatusProps {\n rule: CombinedRule;\n}\n\nexport function RuleConfigStatus({ rule }: RuleConfigStatusProps) {\n const styles = useStyles2(getStyles);\n\n const { exceedsLimit } = checkEvaluationIntervalGlobalLimit(rule.group.interval);\n\n if (!exceedsLimit) {\n return null;\n }\n\n return (\n \n A minimum evaluation interval of{' '}\n {config.unifiedAlerting.minInterval} has been configured in\n Grafana and will be used instead of the {rule.group.interval} interval configured for the Rule Group.\n
\n }\n >\n \n \n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n globalLimitValue: css`\n font-weight: ${theme.typography.fontWeightBold};\n `,\n icon: css`\n fill: ${theme.colors.warning.text};\n `,\n };\n}\n","import { css } from '@emotion/css';\nimport React, { FC } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport { CombinedRule } from 'app/types/unified-alerting';\n\nimport { isRecordingRulerRule } from '../../utils/rules';\nimport { AlertLabels } from '../AlertLabels';\nimport { DetailsField } from '../DetailsField';\n\nimport { RuleDetailsActionButtons } from './RuleDetailsActionButtons';\nimport { RuleDetailsAnnotations } from './RuleDetailsAnnotations';\nimport { RuleDetailsDataSources } from './RuleDetailsDataSources';\nimport { RuleDetailsExpression } from './RuleDetailsExpression';\nimport { RuleDetailsMatchingInstances } from './RuleDetailsMatchingInstances';\n\ninterface Props {\n rule: CombinedRule;\n}\n\n// The limit is set to 15 in order to upkeep the good performance\n// and to encourage users to go to the rule details page to see the rest of the instances\n// We don't want to paginate the instances list on the alert list page\nconst INSTANCES_DISPLAY_LIMIT = 15;\n\nexport const RuleDetails: FC = ({ rule }) => {\n const styles = useStyles2(getStyles);\n const {\n namespace: { rulesSource },\n } = rule;\n\n const annotations = Object.entries(rule.annotations).filter(([_, value]) => !!value.trim());\n\n return (\n
\n \n
\n
\n {}\n {!!rule.labels && !!Object.keys(rule.labels).length && (\n \n \n \n )}\n \n \n
\n
\n \n
\n
\n \n
\n );\n};\n\ninterface EvaluationBehaviorSummaryProps {\n rule: CombinedRule;\n}\n\nconst EvaluationBehaviorSummary = ({ rule }: EvaluationBehaviorSummaryProps) => {\n let forDuration: string | undefined;\n let every = rule.group.interval;\n\n // recording rules don't have a for duration\n if (!isRecordingRulerRule(rule.rulerRule)) {\n forDuration = rule.rulerRule?.for;\n }\n\n return (\n <>\n {every && (\n \n Every {every}\n \n )}\n {forDuration && (\n \n {forDuration}\n \n )}\n \n );\n};\n\nexport const getStyles = (theme: GrafanaTheme2) => ({\n wrapper: css`\n display: flex;\n flex-direction: row;\n\n ${theme.breakpoints.down('md')} {\n flex-direction: column;\n }\n `,\n leftSide: css`\n flex: 1;\n `,\n rightSide: css`\n ${theme.breakpoints.up('md')} {\n padding-left: 90px;\n width: 300px;\n }\n `,\n});\n","import { css, cx } from '@emotion/css';\nimport React, { FC, useMemo } from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\nimport { CombinedRule } from 'app/types/unified-alerting';\n\nimport { DEFAULT_PER_PAGE_PAGINATION } from '../../../../../core/constants';\nimport { useHasRuler } from '../../hooks/useHasRuler';\nimport { Annotation } from '../../utils/constants';\nimport { isGrafanaRulerRule } from '../../utils/rules';\nimport { DynamicTable, DynamicTableColumnProps, DynamicTableItemProps } from '../DynamicTable';\nimport { DynamicTableWithGuidelines } from '../DynamicTableWithGuidelines';\nimport { ProvisioningBadge } from '../Provisioning';\nimport { RuleLocation } from '../RuleLocation';\nimport { Tokenize } from '../Tokenize';\n\nimport { RuleConfigStatus } from './RuleConfigStatus';\nimport { RuleDetails } from './RuleDetails';\nimport { RuleHealth } from './RuleHealth';\nimport { RuleState } from './RuleState';\n\ntype RuleTableColumnProps = DynamicTableColumnProps;\ntype RuleTableItemProps = DynamicTableItemProps;\n\ninterface Props {\n rules: CombinedRule[];\n showGuidelines?: boolean;\n showGroupColumn?: boolean;\n showSummaryColumn?: boolean;\n emptyMessage?: string;\n className?: string;\n}\n\nexport const RulesTable: FC = ({\n rules,\n className,\n showGuidelines = false,\n emptyMessage = 'No rules found.',\n showGroupColumn = false,\n showSummaryColumn = false,\n}) => {\n const styles = useStyles2(getStyles);\n\n const wrapperClass = cx(styles.wrapper, className, { [styles.wrapperMargin]: showGuidelines });\n\n const items = useMemo((): RuleTableItemProps[] => {\n const seenKeys: string[] = [];\n return rules.map((rule, ruleIdx) => {\n let key = JSON.stringify([rule.promRule?.type, rule.labels, rule.query, rule.name, rule.annotations]);\n if (seenKeys.includes(key)) {\n key += `-${ruleIdx}`;\n }\n seenKeys.push(key);\n return {\n id: key,\n data: rule,\n };\n });\n }, [rules]);\n\n const columns = useColumns(showSummaryColumn, showGroupColumn);\n\n if (!rules.length) {\n return
{emptyMessage}
;\n }\n\n const TableComponent = showGuidelines ? DynamicTableWithGuidelines : DynamicTable;\n\n return (\n
\n }\n pagination={{ itemsPerPage: DEFAULT_PER_PAGE_PAGINATION }}\n paginationStyles={styles.pagination}\n />\n
\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme2) => ({\n wrapperMargin: css`\n ${theme.breakpoints.up('md')} {\n margin-left: 36px;\n }\n `,\n emptyMessage: css`\n padding: ${theme.spacing(1)};\n `,\n wrapper: css`\n width: auto;\n border-radius: ${theme.shape.borderRadius()};\n `,\n pagination: css`\n display: flex;\n margin: 0;\n padding-top: ${theme.spacing(1)};\n padding-bottom: ${theme.spacing(0.25)};\n justify-content: center;\n border-left: 1px solid ${theme.colors.border.strong};\n border-right: 1px solid ${theme.colors.border.strong};\n border-bottom: 1px solid ${theme.colors.border.strong};\n `,\n});\n\nfunction useColumns(showSummaryColumn: boolean, showGroupColumn: boolean) {\n const { hasRuler, rulerRulesLoaded } = useHasRuler();\n\n return useMemo((): RuleTableColumnProps[] => {\n const columns: RuleTableColumnProps[] = [\n {\n id: 'state',\n label: 'State',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => {\n const { namespace } = rule;\n const { rulesSource } = namespace;\n const { promRule, rulerRule } = rule;\n const isDeleting = !!(hasRuler(rulesSource) && rulerRulesLoaded(rulesSource) && promRule && !rulerRule);\n const isCreating = !!(hasRuler(rulesSource) && rulerRulesLoaded(rulesSource) && rulerRule && !promRule);\n return ;\n },\n size: '165px',\n },\n {\n id: 'name',\n label: 'Name',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => rule.name,\n size: 5,\n },\n {\n id: 'provisioned',\n label: '',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => {\n const rulerRule = rule.rulerRule;\n const isGrafanaManagedRule = isGrafanaRulerRule(rulerRule);\n\n if (!isGrafanaManagedRule) {\n return null;\n }\n\n const provenance = rulerRule.grafana_alert.provenance;\n return provenance ? : null;\n },\n size: '100px',\n },\n {\n id: 'warnings',\n label: '',\n renderCell: ({ data: combinedRule }) => ,\n size: '45px',\n },\n {\n id: 'health',\n label: 'Health',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: { promRule, group } }) => (promRule ? : null),\n size: '75px',\n },\n ];\n if (showSummaryColumn) {\n columns.push({\n id: 'summary',\n label: 'Summary',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => {\n return ;\n },\n size: 5,\n });\n }\n if (showGroupColumn) {\n columns.push({\n id: 'group',\n label: 'Group',\n // eslint-disable-next-line react/display-name\n renderCell: ({ data: rule }) => {\n const { namespace, group } = rule;\n // ungrouped rules are rules that are in the \"default\" group name\n const isUngrouped = group.name === 'default';\n const groupName = isUngrouped ? (\n \n ) : (\n \n );\n\n return groupName;\n },\n size: 5,\n });\n }\n return columns;\n }, [hasRuler, rulerRulesLoaded, showSummaryColumn, showGroupColumn]);\n}\n","import { useCallback } from 'react';\n\nimport { RulesSource } from 'app/types/unified-alerting';\n\nimport { getRulesSourceName, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource';\n\nimport { useUnifiedAlertingSelector } from './useUnifiedAlertingSelector';\n\n// datasource has ruler if it's grafana managed or if we're able to load rules from it\nexport function useHasRuler() {\n const rulerRules = useUnifiedAlertingSelector((state) => state.rulerRules);\n\n const hasRuler = useCallback(\n (rulesSource: string | RulesSource) => {\n const rulesSourceName = typeof rulesSource === 'string' ? rulesSource : rulesSource.name;\n return rulesSourceName === GRAFANA_RULES_SOURCE_NAME || !!rulerRules[rulesSourceName]?.result;\n },\n [rulerRules]\n );\n\n const rulerRulesLoaded = useCallback(\n (rulesSource: RulesSource) => {\n const rulesSourceName = getRulesSourceName(rulesSource);\n const result = rulerRules[rulesSourceName]?.result;\n\n return Boolean(result);\n },\n [rulerRules]\n );\n\n return { hasRuler, rulerRulesLoaded };\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme } from '@grafana/data';\nimport { Alert, useStyles } from '@grafana/ui';\nimport { getMessageFromError } from 'app/core/utils/errors';\nimport { DashboardInitError, AppNotificationSeverity } from 'app/types';\n\nexport interface Props {\n initError?: DashboardInitError;\n}\n\nexport const DashboardFailed = ({ initError }: Props) => {\n const styles = useStyles(getStyles);\n if (!initError) {\n return null;\n }\n\n return (\n
\n \n {getMessageFromError(initError.error)}\n \n
\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme) => {\n return {\n dashboardLoading: css`\n height: 60vh;\n display: flex;\n align-items: center;\n justify-content: center;\n `,\n };\n};\n","import { css, keyframes } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme } from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\nimport { Button, HorizontalGroup, Spinner, useStyles, VerticalGroup } from '@grafana/ui';\nimport { DashboardInitPhase } from 'app/types';\n\nexport interface Props {\n initPhase: DashboardInitPhase;\n}\n\nexport const DashboardLoading = ({ initPhase }: Props) => {\n const styles = useStyles(getStyles);\n const cancelVariables = () => {\n locationService.push('/');\n };\n\n return (\n
\n
\n \n \n {initPhase}\n {' '}\n \n \n \n \n
\n
\n );\n};\n\nexport const getStyles = (theme: GrafanaTheme) => {\n // Amount of time we want to pass before we start showing loading spinner\n const slowStartThreshold = '0.5s';\n\n const invisibleToVisible = keyframes`\n 0% { opacity: 0%; }\n 100% { opacity: 100%; }\n `;\n\n return {\n dashboardLoading: css`\n height: 60vh;\n display: flex;\n opacity: 0%;\n align-items: center;\n justify-content: center;\n animation: ${invisibleToVisible} 0s step-end ${slowStartThreshold} 1 normal forwards;\n `,\n dashboardLoadingText: css`\n font-size: ${theme.typography.size.lg};\n `,\n };\n};\n","import React, { useCallback, useState } from 'react';\nimport { useAsync, useDebounce } from 'react-use';\n\nimport { Button, Icon, Input, Modal, useStyles } from '@grafana/ui';\n\nimport { getConnectedDashboards } from '../../state/api';\nimport { getModalStyles } from '../../styles';\nimport { PanelModelWithLibraryPanel } from '../../types';\nimport { usePanelSave } from '../../utils/usePanelSave';\n\ninterface Props {\n panel: PanelModelWithLibraryPanel;\n folderId: number;\n isUnsavedPrompt?: boolean;\n onConfirm: () => void;\n onDismiss: () => void;\n onDiscard: () => void;\n}\n\nexport const SaveLibraryPanelModal: React.FC = ({\n panel,\n folderId,\n isUnsavedPrompt,\n onDismiss,\n onConfirm,\n onDiscard,\n}) => {\n const [searchString, setSearchString] = useState('');\n const dashState = useAsync(async () => {\n const searchHits = await getConnectedDashboards(panel.libraryPanel.uid);\n if (searchHits.length > 0) {\n return searchHits.map((dash) => dash.title);\n }\n\n return [];\n }, [panel.libraryPanel.uid]);\n\n const [filteredDashboards, setFilteredDashboards] = useState([]);\n useDebounce(\n () => {\n if (!dashState.value) {\n return setFilteredDashboards([]);\n }\n\n return setFilteredDashboards(\n dashState.value.filter((dashName) => dashName.toLowerCase().includes(searchString.toLowerCase()))\n );\n },\n 300,\n [dashState.value, searchString]\n );\n\n const { saveLibraryPanel } = usePanelSave();\n const styles = useStyles(getModalStyles);\n const discardAndClose = useCallback(() => {\n onDiscard();\n }, [onDiscard]);\n\n const title = isUnsavedPrompt ? 'Unsaved library panel changes' : 'Save library panel';\n\n return (\n \n
\n

\n {'This update will affect '}\n \n {panel.libraryPanel.meta.connectedDashboards}{' '}\n {panel.libraryPanel.meta.connectedDashboards === 1 ? 'dashboard' : 'dashboards'}.\n \n The following dashboards using the panel will be affected:\n

\n }\n placeholder=\"Search affected dashboards\"\n value={searchString}\n onChange={(e) => setSearchString(e.currentTarget.value)}\n />\n {dashState.loading ? (\n

Loading connected dashboards...

\n ) : (\n \n \n \n \n \n \n \n {filteredDashboards.map((dashName, i) => (\n \n \n \n ))}\n \n
Dashboard name
{dashName}
\n )}\n \n \n {isUnsavedPrompt && (\n \n )}\n {\n saveLibraryPanel(panel, folderId).then(() => {\n onConfirm();\n });\n }}\n >\n Update all\n \n \n
\n
\n );\n};\n","import { pick } from 'lodash';\n\nimport store from 'app/core/store';\nimport { cleanUpPanelState, initPanelState } from 'app/features/panel/state/actions';\nimport { panelModelAndPluginReady } from 'app/features/panel/state/reducers';\nimport { ThunkResult } from 'app/types';\n\nimport { DashboardModel, PanelModel } from '../../../state';\n\nimport {\n closeEditor,\n PANEL_EDITOR_UI_STATE_STORAGE_KEY,\n PanelEditorUIState,\n setDiscardChanges,\n setPanelEditorUIState,\n updateEditorInitState,\n} from './reducers';\n\nexport function initPanelEditor(sourcePanel: PanelModel, dashboard: DashboardModel): ThunkResult {\n return async (dispatch) => {\n const panel = dashboard.initEditPanel(sourcePanel);\n\n await dispatch(initPanelState(panel));\n\n dispatch(\n updateEditorInitState({\n panel,\n sourcePanel,\n })\n );\n };\n}\n\nexport function discardPanelChanges(): ThunkResult {\n return async (dispatch, getStore) => {\n const { getPanel } = getStore().panelEditor;\n getPanel().configRev = 0;\n dispatch(setDiscardChanges(true));\n };\n}\n\nexport function updateDuplicateLibraryPanels(\n modifiedPanel: PanelModel,\n dashboard: DashboardModel | null\n): ThunkResult {\n return (dispatch) => {\n if (modifiedPanel.libraryPanel?.uid === undefined || !dashboard) {\n return;\n }\n\n const modifiedSaveModel = modifiedPanel.getSaveModel();\n for (const panel of dashboard.panels) {\n if (skipPanelUpdate(modifiedPanel, panel)) {\n continue;\n }\n\n panel.restoreModel({\n ...modifiedSaveModel,\n ...pick(panel, 'gridPos', 'id'),\n });\n\n // Loaded plugin is not included in the persisted properties\n // So is not handled by restoreModel\n const pluginChanged = panel.plugin?.meta.id !== modifiedPanel.plugin?.meta.id;\n panel.plugin = modifiedPanel.plugin;\n panel.configRev++;\n\n if (pluginChanged) {\n const cleanUpKey = panel.key;\n panel.generateNewKey();\n\n dispatch(panelModelAndPluginReady({ key: panel.key, plugin: panel.plugin!, cleanUpKey }));\n }\n\n // Resend last query result on source panel query runner\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => {\n panel.getQueryRunner().useLastResultFrom(modifiedPanel.getQueryRunner());\n }, 20);\n }\n\n if (modifiedPanel.repeat) {\n // We skip any repeated library panels so we need to update them by calling processRepeats\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => dashboard.processRepeats(), 20);\n }\n };\n}\n\nexport function skipPanelUpdate(modifiedPanel: PanelModel, panelToUpdate: PanelModel): boolean {\n // don't update library panels that aren't of the same type\n if (panelToUpdate.libraryPanel?.uid !== modifiedPanel.libraryPanel!.uid) {\n return true;\n }\n\n // don't update the modifiedPanel twice\n if (panelToUpdate.id && panelToUpdate.id === modifiedPanel.id) {\n return true;\n }\n\n // don't update library panels that are repeated\n if (panelToUpdate.repeatPanelId) {\n return true;\n }\n\n return false;\n}\n\nexport function exitPanelEditor(): ThunkResult {\n return async (dispatch, getStore) => {\n const dashboard = getStore().dashboard.getModel();\n const { getPanel, getSourcePanel, shouldDiscardChanges } = getStore().panelEditor;\n const panel = getPanel();\n\n if (dashboard) {\n dashboard.exitPanelEditor();\n }\n\n if (panel.hasChanged && !shouldDiscardChanges) {\n const modifiedSaveModel = panel.getSaveModel();\n const sourcePanel = getSourcePanel();\n const panelTypeChanged = sourcePanel.type !== panel.type;\n\n dispatch(updateDuplicateLibraryPanels(panel, dashboard));\n\n sourcePanel.restoreModel(modifiedSaveModel);\n sourcePanel.configRev++; // force check the configs\n\n if (panelTypeChanged) {\n // Loaded plugin is not included in the persisted properties so is not handled by restoreModel\n sourcePanel.plugin = panel.plugin;\n const cleanUpKey = sourcePanel.key;\n sourcePanel.generateNewKey();\n\n await dispatch(panelModelAndPluginReady({ key: sourcePanel.key, plugin: panel.plugin!, cleanUpKey }));\n }\n\n // Resend last query result on source panel query runner\n // But do this after the panel edit editor exit process has completed\n setTimeout(() => {\n sourcePanel.getQueryRunner().useLastResultFrom(panel.getQueryRunner());\n sourcePanel.render();\n }, 20);\n }\n\n dispatch(cleanUpPanelState(panel.key));\n dispatch(closeEditor());\n };\n}\n\nexport function updatePanelEditorUIState(uiState: Partial): ThunkResult {\n return (dispatch, getStore) => {\n const nextState = { ...getStore().panelEditor.ui, ...uiState };\n dispatch(setPanelEditorUIState(nextState));\n try {\n store.setObject(PANEL_EDITOR_UI_STATE_STORAGE_KEY, nextState);\n } catch (error) {\n console.error(error);\n }\n };\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { Button, Modal } from '@grafana/ui';\n\nimport { DashboardModel } from '../../state';\n\nimport { SaveDashboardButton } from './SaveDashboardButton';\n\ninterface UnsavedChangesModalProps {\n dashboard: DashboardModel;\n onDiscard: () => void;\n onDismiss: () => void;\n onSaveSuccess?: () => void;\n}\n\nexport const UnsavedChangesModal: React.FC = ({\n dashboard,\n onSaveSuccess,\n onDiscard,\n onDismiss,\n}) => {\n return (\n \n
Do you want to save your changes?
\n \n \n \n \n \n \n );\n};\n","import * as H from 'history';\nimport { each, find } from 'lodash';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Prompt } from 'react-router-dom';\n\nimport { locationService } from '@grafana/runtime';\nimport { ModalsContext } from '@grafana/ui';\nimport { appEvents } from 'app/core/app_events';\nimport { contextSrv } from 'app/core/services/context_srv';\nimport { SaveLibraryPanelModal } from 'app/features/library-panels/components/SaveLibraryPanelModal/SaveLibraryPanelModal';\nimport { PanelModelWithLibraryPanel } from 'app/features/library-panels/types';\nimport { DashboardSavedEvent } from 'app/types/events';\n\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { discardPanelChanges, exitPanelEditor } from '../PanelEditor/state/actions';\nimport { UnsavedChangesModal } from '../SaveDashboard/UnsavedChangesModal';\n\nexport interface Props {\n dashboard: DashboardModel;\n}\n\ninterface State {\n original: object | null;\n originalPath?: string;\n}\n\nexport const DashboardPrompt = React.memo(({ dashboard }: Props) => {\n const [state, setState] = useState({ original: null });\n const dispatch = useDispatch();\n const { original, originalPath } = state;\n const { showModal, hideModal } = useContext(ModalsContext);\n\n useEffect(() => {\n // This timeout delay is to wait for panels to load and migrate scheme before capturing the original state\n // This is to minimize unsaved changes warnings due to automatic schema migrations\n const timeoutId = setTimeout(() => {\n const originalPath = locationService.getLocation().pathname;\n const original = dashboard.getSaveModelClone();\n setState({ originalPath, original });\n }, 1000);\n\n const savedEventUnsub = appEvents.subscribe(DashboardSavedEvent, () => {\n const original = dashboard.getSaveModelClone();\n setState({ originalPath, original });\n });\n\n return () => {\n clearTimeout(timeoutId);\n savedEventUnsub.unsubscribe();\n };\n }, [dashboard, originalPath]);\n\n useEffect(() => {\n const handleUnload = (event: BeforeUnloadEvent) => {\n if (ignoreChanges(dashboard, original)) {\n return;\n }\n if (hasChanges(dashboard, original)) {\n event.preventDefault();\n // No browser actually displays this message anymore.\n // But Chrome requires it to be defined else the popup won't show.\n event.returnValue = '';\n }\n };\n window.addEventListener('beforeunload', handleUnload);\n return () => window.removeEventListener('beforeunload', handleUnload);\n }, [dashboard, original]);\n\n const onHistoryBlock = (location: H.Location) => {\n const panelInEdit = dashboard.panelInEdit;\n const search = new URLSearchParams(location.search);\n\n // Are we leaving panel edit & library panel?\n if (panelInEdit && panelInEdit.libraryPanel && panelInEdit.hasChanged && !search.has('editPanel')) {\n showModal(SaveLibraryPanelModal, {\n isUnsavedPrompt: true,\n panel: dashboard.panelInEdit as PanelModelWithLibraryPanel,\n folderId: dashboard.meta.folderId as number,\n onConfirm: () => {\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDiscard: () => {\n dispatch(discardPanelChanges());\n moveToBlockedLocationAfterReactStateUpdate(location);\n hideModal();\n },\n onDismiss: hideModal,\n });\n return false;\n }\n\n // Are we still on the same dashboard?\n if (originalPath === location.pathname || !original) {\n // This is here due to timing reasons we want the exit panel editor state changes to happen before router update\n if (panelInEdit && !search.has('editPanel')) {\n dispatch(exitPanelEditor());\n }\n\n return true;\n }\n\n if (ignoreChanges(dashboard, original)) {\n return true;\n }\n\n if (!hasChanges(dashboard, original)) {\n return true;\n }\n\n showModal(UnsavedChangesModal, {\n dashboard: dashboard,\n onSaveSuccess: () => {\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDiscard: () => {\n setState({ ...state, original: null });\n hideModal();\n moveToBlockedLocationAfterReactStateUpdate(location);\n },\n onDismiss: hideModal,\n });\n\n return false;\n };\n\n return ;\n});\n\nDashboardPrompt.displayName = 'DashboardPrompt';\n\nfunction moveToBlockedLocationAfterReactStateUpdate(location?: H.Location | null) {\n if (location) {\n setTimeout(() => locationService.push(location), 10);\n }\n}\n\n/**\n * For some dashboards and users changes should be ignored *\n */\nexport function ignoreChanges(current: DashboardModel, original: object | null) {\n if (!original) {\n return true;\n }\n\n // Ignore changes if the user has been signed out\n if (!contextSrv.isSignedIn) {\n return true;\n }\n\n if (!current || !current.meta) {\n return true;\n }\n\n const { canSave, fromScript, fromFile } = current.meta;\n if (!contextSrv.isEditor && !canSave) {\n return true;\n }\n\n return !canSave || fromScript || fromFile;\n}\n\n/**\n * Remove stuff that should not count in diff\n */\nfunction cleanDashboardFromIgnoredChanges(dashData: any) {\n // need to new up the domain model class to get access to expand / collapse row logic\n const model = new DashboardModel(dashData);\n\n // Expand all rows before making comparison. This is required because row expand / collapse\n // change order of panel array and panel positions.\n model.expandRows();\n\n const dash = model.getSaveModelClone();\n\n // ignore time and refresh\n dash.time = 0;\n dash.refresh = 0;\n dash.schemaVersion = 0;\n dash.timezone = 0;\n\n dash.panels = [];\n\n // ignore template variable values\n each(dash.getVariables(), (variable: any) => {\n variable.current = null;\n variable.options = null;\n variable.filters = null;\n });\n\n return dash;\n}\n\nexport function hasChanges(current: DashboardModel, original: any) {\n if (current.hasUnsavedChanges()) {\n return true;\n }\n\n const currentClean = cleanDashboardFromIgnoredChanges(current.getSaveModelClone());\n const originalClean = cleanDashboardFromIgnoredChanges(original);\n\n const currentTimepicker: any = find((currentClean as any).nav, { type: 'timepicker' });\n const originalTimepicker: any = find((originalClean as any).nav, { type: 'timepicker' });\n\n if (currentTimepicker && originalTimepicker) {\n currentTimepicker.now = originalTimepicker.now;\n }\n\n const currentJson = JSON.stringify(currentClean, null);\n const originalJson = JSON.stringify(originalClean, null);\n\n return currentJson !== originalJson;\n}\n","import { useEffect, useRef, useState } from 'react';\nimport { Unsubscribable } from 'rxjs';\n\nimport { DataQueryError, LoadingState, PanelData } from '@grafana/data';\n\nimport { GetDataOptions } from '../../../query/state/PanelQueryRunner';\nimport { PanelModel } from '../../state';\n\ninterface UsePanelLatestData {\n data?: PanelData;\n error?: DataQueryError;\n isLoading: boolean;\n hasSeries: boolean;\n}\n\n/**\n * Subscribes and returns latest panel data from PanelQueryRunner\n */\nexport const usePanelLatestData = (\n panel: PanelModel,\n options: GetDataOptions,\n checkSchema?: boolean\n): UsePanelLatestData => {\n const querySubscription = useRef();\n const [latestData, setLatestData] = useState();\n\n useEffect(() => {\n let lastRev = -1;\n let lastUpdate = 0;\n\n querySubscription.current = panel\n .getQueryRunner()\n .getData(options)\n .subscribe({\n next: (data) => {\n if (checkSchema) {\n if (lastRev === data.structureRev) {\n const now = Date.now();\n const elapsed = now - lastUpdate;\n if (elapsed < 10000) {\n return; // avoid updates if the schema has not changed for 10s\n }\n lastUpdate = now;\n }\n lastRev = data.structureRev ?? -1;\n }\n setLatestData(data);\n },\n });\n\n return () => {\n if (querySubscription.current) {\n querySubscription.current.unsubscribe();\n }\n };\n /**\n * Adding separate options to dependencies array to avoid additional hook for comparing previous options with current.\n * Otherwise, passing different references to the same object might cause troubles.\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [panel, options.withFieldConfig, options.withTransforms]);\n\n return {\n data: latestData,\n error: latestData && latestData.error,\n isLoading: latestData ? latestData.state === LoadingState.Loading : true,\n hasSeries: latestData ? !!latestData.series : false,\n };\n};\n","import { Trans } from '@lingui/macro';\nimport React from 'react';\n\nimport { DataSourceApi, PanelData } from '@grafana/data';\n\ninterface InspectMetadataTabProps {\n data: PanelData;\n metadataDatasource?: DataSourceApi;\n}\nexport const InspectMetadataTab: React.FC = ({ data, metadataDatasource }) => {\n if (!metadataDatasource || !metadataDatasource.components?.MetadataInspector) {\n return No Metadata Inspector;\n }\n return ;\n};\n","import { t } from '@lingui/macro';\nimport React, { useState } from 'react';\n\nimport { CoreApp, DataSourceApi, formattedValueToString, getValueFormat, PanelData, PanelPlugin } from '@grafana/data';\nimport { getTemplateSrv } from '@grafana/runtime';\nimport { Drawer, Tab, TabsBar } from '@grafana/ui';\nimport { InspectDataTab } from 'app/features/inspector/InspectDataTab';\nimport { InspectErrorTab } from 'app/features/inspector/InspectErrorTab';\nimport { InspectJSONTab } from 'app/features/inspector/InspectJSONTab';\nimport { InspectMetadataTab } from 'app/features/inspector/InspectMetadataTab';\nimport { InspectStatsTab } from 'app/features/inspector/InspectStatsTab';\nimport { QueryInspector } from 'app/features/inspector/QueryInspector';\nimport { InspectTab } from 'app/features/inspector/types';\n\nimport { GetDataOptions } from '../../../query/state/PanelQueryRunner';\nimport { DashboardModel, PanelModel } from '../../state';\n\ninterface Props {\n dashboard: DashboardModel;\n panel: PanelModel;\n plugin?: PanelPlugin | null;\n defaultTab?: InspectTab;\n tabs: Array<{ label: string; value: InspectTab }>;\n // The last raw response\n data?: PanelData;\n isDataLoading: boolean;\n dataOptions: GetDataOptions;\n // If the datasource supports custom metadata\n metadataDatasource?: DataSourceApi;\n onDataOptionsChange: (options: GetDataOptions) => void;\n onClose: () => void;\n}\n\nexport const InspectContent: React.FC = ({\n panel,\n plugin,\n dashboard,\n tabs,\n data,\n isDataLoading,\n dataOptions,\n metadataDatasource,\n defaultTab,\n onDataOptionsChange,\n onClose,\n}) => {\n const [currentTab, setCurrentTab] = useState(defaultTab ?? InspectTab.Data);\n\n if (!plugin) {\n return null;\n }\n\n const error = data?.error;\n\n // Validate that the active tab is actually valid and allowed\n let activeTab = currentTab;\n if (!tabs.find((item) => item.value === currentTab)) {\n activeTab = InspectTab.JSON;\n }\n\n const panelTitle = getTemplateSrv().replace(panel.title, panel.scopedVars, 'text') || 'Panel';\n const title = t({\n id: 'dashboard.inspect.title',\n message: `Inspect: ${panelTitle}`,\n });\n\n return (\n \n {tabs.map((t, index) => {\n return (\n setCurrentTab(t.value || InspectTab.Data)}\n />\n );\n })}\n \n }\n >\n {activeTab === InspectTab.Data && (\n \n )}\n {data && activeTab === InspectTab.Meta && (\n \n )}\n\n {activeTab === InspectTab.JSON && (\n \n )}\n {activeTab === InspectTab.Error && }\n {data && activeTab === InspectTab.Stats && }\n {data && activeTab === InspectTab.Query && (\n panel.refresh()} />\n )}\n \n );\n};\n\nfunction formatStats(data: PanelData) {\n const { request } = data;\n if (!request) {\n return '';\n }\n\n const queryCount = request.targets.length;\n const requestTime = request.endTime ? request.endTime - request.startTime : 0;\n const formatted = formattedValueToString(getValueFormat('ms')(requestTime));\n\n return t({\n id: 'dashboard.inspect.subtitle',\n message: `${queryCount} queries with total query time of ${formatted}`,\n });\n}\n","import { t } from '@lingui/macro';\nimport { useMemo } from 'react';\nimport useAsync from 'react-use/lib/useAsync';\n\nimport { DataQueryError, DataSourceApi, PanelData, PanelPlugin } from '@grafana/data';\nimport { getDataSourceSrv } from '@grafana/runtime';\nimport { DashboardModel, PanelModel } from 'app/features/dashboard/state';\nimport { InspectTab } from 'app/features/inspector/types';\n\nimport { supportsDataQuery } from '../PanelEditor/utils';\n\nimport { PanelInspectActionSupplier } from './PanelInspectActions';\n\n/**\n * Given PanelData return first data source supporting metadata inspector\n */\nexport const useDatasourceMetadata = (data?: PanelData) => {\n const state = useAsync(async () => {\n const targets = data?.request?.targets || [];\n\n if (data && data.series && targets.length) {\n for (const frame of data.series) {\n if (frame.meta && frame.meta.custom) {\n // get data source from first query\n const dataSource = await getDataSourceSrv().get(targets[0].datasource);\n if (dataSource && dataSource.components?.MetadataInspector) {\n return dataSource;\n }\n }\n }\n }\n\n return undefined;\n }, [data]);\n return state.value;\n};\n\n/**\n * Configures tabs for PanelInspector\n */\nexport const useInspectTabs = (\n panel: PanelModel,\n dashboard: DashboardModel,\n plugin: PanelPlugin | undefined | null,\n error?: DataQueryError,\n metaDs?: DataSourceApi\n) => {\n return useMemo(() => {\n const tabs = [];\n if (supportsDataQuery(plugin)) {\n tabs.push({ label: t({ id: 'dashboard.inspect.data-tab', message: 'Data' }), value: InspectTab.Data });\n tabs.push({ label: t({ id: 'dashboard.inspect.stats-tab', message: 'Stats' }), value: InspectTab.Stats });\n }\n\n if (metaDs) {\n tabs.push({ label: t({ id: 'dashboard.inspect.meta-tab', message: 'Meta Data' }), value: InspectTab.Meta });\n }\n\n tabs.push({ label: t({ id: 'dashboard.inspect.json-tab', message: 'JSON' }), value: InspectTab.JSON });\n\n if (error && error.message) {\n tabs.push({ label: t({ id: 'dashboard.inspect.error-tab', message: 'Error' }), value: InspectTab.Error });\n }\n\n // This is a quick internal hack to allow custom actions in inspect\n // For 8.1, something like this should be exposed through grafana/runtime\n const supplier = (window as any).grafanaPanelInspectActionSupplier as PanelInspectActionSupplier;\n if (supplier && supplier.getActions(panel)) {\n tabs.push({\n label: t({ id: 'dashboard.inspect.actions-tab', message: 'Actions' }),\n value: InspectTab.Actions,\n });\n }\n\n if (dashboard.meta.canEdit && supportsDataQuery(plugin)) {\n tabs.push({ label: t({ id: 'dashboard.inspect.query-tab', message: 'Query' }), value: InspectTab.Query });\n }\n return tabs;\n }, [panel, plugin, metaDs, dashboard, error]);\n};\n","import React, { useState } from 'react';\nimport { connect, MapStateToProps } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { PanelPlugin } from '@grafana/data';\nimport { locationService } from '@grafana/runtime';\nimport { DashboardModel, PanelModel } from 'app/features/dashboard/state';\nimport { InspectTab } from 'app/features/inspector/types';\nimport { getPanelStateForModel } from 'app/features/panel/state/selectors';\nimport { StoreState } from 'app/types';\n\nimport { GetDataOptions } from '../../../query/state/PanelQueryRunner';\nimport { usePanelLatestData } from '../PanelEditor/usePanelLatestData';\n\nimport { InspectContent } from './InspectContent';\nimport { useDatasourceMetadata, useInspectTabs } from './hooks';\n\ninterface OwnProps {\n dashboard: DashboardModel;\n panel: PanelModel;\n}\n\nexport interface ConnectedProps {\n plugin?: PanelPlugin | null;\n}\n\nexport type Props = OwnProps & ConnectedProps;\n\nconst PanelInspectorUnconnected: React.FC = ({ panel, dashboard, plugin }) => {\n const [dataOptions, setDataOptions] = useState({\n withTransforms: false,\n withFieldConfig: true,\n });\n\n const location = useLocation();\n const { data, isLoading, error } = usePanelLatestData(panel, dataOptions, true);\n const metaDs = useDatasourceMetadata(data);\n const tabs = useInspectTabs(panel, dashboard, plugin, error, metaDs);\n const defaultTab = new URLSearchParams(location.search).get('inspectTab') as InspectTab;\n\n const onClose = () => {\n locationService.partial({\n inspect: null,\n inspectTab: null,\n });\n };\n\n if (!plugin) {\n return null;\n }\n\n return (\n \n );\n};\n\nconst mapStateToProps: MapStateToProps = (state, props) => {\n const panelState = getPanelStateForModel(state, props.panel);\n if (!panelState) {\n return { plugin: null };\n }\n\n return {\n plugin: panelState.plugin,\n };\n};\n\nexport const PanelInspector = connect(mapStateToProps)(PanelInspectorUnconnected);\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 { css, cx } from '@emotion/css';\nimport React, { createRef, MutableRefObject, PureComponent, ReactNode } from 'react';\nimport SplitPane from 'react-split-pane';\n\nimport { GrafanaTheme } from '@grafana/data';\nimport { stylesFactory } from '@grafana/ui';\nimport { config } from 'app/core/config';\n\nenum Pane {\n Right,\n Top,\n}\n\ninterface Props {\n leftPaneComponents: ReactNode[] | ReactNode;\n rightPaneComponents: ReactNode;\n uiState: { topPaneSize: number; rightPaneSize: number };\n rightPaneVisible?: boolean;\n updateUiState: (uiState: { topPaneSize?: number; rightPaneSize?: number }) => void;\n}\n\nexport class SplitPaneWrapper extends PureComponent {\n rafToken: MutableRefObject = createRef();\n static defaultProps = {\n rightPaneVisible: true,\n };\n\n componentDidMount() {\n window.addEventListener('resize', this.updateSplitPaneSize);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.updateSplitPaneSize);\n }\n\n updateSplitPaneSize = () => {\n if (this.rafToken.current !== undefined) {\n window.cancelAnimationFrame(this.rafToken.current!);\n }\n this.rafToken.current = window.requestAnimationFrame(() => {\n this.forceUpdate();\n });\n };\n\n onDragFinished = (pane: Pane, size?: number) => {\n document.body.style.cursor = 'auto';\n\n // When the drag handle is just clicked size is undefined\n if (!size) {\n return;\n }\n\n const { updateUiState } = this.props;\n if (pane === Pane.Top) {\n updateUiState({\n topPaneSize: size / window.innerHeight,\n });\n } else {\n updateUiState({\n rightPaneSize: size / window.innerWidth,\n });\n }\n };\n\n onDragStarted = () => {\n document.body.style.cursor = 'row-resize';\n };\n\n renderHorizontalSplit() {\n const { leftPaneComponents, uiState } = this.props;\n const styles = getStyles(config.theme);\n const topPaneSize = uiState.topPaneSize >= 1 ? uiState.topPaneSize : uiState.topPaneSize * window.innerHeight;\n\n /*\n Guesstimate the height of the browser window minus\n panel toolbar and editor toolbar (~120px). This is to prevent resizing\n the preview window beyond the browser window.\n */\n\n if (Array.isArray(leftPaneComponents)) {\n return (\n this.onDragFinished(Pane.Top, size)}\n >\n {leftPaneComponents}\n \n );\n }\n\n return leftPaneComponents;\n }\n\n render() {\n const { rightPaneVisible, rightPaneComponents, uiState } = this.props;\n // Limit options pane width to 90% of screen.\n const styles = getStyles(config.theme);\n\n // Need to handle when width is relative. ie a percentage of the viewport\n const rightPaneSize =\n uiState.rightPaneSize <= 1 ? uiState.rightPaneSize * window.innerWidth : uiState.rightPaneSize;\n\n if (!rightPaneVisible) {\n return this.renderHorizontalSplit();\n }\n\n return (\n (document.body.style.cursor = 'col-resize')}\n onDragFinished={(size) => this.onDragFinished(Pane.Right, size)}\n >\n {this.renderHorizontalSplit()}\n {rightPaneComponents}\n \n );\n }\n}\n\nconst getStyles = stylesFactory((theme: GrafanaTheme) => {\n const handleColor = theme.palette.blue95;\n const paneSpacing = theme.spacing.md;\n\n const resizer = css`\n position: relative;\n\n &::before {\n content: '';\n position: absolute;\n transition: 0.2s border-color ease-in-out;\n }\n\n &::after {\n background: ${theme.colors.panelBorder};\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n transition: 0.2s background ease-in-out;\n transform: translate(-50%, -50%);\n border-radius: 4px;\n }\n\n &:hover {\n &::before {\n border-color: ${handleColor};\n }\n\n &::after {\n background: ${handleColor};\n }\n }\n `;\n\n return {\n resizerV: cx(\n resizer,\n css`\n cursor: col-resize;\n width: ${paneSpacing};\n\n &::before {\n border-right: 1px solid transparent;\n height: 100%;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &::after {\n height: 200px;\n width: 4px;\n }\n `\n ),\n resizerH: cx(\n resizer,\n css`\n height: ${paneSpacing};\n cursor: row-resize;\n margin-left: ${paneSpacing};\n\n &::before {\n border-top: 1px solid transparent;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n }\n\n &::after {\n height: 4px;\n width: 200px;\n }\n `\n ),\n };\n});\n","import React, { FunctionComponent, PropsWithChildren, ReactElement, useMemo } from 'react';\n\nimport { selectors } from '@grafana/e2e-selectors';\nimport { Tooltip } from '@grafana/ui';\n\nimport { variableAdapters } from '../adapters';\nimport { VariableHide, VariableModel } from '../types';\n\ninterface Props {\n variable: VariableModel;\n readOnly?: boolean;\n}\n\nexport const PickerRenderer: FunctionComponent = (props) => {\n const PickerToRender = useMemo(() => variableAdapters.get(props.variable.type).picker, [props.variable]);\n\n if (!props.variable) {\n return
Couldn't load variable
;\n }\n\n return (\n
\n \n {props.variable.hide !== VariableHide.hideVariable && PickerToRender && (\n \n )}\n
\n );\n};\n\nfunction PickerLabel({ variable }: PropsWithChildren): ReactElement | null {\n const labelOrName = useMemo(() => variable.label || variable.name, [variable]);\n\n if (variable.hide !== VariableHide.dontHide) {\n return null;\n }\n\n const elementId = `var-${variable.id}`;\n if (variable.description) {\n return (\n \n \n {labelOrName}\n \n \n );\n }\n\n return (\n \n {labelOrName}\n \n );\n}\n","import React, { FunctionComponent, useEffect, useState } from 'react';\n\nimport { selectors } from '@grafana/e2e-selectors';\n\nimport { PickerRenderer } from '../../../variables/pickers/PickerRenderer';\nimport { VariableHide, VariableModel } from '../../../variables/types';\n\ninterface Props {\n variables: VariableModel[];\n readOnly?: boolean;\n}\n\nexport const SubMenuItems: FunctionComponent = ({ variables, readOnly }) => {\n const [visibleVariables, setVisibleVariables] = useState([]);\n\n useEffect(() => {\n setVisibleVariables(variables.filter((state) => state.hide !== VariableHide.hideVariable));\n }, [variables]);\n\n if (visibleVariables.length === 0) {\n return null;\n }\n\n return (\n <>\n {visibleVariables.map((variable) => {\n return (\n \n \n
\n );\n })}\n \n );\n};\n","import React, { PureComponent } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\n\nimport { PanelPlugin, PanelPluginMeta } from '@grafana/data';\nimport { AngularComponent, getAngularLoader } from '@grafana/runtime';\nimport { PanelCtrl } from 'app/angular/panel/panel_ctrl';\nimport { changePanelPlugin } from 'app/features/panel/state/actions';\nimport { getPanelStateForModel } from 'app/features/panel/state/selectors';\nimport { StoreState } from 'app/types';\n\nimport { PanelModel, DashboardModel } from '../../state';\n\nimport { getSectionOpenState, saveSectionOpenState } from './state/utils';\n\ninterface OwnProps {\n panel: PanelModel;\n dashboard: DashboardModel;\n plugin: PanelPlugin;\n}\n\nconst mapStateToProps = (state: StoreState, props: OwnProps) => ({\n angularPanelComponent: getPanelStateForModel(state, props.panel)?.angularComponent,\n});\n\nconst mapDispatchToProps = { changePanelPlugin };\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\ntype Props = ConnectedProps & OwnProps;\n\nexport class AngularPanelOptionsUnconnected extends PureComponent {\n element?: HTMLElement | null;\n angularOptions?: AngularComponent | null;\n\n constructor(props: Props) {\n super(props);\n }\n\n componentDidMount() {\n this.loadAngularOptions();\n }\n\n componentDidUpdate(prevProps: Props) {\n if (\n this.props.plugin !== prevProps.plugin ||\n this.props.angularPanelComponent !== prevProps.angularPanelComponent\n ) {\n this.cleanUpAngularOptions();\n }\n\n this.loadAngularOptions();\n }\n\n componentWillUnmount() {\n this.cleanUpAngularOptions();\n }\n\n cleanUpAngularOptions() {\n if (this.angularOptions) {\n this.angularOptions.destroy();\n this.angularOptions = null;\n }\n }\n\n loadAngularOptions() {\n const { panel, angularPanelComponent, changePanelPlugin } = this.props;\n\n if (!this.element || !angularPanelComponent || this.angularOptions) {\n return;\n }\n\n const scope = angularPanelComponent.getScope();\n\n // When full page reloading in edit mode the angular panel has on fully compiled and instantiated yet\n if (!scope.$$childHead) {\n setTimeout(() => {\n this.forceUpdate();\n });\n return;\n }\n\n const panelCtrl: PanelCtrl = scope.$$childHead.ctrl;\n panelCtrl.initEditMode();\n panelCtrl.onPluginTypeChange = (plugin: PanelPluginMeta) => {\n changePanelPlugin({ panel, pluginId: plugin.id });\n };\n\n let template = '';\n for (let i = 0; i < panelCtrl.editorTabs.length; i++) {\n const tab = panelCtrl.editorTabs[i];\n tab.isOpen = getSectionOpenState(tab.title, i === 0);\n\n template += `\n
\n
\n
\n \n
\n
${tab.title}
\n
\n
\n \n
\n
\n `;\n }\n\n const loader = getAngularLoader();\n const scopeProps = {\n ctrl: panelCtrl,\n toggleOptionGroup: (index: number) => {\n const tab = panelCtrl.editorTabs[index];\n tab.isOpen = !tab.isOpen;\n saveSectionOpenState(tab.title, tab.isOpen as boolean);\n },\n };\n\n this.angularOptions = loader.load(this.element, scopeProps, template);\n this.angularOptions.digest();\n }\n\n render() {\n return
(this.element = elem)} />;\n }\n}\n\nexport const AngularPanelOptions = connect(mapStateToProps, mapDispatchToProps)(AngularPanelOptionsUnconnected);\n","import store from 'app/core/store';\n\nexport function saveSectionOpenState(id: string, isOpen: boolean) {\n store.set(`panel-edit-section-${id}`, isOpen ? 'true' : 'false');\n}\n\nexport function getSectionOpenState(id: string, defaultValue: boolean) {\n return store.getBool(`panel-edit-section-${id}`, defaultValue);\n}\n","import { css, cx } from '@emotion/css';\nimport React from 'react';\n// @ts-ignore\nimport Highlighter from 'react-highlight-words';\n\nimport {\n DynamicConfigValue,\n FieldConfigOptionsRegistry,\n FieldConfigProperty,\n FieldOverrideContext,\n GrafanaTheme,\n} from '@grafana/data';\nimport { Counter, Field, HorizontalGroup, IconButton, Label, stylesFactory, useTheme } from '@grafana/ui';\n\nimport { OptionsPaneCategory } from './OptionsPaneCategory';\n\ninterface DynamicConfigValueEditorProps {\n property: DynamicConfigValue;\n registry: FieldConfigOptionsRegistry;\n onChange: (value: DynamicConfigValue) => void;\n context: FieldOverrideContext;\n onRemove: () => void;\n isSystemOverride?: boolean;\n searchQuery: string;\n}\n\nexport const DynamicConfigValueEditor: React.FC = ({\n property,\n context,\n registry,\n onChange,\n onRemove,\n isSystemOverride,\n searchQuery,\n}) => {\n const theme = useTheme();\n const styles = getStyles(theme);\n const item = registry?.getIfExists(property.id);\n\n if (!item) {\n return null;\n }\n\n const isCollapsible =\n Array.isArray(property.value) ||\n property.id === FieldConfigProperty.Thresholds ||\n property.id === FieldConfigProperty.Links ||\n property.id === FieldConfigProperty.Mappings;\n\n const labelCategory = item.category?.filter((c) => c !== item.name);\n let editor;\n\n /* eslint-disable react/display-name */\n const renderLabel =\n (includeDescription = true, includeCounter = false) =>\n (isExpanded = false) =>\n (\n \n \n {!isSystemOverride && (\n
\n \n
\n )}\n
\n );\n /* eslint-enable react/display-name */\n\n if (isCollapsible) {\n editor = (\n \n {\n onChange(value);\n }}\n item={item}\n context={context}\n />\n \n );\n } else {\n editor = (\n
\n \n {\n onChange(value);\n }}\n item={item}\n context={context}\n />\n \n
\n );\n }\n\n return (\n \n {editor}\n
\n );\n};\n\nconst getStyles = stylesFactory((theme: GrafanaTheme) => {\n return {\n collapsibleOverrideEditor: css`\n label: collapsibleOverrideEditor;\n & + .dynamicConfigValueEditor--nonCollapsible {\n margin-top: ${theme.spacing.formSpacingBase}px;\n }\n `,\n };\n});\n","import { css } from '@emotion/css';\nimport React, { FC } from 'react';\n\nimport { FieldConfigOptionsRegistry, GrafanaTheme, ConfigOverrideRule } from '@grafana/data';\nimport { HorizontalGroup, Icon, IconButton, useStyles } from '@grafana/ui';\nimport { FieldMatcherUIRegistryItem } from '@grafana/ui/src/components/MatchersUI/types';\n\ninterface OverrideCategoryTitleProps {\n isExpanded: boolean;\n registry: FieldConfigOptionsRegistry;\n matcherUi: FieldMatcherUIRegistryItem;\n override: ConfigOverrideRule;\n overrideName: string;\n onOverrideRemove: () => void;\n}\nexport const OverrideCategoryTitle: FC = ({\n isExpanded,\n registry,\n matcherUi,\n overrideName,\n override,\n onOverrideRemove,\n}) => {\n const styles = useStyles(getStyles);\n const properties = override.properties.map((p) => registry.getIfExists(p.id)).filter((prop) => !!prop);\n const propertyNames = properties.map((p) => p?.name).join(', ');\n const matcherOptions = matcherUi.optionsToLabel(override.matcher.options);\n\n return (\n
\n \n
{overrideName}
\n \n
\n {!isExpanded && (\n
\n
\n {matcherOptions} {propertyNames}\n
\n
\n )}\n
\n );\n};\n\nOverrideCategoryTitle.displayName = 'OverrideTitle';\n\nconst getStyles = (theme: GrafanaTheme) => {\n return {\n matcherUi: css`\n padding: ${theme.spacing.sm};\n `,\n propertyPickerWrapper: css`\n margin-top: ${theme.spacing.formSpacingBase * 2}px;\n `,\n overrideDetails: css`\n font-size: ${theme.typography.size.sm};\n color: ${theme.colors.textWeak};\n font-weight: ${theme.typography.weight.regular};\n `,\n options: css`\n overflow: hidden;\n padding-right: ${theme.spacing.xl};\n `,\n unknownLabel: css`\n margin-bottom: 0;\n `,\n };\n};\n","import { css } from '@emotion/css';\nimport { cloneDeep } from 'lodash';\nimport React from 'react';\n\nimport {\n FieldConfigOptionsRegistry,\n SelectableValue,\n isSystemOverride as isSystemOverrideGuard,\n VariableSuggestionsScope,\n DynamicConfigValue,\n ConfigOverrideRule,\n GrafanaTheme2,\n} from '@grafana/data';\nimport { fieldMatchersUI, useStyles2, ValuePicker } from '@grafana/ui';\nimport { getDataLinksVariableSuggestions } from 'app/features/panel/panellinks/link_srv';\n\nimport { DynamicConfigValueEditor } from './DynamicConfigValueEditor';\nimport { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';\nimport { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';\nimport { OverrideCategoryTitle } from './OverrideCategoryTitle';\nimport { OptionPaneRenderProps } from './types';\n\nexport function getFieldOverrideCategories(\n props: OptionPaneRenderProps,\n searchQuery: string\n): OptionsPaneCategoryDescriptor[] {\n const categories: OptionsPaneCategoryDescriptor[] = [];\n const currentFieldConfig = props.panel.fieldConfig;\n const registry = props.plugin.fieldConfigRegistry;\n const data = props.data?.series ?? [];\n\n if (registry.isEmpty()) {\n return [];\n }\n\n const onOverrideChange = (index: number, override: any) => {\n let overrides = cloneDeep(currentFieldConfig.overrides);\n overrides[index] = override;\n props.onFieldConfigsChange({ ...currentFieldConfig, overrides });\n };\n\n const onOverrideRemove = (overrideIndex: number) => {\n let overrides = cloneDeep(currentFieldConfig.overrides);\n overrides.splice(overrideIndex, 1);\n props.onFieldConfigsChange({ ...currentFieldConfig, overrides });\n };\n\n const onOverrideAdd = (value: SelectableValue) => {\n props.onFieldConfigsChange({\n ...currentFieldConfig,\n overrides: [\n ...currentFieldConfig.overrides,\n {\n matcher: {\n id: value.value!,\n },\n properties: [],\n },\n ],\n });\n };\n\n const context = {\n data,\n getSuggestions: (scope?: VariableSuggestionsScope) => getDataLinksVariableSuggestions(data, scope),\n isOverride: true,\n };\n\n /**\n * Main loop through all override rules\n */\n for (let idx = 0; idx < currentFieldConfig.overrides.length; idx++) {\n const override = currentFieldConfig.overrides[idx];\n const overrideName = `Override ${idx + 1}`;\n const matcherUi = fieldMatchersUI.get(override.matcher.id);\n const configPropertiesOptions = getOverrideProperties(registry);\n const isSystemOverride = isSystemOverrideGuard(override);\n // A way to force open new override categories\n const forceOpen = override.properties.length === 0 ? 1 : 0;\n\n const category = new OptionsPaneCategoryDescriptor({\n title: overrideName,\n id: overrideName,\n forceOpen,\n renderTitle: function renderOverrideTitle(isExpanded: boolean) {\n return (\n onOverrideRemove(idx)}\n />\n );\n },\n });\n\n const onMatcherConfigChange = (options: any) => {\n override.matcher.options = options;\n onOverrideChange(idx, override);\n };\n\n const onDynamicConfigValueAdd = (o: ConfigOverrideRule, value: SelectableValue) => {\n const registryItem = registry.get(value.value!);\n const propertyConfig: DynamicConfigValue = {\n id: registryItem.id,\n value: registryItem.defaultValue,\n };\n\n if (override.properties) {\n o.properties.push(propertyConfig);\n } else {\n o.properties = [propertyConfig];\n }\n\n onOverrideChange(idx, o);\n };\n\n /**\n * Add override matcher UI element\n */\n category.addItem(\n new OptionsPaneItemDescriptor({\n title: matcherUi.name,\n render: function renderMatcherUI() {\n return (\n \n );\n },\n })\n );\n\n /**\n * Loop through all override properties\n */\n for (let propIdx = 0; propIdx < override.properties.length; propIdx++) {\n const property = override.properties[propIdx];\n const registryItemForProperty = registry.getIfExists(property.id);\n\n if (!registryItemForProperty) {\n continue;\n }\n\n const onPropertyChange = (value: any) => {\n override.properties[propIdx].value = value;\n onOverrideChange(idx, override);\n };\n\n const onPropertyRemove = () => {\n override.properties.splice(propIdx, 1);\n onOverrideChange(idx, override);\n };\n\n /**\n * Add override property item\n */\n category.addItem(\n new OptionsPaneItemDescriptor({\n title: registryItemForProperty.name,\n skipField: true,\n render: function renderPropertyEditor() {\n return (\n \n );\n },\n })\n );\n }\n\n /**\n * Add button that adds new overrides\n */\n if (!isSystemOverride && override.matcher.options) {\n category.addItem(\n new OptionsPaneItemDescriptor({\n title: '----------',\n skipField: true,\n render: function renderAddPropertyButton() {\n return (\n onDynamicConfigValueAdd(override, v)}\n />\n );\n },\n })\n );\n }\n\n categories.push(category);\n }\n\n categories.push(\n new OptionsPaneCategoryDescriptor({\n title: 'add button',\n id: 'add button',\n customRender: function renderAddButton() {\n return (\n \n !o.excludeFromPicker)\n .map>((i) => ({ label: i.name, value: i.id, description: i.description }))}\n onChange={(value) => onOverrideAdd(value)}\n />\n \n );\n },\n })\n );\n\n return categories;\n}\n\nfunction getOverrideProperties(registry: FieldConfigOptionsRegistry) {\n return registry\n .list()\n .filter((o) => !o.hideFromOverrides)\n .map((item) => {\n let label = item.name;\n if (item.category) {\n label = [...item.category, item.name].join(' > ');\n }\n return {\n label,\n value: item.id,\n description: item.description,\n };\n });\n}\n\nfunction AddOverrideButtonContainer({ children }: { children: React.ReactNode }) {\n const styles = useStyles2(getBorderTopStyles);\n return
{children}
;\n}\n\nfunction getBorderTopStyles(theme: GrafanaTheme2) {\n return css({\n borderTop: `1px solid ${theme.colors.border.weak}`,\n padding: `${theme.spacing(2)}`,\n display: 'flex',\n });\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { DateTimeInput, GrafanaTheme } from '@grafana/data';\nimport { useStyles } from '@grafana/ui';\n\nimport { isPanelModelLibraryPanel } from '../../guard';\nimport { PanelModelWithLibraryPanel } from '../../types';\n\ninterface Props {\n panel: PanelModelWithLibraryPanel;\n formatDate?: (dateString: DateTimeInput, format?: string) => string;\n}\n\nexport const LibraryPanelInformation: React.FC = ({ panel, formatDate }) => {\n const styles = useStyles(getStyles);\n\n if (!isPanelModelLibraryPanel(panel)) {\n return null;\n }\n\n return (\n
\n
\n {`Used on ${panel.libraryPanel.meta.connectedDashboards} `}\n {panel.libraryPanel.meta.connectedDashboards === 1 ? 'dashboard' : 'dashboards'}\n
\n
\n Last edited on {formatDate?.(panel.libraryPanel.meta.updated, 'L') ?? panel.libraryPanel.meta.updated} by\n {panel.libraryPanel.meta.updatedBy.avatarUrl && (\n \n )}\n {panel.libraryPanel.meta.updatedBy.name}\n
\n
\n );\n};\n\nconst getStyles = (theme: GrafanaTheme) => {\n return {\n info: css`\n line-height: 1;\n `,\n libraryPanelInfo: css`\n color: ${theme.colors.textSemiWeak};\n font-size: ${theme.typography.size.sm};\n `,\n userAvatar: css`\n border-radius: 50%;\n box-sizing: content-box;\n width: 22px;\n height: 22px;\n padding-left: ${theme.spacing.sm};\n padding-right: ${theme.spacing.sm};\n `,\n };\n};\n","import React from 'react';\n\nimport { Input } from '@grafana/ui';\nimport { LibraryPanelInformation } from 'app/features/library-panels/components/LibraryPanelInfo/LibraryPanelInfo';\n\nimport { isPanelModelLibraryPanel } from '../../../library-panels/guard';\n\nimport { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';\nimport { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';\nimport { OptionPaneRenderProps } from './types';\n\nexport function getLibraryPanelOptionsCategory(props: OptionPaneRenderProps): OptionsPaneCategoryDescriptor {\n const { panel, onPanelConfigChange, dashboard } = props;\n const descriptor = new OptionsPaneCategoryDescriptor({\n title: 'Library panel options',\n id: 'Library panel options',\n isOpenDefault: true,\n });\n\n if (isPanelModelLibraryPanel(panel)) {\n descriptor\n .addItem(\n new OptionsPaneItemDescriptor({\n title: 'Name',\n value: panel.libraryPanel.name,\n popularRank: 1,\n render: function renderName() {\n return (\n \n onPanelConfigChange('libraryPanel', { ...panel.libraryPanel, name: e.currentTarget.value })\n }\n />\n );\n },\n })\n )\n .addItem(\n new OptionsPaneItemDescriptor({\n title: 'Information',\n render: function renderLibraryPanelInformation() {\n return ;\n },\n })\n );\n }\n\n return descriptor;\n}\n","import React, { FC, useCallback, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { StoreState } from '../../../../types';\nimport { getLastKey, getVariablesByKey } from '../../../variables/state/selectors';\n\nexport interface Props {\n id?: string;\n repeat?: string | null;\n onChange: (name: string | null) => void;\n}\n\nexport const RepeatRowSelect: FC = ({ repeat, onChange, id }) => {\n const variables = useSelector((state: StoreState) => {\n return getVariablesByKey(getLastKey(state), state);\n });\n\n const variableOptions = useMemo(() => {\n const options = variables.map((item: any) => {\n return { label: item.name, value: item.name };\n });\n\n if (options.length === 0) {\n options.unshift({\n label: 'No template variables found',\n value: null,\n });\n }\n\n options.unshift({\n label: 'Disable repeating',\n value: null,\n });\n\n return options;\n }, [variables]);\n\n const onSelectChange = useCallback((option: SelectableValue) => onChange(option.value!), [onChange]);\n\n return \n \n\n \n \n \n\n \n \n \n \n \n )}\n \n );\n};\n","import { css } from '@emotion/css';\nimport React, { FC } from 'react';\n\nimport { Modal, stylesFactory } from '@grafana/ui';\n\nimport { OnRowOptionsUpdate, RowOptionsForm } from './RowOptionsForm';\n\nexport interface RowOptionsModalProps {\n title: string;\n repeat?: string | null;\n onDismiss: () => void;\n onUpdate: OnRowOptionsUpdate;\n}\n\nexport const RowOptionsModal: FC = ({ repeat, title, onDismiss, onUpdate }) => {\n const styles = getStyles();\n return (\n \n \n \n );\n};\n\nconst getStyles = stylesFactory(() => {\n return {\n modal: css`\n label: RowOptionsModal;\n width: 500px;\n `,\n };\n});\n","import React, { FC } from 'react';\n\nimport { Icon, ModalsController } from '@grafana/ui';\n\nimport { OnRowOptionsUpdate } from './RowOptionsForm';\nimport { RowOptionsModal } from './RowOptionsModal';\n\nexport interface RowOptionsButtonProps {\n title: string;\n repeat?: string | null;\n onUpdate: OnRowOptionsUpdate;\n}\n\nexport const RowOptionsButton: FC = ({ repeat, title, onUpdate }) => {\n const onUpdateChange = (hideModal: () => void) => (title: string, repeat?: string | null) => {\n onUpdate(title, repeat);\n hideModal();\n };\n\n return (\n \n {({ showModal, hideModal }) => {\n return (\n {\n showModal(RowOptionsModal, { title, repeat, onDismiss: hideModal, onUpdate: onUpdateChange(hideModal) });\n }}\n >\n \n \n );\n }}\n \n );\n};\n\nRowOptionsButton.displayName = 'RowOptionsButton';\n","import classNames from 'classnames';\nimport React from 'react';\nimport { Unsubscribable } from 'rxjs';\n\nimport { selectors } from '@grafana/e2e-selectors';\nimport { getTemplateSrv, RefreshEvent } from '@grafana/runtime';\nimport { Icon } from '@grafana/ui';\nimport appEvents from 'app/core/app_events';\n\nimport { ShowConfirmModalEvent } from '../../../../types/events';\nimport { DashboardModel } from '../../state/DashboardModel';\nimport { PanelModel } from '../../state/PanelModel';\nimport { RowOptionsButton } from '../RowOptions/RowOptionsButton';\n\nexport interface DashboardRowProps {\n panel: PanelModel;\n dashboard: DashboardModel;\n}\n\nexport class DashboardRow extends React.Component {\n sub?: Unsubscribable;\n\n componentDidMount() {\n this.sub = this.props.dashboard.events.subscribe(RefreshEvent, this.onVariableUpdated);\n }\n\n componentWillUnmount() {\n if (this.sub) {\n this.sub.unsubscribe();\n }\n }\n\n onVariableUpdated = () => {\n this.forceUpdate();\n };\n\n onToggle = () => {\n this.props.dashboard.toggleRow(this.props.panel);\n };\n\n onUpdate = (title: string, repeat?: string | null) => {\n this.props.panel.setProperty('title', title);\n this.props.panel.setProperty('repeat', repeat ?? undefined);\n this.props.panel.render();\n this.props.dashboard.processRepeats();\n this.forceUpdate();\n };\n\n onDelete = () => {\n appEvents.publish(\n new ShowConfirmModalEvent({\n title: 'Delete row',\n text: 'Are you sure you want to remove this row and all its panels?',\n altActionText: 'Delete row only',\n icon: 'trash-alt',\n onConfirm: () => {\n this.props.dashboard.removeRow(this.props.panel, true);\n },\n onAltAction: () => {\n this.props.dashboard.removeRow(this.props.panel, false);\n },\n })\n );\n };\n\n render() {\n const classes = classNames({\n 'dashboard-row': true,\n 'dashboard-row--collapsed': this.props.panel.collapsed,\n });\n\n const title = getTemplateSrv().replace(this.props.panel.title, this.props.panel.scopedVars, 'text');\n const count = this.props.panel.panels ? this.props.panel.panels.length : 0;\n const panels = count === 1 ? 'panel' : 'panels';\n const canEdit = this.props.dashboard.meta.canEdit === true;\n\n return (\n
\n \n \n {title}\n \n ({count} {panels})\n \n \n {canEdit && (\n
\n \n \n \n \n
\n )}\n {this.props.panel.collapsed === true && (\n
\n  \n
\n )}\n {canEdit &&
}\n
\n );\n }\n}\n","import classNames from 'classnames';\nimport React, { PureComponent, CSSProperties } from 'react';\nimport ReactGridLayout, { ItemCallback } from 'react-grid-layout';\nimport { connect, ConnectedProps } from 'react-redux';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { Subscription } from 'rxjs';\n\nimport { config } from '@grafana/runtime';\nimport { GRID_CELL_HEIGHT, GRID_CELL_VMARGIN, GRID_COLUMN_COUNT } from 'app/core/constants';\nimport { cleanAndRemoveMany } from 'app/features/panel/state/actions';\nimport { DashboardPanelsChangedEvent } from 'app/types/events';\n\nimport { AddPanelWidget } from '../components/AddPanelWidget';\nimport { DashboardRow } from '../components/DashboardRow';\nimport { DashboardModel, PanelModel } from '../state';\nimport { GridPos } from '../state/PanelModel';\n\nimport { DashboardPanel } from './DashboardPanel';\n\nexport interface OwnProps {\n dashboard: DashboardModel;\n editPanel: PanelModel | null;\n viewPanel: PanelModel | null;\n}\n\nexport interface State {\n isLayoutInitialized: boolean;\n}\n\nconst mapDispatchToProps = {\n cleanAndRemoveMany,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport type Props = OwnProps & ConnectedProps;\n\nexport class DashboardGridUnconnected extends PureComponent {\n private panelMap: { [key: string]: PanelModel } = {};\n private eventSubs = new Subscription();\n private windowHeight = 1200;\n private windowWidth = 1920;\n private gridWidth = 0;\n /** Used to keep track of mobile panel layout position */\n private lastPanelBottom = 0;\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n isLayoutInitialized: false,\n };\n }\n\n componentDidMount() {\n const { dashboard } = this.props;\n this.eventSubs.add(dashboard.events.subscribe(DashboardPanelsChangedEvent, this.triggerForceUpdate));\n }\n\n componentWillUnmount() {\n this.eventSubs.unsubscribe();\n this.props.cleanAndRemoveMany(Object.keys(this.panelMap));\n }\n\n buildLayout() {\n const layout = [];\n this.panelMap = {};\n\n for (const panel of this.props.dashboard.panels) {\n if (!panel.key) {\n panel.key = `panel-${panel.id}-${Date.now()}`;\n }\n this.panelMap[panel.key] = panel;\n\n if (!panel.gridPos) {\n console.log('panel without gridpos');\n continue;\n }\n\n const panelPos: any = {\n i: panel.key,\n x: panel.gridPos.x,\n y: panel.gridPos.y,\n w: panel.gridPos.w,\n h: panel.gridPos.h,\n };\n\n if (panel.type === 'row') {\n panelPos.w = GRID_COLUMN_COUNT;\n panelPos.h = 1;\n panelPos.isResizable = false;\n panelPos.isDraggable = panel.collapsed;\n }\n\n layout.push(panelPos);\n }\n\n return layout;\n }\n\n onLayoutChange = (newLayout: ReactGridLayout.Layout[]) => {\n for (const newPos of newLayout) {\n this.panelMap[newPos.i!].updateGridPos(newPos, this.state.isLayoutInitialized);\n }\n\n this.props.dashboard.sortPanelsByGridPos();\n\n // This is called on grid mount as it can correct invalid initial grid positions\n if (!this.state.isLayoutInitialized) {\n this.setState({ isLayoutInitialized: true });\n }\n };\n\n triggerForceUpdate = () => {\n this.forceUpdate();\n };\n\n updateGridPos = (item: ReactGridLayout.Layout, layout: ReactGridLayout.Layout[]) => {\n this.panelMap[item.i!].updateGridPos(item);\n };\n\n onResize: ItemCallback = (layout, oldItem, newItem) => {\n const panel = this.panelMap[newItem.i!];\n panel.updateGridPos(newItem);\n };\n\n onResizeStop: ItemCallback = (layout, oldItem, newItem) => {\n this.updateGridPos(newItem, layout);\n };\n\n onDragStop: ItemCallback = (layout, oldItem, newItem) => {\n this.updateGridPos(newItem, layout);\n };\n\n getPanelScreenPos(panel: PanelModel, gridWidth: number): { top: number; bottom: number } {\n let top = 0;\n\n // mobile layout\n if (gridWidth < config.theme2.breakpoints.values.md) {\n // In mobile layout panels are stacked so we just add the panel vertical margin to the last panel bottom position\n top = this.lastPanelBottom + GRID_CELL_VMARGIN;\n } else {\n // For top position we need to add back the vertical margin removed by translateGridHeightToScreenHeight\n top = translateGridHeightToScreenHeight(panel.gridPos.y) + GRID_CELL_VMARGIN;\n }\n\n this.lastPanelBottom = top + translateGridHeightToScreenHeight(panel.gridPos.h);\n\n return { top, bottom: this.lastPanelBottom };\n }\n\n renderPanels(gridWidth: number) {\n const panelElements = [];\n\n // Reset last panel bottom\n this.lastPanelBottom = 0;\n\n // This is to avoid layout re-flows, accessing window.innerHeight can trigger re-flow\n // We assume here that if width change height might have changed as well\n if (this.gridWidth !== gridWidth) {\n this.windowHeight = window.innerHeight ?? 1000;\n this.windowWidth = window.innerWidth;\n this.gridWidth = gridWidth;\n }\n\n for (const panel of this.props.dashboard.panels) {\n const panelClasses = classNames({ 'react-grid-item--fullscreen': panel.isViewing });\n\n panelElements.push(\n \n {(width: number, height: number) => {\n return this.renderPanel(panel, width, height);\n }}\n \n );\n }\n\n return panelElements;\n }\n\n renderPanel(panel: PanelModel, width: any, height: any) {\n if (panel.type === 'row') {\n return ;\n }\n\n if (panel.type === 'add-panel') {\n return ;\n }\n\n return (\n \n );\n }\n\n render() {\n const { dashboard } = this.props;\n\n /**\n * We have a parent with \"flex: 1 1 0\" we need to reset it to \"flex: 1 1 auto\" to have the AutoSizer\n * properly working. For more information go here:\n * https://github.com/bvaughn/react-virtualized/blob/master/docs/usingAutoSizer.md#can-i-use-autosizer-within-a-flex-container\n */\n return (\n
\n \n {({ width }) => {\n if (width === 0) {\n return null;\n }\n\n const draggable = width <= 769 ? false : dashboard.meta.canEdit;\n\n /*\n Disable draggable if mobile device, solving an issue with unintentionally\n moving panels. https://github.com/grafana/grafana/issues/18497\n theme.breakpoints.md = 769\n */\n\n return (\n /**\n * The children is using a width of 100% so we need to guarantee that it is wrapped\n * in an element that has the calculated size given by the AutoSizer. The AutoSizer\n * has a width of 0 and will let its content overflow its div.\n */\n
\n \n {this.renderPanels(width)}\n \n
\n );\n }}\n
\n
\n );\n }\n}\n\ninterface GrafanaGridItemProps extends Record {\n gridWidth?: number;\n gridPos?: GridPos;\n isViewing: string;\n windowHeight: number;\n windowWidth: number;\n children: any;\n}\n\n/**\n * A hacky way to intercept the react-layout-grid item dimensions and pass them to DashboardPanel\n */\nconst GrafanaGridItem = React.forwardRef((props, ref) => {\n const theme = config.theme2;\n let width = 100;\n let height = 100;\n\n const { gridWidth, gridPos, isViewing, windowHeight, windowWidth, ...divProps } = props;\n const style: CSSProperties = props.style ?? {};\n\n if (isViewing) {\n // In fullscreen view mode a single panel take up full width & 85% height\n width = gridWidth!;\n height = windowHeight * 0.85;\n style.height = height;\n style.width = '100%';\n } else if (windowWidth < theme.breakpoints.values.md) {\n // Mobile layout is a bit different, every panel take up full width\n width = props.gridWidth!;\n height = translateGridHeightToScreenHeight(gridPos!.h);\n style.height = height;\n style.width = '100%';\n } else {\n // Normal grid layout. The grid framework passes width and height directly to children as style props.\n width = parseFloat(props.style.width);\n height = parseFloat(props.style.height);\n }\n\n // props.children[0] is our main children. RGL adds the drag handle at props.children[1]\n return (\n
\n {/* Pass width and height to children as render props */}\n {[props.children[0](width, height), props.children.slice(1)]}\n
\n );\n});\n\n/**\n * This translates grid height dimensions to real pixels\n */\nfunction translateGridHeightToScreenHeight(gridHeight: number): number {\n return gridHeight * (GRID_CELL_HEIGHT + GRID_CELL_VMARGIN) - GRID_CELL_VMARGIN;\n}\n\nGrafanaGridItem.displayName = 'GridItemWithDimensions';\n\nexport const DashboardGrid = connector(DashboardGridUnconnected);\n","import classnames from 'classnames';\nimport React, { PureComponent } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\n\nimport { locationUtil, NavModelItem, TimeRange } from '@grafana/data';\nimport { selectors } from '@grafana/e2e-selectors';\nimport { locationService } from '@grafana/runtime';\nimport { Themeable2, withTheme2 } from '@grafana/ui';\nimport { notifyApp } from 'app/core/actions';\nimport { Page } from 'app/core/components/Page/Page';\nimport { PageLayoutType } from 'app/core/components/Page/types';\nimport { createErrorNotification } from 'app/core/copy/appNotification';\nimport { getKioskMode } from 'app/core/navigation/kiosk';\nimport { GrafanaRouteComponentProps } from 'app/core/navigation/types';\nimport { DashboardModel, PanelModel } from 'app/features/dashboard/state';\nimport { dashboardWatcher } from 'app/features/live/dashboard/dashboardWatcher';\nimport { getPageNavFromSlug, getRootContentNavModel } from 'app/features/storage/StorageFolderPage';\nimport { DashboardRoutes, KioskMode, StoreState } from 'app/types';\nimport { PanelEditEnteredEvent, PanelEditExitedEvent } from 'app/types/events';\n\nimport { cancelVariables, templateVarsChangedInUrl } from '../../variables/state/actions';\nimport { findTemplateVarChanges } from '../../variables/utils';\nimport { DashNav } from '../components/DashNav';\nimport { DashboardFailed } from '../components/DashboardLoading/DashboardFailed';\nimport { DashboardLoading } from '../components/DashboardLoading/DashboardLoading';\nimport { DashboardPrompt } from '../components/DashboardPrompt/DashboardPrompt';\nimport { DashboardSettings } from '../components/DashboardSettings';\nimport { PanelInspector } from '../components/Inspector/PanelInspector';\nimport { PanelEditor } from '../components/PanelEditor/PanelEditor';\nimport { SubMenu } from '../components/SubMenu/SubMenu';\nimport { DashboardGrid } from '../dashgrid/DashboardGrid';\nimport { liveTimer } from '../dashgrid/liveTimer';\nimport { getTimeSrv } from '../services/TimeSrv';\nimport { cleanUpDashboardAndVariables } from '../state/actions';\nimport { initDashboard } from '../state/initDashboard';\n\nexport interface DashboardPageRouteParams {\n uid?: string;\n type?: string;\n slug?: string;\n accessToken?: string;\n}\n\nexport type DashboardPageRouteSearchParams = {\n tab?: string;\n folderId?: string;\n editPanel?: string;\n viewPanel?: string;\n editview?: string;\n panelType?: string;\n inspect?: string;\n from?: string;\n to?: string;\n refresh?: string;\n};\n\nexport const mapStateToProps = (state: StoreState) => ({\n initPhase: state.dashboard.initPhase,\n initError: state.dashboard.initError,\n dashboard: state.dashboard.getModel(),\n});\n\nconst mapDispatchToProps = {\n initDashboard,\n cleanUpDashboardAndVariables,\n notifyApp,\n cancelVariables,\n templateVarsChangedInUrl,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\ntype OwnProps = {\n isPublic?: boolean;\n};\n\nexport type Props = OwnProps &\n Themeable2 &\n GrafanaRouteComponentProps &\n ConnectedProps;\n\nexport interface State {\n editPanel: PanelModel | null;\n viewPanel: PanelModel | null;\n updateScrollTop?: number;\n rememberScrollTop: number;\n showLoadingState: boolean;\n panelNotFound: boolean;\n editPanelAccessDenied: boolean;\n scrollElement?: HTMLDivElement;\n}\n\nexport class UnthemedDashboardPage extends PureComponent {\n private forceRouteReloadCounter = 0;\n state: State = this.getCleanState();\n pageNav?: NavModelItem;\n\n getCleanState(): State {\n return {\n editPanel: null,\n viewPanel: null,\n showLoadingState: false,\n rememberScrollTop: 0,\n panelNotFound: false,\n editPanelAccessDenied: false,\n };\n }\n\n componentDidMount() {\n this.initDashboard();\n this.forceRouteReloadCounter = (this.props.history.location.state as any)?.routeReloadCounter || 0;\n }\n\n componentWillUnmount() {\n this.closeDashboard();\n }\n\n closeDashboard() {\n this.props.cleanUpDashboardAndVariables();\n this.setState(this.getCleanState());\n }\n\n initDashboard() {\n const { dashboard, isPublic, match, queryParams } = this.props;\n\n if (dashboard) {\n this.closeDashboard();\n }\n\n this.props.initDashboard({\n urlSlug: match.params.slug,\n urlUid: match.params.uid,\n urlType: match.params.type,\n urlFolderId: queryParams.folderId,\n panelType: queryParams.panelType,\n routeName: this.props.route.routeName,\n fixUrl: !isPublic,\n accessToken: match.params.accessToken,\n });\n\n // small delay to start live updates\n setTimeout(this.updateLiveTimer, 250);\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n const { dashboard, match, templateVarsChangedInUrl } = this.props;\n const routeReloadCounter = (this.props.history.location.state as any)?.routeReloadCounter;\n\n if (!dashboard) {\n return;\n }\n\n this.updatePageNav(dashboard);\n\n if (\n prevProps.match.params.uid !== match.params.uid ||\n (routeReloadCounter !== undefined && this.forceRouteReloadCounter !== routeReloadCounter)\n ) {\n this.initDashboard();\n this.forceRouteReloadCounter = routeReloadCounter;\n return;\n }\n\n if (prevProps.location.search !== this.props.location.search) {\n const prevUrlParams = prevProps.queryParams;\n const urlParams = this.props.queryParams;\n\n if (urlParams?.from !== prevUrlParams?.from || urlParams?.to !== prevUrlParams?.to) {\n getTimeSrv().updateTimeRangeFromUrl();\n this.updateLiveTimer();\n }\n\n if (!prevUrlParams?.refresh && urlParams?.refresh) {\n getTimeSrv().setAutoRefresh(urlParams.refresh);\n }\n\n const templateVarChanges = findTemplateVarChanges(this.props.queryParams, prevProps.queryParams);\n\n if (templateVarChanges) {\n templateVarsChangedInUrl(dashboard.uid, templateVarChanges);\n }\n }\n\n // entering edit mode\n if (this.state.editPanel && !prevState.editPanel) {\n dashboardWatcher.setEditingState(true);\n\n // Some panels need to be notified when entering edit mode\n this.props.dashboard?.events.publish(new PanelEditEnteredEvent(this.state.editPanel.id));\n }\n\n // leaving edit mode\n if (!this.state.editPanel && prevState.editPanel) {\n dashboardWatcher.setEditingState(false);\n\n // Some panels need kicked when leaving edit mode\n this.props.dashboard?.events.publish(new PanelEditExitedEvent(prevState.editPanel.id));\n }\n\n if (this.state.editPanelAccessDenied) {\n this.props.notifyApp(createErrorNotification('Permission to edit panel denied'));\n locationService.partial({ editPanel: null });\n }\n\n if (this.state.panelNotFound) {\n this.props.notifyApp(createErrorNotification(`Panel not found`));\n locationService.partial({ editPanel: null, viewPanel: null });\n }\n }\n\n updateLiveTimer = () => {\n let tr: TimeRange | undefined = undefined;\n if (this.props.dashboard?.liveNow) {\n tr = getTimeSrv().timeRange();\n }\n liveTimer.setLiveTimeRange(tr);\n };\n\n static getDerivedStateFromProps(props: Props, state: State) {\n const { dashboard, queryParams } = props;\n\n const urlEditPanelId = queryParams.editPanel;\n const urlViewPanelId = queryParams.viewPanel;\n\n if (!dashboard) {\n return state;\n }\n\n // Entering edit mode\n if (!state.editPanel && urlEditPanelId) {\n const panel = dashboard.getPanelByUrlId(urlEditPanelId);\n if (!panel) {\n return { ...state, panelNotFound: true };\n }\n\n if (dashboard.canEditPanel(panel)) {\n return { ...state, editPanel: panel, rememberScrollTop: state.scrollElement?.scrollTop };\n } else {\n return { ...state, editPanelAccessDenied: true };\n }\n }\n // Leaving edit mode\n else if (state.editPanel && !urlEditPanelId) {\n return { ...state, editPanel: null, updateScrollTop: state.rememberScrollTop };\n }\n\n // Entering view mode\n if (!state.viewPanel && urlViewPanelId) {\n const panel = dashboard.getPanelByUrlId(urlViewPanelId);\n if (!panel) {\n return { ...state, panelNotFound: urlEditPanelId };\n }\n\n // This mutable state feels wrong to have in getDerivedStateFromProps\n // Should move this state out of dashboard in the future\n dashboard.initViewPanel(panel);\n\n return { ...state, viewPanel: panel, rememberScrollTop: state.scrollElement?.scrollTop, updateScrollTop: 0 };\n }\n // Leaving view mode\n else if (state.viewPanel && !urlViewPanelId) {\n // This mutable state feels wrong to have in getDerivedStateFromProps\n // Should move this state out of dashboard in the future\n dashboard.exitViewPanel(state.viewPanel);\n\n return { ...state, viewPanel: null, updateScrollTop: state.rememberScrollTop };\n }\n\n // if we removed url edit state, clear any panel not found state\n if (state.panelNotFound || (state.editPanelAccessDenied && !urlEditPanelId)) {\n return { ...state, panelNotFound: false, editPanelAccessDenied: false };\n }\n\n return state;\n }\n\n onAddPanel = () => {\n const { dashboard } = this.props;\n\n if (!dashboard) {\n return;\n }\n\n // Return if the \"Add panel\" exists already\n if (dashboard.panels.length > 0 && dashboard.panels[0].type === 'add-panel') {\n return;\n }\n\n dashboard.addPanel({\n type: 'add-panel',\n gridPos: { x: 0, y: 0, w: 12, h: 8 },\n title: 'Panel Title',\n });\n\n // scroll to top after adding panel\n this.setState({ updateScrollTop: 0 });\n };\n\n setScrollRef = (scrollElement: HTMLDivElement): void => {\n this.setState({ scrollElement });\n };\n\n getInspectPanel() {\n const { dashboard, queryParams } = this.props;\n\n const inspectPanelId = queryParams.inspect;\n\n if (!dashboard || !inspectPanelId) {\n return null;\n }\n\n const inspectPanel = dashboard.getPanelById(parseInt(inspectPanelId, 10));\n\n // cannot inspect panels plugin is not already loaded\n if (!inspectPanel) {\n return null;\n }\n\n return inspectPanel;\n }\n\n updatePageNav(dashboard: DashboardModel) {\n if (!this.pageNav || dashboard.title !== this.pageNav.text) {\n this.pageNav = {\n text: dashboard.title,\n url: locationUtil.getUrlForPartial(this.props.history.location, {\n editview: null,\n editPanel: null,\n viewPanel: null,\n }),\n };\n }\n\n // Check if folder changed\n if (\n dashboard.meta.folderTitle &&\n (!this.pageNav.parentItem || this.pageNav.parentItem.text !== dashboard.meta.folderTitle)\n ) {\n this.pageNav.parentItem = {\n text: dashboard.meta.folderTitle,\n url: `/dashboards/f/${dashboard.meta.folderUid}`,\n };\n }\n\n if (this.props.route.routeName === DashboardRoutes.Path) {\n const pageNav = getPageNavFromSlug(this.props.match.params.slug!);\n if (pageNav?.parentItem) {\n this.pageNav.parentItem = pageNav.parentItem;\n }\n }\n }\n\n getPageProps() {\n if (this.props.route.routeName === DashboardRoutes.Path) {\n return { navModel: getRootContentNavModel(), pageNav: this.pageNav };\n } else {\n return { navId: 'dashboards', pageNav: this.pageNav };\n }\n }\n\n render() {\n const { dashboard, initError, queryParams, isPublic } = this.props;\n const { editPanel, viewPanel, updateScrollTop } = this.state;\n const kioskMode = !isPublic ? getKioskMode() : KioskMode.Full;\n\n if (!dashboard) {\n return ;\n }\n\n const inspectPanel = this.getInspectPanel();\n const containerClassNames = classnames({ 'panel-in-fullscreen': viewPanel });\n\n const showSubMenu = !editPanel && kioskMode === KioskMode.Off && !this.props.queryParams.editview;\n const toolbar = kioskMode !== KioskMode.Full && (\n
\n \n
\n );\n\n return (\n \n \n\n {initError && }\n {showSubMenu && (\n
\n \n
\n )}\n\n \n\n {inspectPanel && }\n {editPanel && }\n {queryParams.editview && }\n \n );\n }\n}\n\nexport const DashboardPage = withTheme2(UnthemedDashboardPage);\nDashboardPage.displayName = 'DashboardPage';\nexport default connector(DashboardPage);\n","import React from 'react';\nimport { useAsync } from 'react-use';\n\nimport { DataFrame, NavModel, NavModelItem } from '@grafana/data';\nimport { config } from '@grafana/runtime';\nimport { Alert, Card, Icon, Spinner } from '@grafana/ui';\nimport { Page } from 'app/core/components/Page/Page';\nimport { GrafanaRouteComponentProps } from 'app/core/navigation/types';\n\nimport { getGrafanaStorage } from './storage';\n\nexport interface Props extends GrafanaRouteComponentProps<{ slug: string }> {}\n\nexport function StorageFolderPage(props: Props) {\n const slug = props.match.params.slug ?? '';\n const listing = useAsync((): Promise => {\n return getGrafanaStorage().list(slug);\n }, [slug]);\n\n const childRoot = slug.length > 0 ? `g/${slug}/` : 'g/';\n const pageNav = getPageNavFromSlug(slug);\n\n const renderListing = () => {\n if (listing.value) {\n const names = listing.value.fields[0].values.toArray();\n return names.map((item: string) => {\n let name = item;\n const isFolder = name.indexOf('.') < 0;\n const isDash = !isFolder && name.endsWith('.json');\n const url = `${childRoot}${name}`;\n\n return (\n \n {name}\n \n \n \n \n );\n });\n }\n if (listing.loading) {\n return ;\n }\n return
?
;\n };\n\n const navModel = getRootContentNavModel();\n\n return (\n \n {!config.featureToggles.topnav && (\n
\n This page is designed assuming topnav is enabled\n
\n )}\n {renderListing()}\n
\n );\n}\n\nexport function getPageNavFromSlug(slug: string) {\n const parts = slug.split('/');\n let pageNavs: NavModelItem[] = [];\n let url = 'g';\n let lastPageNav: NavModelItem | undefined;\n\n for (let i = 0; i < parts.length; i++) {\n url += `/${parts[i]}`;\n pageNavs.push({ text: parts[i], url, parentItem: lastPageNav });\n lastPageNav = pageNavs[pageNavs.length - 1];\n }\n\n return lastPageNav;\n}\n\nexport function getRootContentNavModel(): NavModel {\n return { main: { text: 'C:' }, node: { text: 'Content', url: '/g' } };\n}\n\nexport default StorageFolderPage;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDraggable = require(\"react-draggable\");\n\nvar _reactResizable = require(\"react-resizable\");\n\nvar _utils = require(\"./utils\");\n\nvar _calculateUtils = require(\"./calculateUtils\");\n\nvar _ReactGridLayoutPropTypes = require(\"./ReactGridLayoutPropTypes\");\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * An individual item within a ReactGridLayout.\n */\nvar GridItem = /*#__PURE__*/function (_React$Component) {\n _inherits(GridItem, _React$Component);\n\n var _super = _createSuper(GridItem);\n\n function GridItem() {\n var _this;\n\n _classCallCheck(this, GridItem);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n resizing: null,\n dragging: null,\n className: \"\"\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/_react.default.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, _ref) {\n var node = _ref.node;\n var _this$props = _this.props,\n onDragStart = _this$props.onDragStart,\n transformScale = _this$props.transformScale;\n if (!onDragStart) return;\n var newPosition\n /*: PartialPosition*/\n = {\n top: 0,\n left: 0\n }; // TODO: this wont work on nested parents\n\n var offsetParent = node.offsetParent;\n if (!offsetParent) return;\n var parentRect = offsetParent.getBoundingClientRect();\n var clientRect = node.getBoundingClientRect();\n var cLeft = clientRect.left / transformScale;\n var pLeft = parentRect.left / transformScale;\n var cTop = clientRect.top / transformScale;\n var pTop = parentRect.top / transformScale;\n newPosition.left = cLeft - pLeft + offsetParent.scrollLeft;\n newPosition.top = cTop - pTop + offsetParent.scrollTop;\n\n _this.setState({\n dragging: newPosition\n }); // Call callback with this data\n\n\n var _calcXY = (0, _calculateUtils.calcXY)(_this.getPositionParams(), newPosition.top, newPosition.left, _this.props.w, _this.props.h),\n x = _calcXY.x,\n y = _calcXY.y;\n\n return onDragStart.call(_assertThisInitialized(_this), _this.props.i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, _ref2) {\n var node = _ref2.node,\n deltaX = _ref2.deltaX,\n deltaY = _ref2.deltaY;\n var onDrag = _this.props.onDrag;\n if (!onDrag) return;\n\n if (!_this.state.dragging) {\n throw new Error(\"onDrag called before onDragStart.\");\n }\n\n var top = _this.state.dragging.top + deltaY;\n var left = _this.state.dragging.left + deltaX;\n var _this$props2 = _this.props,\n isBounded = _this$props2.isBounded,\n i = _this$props2.i,\n w = _this$props2.w,\n h = _this$props2.h,\n containerWidth = _this$props2.containerWidth;\n\n var positionParams = _this.getPositionParams(); // Boundary calculations; keeps items within the grid\n\n\n if (isBounded) {\n var offsetParent = node.offsetParent;\n\n if (offsetParent) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n rowHeight = _this$props3.rowHeight;\n var bottomBoundary = offsetParent.clientHeight - (0, _calculateUtils.calcGridItemWHPx)(h, rowHeight, margin[1]);\n top = (0, _calculateUtils.clamp)(top, 0, bottomBoundary);\n var colWidth = (0, _calculateUtils.calcGridColWidth)(positionParams);\n var rightBoundary = containerWidth - (0, _calculateUtils.calcGridItemWHPx)(w, colWidth, margin[0]);\n left = (0, _calculateUtils.clamp)(left, 0, rightBoundary);\n }\n }\n\n var newPosition\n /*: PartialPosition*/\n = {\n top: top,\n left: left\n };\n\n _this.setState({\n dragging: newPosition\n }); // Call callback with this data\n\n\n var _calcXY2 = (0, _calculateUtils.calcXY)(positionParams, top, left, w, h),\n x = _calcXY2.x,\n y = _calcXY2.y;\n\n return onDrag.call(_assertThisInitialized(_this), i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, _ref3) {\n var node = _ref3.node;\n var onDragStop = _this.props.onDragStop;\n if (!onDragStop) return;\n\n if (!_this.state.dragging) {\n throw new Error(\"onDragEnd called before onDragStart.\");\n }\n\n var _this$props4 = _this.props,\n w = _this$props4.w,\n h = _this$props4.h,\n i = _this$props4.i;\n var _this$state$dragging = _this.state.dragging,\n left = _this$state$dragging.left,\n top = _this$state$dragging.top;\n var newPosition\n /*: PartialPosition*/\n = {\n top: top,\n left: left\n };\n\n _this.setState({\n dragging: null\n });\n\n var _calcXY3 = (0, _calculateUtils.calcXY)(_this.getPositionParams(), top, left, w, h),\n x = _calcXY3.x,\n y = _calcXY3.y;\n\n return onDragStop.call(_assertThisInitialized(_this), i, x, y, {\n e: e,\n node: node,\n newPosition: newPosition\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStop\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResizeStop\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStart\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResizeStart\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function (e, callbackData) {\n _this.onResizeHandler(e, callbackData, \"onResize\");\n });\n\n return _this;\n }\n\n _createClass(GridItem, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps\n /*: Props*/\n , nextState\n /*: State*/\n )\n /*: boolean*/\n {\n // We can't deeply compare children. If the developer memoizes them, we can\n // use this optimization.\n if (this.props.children !== nextProps.children) return true;\n if (this.props.droppingPosition !== nextProps.droppingPosition) return true; // TODO memoize these calculations so they don't take so long?\n\n var oldPosition = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(this.props), this.props.x, this.props.y, this.props.w, this.props.h, this.state);\n var newPosition = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(nextProps), nextProps.x, nextProps.y, nextProps.w, nextProps.h, nextState);\n return !(0, _utils.fastPositionEqual)(oldPosition, newPosition) || this.props.useCSSTransforms !== nextProps.useCSSTransforms;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.moveDroppingItem({});\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props*/\n ) {\n this.moveDroppingItem(prevProps);\n } // When a droppingPosition is present, this means we should fire a move event, as if we had moved\n // this element by `x, y` pixels.\n\n }, {\n key: \"moveDroppingItem\",\n value: function moveDroppingItem(prevProps\n /*: Props*/\n ) {\n var droppingPosition = this.props.droppingPosition;\n if (!droppingPosition) return;\n var node = this.elementRef.current; // Can't find DOM node (are we unmounted?)\n\n if (!node) return;\n var prevDroppingPosition = prevProps.droppingPosition || {\n left: 0,\n top: 0\n };\n var dragging = this.state.dragging;\n var shouldDrag = dragging && droppingPosition.left !== prevDroppingPosition.left || droppingPosition.top !== prevDroppingPosition.top;\n\n if (!dragging) {\n this.onDragStart(droppingPosition.e, {\n node: node,\n deltaX: droppingPosition.left,\n deltaY: droppingPosition.top\n });\n } else if (shouldDrag) {\n var deltaX = droppingPosition.left - dragging.left;\n var deltaY = droppingPosition.top - dragging.top;\n this.onDrag(droppingPosition.e, {\n node: node,\n deltaX: deltaX,\n deltaY: deltaY\n });\n }\n }\n }, {\n key: \"getPositionParams\",\n value: function getPositionParams()\n /*: PositionParams*/\n {\n var props\n /*: Props*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n return {\n cols: props.cols,\n containerPadding: props.containerPadding,\n containerWidth: props.containerWidth,\n margin: props.margin,\n maxRows: props.maxRows,\n rowHeight: props.rowHeight\n };\n }\n /**\n * This is where we set the grid item's absolute placement. It gets a little tricky because we want to do it\n * well when server rendering, and the only way to do that properly is to use percentage width/left because\n * we don't know exactly what the browser viewport is.\n * Unfortunately, CSS Transforms, which are great for performance, break in this instance because a percentage\n * left is relative to the item itself, not its container! So we cannot use them on the server rendering pass.\n *\n * @param {Object} pos Position object with width, height, left, top.\n * @return {Object} Style object.\n */\n\n }, {\n key: \"createStyle\",\n value: function createStyle(pos\n /*: Position*/\n )\n /*: { [key: string]: ?string }*/\n {\n var _this$props5 = this.props,\n usePercentages = _this$props5.usePercentages,\n containerWidth = _this$props5.containerWidth,\n useCSSTransforms = _this$props5.useCSSTransforms;\n var style; // CSS Transforms support (default)\n\n if (useCSSTransforms) {\n style = (0, _utils.setTransform)(pos);\n } else {\n // top,left (slow)\n style = (0, _utils.setTopLeft)(pos); // This is used for server rendering.\n\n if (usePercentages) {\n style.left = (0, _utils.perc)(pos.left / containerWidth);\n style.width = (0, _utils.perc)(pos.width / containerWidth);\n }\n }\n\n return style;\n }\n /**\n * Mix a Draggable instance into a child.\n * @param {Element} child Child element.\n * @return {Element} Child wrapped in Draggable.\n */\n\n }, {\n key: \"mixinDraggable\",\n value: function mixinDraggable(child\n /*: ReactElement*/\n , isDraggable\n /*: boolean*/\n )\n /*: ReactElement*/\n {\n return /*#__PURE__*/_react.default.createElement(_reactDraggable.DraggableCore, {\n disabled: !isDraggable,\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop,\n handle: this.props.handle,\n cancel: \".react-resizable-handle\" + (this.props.cancel ? \",\" + this.props.cancel : \"\"),\n scale: this.props.transformScale,\n nodeRef: this.elementRef\n }, child);\n }\n /**\n * Mix a Resizable instance into a child.\n * @param {Element} child Child element.\n * @param {Object} position Position object (pixel values)\n * @return {Element} Child wrapped in Resizable.\n */\n\n }, {\n key: \"mixinResizable\",\n value: function mixinResizable(child\n /*: ReactElement*/\n , position\n /*: Position*/\n , isResizable\n /*: boolean*/\n )\n /*: ReactElement*/\n {\n var _this$props6 = this.props,\n cols = _this$props6.cols,\n x = _this$props6.x,\n minW = _this$props6.minW,\n minH = _this$props6.minH,\n maxW = _this$props6.maxW,\n maxH = _this$props6.maxH,\n transformScale = _this$props6.transformScale,\n resizeHandles = _this$props6.resizeHandles,\n resizeHandle = _this$props6.resizeHandle;\n var positionParams = this.getPositionParams(); // This is the max possible width - doesn't go to infinity because of the width of the window\n\n var maxWidth = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, cols - x, 0).width; // Calculate min/max constraints using our min & maxes\n\n var mins = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, minW, minH);\n var maxes = (0, _calculateUtils.calcGridItemPosition)(positionParams, 0, 0, maxW, maxH);\n var minConstraints = [mins.width, mins.height];\n var maxConstraints = [Math.min(maxes.width, maxWidth), Math.min(maxes.height, Infinity)];\n return /*#__PURE__*/_react.default.createElement(_reactResizable.Resizable // These are opts for the resize handle itself\n , {\n draggableOpts: {\n disabled: !isResizable\n },\n className: isResizable ? undefined : \"react-resizable-hide\",\n width: position.width,\n height: position.height,\n minConstraints: minConstraints,\n maxConstraints: maxConstraints,\n onResizeStop: this.onResizeStop,\n onResizeStart: this.onResizeStart,\n onResize: this.onResize,\n transformScale: transformScale,\n resizeHandles: resizeHandles,\n handle: resizeHandle\n }, child);\n }\n /**\n * onDragStart event handler\n * @param {Event} e event data\n * @param {Object} callbackData an object with node, delta and position information\n */\n\n }, {\n key: \"onResizeHandler\",\n value:\n /**\n * Wrapper around drag events to provide more useful data.\n * All drag events call the function with the given handler name,\n * with the signature (index, x, y).\n *\n * @param {String} handlerName Handler name to wrap.\n * @return {Function} Handler function.\n */\n function onResizeHandler(e\n /*: Event*/\n , _ref4, handlerName\n /*: string*/\n )\n /*: void*/\n {\n var node = _ref4.node,\n size = _ref4.size;\n var handler = this.props[handlerName];\n if (!handler) return;\n var _this$props7 = this.props,\n cols = _this$props7.cols,\n x = _this$props7.x,\n y = _this$props7.y,\n i = _this$props7.i,\n maxH = _this$props7.maxH,\n minH = _this$props7.minH;\n var _this$props8 = this.props,\n minW = _this$props8.minW,\n maxW = _this$props8.maxW; // Get new XY\n\n var _calcWH = (0, _calculateUtils.calcWH)(this.getPositionParams(), size.width, size.height, x, y),\n w = _calcWH.w,\n h = _calcWH.h; // minW should be at least 1 (TODO propTypes validation?)\n\n\n minW = Math.max(minW, 1); // maxW should be at most (cols - x)\n\n maxW = Math.min(maxW, cols - x); // Min/max capping\n\n w = (0, _calculateUtils.clamp)(w, minW, maxW);\n h = (0, _calculateUtils.clamp)(h, minH, maxH);\n this.setState({\n resizing: handlerName === \"onResizeStop\" ? null : size\n });\n handler.call(this, i, w, h, {\n e: e,\n node: node,\n size: size\n });\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactNode*/\n {\n var _this$props9 = this.props,\n x = _this$props9.x,\n y = _this$props9.y,\n w = _this$props9.w,\n h = _this$props9.h,\n isDraggable = _this$props9.isDraggable,\n isResizable = _this$props9.isResizable,\n droppingPosition = _this$props9.droppingPosition,\n useCSSTransforms = _this$props9.useCSSTransforms;\n var pos = (0, _calculateUtils.calcGridItemPosition)(this.getPositionParams(), x, y, w, h, this.state);\n\n var child = _react.default.Children.only(this.props.children); // Create the child element. We clone the existing element but modify its className and style.\n\n\n var newChild = /*#__PURE__*/_react.default.cloneElement(child, {\n ref: this.elementRef,\n className: (0, _clsx.default)(\"react-grid-item\", child.props.className, this.props.className, {\n static: this.props.static,\n resizing: Boolean(this.state.resizing),\n \"react-draggable\": isDraggable,\n \"react-draggable-dragging\": Boolean(this.state.dragging),\n dropping: Boolean(droppingPosition),\n cssTransforms: useCSSTransforms\n }),\n // We can set the width and height on the child, but unfortunately we can't set the position.\n style: _objectSpread(_objectSpread(_objectSpread({}, this.props.style), child.props.style), this.createStyle(pos))\n }); // Resizable support. This is usually on but the user can toggle it off.\n\n\n newChild = this.mixinResizable(newChild, pos, isResizable); // Draggable support. This is always on, except for with placeholders.\n\n newChild = this.mixinDraggable(newChild, isDraggable);\n return newChild;\n }\n }]);\n\n return GridItem;\n}(_react.default.Component);\n\nexports.default = GridItem;\n\n_defineProperty(GridItem, \"propTypes\", {\n // Children must be only a single element\n children: _propTypes.default.element,\n // General grid attributes\n cols: _propTypes.default.number.isRequired,\n containerWidth: _propTypes.default.number.isRequired,\n rowHeight: _propTypes.default.number.isRequired,\n margin: _propTypes.default.array.isRequired,\n maxRows: _propTypes.default.number.isRequired,\n containerPadding: _propTypes.default.array.isRequired,\n // These are all in grid units\n x: _propTypes.default.number.isRequired,\n y: _propTypes.default.number.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired,\n // All optional\n minW: function minW(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"minWidth not Number\");\n if (value > props.w || value > props.maxW) return new Error(\"minWidth larger than item width/maxWidth\");\n },\n maxW: function maxW(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"maxWidth not Number\");\n if (value < props.w || value < props.minW) return new Error(\"maxWidth smaller than item width/minWidth\");\n },\n minH: function minH(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"minHeight not Number\");\n if (value > props.h || value > props.maxH) return new Error(\"minHeight larger than item height/maxHeight\");\n },\n maxH: function maxH(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var value = props[propName];\n if (typeof value !== \"number\") return new Error(\"maxHeight not Number\");\n if (value < props.h || value < props.minH) return new Error(\"maxHeight smaller than item height/minHeight\");\n },\n // ID is nice to have for callbacks\n i: _propTypes.default.string.isRequired,\n // Resize handle options\n resizeHandles: _ReactGridLayoutPropTypes.resizeHandleAxesType,\n resizeHandle: _ReactGridLayoutPropTypes.resizeHandleType,\n // Functions\n onDragStop: _propTypes.default.func,\n onDragStart: _propTypes.default.func,\n onDrag: _propTypes.default.func,\n onResizeStop: _propTypes.default.func,\n onResizeStart: _propTypes.default.func,\n onResize: _propTypes.default.func,\n // Flags\n isDraggable: _propTypes.default.bool.isRequired,\n isResizable: _propTypes.default.bool.isRequired,\n isBounded: _propTypes.default.bool.isRequired,\n static: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool.isRequired,\n transformScale: _propTypes.default.number,\n // Others\n className: _propTypes.default.string,\n // Selector for draggable handle\n handle: _propTypes.default.string,\n // Selector for draggable cancel (see react-draggable)\n cancel: _propTypes.default.string,\n // Current position of a dropping element\n droppingPosition: _propTypes.default.shape({\n e: _propTypes.default.object.isRequired,\n left: _propTypes.default.number.isRequired,\n top: _propTypes.default.number.isRequired\n })\n});\n\n_defineProperty(GridItem, \"defaultProps\", {\n className: \"\",\n cancel: \"\",\n handle: \"\",\n minH: 1,\n minW: 1,\n maxH: Infinity,\n maxW: Infinity,\n transformScale: 1\n});","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _utils = require(\"./utils\");\n\nvar _calculateUtils = require(\"./calculateUtils\");\n\nvar _GridItem = _interopRequireDefault(require(\"./GridItem\"));\n\nvar _ReactGridLayoutPropTypes = _interopRequireDefault(require(\"./ReactGridLayoutPropTypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// End Types\nvar layoutClassName = \"react-grid-layout\";\nvar isFirefox = false; // Try...catch will protect from navigator not existing (e.g. node) or a bad implementation of navigator\n\ntry {\n isFirefox = /firefox/i.test(navigator.userAgent);\n} catch (e) {\n /* Ignore */\n}\n/**\n * A reactive, fluid grid layout with draggable, resizable components.\n */\n\n\nvar ReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ReactGridLayout, _React$Component);\n\n var _super = _createSuper(ReactGridLayout);\n\n function ReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ReactGridLayout);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n activeDrag: null,\n layout: (0, _utils.synchronizeLayoutWithChildren)(_this.props.layout, _this.props.children, _this.props.cols, // Legacy support for verticalCompact: false\n (0, _utils.compactType)(_this.props), _this.props.allowOverlap),\n mounted: false,\n oldDragItem: null,\n oldLayout: null,\n oldResizeItem: null,\n droppingDOMNode: null,\n children: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"dragEnterCounter\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (i\n /*: string*/\n , x\n /*: number*/\n , y\n /*: number*/\n , _ref) {\n var e = _ref.e,\n node = _ref.node;\n var layout = _this.state.layout;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return;\n\n _this.setState({\n oldDragItem: (0, _utils.cloneLayoutItem)(l),\n oldLayout: layout\n });\n\n return _this.props.onDragStart(layout, l, l, null, e, node);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (i, x, y, _ref2) {\n var e = _ref2.e,\n node = _ref2.node;\n var oldDragItem = _this.state.oldDragItem;\n var layout = _this.state.layout;\n var _this$props = _this.props,\n cols = _this$props.cols,\n allowOverlap = _this$props.allowOverlap,\n preventCollision = _this$props.preventCollision;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return; // Create placeholder (display only)\n\n var placeholder = {\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n placeholder: true,\n i: i\n }; // Move the element to the dragged location.\n\n var isUserAction = true;\n layout = (0, _utils.moveElement)(layout, l, x, y, isUserAction, preventCollision, (0, _utils.compactType)(_this.props), cols, allowOverlap);\n\n _this.props.onDrag(layout, oldDragItem, l, placeholder, e, node);\n\n _this.setState({\n layout: allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols),\n activeDrag: placeholder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (i, x, y, _ref3) {\n var e = _ref3.e,\n node = _ref3.node;\n if (!_this.state.activeDrag) return;\n var oldDragItem = _this.state.oldDragItem;\n var layout = _this.state.layout;\n var _this$props2 = _this.props,\n cols = _this$props2.cols,\n preventCollision = _this$props2.preventCollision,\n allowOverlap = _this$props2.allowOverlap;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return; // Move the element here\n\n var isUserAction = true;\n layout = (0, _utils.moveElement)(layout, l, x, y, isUserAction, preventCollision, (0, _utils.compactType)(_this.props), cols, allowOverlap);\n\n _this.props.onDragStop(layout, oldDragItem, l, null, e, node); // Set state\n\n\n var newLayout = allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols);\n var oldLayout = _this.state.oldLayout;\n\n _this.setState({\n activeDrag: null,\n layout: newLayout,\n oldDragItem: null,\n oldLayout: null\n });\n\n _this.onLayoutMaybeChanged(newLayout, oldLayout);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStart\", function (i, w, h, _ref4) {\n var e = _ref4.e,\n node = _ref4.node;\n var layout = _this.state.layout;\n var l = (0, _utils.getLayoutItem)(layout, i);\n if (!l) return;\n\n _this.setState({\n oldResizeItem: (0, _utils.cloneLayoutItem)(l),\n oldLayout: _this.state.layout\n });\n\n _this.props.onResizeStart(layout, l, l, null, e, node);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function (i, w, h, _ref5) {\n var e = _ref5.e,\n node = _ref5.node;\n var _this$state = _this.state,\n layout = _this$state.layout,\n oldResizeItem = _this$state.oldResizeItem;\n var _this$props3 = _this.props,\n cols = _this$props3.cols,\n preventCollision = _this$props3.preventCollision,\n allowOverlap = _this$props3.allowOverlap;\n\n var _withLayoutItem = (0, _utils.withLayoutItem)(layout, i, function (l) {\n // Something like quad tree should be used\n // to find collisions faster\n var hasCollisions;\n\n if (preventCollision && !allowOverlap) {\n var collisions = (0, _utils.getAllCollisions)(layout, _objectSpread(_objectSpread({}, l), {}, {\n w: w,\n h: h\n })).filter(function (layoutItem) {\n return layoutItem.i !== l.i;\n });\n hasCollisions = collisions.length > 0; // If we're colliding, we need adjust the placeholder.\n\n // If we're colliding, we need adjust the placeholder.\n if (hasCollisions) {\n // adjust w && h to maximum allowed space\n var leastX = Infinity,\n leastY = Infinity;\n collisions.forEach(function (layoutItem) {\n if (layoutItem.x > l.x) leastX = Math.min(leastX, layoutItem.x);\n if (layoutItem.y > l.y) leastY = Math.min(leastY, layoutItem.y);\n });\n if (Number.isFinite(leastX)) l.w = leastX - l.x;\n if (Number.isFinite(leastY)) l.h = leastY - l.y;\n }\n }\n\n if (!hasCollisions) {\n // Set new width and height.\n l.w = w;\n l.h = h;\n }\n\n return l;\n }),\n _withLayoutItem2 = _slicedToArray(_withLayoutItem, 2),\n newLayout = _withLayoutItem2[0],\n l = _withLayoutItem2[1]; // Shouldn't ever happen, but typechecking makes it necessary\n\n\n if (!l) return; // Create placeholder element (display only)\n\n var placeholder = {\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n static: true,\n i: i\n };\n\n _this.props.onResize(newLayout, oldResizeItem, l, placeholder, e, node); // Re-compact the newLayout and set the drag placeholder.\n\n\n _this.setState({\n layout: allowOverlap ? newLayout : (0, _utils.compact)(newLayout, (0, _utils.compactType)(_this.props), cols),\n activeDrag: placeholder\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onResizeStop\", function (i, w, h, _ref6) {\n var e = _ref6.e,\n node = _ref6.node;\n var _this$state2 = _this.state,\n layout = _this$state2.layout,\n oldResizeItem = _this$state2.oldResizeItem;\n var _this$props4 = _this.props,\n cols = _this$props4.cols,\n allowOverlap = _this$props4.allowOverlap;\n var l = (0, _utils.getLayoutItem)(layout, i);\n\n _this.props.onResizeStop(layout, oldResizeItem, l, null, e, node); // Set state\n\n\n var newLayout = allowOverlap ? layout : (0, _utils.compact)(layout, (0, _utils.compactType)(_this.props), cols);\n var oldLayout = _this.state.oldLayout;\n\n _this.setState({\n activeDrag: null,\n layout: newLayout,\n oldResizeItem: null,\n oldLayout: null\n });\n\n _this.onLayoutMaybeChanged(newLayout, oldLayout);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragOver\", function (e) {\n var _e$nativeEvent$target;\n\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation(); // we should ignore events from layout's children in Firefox\n // to avoid unpredictable jumping of a dropping placeholder\n // FIXME remove this hack\n\n if (isFirefox && // $FlowIgnore can't figure this out\n !((_e$nativeEvent$target = e.nativeEvent.target) !== null && _e$nativeEvent$target !== void 0 && _e$nativeEvent$target.classList.contains(layoutClassName))) {\n return false;\n }\n\n var _this$props5 = _this.props,\n droppingItem = _this$props5.droppingItem,\n onDropDragOver = _this$props5.onDropDragOver,\n margin = _this$props5.margin,\n cols = _this$props5.cols,\n rowHeight = _this$props5.rowHeight,\n maxRows = _this$props5.maxRows,\n width = _this$props5.width,\n containerPadding = _this$props5.containerPadding,\n transformScale = _this$props5.transformScale; // Allow user to customize the dropping item or short-circuit the drop based on the results\n // of the `onDragOver(e: Event)` callback.\n\n var onDragOverResult = onDropDragOver === null || onDropDragOver === void 0 ? void 0 : onDropDragOver(e);\n\n if (onDragOverResult === false) {\n if (_this.state.droppingDOMNode) {\n _this.removeDroppingPlaceholder();\n }\n\n return false;\n }\n\n var finalDroppingItem = _objectSpread(_objectSpread({}, droppingItem), onDragOverResult);\n\n var layout = _this.state.layout; // This is relative to the DOM element that this event fired for.\n\n var _e$nativeEvent = e.nativeEvent,\n layerX = _e$nativeEvent.layerX,\n layerY = _e$nativeEvent.layerY;\n var droppingPosition = {\n left: layerX / transformScale,\n top: layerY / transformScale,\n e: e\n };\n\n if (!_this.state.droppingDOMNode) {\n var positionParams\n /*: PositionParams*/\n = {\n cols: cols,\n margin: margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n containerWidth: width,\n containerPadding: containerPadding || margin\n };\n var calculatedPosition = (0, _calculateUtils.calcXY)(positionParams, layerY, layerX, finalDroppingItem.w, finalDroppingItem.h);\n\n _this.setState({\n droppingDOMNode: /*#__PURE__*/React.createElement(\"div\", {\n key: finalDroppingItem.i\n }),\n droppingPosition: droppingPosition,\n layout: [].concat(_toConsumableArray(layout), [_objectSpread(_objectSpread({}, finalDroppingItem), {}, {\n x: calculatedPosition.x,\n y: calculatedPosition.y,\n static: false,\n isDraggable: true\n })])\n });\n } else if (_this.state.droppingPosition) {\n var _this$state$droppingP = _this.state.droppingPosition,\n left = _this$state$droppingP.left,\n top = _this$state$droppingP.top;\n var shouldUpdatePosition = left != layerX || top != layerY;\n\n if (shouldUpdatePosition) {\n _this.setState({\n droppingPosition: droppingPosition\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"removeDroppingPlaceholder\", function () {\n var _this$props6 = _this.props,\n droppingItem = _this$props6.droppingItem,\n cols = _this$props6.cols;\n var layout = _this.state.layout;\n var newLayout = (0, _utils.compact)(layout.filter(function (l) {\n return l.i !== droppingItem.i;\n }), (0, _utils.compactType)(_this.props), cols);\n\n _this.setState({\n layout: newLayout,\n droppingDOMNode: null,\n activeDrag: null,\n droppingPosition: undefined\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragLeave\", function (e) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n _this.dragEnterCounter--; // onDragLeave can be triggered on each layout's child.\n // But we know that count of dragEnter and dragLeave events\n // will be balanced after leaving the layout's container\n // so we can increase and decrease count of dragEnter and\n // when it'll be equal to 0 we'll remove the placeholder\n\n if (_this.dragEnterCounter === 0) {\n _this.removeDroppingPlaceholder();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragEnter\", function (e) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n _this.dragEnterCounter++;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrop\", function (e\n /*: Event*/\n ) {\n e.preventDefault(); // Prevent any browser native action\n\n e.stopPropagation();\n var droppingItem = _this.props.droppingItem;\n var layout = _this.state.layout;\n var item = layout.find(function (l) {\n return l.i === droppingItem.i;\n }); // reset dragEnter counter on drop\n\n _this.dragEnterCounter = 0;\n\n _this.removeDroppingPlaceholder();\n\n _this.props.onDrop(layout, item, e);\n });\n\n return _this;\n }\n\n _createClass(ReactGridLayout, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n mounted: true\n }); // Possibly call back with layout on mount. This should be done after correcting the layout width\n // to ensure we don't rerender with the wrong width.\n\n this.onLayoutMaybeChanged(this.state.layout, this.props.layout);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps\n /*: Props*/\n , nextState\n /*: State*/\n )\n /*: boolean*/\n {\n return (// NOTE: this is almost always unequal. Therefore the only way to get better performance\n // from SCU is if the user intentionally memoizes children. If they do, and they can\n // handle changes properly, performance will increase.\n this.props.children !== nextProps.children || !(0, _utils.fastRGLPropsEqual)(this.props, nextProps, _lodash.default) || this.state.activeDrag !== nextState.activeDrag || this.state.mounted !== nextState.mounted || this.state.droppingPosition !== nextState.droppingPosition\n );\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props*/\n , prevState\n /*: State*/\n ) {\n if (!this.state.activeDrag) {\n var newLayout = this.state.layout;\n var oldLayout = prevState.layout;\n this.onLayoutMaybeChanged(newLayout, oldLayout);\n }\n }\n /**\n * Calculates a pixel value for the container.\n * @return {String} Container height in pixels.\n */\n\n }, {\n key: \"containerHeight\",\n value: function containerHeight()\n /*: ?string*/\n {\n if (!this.props.autoSize) return;\n var nbRow = (0, _utils.bottom)(this.state.layout);\n var containerPaddingY = this.props.containerPadding ? this.props.containerPadding[1] : this.props.margin[1];\n return nbRow * this.props.rowHeight + (nbRow - 1) * this.props.margin[1] + containerPaddingY * 2 + \"px\";\n }\n /**\n * When dragging starts\n * @param {String} i Id of the child\n * @param {Number} x X position of the move\n * @param {Number} y Y position of the move\n * @param {Event} e The mousedown event\n * @param {Element} node The current dragging DOM element\n */\n\n }, {\n key: \"onLayoutMaybeChanged\",\n value: function onLayoutMaybeChanged(newLayout\n /*: Layout*/\n , oldLayout\n /*: ?Layout*/\n ) {\n if (!oldLayout) oldLayout = this.state.layout;\n\n if (!(0, _lodash.default)(oldLayout, newLayout)) {\n this.props.onLayoutChange(newLayout);\n }\n }\n }, {\n key: \"placeholder\",\n value:\n /**\n * Create a placeholder object.\n * @return {Element} Placeholder div.\n */\n function placeholder()\n /*: ?ReactElement*/\n {\n var activeDrag = this.state.activeDrag;\n if (!activeDrag) return null;\n var _this$props7 = this.props,\n width = _this$props7.width,\n cols = _this$props7.cols,\n margin = _this$props7.margin,\n containerPadding = _this$props7.containerPadding,\n rowHeight = _this$props7.rowHeight,\n maxRows = _this$props7.maxRows,\n useCSSTransforms = _this$props7.useCSSTransforms,\n transformScale = _this$props7.transformScale; // {...this.state.activeDrag} is pretty slow, actually\n\n return /*#__PURE__*/React.createElement(_GridItem.default, {\n w: activeDrag.w,\n h: activeDrag.h,\n x: activeDrag.x,\n y: activeDrag.y,\n i: activeDrag.i,\n className: \"react-grid-placeholder\",\n containerWidth: width,\n cols: cols,\n margin: margin,\n containerPadding: containerPadding || margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n isDraggable: false,\n isResizable: false,\n isBounded: false,\n useCSSTransforms: useCSSTransforms,\n transformScale: transformScale\n }, /*#__PURE__*/React.createElement(\"div\", null));\n }\n /**\n * Given a grid item, set its style attributes & surround in a .\n * @param {Element} child React element.\n * @return {Element} Element wrapped in draggable and properly placed.\n */\n\n }, {\n key: \"processGridItem\",\n value: function processGridItem(child\n /*: ReactElement*/\n , isDroppingItem\n /*: boolean*/\n )\n /*: ?ReactElement*/\n {\n if (!child || !child.key) return;\n var l = (0, _utils.getLayoutItem)(this.state.layout, String(child.key));\n if (!l) return null;\n var _this$props8 = this.props,\n width = _this$props8.width,\n cols = _this$props8.cols,\n margin = _this$props8.margin,\n containerPadding = _this$props8.containerPadding,\n rowHeight = _this$props8.rowHeight,\n maxRows = _this$props8.maxRows,\n isDraggable = _this$props8.isDraggable,\n isResizable = _this$props8.isResizable,\n isBounded = _this$props8.isBounded,\n useCSSTransforms = _this$props8.useCSSTransforms,\n transformScale = _this$props8.transformScale,\n draggableCancel = _this$props8.draggableCancel,\n draggableHandle = _this$props8.draggableHandle,\n resizeHandles = _this$props8.resizeHandles,\n resizeHandle = _this$props8.resizeHandle;\n var _this$state3 = this.state,\n mounted = _this$state3.mounted,\n droppingPosition = _this$state3.droppingPosition; // Determine user manipulations possible.\n // If an item is static, it can't be manipulated by default.\n // Any properties defined directly on the grid item will take precedence.\n\n var draggable = typeof l.isDraggable === \"boolean\" ? l.isDraggable : !l.static && isDraggable;\n var resizable = typeof l.isResizable === \"boolean\" ? l.isResizable : !l.static && isResizable;\n var resizeHandlesOptions = l.resizeHandles || resizeHandles; // isBounded set on child if set on parent, and child is not explicitly false\n\n var bounded = draggable && isBounded && l.isBounded !== false;\n return /*#__PURE__*/React.createElement(_GridItem.default, {\n containerWidth: width,\n cols: cols,\n margin: margin,\n containerPadding: containerPadding || margin,\n maxRows: maxRows,\n rowHeight: rowHeight,\n cancel: draggableCancel,\n handle: draggableHandle,\n onDragStop: this.onDragStop,\n onDragStart: this.onDragStart,\n onDrag: this.onDrag,\n onResizeStart: this.onResizeStart,\n onResize: this.onResize,\n onResizeStop: this.onResizeStop,\n isDraggable: draggable,\n isResizable: resizable,\n isBounded: bounded,\n useCSSTransforms: useCSSTransforms && mounted,\n usePercentages: !mounted,\n transformScale: transformScale,\n w: l.w,\n h: l.h,\n x: l.x,\n y: l.y,\n i: l.i,\n minH: l.minH,\n minW: l.minW,\n maxH: l.maxH,\n maxW: l.maxW,\n static: l.static,\n droppingPosition: isDroppingItem ? droppingPosition : undefined,\n resizeHandles: resizeHandlesOptions,\n resizeHandle: resizeHandle\n }, child);\n } // Called while dragging an element. Part of browser native drag/drop API.\n // Native event target might be the layout itself, or an element within the layout.\n\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element<\"div\">*/\n {\n var _this2 = this;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n style = _this$props9.style,\n isDroppable = _this$props9.isDroppable,\n innerRef = _this$props9.innerRef;\n var mergedClassName = (0, _clsx.default)(layoutClassName, className);\n\n var mergedStyle = _objectSpread({\n height: this.containerHeight()\n }, style);\n\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: innerRef,\n className: mergedClassName,\n style: mergedStyle,\n onDrop: isDroppable ? this.onDrop : _utils.noop,\n onDragLeave: isDroppable ? this.onDragLeave : _utils.noop,\n onDragEnter: isDroppable ? this.onDragEnter : _utils.noop,\n onDragOver: isDroppable ? this.onDragOver : _utils.noop\n }, React.Children.map(this.props.children, function (child) {\n return _this2.processGridItem(child);\n }), isDroppable && this.state.droppingDOMNode && this.processGridItem(this.state.droppingDOMNode, true), this.placeholder());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props*/\n , prevState\n /*: State*/\n )\n /*: $Shape | null*/\n {\n var newLayoutBase;\n\n if (prevState.activeDrag) {\n return null;\n } // Legacy support for compactType\n // Allow parent to set layout directly.\n\n\n if (!(0, _lodash.default)(nextProps.layout, prevState.propsLayout) || nextProps.compactType !== prevState.compactType) {\n newLayoutBase = nextProps.layout;\n } else if (!(0, _utils.childrenEqual)(nextProps.children, prevState.children)) {\n // If children change, also regenerate the layout. Use our state\n // as the base in case because it may be more up to date than\n // what is in props.\n newLayoutBase = prevState.layout;\n } // We need to regenerate the layout.\n\n\n if (newLayoutBase) {\n var newLayout = (0, _utils.synchronizeLayoutWithChildren)(newLayoutBase, nextProps.children, nextProps.cols, (0, _utils.compactType)(nextProps), nextProps.allowOverlap);\n return {\n layout: newLayout,\n // We need to save these props to state for using\n // getDerivedStateFromProps instead of componentDidMount (in which we would get extra rerender)\n compactType: nextProps.compactType,\n children: nextProps.children,\n propsLayout: nextProps.layout\n };\n }\n\n return null;\n }\n }]);\n\n return ReactGridLayout;\n}(React.Component);\n\nexports.default = ReactGridLayout;\n\n_defineProperty(ReactGridLayout, \"displayName\", \"ReactGridLayout\");\n\n_defineProperty(ReactGridLayout, \"propTypes\", _ReactGridLayoutPropTypes.default);\n\n_defineProperty(ReactGridLayout, \"defaultProps\", {\n autoSize: true,\n cols: 12,\n className: \"\",\n style: {},\n draggableHandle: \"\",\n draggableCancel: \"\",\n containerPadding: null,\n rowHeight: 150,\n maxRows: Infinity,\n // infinite vertical growth\n layout: [],\n margin: [10, 10],\n isBounded: false,\n isDraggable: true,\n isResizable: true,\n allowOverlap: false,\n isDroppable: false,\n useCSSTransforms: true,\n transformScale: 1,\n verticalCompact: true,\n compactType: \"vertical\",\n preventCollision: false,\n droppingItem: {\n i: \"__dropping-elem__\",\n h: 1,\n w: 1\n },\n resizeHandles: [\"se\"],\n onLayoutChange: _utils.noop,\n onDragStart: _utils.noop,\n onDrag: _utils.noop,\n onDragStop: _utils.noop,\n onResizeStart: _utils.noop,\n onResize: _utils.noop,\n onResizeStop: _utils.noop,\n onDrop: _utils.noop,\n onDropDragOver: _utils.noop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.resizeHandleType = exports.resizeHandleAxesType = exports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Defines which resize handles should be rendered (default: 'se')\n// Allows for any combination of:\n// 's' - South handle (bottom-center)\n// 'w' - West handle (left-center)\n// 'e' - East handle (right-center)\n// 'n' - North handle (top-center)\n// 'sw' - Southwest handle (bottom-left)\n// 'nw' - Northwest handle (top-left)\n// 'se' - Southeast handle (bottom-right)\n// 'ne' - Northeast handle (top-right)\nvar resizeHandleAxesType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.arrayOf(_propTypes.default.oneOf([\"s\", \"w\", \"e\", \"n\", \"sw\", \"nw\", \"se\", \"ne\"])); // Custom component for resize handles\n\n\nexports.resizeHandleAxesType = resizeHandleAxesType;\n\nvar resizeHandleType\n/*: ReactPropsChainableTypeChecker*/\n= _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]);\n/*:: export type Props = {|\n className: string,\n style: Object,\n width: number,\n autoSize: boolean,\n cols: number,\n draggableCancel: string,\n draggableHandle: string,\n verticalCompact: boolean,\n compactType: CompactType,\n layout: Layout,\n margin: [number, number],\n containerPadding: ?[number, number],\n rowHeight: number,\n maxRows: number,\n isBounded: boolean,\n isDraggable: boolean,\n isResizable: boolean,\n isDroppable: boolean,\n preventCollision: boolean,\n useCSSTransforms: boolean,\n transformScale: number,\n droppingItem: $Shape,\n resizeHandles: ResizeHandleAxis[],\n resizeHandle?: ResizeHandle,\n allowOverlap: boolean,\n\n // Callbacks\n onLayoutChange: Layout => void,\n onDrag: EventCallback,\n onDragStart: EventCallback,\n onDragStop: EventCallback,\n onResize: EventCallback,\n onResizeStart: EventCallback,\n onResizeStop: EventCallback,\n onDropDragOver: (e: DragOverEvent) => ?({| w?: number, h?: number |} | false),\n onDrop: (layout: Layout, item: ?LayoutItem, e: Event) => void,\n children: ReactChildrenArray>,\n innerRef?: Ref<\"div\">\n|};*/\n\n/*:: export type DefaultProps = $Diff<\n Props,\n {\n children: ReactChildrenArray>,\n width: number\n }\n>;*/\n\n\nexports.resizeHandleType = resizeHandleType;\nvar _default = {\n //\n // Basic props\n //\n className: _propTypes.default.string,\n style: _propTypes.default.object,\n // This can be set explicitly. If it is not set, it will automatically\n // be set to the container width. Note that resizes will *not* cause this to adjust.\n // If you need that behavior, use WidthProvider.\n width: _propTypes.default.number,\n // If true, the container height swells and contracts to fit contents\n autoSize: _propTypes.default.bool,\n // # of cols.\n cols: _propTypes.default.number,\n // A selector that will not be draggable.\n draggableCancel: _propTypes.default.string,\n // A selector for the draggable handler\n draggableHandle: _propTypes.default.string,\n // Deprecated\n verticalCompact: function verticalCompact(props\n /*: Props*/\n ) {\n if (props.verticalCompact === false && process.env.NODE_ENV !== \"production\") {\n console.warn( // eslint-disable-line no-console\n \"`verticalCompact` on is deprecated and will be removed soon. \" + 'Use `compactType`: \"horizontal\" | \"vertical\" | null.');\n }\n },\n // Choose vertical or hotizontal compaction\n compactType: (_propTypes.default.oneOf([\"vertical\", \"horizontal\"])\n /*: ReactPropsChainableTypeChecker*/\n ),\n // layout is an array of object with the format:\n // {x: Number, y: Number, w: Number, h: Number, i: String}\n layout: function layout(props\n /*: Props*/\n ) {\n var layout = props.layout; // I hope you're setting the data-grid property on the grid items\n\n if (layout === undefined) return;\n\n require(\"./utils\").validateLayout(layout, \"layout\");\n },\n //\n // Grid Dimensions\n //\n // Margin between items [x, y] in px\n margin: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Padding inside the container [x, y] in px\n containerPadding: (_propTypes.default.arrayOf(_propTypes.default.number)\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Rows have a static height, but you can change this based on breakpoints if you like\n rowHeight: _propTypes.default.number,\n // Default Infinity, but you can specify a max here if you like.\n // Note that this isn't fully fleshed out and won't error if you specify a layout that\n // extends beyond the row capacity. It will, however, not allow users to drag/resize\n // an item past the barrier. They can push items beyond the barrier, though.\n // Intentionally not documented for this reason.\n maxRows: _propTypes.default.number,\n //\n // Flags\n //\n isBounded: _propTypes.default.bool,\n isDraggable: _propTypes.default.bool,\n isResizable: _propTypes.default.bool,\n // If true, grid can be placed one over the other.\n allowOverlap: _propTypes.default.bool,\n // If true, grid items won't change position when being dragged over.\n preventCollision: _propTypes.default.bool,\n // Use CSS transforms instead of top/left\n useCSSTransforms: _propTypes.default.bool,\n // parent layout transform scale\n transformScale: _propTypes.default.number,\n // If true, an external element can trigger onDrop callback with a specific grid position as a parameter\n isDroppable: _propTypes.default.bool,\n // Resize handle options\n resizeHandles: resizeHandleAxesType,\n resizeHandle: resizeHandleType,\n //\n // Callbacks\n //\n // Callback so you can save the layout. Calls after each drag & resize stops.\n onLayoutChange: _propTypes.default.func,\n // Calls when drag starts. Callback is of the signature (layout, oldItem, newItem, placeholder, e, ?node).\n // All callbacks below have the same signature. 'start' and 'stop' callbacks omit the 'placeholder'.\n onDragStart: _propTypes.default.func,\n // Calls on each drag movement.\n onDrag: _propTypes.default.func,\n // Calls when drag is complete.\n onDragStop: _propTypes.default.func,\n //Calls when resize starts.\n onResizeStart: _propTypes.default.func,\n // Calls when resize movement happens.\n onResize: _propTypes.default.func,\n // Calls when resize is complete.\n onResizeStop: _propTypes.default.func,\n // Calls when some element is dropped.\n onDrop: _propTypes.default.func,\n //\n // Other validations\n //\n droppingItem: (_propTypes.default.shape({\n i: _propTypes.default.string.isRequired,\n w: _propTypes.default.number.isRequired,\n h: _propTypes.default.number.isRequired\n })\n /*: ReactPropsChainableTypeChecker*/\n ),\n // Children must not have duplicate keys.\n children: function children(props\n /*: Props*/\n , propName\n /*: string*/\n ) {\n var children = props[propName]; // Check children keys for duplicates. Throw if found.\n\n var keys = {};\n\n _react.default.Children.forEach(children, function (child) {\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return;\n\n if (keys[child.key]) {\n throw new Error('Duplicate child key \"' + child.key + '\" found! This will cause problems in ReactGridLayout.');\n }\n\n keys[child.key] = true;\n });\n },\n // Optional ref for getting a reference for the wrapping div.\n innerRef: _propTypes.default.any\n};\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _utils = require(\"./utils\");\n\nvar _responsiveUtils = require(\"./responsiveUtils\");\n\nvar _ReactGridLayout = _interopRequireDefault(require(\"./ReactGridLayout\"));\n\nvar _excluded = [\"breakpoint\", \"breakpoints\", \"cols\", \"layouts\", \"margin\", \"containerPadding\", \"onBreakpointChange\", \"onLayoutChange\", \"onWidthChange\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// $FlowFixMe[method-unbinding]\nvar type = function type(obj) {\n return Object.prototype.toString.call(obj);\n};\n/**\n * Get a value of margin or containerPadding.\n *\n * @param {Array | Object} param Margin | containerPadding, e.g. [10, 10] | {lg: [10, 10], ...}.\n * @param {String} breakpoint Breakpoint: lg, md, sm, xs and etc.\n * @return {Array}\n */\n\n\nfunction getIndentationValue\n/*:: */\n(param\n/*: { [key: string]: T } | T*/\n, breakpoint\n/*: string*/\n)\n/*: T*/\n{\n // $FlowIgnore TODO fix this typedef\n if (param == null) return null; // $FlowIgnore TODO fix this typedef\n\n return Array.isArray(param) ? param : param[breakpoint];\n}\n/*:: type State = {\n layout: Layout,\n breakpoint: string,\n cols: number,\n layouts?: ResponsiveLayout\n};*/\n\n/*:: type Props = {|\n ...React.ElementConfig,\n\n // Responsive config\n breakpoint?: ?Breakpoint,\n breakpoints: Breakpoints,\n cols: { [key: Breakpoint]: number },\n layouts: ResponsiveLayout,\n width: number,\n margin: { [key: Breakpoint]: [number, number] } | [number, number],\n /* prettier-ignore *-/\n containerPadding: { [key: Breakpoint]: ?[number, number] } | ?[number, number],\n\n // Callbacks\n onBreakpointChange: (Breakpoint, cols: number) => void,\n onLayoutChange: OnLayoutChangeCallback,\n onWidthChange: (\n containerWidth: number,\n margin: [number, number],\n cols: number,\n containerPadding: ?[number, number]\n ) => void\n|};*/\n\n/*:: type DefaultProps = Pick<\n Props<>,\n {|\n allowOverlap: 0,\n breakpoints: 0,\n cols: 0,\n containerPadding: 0,\n layouts: 0,\n margin: 0,\n onBreakpointChange: 0,\n onLayoutChange: 0,\n onWidthChange: 0\n |}\n>;*/\n\n\nvar ResponsiveReactGridLayout = /*#__PURE__*/function (_React$Component) {\n _inherits(ResponsiveReactGridLayout, _React$Component);\n\n var _super = _createSuper(ResponsiveReactGridLayout);\n\n function ResponsiveReactGridLayout() {\n var _this;\n\n _classCallCheck(this, ResponsiveReactGridLayout);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", _this.generateInitialState());\n\n _defineProperty(_assertThisInitialized(_this), \"onLayoutChange\", function (layout\n /*: Layout*/\n ) {\n _this.props.onLayoutChange(layout, _objectSpread(_objectSpread({}, _this.props.layouts), {}, _defineProperty({}, _this.state.breakpoint, layout)));\n });\n\n return _this;\n }\n\n _createClass(ResponsiveReactGridLayout, [{\n key: \"generateInitialState\",\n value: function generateInitialState()\n /*: State*/\n {\n var _this$props = this.props,\n width = _this$props.width,\n breakpoints = _this$props.breakpoints,\n layouts = _this$props.layouts,\n cols = _this$props.cols;\n var breakpoint = (0, _responsiveUtils.getBreakpointFromWidth)(breakpoints, width);\n var colNo = (0, _responsiveUtils.getColsFromBreakpoint)(breakpoint, cols); // verticalCompact compatibility, now deprecated\n\n var compactType = this.props.verticalCompact === false ? null : this.props.compactType; // Get the initial layout. This can tricky; we try to generate one however possible if one doesn't exist\n // for this layout.\n\n var initialLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(layouts, breakpoints, breakpoint, breakpoint, colNo, compactType);\n return {\n layout: initialLayout,\n breakpoint: breakpoint,\n cols: colNo\n };\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps\n /*: Props<*>*/\n ) {\n // Allow parent to set width or breakpoint directly.\n if (this.props.width != prevProps.width || this.props.breakpoint !== prevProps.breakpoint || !(0, _lodash.default)(this.props.breakpoints, prevProps.breakpoints) || !(0, _lodash.default)(this.props.cols, prevProps.cols)) {\n this.onWidthChange(prevProps);\n }\n } // wrap layouts so we do not need to pass layouts to child\n\n }, {\n key: \"onWidthChange\",\n value:\n /**\n * When the width changes work through breakpoints and reset state with the new width & breakpoint.\n * Width changes are necessary to figure out the widget widths.\n */\n function onWidthChange(prevProps\n /*: Props<*>*/\n ) {\n var _this$props2 = this.props,\n breakpoints = _this$props2.breakpoints,\n cols = _this$props2.cols,\n layouts = _this$props2.layouts,\n compactType = _this$props2.compactType;\n var newBreakpoint = this.props.breakpoint || (0, _responsiveUtils.getBreakpointFromWidth)(this.props.breakpoints, this.props.width);\n var lastBreakpoint = this.state.breakpoint;\n var newCols\n /*: number*/\n = (0, _responsiveUtils.getColsFromBreakpoint)(newBreakpoint, cols);\n\n var newLayouts = _objectSpread({}, layouts); // Breakpoint change\n\n\n if (lastBreakpoint !== newBreakpoint || prevProps.breakpoints !== breakpoints || prevProps.cols !== cols) {\n // Preserve the current layout if the current breakpoint is not present in the next layouts.\n if (!(lastBreakpoint in newLayouts)) newLayouts[lastBreakpoint] = (0, _utils.cloneLayout)(this.state.layout); // Find or generate a new layout.\n\n var layout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(newLayouts, breakpoints, newBreakpoint, lastBreakpoint, newCols, compactType); // This adds missing items.\n\n layout = (0, _utils.synchronizeLayoutWithChildren)(layout, this.props.children, newCols, compactType, this.props.allowOverlap); // Store the new layout.\n\n newLayouts[newBreakpoint] = layout; // callbacks\n\n this.props.onLayoutChange(layout, newLayouts);\n this.props.onBreakpointChange(newBreakpoint, newCols);\n this.setState({\n breakpoint: newBreakpoint,\n layout: layout,\n cols: newCols\n });\n }\n\n var margin = getIndentationValue(this.props.margin, newBreakpoint);\n var containerPadding = getIndentationValue(this.props.containerPadding, newBreakpoint); //call onWidthChange on every change of width, not only on breakpoint changes\n\n this.props.onWidthChange(this.props.width, margin, newCols, containerPadding);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n /* eslint-disable no-unused-vars */\n var _this$props3 = this.props,\n breakpoint = _this$props3.breakpoint,\n breakpoints = _this$props3.breakpoints,\n cols = _this$props3.cols,\n layouts = _this$props3.layouts,\n margin = _this$props3.margin,\n containerPadding = _this$props3.containerPadding,\n onBreakpointChange = _this$props3.onBreakpointChange,\n onLayoutChange = _this$props3.onLayoutChange,\n onWidthChange = _this$props3.onWidthChange,\n other = _objectWithoutProperties(_this$props3, _excluded);\n /* eslint-enable no-unused-vars */\n\n\n return /*#__PURE__*/React.createElement(_ReactGridLayout.default, _extends({}, other, {\n // $FlowIgnore should allow nullable here due to DefaultProps\n margin: getIndentationValue(margin, this.state.breakpoint),\n containerPadding: getIndentationValue(containerPadding, this.state.breakpoint),\n onLayoutChange: this.onLayoutChange,\n layout: this.state.layout,\n cols: this.state.cols\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps\n /*: Props<*>*/\n , prevState\n /*: State*/\n )\n /*: ?$Shape*/\n {\n if (!(0, _lodash.default)(nextProps.layouts, prevState.layouts)) {\n // Allow parent to set layouts directly.\n var breakpoint = prevState.breakpoint,\n _cols = prevState.cols; // Since we're setting an entirely new layout object, we must generate a new responsive layout\n // if one does not exist.\n\n var newLayout = (0, _responsiveUtils.findOrGenerateResponsiveLayout)(nextProps.layouts, nextProps.breakpoints, breakpoint, breakpoint, _cols, nextProps.compactType);\n return {\n layout: newLayout,\n layouts: nextProps.layouts\n };\n }\n\n return null;\n }\n }]);\n\n return ResponsiveReactGridLayout;\n}(React.Component);\n\nexports.default = ResponsiveReactGridLayout;\n\n_defineProperty(ResponsiveReactGridLayout, \"propTypes\", {\n //\n // Basic props\n //\n // Optional, but if you are managing width yourself you may want to set the breakpoint\n // yourself as well.\n breakpoint: _propTypes.default.string,\n // {name: pxVal}, e.g. {lg: 1200, md: 996, sm: 768, xs: 480}\n breakpoints: _propTypes.default.object,\n allowOverlap: _propTypes.default.bool,\n // # of cols. This is a breakpoint -> cols map\n cols: _propTypes.default.object,\n // # of margin. This is a breakpoint -> margin map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Margin between items [x, y] in px\n // e.g. [10, 10]\n margin: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // # of containerPadding. This is a breakpoint -> containerPadding map\n // e.g. { lg: [5, 5], md: [10, 10], sm: [15, 15] }\n // Padding inside the container [x, y] in px\n // e.g. [10, 10]\n containerPadding: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),\n // layouts is an object mapping breakpoints to layouts.\n // e.g. {lg: Layout, md: Layout, ...}\n layouts: function layouts(props\n /*: Props<>*/\n , propName\n /*: string*/\n ) {\n if (type(props[propName]) !== \"[object Object]\") {\n throw new Error(\"Layout property must be an object. Received: \" + type(props[propName]));\n }\n\n Object.keys(props[propName]).forEach(function (key) {\n if (!(key in props.breakpoints)) {\n throw new Error(\"Each key in layouts must align with a key in breakpoints.\");\n }\n\n (0, _utils.validateLayout)(props.layouts[key], \"layouts.\" + key);\n });\n },\n // The width of this component.\n // Required in this propTypes stanza because generateInitialState() will fail without it.\n width: _propTypes.default.number.isRequired,\n //\n // Callbacks\n //\n // Calls back with breakpoint and new # cols\n onBreakpointChange: _propTypes.default.func,\n // Callback so you can save the layout.\n // Calls back with (currentLayout, allLayouts). allLayouts are keyed by breakpoint.\n onLayoutChange: _propTypes.default.func,\n // Calls back with (containerWidth, margin, cols, containerPadding)\n onWidthChange: _propTypes.default.func\n});\n\n_defineProperty(ResponsiveReactGridLayout, \"defaultProps\", {\n breakpoints: {\n lg: 1200,\n md: 996,\n sm: 768,\n xs: 480,\n xxs: 0\n },\n cols: {\n lg: 12,\n md: 10,\n sm: 6,\n xs: 4,\n xxs: 2\n },\n containerPadding: {\n lg: null,\n md: null,\n sm: null,\n xs: null,\n xxs: null\n },\n layouts: {},\n margin: [10, 10],\n allowOverlap: false,\n onBreakpointChange: _utils.noop,\n onLayoutChange: _utils.noop,\n onWidthChange: _utils.noop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcGridColWidth = calcGridColWidth;\nexports.calcGridItemPosition = calcGridItemPosition;\nexports.calcGridItemWHPx = calcGridItemWHPx;\nexports.calcWH = calcWH;\nexports.calcXY = calcXY;\nexports.clamp = clamp;\n\n/*:: import type { Position } from \"./utils\";*/\n\n/*:: export type PositionParams = {\n margin: [number, number],\n containerPadding: [number, number],\n containerWidth: number,\n cols: number,\n rowHeight: number,\n maxRows: number\n};*/\n// Helper for generating column width\nfunction calcGridColWidth(positionParams\n/*: PositionParams*/\n)\n/*: number*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n containerWidth = positionParams.containerWidth,\n cols = positionParams.cols;\n return (containerWidth - margin[0] * (cols - 1) - containerPadding[0] * 2) / cols;\n} // This can either be called:\n// calcGridItemWHPx(w, colWidth, margin[0])\n// or\n// calcGridItemWHPx(h, rowHeight, margin[1])\n\n\nfunction calcGridItemWHPx(gridUnits\n/*: number*/\n, colOrRowSize\n/*: number*/\n, marginPx\n/*: number*/\n)\n/*: number*/\n{\n // 0 * Infinity === NaN, which causes problems with resize contraints\n if (!Number.isFinite(gridUnits)) return gridUnits;\n return Math.round(colOrRowSize * gridUnits + Math.max(0, gridUnits - 1) * marginPx);\n}\n/**\n * Return position on the page given an x, y, w, h.\n * left, top, width, height are all in pixels.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Position} Object containing coords.\n */\n\n\nfunction calcGridItemPosition(positionParams\n/*: PositionParams*/\n, x\n/*: number*/\n, y\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n, state\n/*: ?Object*/\n)\n/*: Position*/\n{\n var margin = positionParams.margin,\n containerPadding = positionParams.containerPadding,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams);\n var out = {}; // If resizing, use the exact width and height as returned from resizing callbacks.\n\n if (state && state.resizing) {\n out.width = Math.round(state.resizing.width);\n out.height = Math.round(state.resizing.height);\n } // Otherwise, calculate from grid units.\n else {\n out.width = calcGridItemWHPx(w, colWidth, margin[0]);\n out.height = calcGridItemWHPx(h, rowHeight, margin[1]);\n } // If dragging, use the exact width and height as returned from dragging callbacks.\n\n\n if (state && state.dragging) {\n out.top = Math.round(state.dragging.top);\n out.left = Math.round(state.dragging.left);\n } // Otherwise, calculate from grid units.\n else {\n out.top = Math.round((rowHeight + margin[1]) * y + containerPadding[1]);\n out.left = Math.round((colWidth + margin[0]) * x + containerPadding[0]);\n }\n\n return out;\n}\n/**\n * Translate x and y coordinates from pixels to grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calculations.\n * @param {Number} top Top position (relative to parent) in pixels.\n * @param {Number} left Left position (relative to parent) in pixels.\n * @param {Number} w W coordinate in grid units.\n * @param {Number} h H coordinate in grid units.\n * @return {Object} x and y in grid units.\n */\n\n\nfunction calcXY(positionParams\n/*: PositionParams*/\n, top\n/*: number*/\n, left\n/*: number*/\n, w\n/*: number*/\n, h\n/*: number*/\n)\n/*: { x: number, y: number }*/\n{\n var margin = positionParams.margin,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight,\n maxRows = positionParams.maxRows;\n var colWidth = calcGridColWidth(positionParams); // left = colWidth * x + margin * (x + 1)\n // l = cx + m(x+1)\n // l = cx + mx + m\n // l - m = cx + mx\n // l - m = x(c + m)\n // (l - m) / (c + m) = x\n // x = (left - margin) / (coldWidth + margin)\n\n var x = Math.round((left - margin[0]) / (colWidth + margin[0]));\n var y = Math.round((top - margin[1]) / (rowHeight + margin[1])); // Capping\n\n x = clamp(x, 0, cols - w);\n y = clamp(y, 0, maxRows - h);\n return {\n x: x,\n y: y\n };\n}\n/**\n * Given a height and width in pixel values, calculate grid units.\n * @param {PositionParams} positionParams Parameters of grid needed for coordinates calcluations.\n * @param {Number} height Height in pixels.\n * @param {Number} width Width in pixels.\n * @param {Number} x X coordinate in grid units.\n * @param {Number} y Y coordinate in grid units.\n * @return {Object} w, h as grid units.\n */\n\n\nfunction calcWH(positionParams\n/*: PositionParams*/\n, width\n/*: number*/\n, height\n/*: number*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: { w: number, h: number }*/\n{\n var margin = positionParams.margin,\n maxRows = positionParams.maxRows,\n cols = positionParams.cols,\n rowHeight = positionParams.rowHeight;\n var colWidth = calcGridColWidth(positionParams); // width = colWidth * w - (margin * (w - 1))\n // ...\n // w = (width + margin) / (colWidth + margin)\n\n var w = Math.round((width + margin[0]) / (colWidth + margin[0]));\n var h = Math.round((height + margin[1]) / (rowHeight + margin[1])); // Capping\n\n w = clamp(w, 0, cols - x);\n h = clamp(h, 0, maxRows - y);\n return {\n w: w,\n h: h\n };\n} // Similar to _.clamp\n\n\nfunction clamp(num\n/*: number*/\n, lowerBound\n/*: number*/\n, upperBound\n/*: number*/\n)\n/*: number*/\n{\n return Math.max(Math.min(num, upperBound), lowerBound);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = WidthProvideRGL;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _excluded = [\"measureBeforeMount\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar layoutClassName = \"react-grid-layout\";\n/*\n * A simple HOC that provides facility for listening to container resizes.\n *\n * The Flow type is pretty janky here. I can't just spread `WPProps` into this returned object - I wish I could - but it triggers\n * a flow bug of some sort that causes it to stop typechecking.\n */\n\nfunction WidthProvideRGL\n/*:: */\n(ComposedComponent\n/*: React.AbstractComponent*/\n)\n/*: React.AbstractComponent>*/\n{\n var _class;\n\n return _class = /*#__PURE__*/function (_React$Component) {\n _inherits(WidthProvider, _React$Component);\n\n var _super = _createSuper(WidthProvider);\n\n function WidthProvider() {\n var _this;\n\n _classCallCheck(this, WidthProvider);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n width: 1280\n });\n\n _defineProperty(_assertThisInitialized(_this), \"elementRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResize\", function () {\n if (!_this.mounted) return;\n var node = _this.elementRef.current; // Flow casts this to Text | Element\n // fix: grid position error when node or parentNode display is none by window resize\n // #924 #1084\n\n if (node instanceof HTMLElement && node.offsetWidth) {\n _this.setState({\n width: node.offsetWidth\n });\n }\n });\n\n return _this;\n }\n\n _createClass(WidthProvider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n window.addEventListener(\"resize\", this.onWindowResize); // Call to properly set the breakpoint and resize the elements.\n // Note that if you're doing a full-width element, this can get a little wonky if a scrollbar\n // appears because of the grid. In that case, fire your own resize event, or set `overflow: scroll` on your body.\n\n this.onWindowResize();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n window.removeEventListener(\"resize\", this.onWindowResize);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n measureBeforeMount = _this$props.measureBeforeMount,\n rest = _objectWithoutProperties(_this$props, _excluded);\n\n if (measureBeforeMount && !this.mounted) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: (0, _clsx.default)(this.props.className, layoutClassName),\n style: this.props.style // $FlowIgnore ref types\n ,\n ref: this.elementRef\n });\n }\n\n return /*#__PURE__*/React.createElement(ComposedComponent, _extends({\n innerRef: this.elementRef\n }, rest, this.state));\n }\n }]);\n\n return WidthProvider;\n }(React.Component), _defineProperty(_class, \"defaultProps\", {\n measureBeforeMount: false\n }), _defineProperty(_class, \"propTypes\", {\n // If true, will not render children until mounted. Useful for getting the exact width before\n // rendering, to prevent any unsightly resizing.\n measureBeforeMount: _propTypes.default.bool\n }), _class;\n}","// this file was prevaled\nmodule.exports = function fastRGLPropsEqual(a, b, isEqualImpl) {\n if (a === b) return true;\n return a.className === b.className && isEqualImpl(a.style, b.style) && a.width === b.width && a.autoSize === b.autoSize && a.cols === b.cols && a.draggableCancel === b.draggableCancel && a.draggableHandle === b.draggableHandle && isEqualImpl(a.verticalCompact, b.verticalCompact) && isEqualImpl(a.compactType, b.compactType) && isEqualImpl(a.layout, b.layout) && isEqualImpl(a.margin, b.margin) && isEqualImpl(a.containerPadding, b.containerPadding) && a.rowHeight === b.rowHeight && a.maxRows === b.maxRows && a.isBounded === b.isBounded && a.isDraggable === b.isDraggable && a.isResizable === b.isResizable && a.allowOverlap === b.allowOverlap && a.preventCollision === b.preventCollision && a.useCSSTransforms === b.useCSSTransforms && a.transformScale === b.transformScale && a.isDroppable === b.isDroppable && isEqualImpl(a.resizeHandles, b.resizeHandles) && isEqualImpl(a.resizeHandle, b.resizeHandle) && a.onLayoutChange === b.onLayoutChange && a.onDragStart === b.onDragStart && a.onDrag === b.onDrag && a.onDragStop === b.onDragStop && a.onResizeStart === b.onResizeStart && a.onResize === b.onResize && a.onResizeStop === b.onResizeStop && a.onDrop === b.onDrop && isEqualImpl(a.droppingItem, b.droppingItem) && isEqualImpl(a.innerRef, b.innerRef);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findOrGenerateResponsiveLayout = findOrGenerateResponsiveLayout;\nexports.getBreakpointFromWidth = getBreakpointFromWidth;\nexports.getColsFromBreakpoint = getColsFromBreakpoint;\nexports.sortBreakpoints = sortBreakpoints;\n\nvar _utils = require(\"./utils\");\n\n/**\n * Given a width, find the highest breakpoint that matches is valid for it (width > breakpoint).\n *\n * @param {Object} breakpoints Breakpoints object (e.g. {lg: 1200, md: 960, ...})\n * @param {Number} width Screen width.\n * @return {String} Highest breakpoint that is less than width.\n */\nfunction getBreakpointFromWidth(breakpoints\n/*: Breakpoints*/\n, width\n/*: number*/\n)\n/*: Breakpoint*/\n{\n var sorted = sortBreakpoints(breakpoints);\n var matching = sorted[0];\n\n for (var i = 1, len = sorted.length; i < len; i++) {\n var breakpointName = sorted[i];\n if (width > breakpoints[breakpointName]) matching = breakpointName;\n }\n\n return matching;\n}\n/**\n * Given a breakpoint, get the # of cols set for it.\n * @param {String} breakpoint Breakpoint name.\n * @param {Object} cols Map of breakpoints to cols.\n * @return {Number} Number of cols.\n */\n\n\nfunction getColsFromBreakpoint(breakpoint\n/*: Breakpoint*/\n, cols\n/*: Breakpoints*/\n)\n/*: number*/\n{\n if (!cols[breakpoint]) {\n throw new Error(\"ResponsiveReactGridLayout: `cols` entry for breakpoint \" + breakpoint + \" is missing!\");\n }\n\n return cols[breakpoint];\n}\n/**\n * Given existing layouts and a new breakpoint, find or generate a new layout.\n *\n * This finds the layout above the new one and generates from it, if it exists.\n *\n * @param {Object} layouts Existing layouts.\n * @param {Array} breakpoints All breakpoints.\n * @param {String} breakpoint New breakpoint.\n * @param {String} breakpoint Last breakpoint (for fallback).\n * @param {Number} cols Column count at new breakpoint.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} New layout.\n */\n\n\nfunction findOrGenerateResponsiveLayout(layouts\n/*: ResponsiveLayout*/\n, breakpoints\n/*: Breakpoints*/\n, breakpoint\n/*: Breakpoint*/\n, lastBreakpoint\n/*: Breakpoint*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n // If it already exists, just return it.\n if (layouts[breakpoint]) return (0, _utils.cloneLayout)(layouts[breakpoint]); // Find or generate the next layout\n\n var layout = layouts[lastBreakpoint];\n var breakpointsSorted = sortBreakpoints(breakpoints);\n var breakpointsAbove = breakpointsSorted.slice(breakpointsSorted.indexOf(breakpoint));\n\n for (var i = 0, len = breakpointsAbove.length; i < len; i++) {\n var b = breakpointsAbove[i];\n\n if (layouts[b]) {\n layout = layouts[b];\n break;\n }\n }\n\n layout = (0, _utils.cloneLayout)(layout || []); // clone layout so we don't modify existing items\n\n return (0, _utils.compact)((0, _utils.correctBounds)(layout, {\n cols: cols\n }), compactType, cols);\n}\n/**\n * Given breakpoints, return an array of breakpoints sorted by width. This is usually\n * e.g. ['xxs', 'xs', 'sm', ...]\n *\n * @param {Object} breakpoints Key/value pair of breakpoint names to widths.\n * @return {Array} Sorted breakpoints.\n */\n\n\nfunction sortBreakpoints(breakpoints\n/*: Breakpoints*/\n)\n/*: Array*/\n{\n var keys\n /*: Array*/\n = Object.keys(breakpoints);\n return keys.sort(function (a, b) {\n return breakpoints[a] - breakpoints[b];\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bottom = bottom;\nexports.childrenEqual = childrenEqual;\nexports.cloneLayout = cloneLayout;\nexports.cloneLayoutItem = cloneLayoutItem;\nexports.collides = collides;\nexports.compact = compact;\nexports.compactItem = compactItem;\nexports.compactType = compactType;\nexports.correctBounds = correctBounds;\nexports.fastPositionEqual = fastPositionEqual;\nexports.fastRGLPropsEqual = void 0;\nexports.getAllCollisions = getAllCollisions;\nexports.getFirstCollision = getFirstCollision;\nexports.getLayoutItem = getLayoutItem;\nexports.getStatics = getStatics;\nexports.modifyLayout = modifyLayout;\nexports.moveElement = moveElement;\nexports.moveElementAwayFromCollision = moveElementAwayFromCollision;\nexports.noop = void 0;\nexports.perc = perc;\nexports.setTopLeft = setTopLeft;\nexports.setTransform = setTransform;\nexports.sortLayoutItems = sortLayoutItems;\nexports.sortLayoutItemsByColRow = sortLayoutItemsByColRow;\nexports.sortLayoutItemsByRowCol = sortLayoutItemsByRowCol;\nexports.synchronizeLayoutWithChildren = synchronizeLayoutWithChildren;\nexports.validateLayout = validateLayout;\nexports.withLayoutItem = withLayoutItem;\n\nvar _lodash = _interopRequireDefault(require(\"lodash.isequal\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar isProduction = process.env.NODE_ENV === \"production\";\nvar DEBUG = false;\n/**\n * Return the bottom coordinate of the layout.\n *\n * @param {Array} layout Layout array.\n * @return {Number} Bottom coordinate.\n */\n\nfunction bottom(layout\n/*: Layout*/\n)\n/*: number*/\n{\n var max = 0,\n bottomY;\n\n for (var i = 0, len = layout.length; i < len; i++) {\n bottomY = layout[i].y + layout[i].h;\n if (bottomY > max) max = bottomY;\n }\n\n return max;\n}\n\nfunction cloneLayout(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n newLayout[i] = cloneLayoutItem(layout[i]);\n }\n\n return newLayout;\n} // Modify a layoutItem inside a layout. Returns a new Layout,\n// does not mutate. Carries over all other LayoutItems unmodified.\n\n\nfunction modifyLayout(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Layout*/\n{\n var newLayout = Array(layout.length);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layoutItem.i === layout[i].i) {\n newLayout[i] = layoutItem;\n } else {\n newLayout[i] = layout[i];\n }\n }\n\n return newLayout;\n} // Function to be called to modify a layout item.\n// Does defensive clones to ensure the layout is not modified.\n\n\nfunction withLayoutItem(layout\n/*: Layout*/\n, itemKey\n/*: string*/\n, cb\n/*: LayoutItem => LayoutItem*/\n)\n/*: [Layout, ?LayoutItem]*/\n{\n var item = getLayoutItem(layout, itemKey);\n if (!item) return [layout, null];\n item = cb(cloneLayoutItem(item)); // defensive clone then modify\n // FIXME could do this faster if we already knew the index\n\n layout = modifyLayout(layout, item);\n return [layout, item];\n} // Fast path to cloning, since this is monomorphic\n\n\nfunction cloneLayoutItem(layoutItem\n/*: LayoutItem*/\n)\n/*: LayoutItem*/\n{\n return {\n w: layoutItem.w,\n h: layoutItem.h,\n x: layoutItem.x,\n y: layoutItem.y,\n i: layoutItem.i,\n minW: layoutItem.minW,\n maxW: layoutItem.maxW,\n minH: layoutItem.minH,\n maxH: layoutItem.maxH,\n moved: Boolean(layoutItem.moved),\n static: Boolean(layoutItem.static),\n // These can be null/undefined\n isDraggable: layoutItem.isDraggable,\n isResizable: layoutItem.isResizable,\n resizeHandles: layoutItem.resizeHandles,\n isBounded: layoutItem.isBounded\n };\n}\n/**\n * Comparing React `children` is a bit difficult. This is a good way to compare them.\n * This will catch differences in keys, order, and length.\n */\n\n\nfunction childrenEqual(a\n/*: ReactChildren*/\n, b\n/*: ReactChildren*/\n)\n/*: boolean*/\n{\n return (0, _lodash.default)(_react.default.Children.map(a, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }), _react.default.Children.map(b, function (c) {\n return c === null || c === void 0 ? void 0 : c.key;\n }));\n}\n/**\n * See `fastRGLPropsEqual.js`.\n * We want this to run as fast as possible - it is called often - and to be\n * resilient to new props that we add. So rather than call lodash.isEqual,\n * which isn't suited to comparing props very well, we use this specialized\n * function in conjunction with preval to generate the fastest possible comparison\n * function, tuned for exactly our props.\n */\n\n/*:: type FastRGLPropsEqual = (Object, Object, Function) => boolean;*/\n\n\nvar fastRGLPropsEqual\n/*: FastRGLPropsEqual*/\n= require(\"./fastRGLPropsEqual\"); // Like the above, but a lot simpler.\n\n\nexports.fastRGLPropsEqual = fastRGLPropsEqual;\n\nfunction fastPositionEqual(a\n/*: Position*/\n, b\n/*: Position*/\n)\n/*: boolean*/\n{\n return a.left === b.left && a.top === b.top && a.width === b.width && a.height === b.height;\n}\n/**\n * Given two layoutitems, check if they collide.\n */\n\n\nfunction collides(l1\n/*: LayoutItem*/\n, l2\n/*: LayoutItem*/\n)\n/*: boolean*/\n{\n if (l1.i === l2.i) return false; // same element\n\n if (l1.x + l1.w <= l2.x) return false; // l1 is left of l2\n\n if (l1.x >= l2.x + l2.w) return false; // l1 is right of l2\n\n if (l1.y + l1.h <= l2.y) return false; // l1 is above l2\n\n if (l1.y >= l2.y + l2.h) return false; // l1 is below l2\n\n return true; // boxes overlap\n}\n/**\n * Given a layout, compact it. This involves going down each y coordinate and removing gaps\n * between items.\n *\n * Does not modify layout items (clones). Creates a new layout array.\n *\n * @param {Array} layout Layout.\n * @param {Boolean} verticalCompact Whether or not to compact the layout\n * vertically.\n * @return {Array} Compacted Layout.\n */\n\n\nfunction compact(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n // Statics go in the compareWith array right away so items flow around them.\n var compareWith = getStatics(layout); // We go through the items by row and column.\n\n var sorted = sortLayoutItems(layout, compactType); // Holding for new items.\n\n var out = Array(layout.length);\n\n for (var i = 0, len = sorted.length; i < len; i++) {\n var l = cloneLayoutItem(sorted[i]); // Don't move static elements\n\n if (!l.static) {\n l = compactItem(compareWith, l, compactType, cols, sorted); // Add to comparison array. We only collide with items before this one.\n // Statics are already in this array.\n\n compareWith.push(l);\n } // Add to output array to make sure they still come out in the right order.\n\n\n out[layout.indexOf(sorted[i])] = l; // Clear moved flag, if it exists.\n\n l.moved = false;\n }\n\n return out;\n}\n\nvar heightWidth = {\n x: \"w\",\n y: \"h\"\n};\n/**\n * Before moving item down, it will check if the movement will cause collisions and move those items down before.\n */\n\nfunction resolveCompactionCollision(layout\n/*: Layout*/\n, item\n/*: LayoutItem*/\n, moveToCoord\n/*: number*/\n, axis\n/*: \"x\" | \"y\"*/\n) {\n var sizeProp = heightWidth[axis];\n item[axis] += 1;\n var itemIndex = layout.map(function (layoutItem) {\n return layoutItem.i;\n }).indexOf(item.i); // Go through each item we collide with.\n\n for (var i = itemIndex + 1; i < layout.length; i++) {\n var otherItem = layout[i]; // Ignore static items\n\n if (otherItem.static) continue; // Optimization: we can break early if we know we're past this el\n // We can do this b/c it's a sorted layout\n\n if (otherItem.y > item.y + item.h) break;\n\n if (collides(item, otherItem)) {\n resolveCompactionCollision(layout, otherItem, moveToCoord + item[sizeProp], axis);\n }\n }\n\n item[axis] = moveToCoord;\n}\n/**\n * Compact an item in the layout.\n *\n * Modifies item.\n *\n */\n\n\nfunction compactItem(compareWith\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, fullLayout\n/*: Layout*/\n)\n/*: LayoutItem*/\n{\n var compactV = compactType === \"vertical\";\n var compactH = compactType === \"horizontal\";\n\n if (compactV) {\n // Bottom 'y' possible is the bottom of the layout.\n // This allows you to do nice stuff like specify {y: Infinity}\n // This is here because the layout must be sorted in order to get the correct bottom `y`.\n l.y = Math.min(bottom(compareWith), l.y); // Move the element up as far as it can go without colliding.\n\n while (l.y > 0 && !getFirstCollision(compareWith, l)) {\n l.y--;\n }\n } else if (compactH) {\n // Move the element left as far as it can go without colliding.\n while (l.x > 0 && !getFirstCollision(compareWith, l)) {\n l.x--;\n }\n } // Move it down, and keep moving it down if it's colliding.\n\n\n var collides;\n\n while (collides = getFirstCollision(compareWith, l)) {\n if (compactH) {\n resolveCompactionCollision(fullLayout, l, collides.x + collides.w, \"x\");\n } else {\n resolveCompactionCollision(fullLayout, l, collides.y + collides.h, \"y\");\n } // Since we can't grow without bounds horizontally, if we've overflown, let's move it down and try again.\n\n\n if (compactH && l.x + l.w > cols) {\n l.x = cols - l.w;\n l.y++;\n }\n } // Ensure that there are no negative positions\n\n\n l.y = Math.max(l.y, 0);\n l.x = Math.max(l.x, 0);\n return l;\n}\n/**\n * Given a layout, make sure all elements fit within its bounds.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Layout array.\n * @param {Number} bounds Number of columns.\n */\n\n\nfunction correctBounds(layout\n/*: Layout*/\n, bounds\n/*: { cols: number }*/\n)\n/*: Layout*/\n{\n var collidesWith = getStatics(layout);\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var l = layout[i]; // Overflows right\n\n if (l.x + l.w > bounds.cols) l.x = bounds.cols - l.w; // Overflows left\n\n if (l.x < 0) {\n l.x = 0;\n l.w = bounds.cols;\n }\n\n if (!l.static) collidesWith.push(l);else {\n // If this is static and collides with other statics, we must move it down.\n // We have to do something nicer than just letting them overlap.\n while (getFirstCollision(collidesWith, l)) {\n l.y++;\n }\n }\n }\n\n return layout;\n}\n/**\n * Get a layout item by ID. Used so we can override later on if necessary.\n *\n * @param {Array} layout Layout array.\n * @param {String} id ID\n * @return {LayoutItem} Item at ID.\n */\n\n\nfunction getLayoutItem(layout\n/*: Layout*/\n, id\n/*: string*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (layout[i].i === id) return layout[i];\n }\n}\n/**\n * Returns the first item this layout collides with.\n * It doesn't appear to matter which order we approach this from, although\n * perhaps that is the wrong thing to do.\n *\n * @param {Object} layoutItem Layout item.\n * @return {Object|undefined} A colliding layout item, or undefined.\n */\n\n\nfunction getFirstCollision(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: ?LayoutItem*/\n{\n for (var i = 0, len = layout.length; i < len; i++) {\n if (collides(layout[i], layoutItem)) return layout[i];\n }\n}\n\nfunction getAllCollisions(layout\n/*: Layout*/\n, layoutItem\n/*: LayoutItem*/\n)\n/*: Array*/\n{\n return layout.filter(function (l) {\n return collides(l, layoutItem);\n });\n}\n/**\n * Get all static elements.\n * @param {Array} layout Array of layout objects.\n * @return {Array} Array of static layout items..\n */\n\n\nfunction getStatics(layout\n/*: Layout*/\n)\n/*: Array*/\n{\n return layout.filter(function (l) {\n return l.static;\n });\n}\n/**\n * Move an element. Responsible for doing cascading movements of other elements.\n *\n * Modifies layout items.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} l element to move.\n * @param {Number} [x] X position in grid units.\n * @param {Number} [y] Y position in grid units.\n */\n\n\nfunction moveElement(layout\n/*: Layout*/\n, l\n/*: LayoutItem*/\n, x\n/*: ?number*/\n, y\n/*: ?number*/\n, isUserAction\n/*: ?boolean*/\n, preventCollision\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n // If this is static and not explicitly enabled as draggable,\n // no move is possible, so we can short-circuit this immediately.\n if (l.static && l.isDraggable !== true) return layout; // Short-circuit if nothing to do.\n\n if (l.y === y && l.x === x) return layout;\n log(\"Moving element \".concat(l.i, \" to [\").concat(String(x), \",\").concat(String(y), \"] from [\").concat(l.x, \",\").concat(l.y, \"]\"));\n var oldX = l.x;\n var oldY = l.y; // This is quite a bit faster than extending the object\n\n if (typeof x === \"number\") l.x = x;\n if (typeof y === \"number\") l.y = y;\n l.moved = true; // If this collides with anything, move it.\n // When doing this comparison, we have to sort the items we compare with\n // to ensure, in the case of multiple collisions, that we're getting the\n // nearest collision.\n\n var sorted = sortLayoutItems(layout, compactType);\n var movingUp = compactType === \"vertical\" && typeof y === \"number\" ? oldY >= y : compactType === \"horizontal\" && typeof x === \"number\" ? oldX >= x : false; // $FlowIgnore acceptable modification of read-only array as it was recently cloned\n\n if (movingUp) sorted = sorted.reverse();\n var collisions = getAllCollisions(sorted, l);\n var hasCollisions = collisions.length > 0; // We may have collisions. We can short-circuit if we've turned off collisions or\n // allowed overlap.\n\n if (hasCollisions && allowOverlap) {\n // Easy, we don't need to resolve collisions. But we *did* change the layout,\n // so clone it on the way out.\n return cloneLayout(layout);\n } else if (hasCollisions && preventCollision) {\n // If we are preventing collision but not allowing overlap, we need to\n // revert the position of this element so it goes to where it came from, rather\n // than the user's desired location.\n log(\"Collision prevented on \".concat(l.i, \", reverting.\"));\n l.x = oldX;\n l.y = oldY;\n l.moved = false;\n return layout; // did not change so don't clone\n } // Move each item that collides away from this element.\n\n\n for (var i = 0, len = collisions.length; i < len; i++) {\n var collision = collisions[i];\n log(\"Resolving collision between \".concat(l.i, \" at [\").concat(l.x, \",\").concat(l.y, \"] and \").concat(collision.i, \" at [\").concat(collision.x, \",\").concat(collision.y, \"]\")); // Short circuit so we can't infinite loop\n\n if (collision.moved) continue; // Don't move static items - we have to move *this* element away\n\n if (collision.static) {\n layout = moveElementAwayFromCollision(layout, collision, l, isUserAction, compactType, cols);\n } else {\n layout = moveElementAwayFromCollision(layout, l, collision, isUserAction, compactType, cols);\n }\n }\n\n return layout;\n}\n/**\n * This is where the magic needs to happen - given a collision, move an element away from the collision.\n * We attempt to move it up if there's room, otherwise it goes below.\n *\n * @param {Array} layout Full layout to modify.\n * @param {LayoutItem} collidesWith Layout item we're colliding with.\n * @param {LayoutItem} itemToMove Layout item we're moving.\n */\n\n\nfunction moveElementAwayFromCollision(layout\n/*: Layout*/\n, collidesWith\n/*: LayoutItem*/\n, itemToMove\n/*: LayoutItem*/\n, isUserAction\n/*: ?boolean*/\n, compactType\n/*: CompactType*/\n, cols\n/*: number*/\n)\n/*: Layout*/\n{\n var compactH = compactType === \"horizontal\"; // Compact vertically if not set to horizontal\n\n var compactV = compactType !== \"horizontal\";\n var preventCollision = collidesWith.static; // we're already colliding (not for static items)\n // If there is enough space above the collision to put this element, move it there.\n // We only do this on the main collision as this can get funky in cascades and cause\n // unwanted swapping behavior.\n\n if (isUserAction) {\n // Reset isUserAction flag because we're not in the main collision anymore.\n isUserAction = false; // Make a mock item so we don't modify the item here, only modify in moveElement.\n\n var fakeItem\n /*: LayoutItem*/\n = {\n x: compactH ? Math.max(collidesWith.x - itemToMove.w, 0) : itemToMove.x,\n y: compactV ? Math.max(collidesWith.y - itemToMove.h, 0) : itemToMove.y,\n w: itemToMove.w,\n h: itemToMove.h,\n i: \"-1\"\n }; // No collision? If so, we can go up there; otherwise, we'll end up moving down as normal\n\n if (!getFirstCollision(layout, fakeItem)) {\n log(\"Doing reverse collision on \".concat(itemToMove.i, \" up to [\").concat(fakeItem.x, \",\").concat(fakeItem.y, \"].\"));\n return moveElement(layout, itemToMove, compactH ? fakeItem.x : undefined, compactV ? fakeItem.y : undefined, isUserAction, preventCollision, compactType, cols);\n }\n }\n\n return moveElement(layout, itemToMove, compactH ? itemToMove.x + 1 : undefined, compactV ? itemToMove.y + 1 : undefined, isUserAction, preventCollision, compactType, cols);\n}\n/**\n * Helper to convert a number to a percentage string.\n *\n * @param {Number} num Any number\n * @return {String} That number as a percentage.\n */\n\n\nfunction perc(num\n/*: number*/\n)\n/*: string*/\n{\n return num * 100 + \"%\";\n}\n\nfunction setTransform(_ref)\n/*: Object*/\n{\n var top = _ref.top,\n left = _ref.left,\n width = _ref.width,\n height = _ref.height;\n // Replace unitless items with px\n var translate = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\n return {\n transform: translate,\n WebkitTransform: translate,\n MozTransform: translate,\n msTransform: translate,\n OTransform: translate,\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n\nfunction setTopLeft(_ref2)\n/*: Object*/\n{\n var top = _ref2.top,\n left = _ref2.left,\n width = _ref2.width,\n height = _ref2.height;\n return {\n top: \"\".concat(top, \"px\"),\n left: \"\".concat(left, \"px\"),\n width: \"\".concat(width, \"px\"),\n height: \"\".concat(height, \"px\"),\n position: \"absolute\"\n };\n}\n/**\n * Get layout items sorted from top left to right and down.\n *\n * @return {Array} Array of layout objects.\n * @return {Array} Layout, sorted static items first.\n */\n\n\nfunction sortLayoutItems(layout\n/*: Layout*/\n, compactType\n/*: CompactType*/\n)\n/*: Layout*/\n{\n if (compactType === \"horizontal\") return sortLayoutItemsByColRow(layout);\n if (compactType === \"vertical\") return sortLayoutItemsByRowCol(layout);else return layout;\n}\n/**\n * Sort layout items by row ascending and column ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByRowCol(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n // Slice to clone array as sort modifies\n return layout.slice(0).sort(function (a, b) {\n if (a.y > b.y || a.y === b.y && a.x > b.x) {\n return 1;\n } else if (a.y === b.y && a.x === b.x) {\n // Without this, we can get different sort results in IE vs. Chrome/FF\n return 0;\n }\n\n return -1;\n });\n}\n/**\n * Sort layout items by column ascending then row ascending.\n *\n * Does not modify Layout.\n */\n\n\nfunction sortLayoutItemsByColRow(layout\n/*: Layout*/\n)\n/*: Layout*/\n{\n return layout.slice(0).sort(function (a, b) {\n if (a.x > b.x || a.x === b.x && a.y > b.y) {\n return 1;\n }\n\n return -1;\n });\n}\n/**\n * Generate a layout using the initialLayout and children as a template.\n * Missing entries will be added, extraneous ones will be truncated.\n *\n * Does not modify initialLayout.\n *\n * @param {Array} initialLayout Layout passed in through props.\n * @param {String} breakpoint Current responsive breakpoint.\n * @param {?String} compact Compaction option.\n * @return {Array} Working layout.\n */\n\n\nfunction synchronizeLayoutWithChildren(initialLayout\n/*: Layout*/\n, children\n/*: ReactChildren*/\n, cols\n/*: number*/\n, compactType\n/*: CompactType*/\n, allowOverlap\n/*: ?boolean*/\n)\n/*: Layout*/\n{\n initialLayout = initialLayout || []; // Generate one layout item per child.\n\n var layout\n /*: LayoutItem[]*/\n = [];\n\n _react.default.Children.forEach(children, function (child\n /*: ReactElement*/\n ) {\n // Child may not exist\n if ((child === null || child === void 0 ? void 0 : child.key) == null) return; // Don't overwrite if it already exists.\n\n var exists = getLayoutItem(initialLayout, String(child.key));\n\n if (exists) {\n layout.push(cloneLayoutItem(exists));\n } else {\n if (!isProduction && child.props._grid) {\n console.warn(\"`_grid` properties on children have been deprecated as of React 15.2. \" + \"Please use `data-grid` or add your properties directly to the `layout`.\");\n }\n\n var g = child.props[\"data-grid\"] || child.props._grid; // Hey, this item has a data-grid property, use it.\n\n if (g) {\n if (!isProduction) {\n validateLayout([g], \"ReactGridLayout.children\");\n } // FIXME clone not really necessary here\n\n\n layout.push(cloneLayoutItem(_objectSpread(_objectSpread({}, g), {}, {\n i: child.key\n })));\n } else {\n // Nothing provided: ensure this is added to the bottom\n // FIXME clone not really necessary here\n layout.push(cloneLayoutItem({\n w: 1,\n h: 1,\n x: 0,\n y: bottom(layout),\n i: String(child.key)\n }));\n }\n }\n }); // Correct the layout.\n\n\n var correctedLayout = correctBounds(layout, {\n cols: cols\n });\n return allowOverlap ? correctedLayout : compact(correctedLayout, compactType, cols);\n}\n/**\n * Validate a layout. Throws errors.\n *\n * @param {Array} layout Array of layout items.\n * @param {String} [contextName] Context name for errors.\n * @throw {Error} Validation error.\n */\n\n\nfunction validateLayout(layout\n/*: Layout*/\n)\n/*: void*/\n{\n var contextName\n /*: string*/\n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"Layout\";\n var subProps = [\"x\", \"y\", \"w\", \"h\"];\n if (!Array.isArray(layout)) throw new Error(contextName + \" must be an array!\");\n\n for (var i = 0, len = layout.length; i < len; i++) {\n var item = layout[i];\n\n for (var j = 0; j < subProps.length; j++) {\n if (typeof item[subProps[j]] !== \"number\") {\n throw new Error(\"ReactGridLayout: \" + contextName + \"[\" + i + \"].\" + subProps[j] + \" must be a number!\");\n }\n }\n }\n} // Legacy support for verticalCompact: false\n\n\nfunction compactType(props\n/*: ?{ verticalCompact: boolean, compactType: CompactType }*/\n)\n/*: CompactType*/\n{\n var _ref3 = props || {},\n verticalCompact = _ref3.verticalCompact,\n compactType = _ref3.compactType;\n\n return verticalCompact === false ? null : compactType;\n}\n\nfunction log() {\n var _console;\n\n if (!DEBUG) return; // eslint-disable-next-line no-console\n\n (_console = console).log.apply(_console, arguments);\n}\n\nvar noop = function noop() {};\n\nexports.noop = noop;","module.exports = require(\"./build/ReactGridLayout\").default;\nmodule.exports.utils = require(\"./build/utils\");\nmodule.exports.Responsive =\n require(\"./build/ResponsiveReactGridLayout\").default;\nmodule.exports.Responsive.utils = require(\"./build/responsiveUtils\");\nmodule.exports.WidthProvider =\n require(\"./build/components/WidthProvider\").default;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\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":["getDefaultCondition","type","query","params","reducer","evaluator","operator","getAlertingValidationMessage","async","transformations","targets","datasourceSrv","datasource","length","alertingNotSupported","templateVariablesNotSupported","target","dsRef","ds","get","meta","alerting","targetContainsTemplate","DynamicTableWithGuidelines","renderExpandedContent","props","styles","useStyles2","getStyles","item","index","items","className","cx","contentGuideline","guideline","undefined","renderPrefixHeader","relative","headerGuideline","renderPrefixCell","_","topGuideline","bottomGuideline","theme","css","colors","border","medium","breakpoints","down","RuleLocation","namespace","group","Icon","name","RuleConfigStatus","rule","exceedsLimit","checkEvaluationIntervalGlobalLimit","interval","Tooltip","content","globalLimitValue","config","icon","typography","fontWeightBold","warning","text","RuleDetails","rulesSource","annotations","Object","entries","filter","value","trim","RuleDetailsActionButtons","wrapper","leftSide","EvaluationBehaviorSummary","labels","keys","DetailsField","label","horizontal","AlertLabels","RuleDetailsExpression","RuleDetailsAnnotations","rightSide","RuleDetailsDataSources","RuleDetailsMatchingInstances","itemsDisplayLimit","forDuration","every","isRecordingRulerRule","rulerRule","for","up","RulesTable","rules","showGuidelines","emptyMessage","showGroupColumn","showSummaryColumn","wrapperClass","wrapperMargin","useMemo","seenKeys","map","ruleIdx","key","JSON","stringify","promRule","includes","push","id","data","columns","useColumns","TableComponent","DynamicTable","cols","isExpandable","pagination","itemsPerPage","DEFAULT_PER_PAGE_PAGINATION","paginationStyles","spacing","shape","borderRadius","strong","hasRuler","rulerRulesLoaded","useHasRuler","renderCell","isDeleting","isCreating","RuleState","size","isGrafanaRulerRule","grafana_alert","provenance","Provisioning","combinedRule","RuleHealth","Tokenize","input","Annotation","rulerRules","useUnifiedAlertingSelector","state","useCallback","rulesSourceName","GRAFANA_RULES_SOURCE_NAME","result","getRulesSourceName","Boolean","DashboardFailed","initError","useStyles","dashboardLoading","Alert","severity","AppNotificationSeverity","title","message","getMessageFromError","error","DashboardLoading","initPhase","dashboardLoadingText","VerticalGroup","HorizontalGroup","align","justify","Spinner","inline","Button","variant","onClick","locationService","invisibleToVisible","keyframes","lg","SaveLibraryPanelModal","panel","folderId","isUnsavedPrompt","onDismiss","onConfirm","onDiscard","searchString","setSearchString","useState","dashState","useAsync","searchHits","getConnectedDashboards","libraryPanel","uid","dash","filteredDashboards","setFilteredDashboards","useDebounce","dashName","toLowerCase","saveLibraryPanel","usePanelSave","getModalStyles","discardAndClose","Modal","isOpen","textInfo","connectedDashboards","Input","dashboardSearch","prefix","placeholder","onChange","e","currentTarget","loading","myTable","i","fill","then","discardPanelChanges","dispatch","getStore","getPanel","panelEditor","configRev","setDiscardChanges","skipPanelUpdate","modifiedPanel","panelToUpdate","repeatPanelId","exitPanelEditor","dashboard","getModel","getSourcePanel","shouldDiscardChanges","hasChanged","modifiedSaveModel","getSaveModel","sourcePanel","panelTypeChanged","panels","restoreModel","pick","pluginChanged","plugin","cleanUpKey","generateNewKey","panelModelAndPluginReady","setTimeout","getQueryRunner","useLastResultFrom","repeat","processRepeats","updateDuplicateLibraryPanels","render","cleanUpPanelState","closeEditor","UnsavedChangesModal","onSaveSuccess","SaveDashboardButton","DashboardPrompt","React","setState","original","useDispatch","originalPath","showModal","hideModal","useContext","ModalsContext","useEffect","timeoutId","pathname","getSaveModelClone","savedEventUnsub","appEvents","DashboardSavedEvent","clearTimeout","unsubscribe","handleUnload","event","ignoreChanges","hasChanges","preventDefault","returnValue","window","addEventListener","removeEventListener","when","location","panelInEdit","search","URLSearchParams","has","moveToBlockedLocationAfterReactStateUpdate","current","contextSrv","canSave","fromScript","fromFile","cleanDashboardFromIgnoredChanges","dashData","model","DashboardModel","expandRows","time","refresh","schemaVersion","timezone","each","getVariables","variable","options","filters","hasUnsavedChanges","currentClean","originalClean","currentTimepicker","find","nav","originalTimepicker","now","displayName","usePanelLatestData","checkSchema","querySubscription","useRef","latestData","setLatestData","lastRev","lastUpdate","getData","subscribe","next","structureRev","Date","withFieldConfig","withTransforms","isLoading","LoadingState","hasSeries","series","InspectMetadataTab","metadataDatasource","components","MetadataInspector","InspectContent","tabs","isDataLoading","dataOptions","defaultTab","onDataOptionsChange","onClose","currentTab","setCurrentTab","InspectTab","activeTab","panelTitle","getTemplateSrv","replace","scopedVars","Drawer","subtitle","formatStats","width","expandable","scrollableContent","TabsBar","t","Tab","active","onChangeTab","InspectDataTab","onOptionsChange","timeZone","app","CoreApp","InspectJSONTab","InspectErrorTab","InspectStatsTab","getTimezone","QueryInspector","onRefreshQuery","request","queryCount","requestTime","endTime","startTime","formatted","formattedValueToString","getValueFormat","PanelInspector","connect","panelState","getPanelStateForModel","setDataOptions","useLocation","metaDs","frame","custom","dataSource","getDataSourceSrv","useDatasourceMetadata","supportsDataQuery","supplier","grafanaPanelInspectActionSupplier","getActions","canEdit","useInspectTabs","inspect","inspectTab","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread2","arguments","source","forEach","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","constructor","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","call","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","Super","NewTarget","this","Pane","_React$PureComponent","_super","_this$props","children","split","styleProps","style","eleRef","classes","flex","position","outline","height","display","assign","ref","join","propTypes","defaultProps","RESIZER_DEFAULT_CLASSNAME","Resizer","_React$Component","_onClick","_onDoubleClick","onDoubleClick","_onMouseDown","onMouseDown","_onTouchEnd","onTouchEnd","_onTouchStart","onTouchStart","resizerClassName","role","unFocus","document","selection","empty","getSelection","removeAllRanges","getDefaultSize","defaultSize","minSize","maxSize","draggedSize","min","max","Infinity","Math","SplitPane","_this","bind","onMouseMove","onTouchMove","onMouseUp","primary","initialSize","resized","pane1Size","pane2Size","instanceProps","getSizeUpdate","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","concat","notNullChildren","c","removeNullChildren","overflow","MozUserSelect","WebkitUserSelect","msUserSelect","userSelect","flexDirection","left","right","bottom","minHeight","top","pane1Classes","pane2Classes","nextProps","prevState","newState","isPanel1Primary","isRequired","SplitPaneWrapper","PureComponent","createRef","rafToken","cancelAnimationFrame","requestAnimationFrame","forceUpdate","pane","body","cursor","updateUiState","Top","topPaneSize","innerHeight","rightPaneSize","innerWidth","componentDidMount","updateSplitPaneSize","componentWillUnmount","renderHorizontalSplit","leftPaneComponents","uiState","Array","isArray","resizerH","rightPaneVisible","rightPaneComponents","resizerV","Right","stylesFactory","handleColor","palette","blue95","paneSpacing","md","resizer","panelBorder","PickerRenderer","PickerToRender","variableAdapters","picker","PickerLabel","hide","VariableHide","readOnly","labelOrName","elementId","description","placement","selectors","htmlFor","SubMenuItems","variables","visibleVariables","setVisibleVariables","mapStateToProps","angularPanelComponent","angularComponent","mapDispatchToProps","changePanelPlugin","AngularPanelOptionsUnconnected","super","loadAngularOptions","componentDidUpdate","prevProps","cleanUpAngularOptions","angularOptions","destroy","element","scope","getScope","$$childHead","panelCtrl","ctrl","initEditMode","onPluginTypeChange","pluginId","template","editorTabs","tab","defaultValue","store","loader","getAngularLoader","scopeProps","toggleOptionGroup","saveSectionOpenState","load","digest","elem","AngularPanelOptions","DynamicConfigValueEditor","property","context","registry","onRemove","isSystemOverride","searchQuery","useTheme","getIfExists","isCollapsible","FieldConfigProperty","labelCategory","category","editor","renderLabel","includeDescription","includeCounter","isExpanded","Label","textToHighlight","searchWords","highlightClassName","getItemsCount","Counter","IconButton","OptionsPaneCategory","renderTitle","isNested","isOpenDefault","override","Field","collapsibleOverrideEditor","formSpacingBase","OverrideCategoryTitle","matcherUi","overrideName","onOverrideRemove","propertyNames","properties","prop","matcherOptions","optionsToLabel","matcher","overrideDetails","sm","propertyPickerWrapper","textWeak","weight","regular","xl","unknownLabel","getFieldOverrideCategories","categories","currentFieldConfig","fieldConfig","fieldConfigRegistry","isEmpty","onOverrideChange","overrides","cloneDeep","onFieldConfigsChange","overrideIndex","splice","getSuggestions","getDataLinksVariableSuggestions","isOverride","idx","fieldMatchersUI","configPropertiesOptions","getOverrideProperties","isSystemOverrideGuard","forceOpen","OptionsPaneCategoryDescriptor","onMatcherConfigChange","onDynamicConfigValueAdd","registryItem","propertyConfig","addItem","OptionsPaneItemDescriptor","component","propIdx","registryItemForProperty","onPropertyChange","onPropertyRemove","skipField","ValuePicker","isFullWidth","menuPlacement","v","customRender","AddOverrideButtonContainer","excludeFromPicker","onOverrideAdd","list","hideFromOverrides","getBorderTopStyles","borderTop","weak","padding","LibraryPanelInformation","formatDate","isPanelModelLibraryPanel","info","libraryPanelInfo","updated","updatedBy","avatarUrl","userAvatar","src","alt","textSemiWeak","getLibraryPanelOptionsCategory","onPanelConfigChange","popularRank","onBlur","RepeatRowSelect","useSelector","getVariablesByKey","getLastKey","variableOptions","unshift","onSelectChange","option","Select","inputId","getPanelFrameCategory","TextArea","Switch","transparent","checked","addCategory","itemsCount","links","DataLinksInlineEditor","getPanelLinksVariableSuggestions","showIf","RadioButtonGroup","repeatDirection","maxPerRowOptions","maxPerRow","OptionSearchEngine","searchRegex","RegExp","sortedHits","collectHits","sort","compareHit","x","sortedOverridesHits","optionHits","overrideHits","buildOverrideHitCategories","totalCount","getAllOptionsCount","hits","categoryNameMatch","test","rank","total","hit","parent","values","getRecentOptions","allOptions","popularOptions","OptionsPaneOptions","setSearchQuery","listMode","setListMode","OptionFilter","All","panelFrameOptions","vizOptions","libraryPanelOptions","getVisualizationOptions","instanceState","justOverrides","mainBoxElements","isSearching","optionRadioFilters","getOptionRadioFilters","engine","renderSearchHits","angularPanelCtrl","searchNotice","Overrides","Recent","showSearchRadioButtons","formBox","formRow","FilterInput","fullWidth","scrollWrapper","CustomScrollbar","autoHeightMin","mainBox","searchBox","background","borderColor","closeButton","secondary","getPanelPluginWithFallback","panelType","plugins","getPanelPluginNotFound","VisualizationButton","isPanelOptionsVisible","ui","isVizPickerOpen","ButtonGroup","ToolbarButton","vizButton","tooltip","imgSrc","logos","small","toggleVizPicker","setPanelEditorUIState","ChangeLibraryPanelModal","isLibraryPanel","ConfirmModal","confirmText","dismissText","PanelLibraryOptionsGroup","showingAddPanelModal","setShowingAddPanelModal","changeToPanel","setChangeToPanel","panelFilter","setPanelFilter","onPanelFilterChange","getDashboardSrv","getCurrent","PanelTypeFilter","libraryPanelsView","LibraryPanelsView","currentPanelId","onClickCard","showSecondaryActions","AddLibraryPanelModal","initialFolderId","changeToLibraryPanel","panelsToCheckFirst","VisualizationSuggestionCard","suggestion","showTitle","innerStyles","outerStyles","renderWidth","renderHeight","aspectRatio","showHeight","transform","getPreviewDimensionsAndStyles","cardOptions","commonButtonProps","vizBox","imgBox","img","preview","previewModifier","renderContainer","PanelRenderer","hoverPane","transitions","duration","short","bodySmall","fontSize","fontWeightMedium","VisualizationSuggestions","suggestions","builder","VisualizationSuggestionsBuilder","importPanelPlugin","getSuggestionsSupplier","getSuggestionsForData","getList","dataSummary","fieldCount","skipDataQuery","hideFromList","a","b","score","VisualizationSuggestionScore","getAllSuggestions","setShowTitle","useLocalStorage","filteredSuggestions","regex","s","filterSuggestionsBySearch","disableHeight","columnCount","floor","previewWidth","filterRow","infoText","grid","gridTemplateColumns","heading","h5","margin","justifyContent","alignItems","paddingBottom","color","fontStyle","gridGap","marginBottom","VizTypePickerPlugin","isCurrent","disabled","PanelTypeCard","showBadge","VizTypePicker","pluginsList","getAllPanelPluginMeta","filteredPluginTypes","filterPluginList","EmptySearchResult","withModKey","metaKey","ctrlKey","altKey","VisualizationSelectPane","LS_VISUALIZATION_SELECT_TAB_KEY","VisualizationSelectPaneTab","searchRef","onVizChange","pluginChange","focus","radioOptions","openWrapper","searchRow","autoFocus","customFieldMargin","scrollContent","gray33","bg1","border1","OptionsPane","onPanelOptionsChanged","vizButtonWrapper","optionsWrapper","legacyOptions","PanelEditorTableView","setOptions","frameIndex","showHeader","showTypeIcons","timeSrv","getTimeSrv","timeData","applyPanelTimeOverrides","timeRange","sub","events","RefreshEvent","runAllPanelQueries","PanelChrome","PanelHeaderCorner","PanelNotSupported","onBackToQueries","PanelEditorTabId","Layout","marginTop","StateHistory","stateHistoryItems","panelId","onRefresh","getBackendSrv","post","dashboardId","stateModel","alertDef","ConfirmButton","clearHistory","confirmVariant","stateClass","iconClass","alertName","TestRuleResult","allNodesExpanded","testRuleResponse","formattedJson","collapse","expand","testRule","dashPanel","payload","LoadingPlaceholder","openNodes","getNrOfOpenNodes","onToggleExpand","renderExpandCollapse","ClipboardButton","getText","getTextForClipboard","JSONFormatter","json","open","onDidRender","setFormattedJson","UnConnectedAlertTab","validationMessage","showStateHistory","showDeleteConfirmation","showTestRule","_enableAlert","onToggleModal","onClickBackdrop","alert","thresholds","alertState","loadAlertTab","getReactAlertPanelCtrl","EventBusSrv","hasTransformations","buttonIcon","onAddAlert","buttonTitle","Container","EmptyListCTA","renderTestRule","renderDeleteConfirmation","renderStateHistory","AlertTab","NewRuleFromPanelButton","templating","formValues","panelToRuleFormValues","ruleFormUrl","urlUtil","defaults","returnTo","LinkButton","href","usePanelCombinedRules","poll","promRuleRequest","promRules","initialAsyncRequestState","rulerRuleRequest","fetch","fetchPromRulesAction","dashboardUID","fetchRulerRulesAction","setInterval","RULE_LIST_POLL_INTERVAL_MS","clearInterval","errors","err","combinedNamespaces","useCombinedRuleNamespaces","flatMap","ns","groups","String","newButton","innerWrapper","noRulesWrapper","permissions","getRulesPermissions","canCreateRules","PanelAlertTab","otherProps","counter","DOCS_LINKS","DocsId","TransformationEditor","debugMode","uiConfig","configs","setInput","output","setOutput","inputTransforms","slice","transformation","outputTransforms","inputSubscription","transformDataFrame","outputSubscription","pipe","mergeMap","before","defaultOptions","opts","debugWrapper","debug","debugTitle","debugJson","debugSeparator","debugBorder","isLight","gray85","gray15","semibold","textBlue","iconRow","xs","xxs","fontFamily","monospace","white","gray05","radius","TransformationOperationRow","showDebug","toggleDebug","useToggle","showHelp","toggleHelp","onDisableToggle","QueryOperationRow","draggable","actions","PluginStateInfo","QueryOperationAction","OperationRowHelp","markdown","prepMarkdown","help","TransformationOperationRows","standardTransformersRegistry","UnThemedTransformationsEditor","lower","filtered","indexOf","onTransformationAdd","keyCode","showPicker","stopPropagation","nextId","existingIds","startsWith","match","selectable","getTransformationNextId","from","destination","startIndex","endIndex","update","removed","onDragEnd","droppableId","direction","provided","innerRef","droppableProps","onTransformationRemove","onTransformationChange","ids","buildTransformationIds","transformationCounters","transformationIds","subscription","panelData","setTransformations","renderTransformsPicker","suffix","xforms","noTransforms","grow","LocalStorageValueProvider","storageKey","isDismissed","rel","onSearchChange","onKeyDown","onSearchKeyDown","TransformationCard","hasTransforms","renderTransformationEditors","Card","card","TransformationsEditor","withTheme","PanelEditorQueries","updateQueries","onRunQueries","buildQueryOptions","default","datasourceSettings","getDatasourceSrv","getInstanceSettings","cacheTimeout","queryOptions","isDefault","queries","maxDataPoints","minInterval","timeFrom","shift","timeShift","hideTimeOverride","getDataSourceRef","QueryGroup","queryRunner","onOpenQueryInspector","PanelEditorTabs","useForceUpdate","eventSubs","Subscription","add","PanelQueriesChangedEvent","PanelTransformationsChangedEvent","tabBar","hideBorder","getCounter","renderAlertTab","TabContent","tabContent","AlertTabIndex","getTransformations","getPanelEditorTabs","memoizeOne","alertingEnabled","unifiedAlertingEnabled","getConfig","hasRuleReadPermissions","read","isAlertingAvailable","isGraph","isTimeseries","initPanelEditor","initEditPanel","initPanelState","updateEditorInitState","updatePanelEditorUIState","nextState","PANEL_EDITOR_UI_STATE_STORAGE_KEY","console","updateTimeZoneForSession","toggleTableView","notifyApp","connector","ownProps","initDone","tableViewEnabled","PanelEditorUnconnected","showSaveLibraryPanelModal","editPanel","showCategory","onBack","editview","ShowModalReactEvent","SaveDashboardDrawer","getLibraryPanelConnectedDashboards","saveAndRefreshLibraryPanel","createPanelLibrarySuccessNotification","isFetchError","createPanelLibraryErrorNotification","statusText","updateFieldConfig","updateOptions","configKey","setProperty","mode","PanelOptionsChangedEvent","triggerForceUpdate","renderPanel","isOnlyPanel","mainPaneWrapper","renderPanelToolbar","panelWrapper","gridSize","panelSize","calculatePanelSize","centeringContainer","DashboardPanel","stateKey","isEditing","isViewing","lazy","renderPanelAndEditor","panelPane","tabsWrapper","renderTemplateVariables","variablesWrapper","panelToolbar","InlineSwitch","showLabel","onToggleTableView","displayModes","onDisplayModeChange","DashNavTimeControls","onChangeTimeZone","renderEditorActions","editorActions","onOpenDashboardSettings","onSaveLibraryPanel","onSaveDashboard","ModalsController","UnlinkModal","pop","renderOptionsPane","onFieldConfigChange","onPanelConfigChanged","PageToolbar","section","onGoBack","onGoBackToDashboard","verticalSplitPanesWrapper","onConfirmAndDismissLibarayPanelModel","PanelEditor","withTheme2","zIndex","sidemenu","canvas","toolbarLeft","AnnotationPicker","annotation","onEnabledChanged","setLoading","started","getStream","AnnotationQueryStarted","stopped","AnnotationQueryFinished","InlineFieldRow","InlineField","enable","indicator","LoadingIndicator","onCancel","getDashboardQueryRunner","cancel","Annotations","onAnnotationChanged","visibleAnnotations","setVisibleAnnotations","DashboardLinksDashboard","link","linkInfo","listRef","dropdownCssClass","setDropdownCssClass","opened","setOpened","resolvedLinks","useResolvedLinks","useLayoutEffect","wrapperPos","parentElement","pos","getDropdownLocationCssClass","asDropdown","LinkElement","button","iconMargin","dropdown","resolvedLink","url","targetBlank","marginRight","rest","tags","dependencies","limit","tag","searchForTags","getLinkSrv","sanitize","sanitizeUrl","searchHit","getLinkUrl","resolveLinks","maxWidth","maxHeight","overflowY","textOverflow","whiteSpace","DashboardLinks","useEffectOnce","TimeRangeUpdatedEvent","getAnchorInfo","linkElement","linkIconMap","SubMenuUnConnected","updatedAnnotation","startRefresh","isSubMenuVisible","readOnlyVariables","isSnapshot","onAnnotationStateChanged","SubMenu","templatingState","getVariablesState","getSubMenuVariables","addPanel","AddPanelWidget","addPanelView","setAddPanelView","copiedPanelPlugins","chain","copiedPanels","copiedPanelJson","LS_PANEL_COPY_KEY","copiedPanel","parse","pluginInfo","pluginCopy","sortBy","getCopiedPanelPlugins","callToAction","AddPanelWidgetHandle","evt","removePanel","LibraryPanelsSearch","panelInfo","gridPos","newPanel","toPanelModelLibraryPanel","LibraryPanelsSearchVariant","showPanelFilter","actionsWrapper","CardButton","reportInteraction","y","w","h","onCreateNewPanel","panelPluginInfo","onPasteCopiedPanel","headerRow","backButton","pulsate","main","tinycolor","darken","toHexString","noMargin","RowOptionsForm","onUpdate","newRepeat","setNewRepeat","onChangeRepeat","Form","defaultValues","onSubmit","formData","register","RowOptionsModal","modal","RowOptionsButton","onUpdateChange","DashboardRow","toggleRow","ShowConfirmModalEvent","altActionText","removeRow","onAltAction","onVariableUpdated","classNames","collapsed","count","onToggle","onDelete","cleanAndRemoveMany","DashboardGridUnconnected","newLayout","newPos","panelMap","updateGridPos","isLayoutInitialized","sortPanelsByGridPos","layout","oldItem","newItem","DashboardPanelsChangedEvent","buildLayout","log","panelPos","GRID_COLUMN_COUNT","isResizable","isDraggable","getPanelScreenPos","gridWidth","lastPanelBottom","GRID_CELL_VMARGIN","translateGridHeightToScreenHeight","renderPanels","panelElements","windowHeight","windowWidth","panelClasses","GrafanaGridItem","containerPadding","useCSSTransforms","rowHeight","GRID_CELL_HEIGHT","draggableHandle","onDragStop","onResize","onResizeStop","onLayoutChange","divProps","parseFloat","gridHeight","DashboardGrid","initDashboard","cleanUpDashboardAndVariables","cancelVariables","templateVarsChangedInUrl","UnthemedDashboardPage","getCleanState","tr","liveNow","liveTimer","updateScrollTop","scrollElement","viewPanel","showLoadingState","rememberScrollTop","panelNotFound","editPanelAccessDenied","forceRouteReloadCounter","history","routeReloadCounter","closeDashboard","isPublic","queryParams","urlSlug","slug","urlUid","urlType","urlFolderId","routeName","route","fixUrl","accessToken","updateLiveTimer","updatePageNav","prevUrlParams","urlParams","to","updateTimeRangeFromUrl","setAutoRefresh","templateVarChanges","findTemplateVarChanges","dashboardWatcher","publish","PanelEditEnteredEvent","PanelEditExitedEvent","createErrorNotification","urlEditPanelId","urlViewPanelId","getPanelByUrlId","canEditPanel","scrollTop","initViewPanel","exitViewPanel","getInspectPanel","inspectPanelId","inspectPanel","getPanelById","pageNav","locationUtil","folderTitle","parentItem","folderUid","DashboardRoutes","getPageNavFromSlug","getPageProps","navModel","getRootContentNavModel","navId","kioskMode","KioskMode","getKioskMode","containerClassNames","classnames","showSubMenu","toolbar","DashNav","isFullscreen","onAddPanel","hideTimePicker","timepicker","hidden","Page","PageLayoutType","scrollRef","setScrollRef","DashboardSettings","D","DashboardPage","StorageFolderPage","listing","getGrafanaStorage","childRoot","fields","toArray","isFolder","isDash","endsWith","renderListing","parts","lastPageNav","pageNavs","_typeof","Symbol","iterator","exports","_react","_interopRequireDefault","_propTypes","_reactDraggable","_reactResizable","_utils","_calculateUtils","_ReactGridLayoutPropTypes","_clsx","__esModule","_objectSpread","hasNativeReflectConstruct","valueOf","GridItem","_len","args","_key","resizing","dragging","_ref","onDragStart","transformScale","offsetParent","parentRect","clientRect","cLeft","pLeft","cTop","pTop","scrollLeft","_calcXY","calcXY","getPositionParams","_ref2","deltaX","deltaY","onDrag","Error","isBounded","containerWidth","positionParams","bottomBoundary","clientHeight","calcGridItemWHPx","clamp","colWidth","calcGridColWidth","rightBoundary","_calcXY2","_ref3","_this$state$dragging","_calcXY3","callbackData","onResizeHandler","droppingPosition","oldPosition","calcGridItemPosition","fastPositionEqual","moveDroppingItem","elementRef","prevDroppingPosition","shouldDrag","maxRows","_this$props5","usePercentages","setTransform","setTopLeft","perc","child","createElement","DraggableCore","onStart","onStop","handle","scale","nodeRef","_this$props6","minW","minH","maxW","maxH","resizeHandles","resizeHandle","mins","maxes","minConstraints","maxConstraints","Resizable","draggableOpts","onResizeStart","_ref4","handlerName","handler","_this$props7","_this$props8","_calcWH","calcWH","_this$props9","Children","only","newChild","cloneElement","static","dropping","cssTransforms","createStyle","mixinResizable","mixinDraggable","Component","number","array","propName","string","resizeHandleAxesType","resizeHandleType","func","bool","nodeInterop","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","hasOwnProperty","desc","set","_interopRequireWildcard","_lodash","_GridItem","WeakMap","cacheBabelInterop","cacheNodeInterop","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","done","_iterableToArrayLimit","_nonIterableRest","minLen","n","len","arr2","layoutClassName","isFirefox","navigator","userAgent","ReactGridLayout","activeDrag","synchronizeLayoutWithChildren","compactType","allowOverlap","mounted","oldDragItem","oldLayout","oldResizeItem","droppingDOMNode","l","getLayoutItem","cloneLayoutItem","preventCollision","moveElement","compact","onLayoutMaybeChanged","_ref5","_withLayoutItem","withLayoutItem","hasCollisions","collisions","getAllCollisions","layoutItem","leastX","leastY","Number","isFinite","_withLayoutItem2","_ref6","_e$nativeEvent$target","nativeEvent","classList","contains","droppingItem","onDropDragOver","onDragOverResult","removeDroppingPlaceholder","finalDroppingItem","_e$nativeEvent","layerX","layerY","_this$state$droppingP","calculatedPosition","dragEnterCounter","onDrop","newLayoutBase","propsLayout","childrenEqual","fastRGLPropsEqual","autoSize","nbRow","containerPaddingY","isDroppingItem","draggableCancel","resizable","resizeHandlesOptions","bounded","isDroppable","mergedClassName","mergedStyle","containerHeight","noop","onDragLeave","onDragEnter","onDragOver","processGridItem","verticalCompact","arrayOf","oneOf","oneOfType","_default","any","_responsiveUtils","_ReactGridLayout","_excluded","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","getIndentationValue","param","breakpoint","ResponsiveReactGridLayout","generateInitialState","layouts","_cols","findOrGenerateResponsiveLayout","getBreakpointFromWidth","colNo","getColsFromBreakpoint","onWidthChange","newBreakpoint","lastBreakpoint","newCols","newLayouts","cloneLayout","onBreakpointChange","other","validateLayout","gridUnits","colOrRowSize","marginPx","round","num","lowerBound","upperBound","out","ComposedComponent","_class","WidthProvider","HTMLElement","offsetWidth","onWindowResize","measureBeforeMount","module","isEqualImpl","breakpointsSorted","sortBreakpoints","breakpointsAbove","correctBounds","sorted","matching","breakpointName","collides","compactItem","getFirstCollision","getStatics","modifyLayout","moveElementAwayFromCollision","translate","WebkitTransform","MozTransform","msTransform","OTransform","sortLayoutItems","sortLayoutItemsByColRow","sortLayoutItemsByRowCol","initialLayout","exists","g","_grid","correctedLayout","itemKey","cb","bottomY","moved","l1","l2","compareWith","heightWidth","resolveCompactionCollision","moveToCoord","axis","sizeProp","otherItem","fullLayout","compactH","bounds","collidesWith","isUserAction","oldX","oldY","reverse","collision","itemToMove","compactV","fakeItem","contextName","subProps","j","utils","Responsive","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","root","Function","freeExports","nodeType","freeModule","moduleExports","freeProcess","process","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","predicate","mapToArray","setToArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","exec","IE_PROTO","nativeObjectToString","reIsNative","Buffer","Uint8Array","symToStringTag","toStringTag","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","arg","DataView","getNative","Map","Promise","Set","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","clear","entry","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assocIndexOf","eq","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsEqual","bitmask","customizer","stack","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","byteLength","byteOffset","buffer","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsNative","isObject","isMasked","isFunction","baseKeys","Ctor","proto","arrLength","seen","arrValue","othIndex","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getSymbols","getMapData","getValue","pairs","LARGE_ARRAY_SIZE","resIndex","arrayFilter","symbol","ArrayBuffer","resolve","ctorString","isLength","baseUnary","PropTypes","componentName","failures","styleKey","supportingArrays"],"sourceRoot":""}