{"version":3,"file":"DashboardPage.6dd20fc708f325851aed.js","mappings":"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A,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,IAAIl8B,EAAa,EAAQ,OACrBw7C,EAAY,EAAQ,OAExBjO,EAAOrR,QAAU,SAAS9oD,EAAO8vD,EAAUuY,GACzC,IAAIpoE,EAASD,EAAM8vD,GACnB,GAAK7vD,EAAL,CAIA,IAAIqoE,EAAW,GAMf,GALAtlE,OAAOU,KAAKzD,GAAQya,SAAQ,SAAS6tD,IACG,IAAlC37C,EAAW2e,QAAQg9B,IACrBD,EAAS1iE,KAAK2iE,MAGdD,EAASlpE,OACX,MAAM,IAAIgsD,MAAM,QAAU0E,EAAW,cAAgBuY,EAAgB,sBAAwBC,EAAS5qD,KAAK,SAI/Gy8C,EAAOrR,QAAQrkC,WAAa,SAASzkB,EAAO8vD,EAAUuY,GACpD,IAAKroE,EAAM8vD,GACT,MAAM,IAAI1E,MAAM,QAAU0E,EAAW,cAAgBuY,EAAgB,gBAEvE,OAAOlO,EAAOrR,QAAQ9oD,EAAO8vD,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 (hasPanelChangedInPanelEdit(panel) && !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\n // If all changes where saved then reset configRev after applying changes\n if (panel.hasSavedPanelEditChange && !panel.hasChanged) {\n sourcePanel.configRev = 0;\n }\n }, 20);\n }\n\n dispatch(cleanUpPanelState(panel.key));\n dispatch(closeEditor());\n };\n}\n\nfunction hasPanelChangedInPanelEdit(panel: PanelModel) {\n return panel.hasChanged || panel.hasSavedPanelEditChange || panel.isAngularPlugin();\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)?.length) {\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 singleLeftPane: css`\n height: 100%;\n position: absolute;\n overflow: hidden;\n width: 100%;\n `,\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","hasSavedPanelEditChange","isAngularPlugin","hasPanelChangedInPanelEdit","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","singleLeftPane","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","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","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":""}