@imperium/layout 7.3.2 → 8.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -349
- package/dist/client.js +361 -106
- package/dist/client.min.js +1 -1
- package/dist/client.min.js.map +1 -1
- package/dist/commonItems.d.ts +5 -4
- package/dist/content/hooks/useBuildContentData.d.ts +3 -1
- package/dist/content/types.d.ts +3 -2
- package/dist/content/utils.d.ts +1 -1
- package/dist/datahooks/DataHooks.d.ts +1 -1
- package/dist/datahooks/ExecutePermissionHook.d.ts +7 -0
- package/dist/datahooks/PermissionHooks.d.ts +7 -0
- package/dist/datahooks/types.d.ts +1 -1
- package/dist/hooks/useBuildData.d.ts +3 -2
- package/dist/hooks/useSelectPermission.d.ts +2 -0
- package/dist/layout/types.d.ts +5 -4
- package/dist/layout/utils.d.ts +1 -1
- package/dist/state.d.ts +38 -0
- package/dist/types.d.ts +4 -0
- package/package.json +7 -6
- package/dist/content/components/ActionLinkSidebarItemComponent.d.ts +0 -9
- package/dist/content/components/ContentItemWrapper.d.ts +0 -12
- package/dist/content/components/dividerSidebarItem.d.ts +0 -2
- package/dist/hooks/DataHooks.d.ts +0 -12
- package/dist/hooks/ExecuteDataHook.d.ts +0 -7
- package/dist/hooks/types.d.ts +0 -19
- package/dist/layout/components/CustomItem.d.ts +0 -7
- package/dist/layout/components/CustomItemComponent.d.ts +0 -7
- package/dist/layout/components/ItemBar.d.ts +0 -15
- package/dist/layout/components/ItemWrapper.d.ts +0 -19
- package/dist/layout/components/SidebarToggleMenuItem.d.ts +0 -7
- package/dist/layout/hooks/useBuildData.d.ts +0 -3
- package/dist/layout/hooks/useIsActiveRoute.d.ts +0 -2
- package/dist/layout/hooks/useSelectState.d.ts +0 -2
- package/dist/layout/mergeItems.d.ts +0 -2
package/dist/client.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.min.js","mappings":"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","sources":["webpack:///./content/components/styles.css","webpack:///./layout/components/styles.css","webpack:///../../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack:///../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///external commonjs \"react\"","webpack:///external commonjs \"react-redux\"","webpack:///external commonjs \"react-responsive\"","webpack:///external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack:///external commonjs \"@imperium/state\"","webpack:///./state.ts","webpack:///external commonjs \"@reduxjs/toolkit\"","webpack:///./layout/hooks/useMobileLayout.ts","webpack:///external commonjs \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external commonjs \"debug\"","webpack:///external commonjs \"lodash/fp\"","webpack:///external commonjs \"react-router-dom\"","webpack:///./datahooks/ExecuteDataHook.tsx","webpack:///external commonjs \"react/jsx-runtime\"","webpack:///./datahooks/DataHooks.tsx","webpack:///external commonjs \"@babel/runtime/helpers/slicedToArray\"","webpack:///external commonjs \"semantic-ui-react\"","webpack:///external commonjs \"lodash/groupBy\"","webpack:///./layout/types.ts","webpack:///./layout/moveItems.ts","webpack:///external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack:///external commonjs \"lodash/memoize\"","webpack:///external commonjs \"lodash/sortBy\"","webpack:///./utils.ts","webpack:///./layout/utils.tsx","webpack:///external commonjs \"mingo\"","webpack:///external commonjs \"lodash/compact\"","webpack:///external commonjs \"lodash/merge\"","webpack:///external commonjs \"querystring\"","webpack:///external commonjs \"react-router\"","webpack:///external commonjs \"lodash/flowRight\"","webpack:///./hooks/useBuildData.ts","webpack:///./hooks/useSelectState.ts","webpack:///./hooks/useIsActiveRoute.ts","webpack:///./commonItems.ts","webpack:///./layout/components/CustomLayoutItemComponent.tsx","webpack:///./layout/components/styles.css?16f0","webpack:///./layout/components/DropdownItem.tsx","webpack:///./layout/components/MenuItem.tsx","webpack:///./layout/components/PlainItem.tsx","webpack:///./layout/components/LayoutItemWrapper.tsx","webpack:///./layout/components/LayoutItemBar.tsx","webpack:///./layout/components/SecondaryMenuToggleItem.tsx","webpack:///./layout/components/Layout.tsx","webpack:///./layout/withLayout.tsx","webpack:///./types.ts","webpack:///./content/hooks/useBuildContentData.ts","webpack:///./content/components/styles.css?d1f5","webpack:///./content/components/Header.tsx","webpack:///./content/utils.tsx","webpack:///external commonjs \"@thx/controls\"","webpack:///./content/components/ActionForm.tsx","webpack:///./content/components/ActionFormSidebarItemComponent.tsx","webpack:///./content/components/ActionSidebarItemComponent.tsx","webpack:///./content/components/CustomSidebarItemComponent.tsx","webpack:///./content/components/PlainSidebarItem.tsx","webpack:///./content/components/SidebarItemWrapper.tsx","webpack:///./content/types.ts","webpack:///./content/components/ContentComponent.tsx","webpack:///./content/createPages.tsx","webpack:///./content/dividerSidebarItem.ts","webpack:///./index.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".content-components-styles__parent--qcZqw {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\theight: 100%;\\n}\\n\\n.content-components-styles__wrapper--mbzSi {\\n\\tflex: 1;\\n\\tflex-basis: calc(65%);\\n}\\n\\n.content-components-styles__content--fhSXG {\\n\\tmargin: 0 0.8rem 0.8rem 0.8rem;\\n}\\n\\n.content-components-styles__contentFull--kUW3_ {\\n\\theight: 100%;\\n\\tmargin: 0 0;\\n}\\n\\n.content-components-styles__header--NOGyc {\\n\\tpadding: 0.8rem 0.8rem 0 0.8rem;\\n\\tmargin-bottom: 0.8rem;\\n}\\n\\n.content-components-styles__sidebar--rLU5R {\\n\\tmin-width: 250px;\\n\\tpadding: 10px;\\n\\toverflow-y: auto;\\n\\toverflow-x: hidden;\\n}\\n\\n.content-components-styles__sidebarItem--Eylgf {\\n\\tmargin-bottom: 5px;\\n}\\n\\n.content-components-styles__actionsHeader--N6zzM {\\n\\tdisplay: none;\\n}\\n\\n@media only screen and (max-width: 767.98px) {\\n\\t.content-components-styles__parent--qcZqw {\\n\\t\\tflex-direction: column;\\n\\t\\theight: auto;\\n\\t}\\n\\t.content-components-styles__wrapper--mbzSi {\\n\\t\\tborder-right: none;\\n\\t\\tpadding-bottom: 20px;\\n\\t}\\n\\t.content-components-styles__sidebar--rLU5R {\\n\\t\\tmin-width: auto;\\n\\t}\\n\\t.content-components-styles__actionsHeader--N6zzM {\\n\\t\\tdisplay: block;\\n\\t\\tmargin-bottom: 5px;\\n\\t}\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./content/components/styles.css\"],\"names\":[],\"mappings\":\"AAAA;CACC,OAAO;CACP,aAAa;CACb,mBAAmB;CACnB,YAAY;AACb;;AAEA;CACC,OAAO;CACP,qBAAqB;AACtB;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,+BAA+B;CAC/B,qBAAqB;AACtB;;AAEA;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC;EACC,sBAAsB;EACtB,YAAY;CACb;CACA;EACC,kBAAkB;EAClB,oBAAoB;CACrB;CACA;EACC,eAAe;CAChB;CACA;EACC,cAAc;EACd,kBAAkB;CACnB;AACD\",\"sourcesContent\":[\".parent {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\theight: 100%;\\n}\\n\\n.wrapper {\\n\\tflex: 1;\\n\\tflex-basis: calc(65%);\\n}\\n\\n.content {\\n\\tmargin: 0 0.8rem 0.8rem 0.8rem;\\n}\\n\\n.contentFull {\\n\\theight: 100%;\\n\\tmargin: 0 0;\\n}\\n\\n.header {\\n\\tpadding: 0.8rem 0.8rem 0 0.8rem;\\n\\tmargin-bottom: 0.8rem;\\n}\\n\\n.sidebar {\\n\\tmin-width: 250px;\\n\\tpadding: 10px;\\n\\toverflow-y: auto;\\n\\toverflow-x: hidden;\\n}\\n\\n.sidebarItem {\\n\\tmargin-bottom: 5px;\\n}\\n\\n.actionsHeader {\\n\\tdisplay: none;\\n}\\n\\n@media only screen and (max-width: 767.98px) {\\n\\t.parent {\\n\\t\\tflex-direction: column;\\n\\t\\theight: auto;\\n\\t}\\n\\t.wrapper {\\n\\t\\tborder-right: none;\\n\\t\\tpadding-bottom: 20px;\\n\\t}\\n\\t.sidebar {\\n\\t\\tmin-width: auto;\\n\\t}\\n\\t.actionsHeader {\\n\\t\\tdisplay: block;\\n\\t\\tmargin-bottom: 5px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"parent\": \"content-components-styles__parent--qcZqw\",\n\t\"wrapper\": \"content-components-styles__wrapper--mbzSi\",\n\t\"content\": \"content-components-styles__content--fhSXG\",\n\t\"contentFull\": \"content-components-styles__contentFull--kUW3_\",\n\t\"header\": \"content-components-styles__header--NOGyc\",\n\t\"sidebar\": \"content-components-styles__sidebar--rLU5R\",\n\t\"sidebarItem\": \"content-components-styles__sidebarItem--Eylgf\",\n\t\"actionsHeader\": \"content-components-styles__actionsHeader--N6zzM\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Need to pass 100% height all the way down */\\n#root {\\n\\theight: 100%;\\n}\\n#root > div {\\n\\theight: 100%;\\n}\\n\\n.layout-components-styles__parent--sws8O {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.layout-components-styles__menubar--WMcXn {\\n\\tborder-radius: 0 !important;\\n\\tmargin: 0 !important;\\n}\\n\\n.layout-components-styles__statusbar--Ha4f_ {\\n\\tmargin: 0 !important;\\n\\tborder-radius: 0 !important;\\n}\\n\\n.layout-components-styles__secondaryMenu--byu6y {\\n\\tmin-width: 220px !important;\\n\\twidth: 100% !important;\\n\\theight: 100% !important;\\n\\tborder-radius: 0 !important;\\n\\tmargin: 0 !important;\\n\\toverflow-x: auto; /* added to make the content scroll and not the whole layout */\\n\\ttransition: margin-left 0.3s ease-in-out;\\n}\\n\\n.layout-components-styles__secondaryMenuHidden--ek7Qz {\\n\\tmargin-left: -220px !important;\\n}\\n\\n.layout-components-styles__contentWrapper--SaYGn {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tpadding: 0 !important;\\n\\tborder: 0 solid transparent !important; /* this is a segment, and they seem to have a 1px white border by default */\\n\\toverflow-y: auto; /* added to make the content scroll and not the whole layout */\\n}\\n\\n.layout-components-styles__content--JGDuW {\\n\\tflex: 1; /* changed this to have a flex of one instead of auto so the side menu doesn't get squished */\\n\\talign-content: flex-start;\\n\\theight: 100%;\\n\\tmax-height: 100%; /* added to make the content scroll and not the whole layout */\\n\\toverflow-x: hidden; /* added to make the content scroll and not the whole layout */\\n}\\n\\n.layout-components-styles__footer--A7LSH {\\n\\tmargin: 0 !important;\\n\\tborder-radius: 0 !important;\\n}\\n\\n.layout-components-styles__verticalDropdownIcon--V69Cw {\\n\\ttransform: rotate(0deg);\\n\\ttransition: transform 0.3s ;\\n\\tcursor: pointer;\\n}\\n\\n.layout-components-styles__verticalDropdownIconRotated--bZyNO {\\n\\ttransform: rotate(90deg);\\n\\ttransition: transform 0.3s ;\\n\\tcursor: pointer;\\n}\\n\\n.layout-components-styles__verticalDropdownTitle--s6Asq {\\n\\tpadding: 0;\\n\\tcolor: #fff !important;\\n}\\n\\n.layout-components-styles__verticalDropdownContent--xGHxa {\\n\\tpadding-top: 0 !important;\\n\\tmargin: 0 -1.14285714em 0 0;\\n\\tborder-radius: 0;\\n}\\n\\n.layout-components-styles__icon--Gtl4t {\\n\\ttransform: rotate(0deg);\\n\\ttransition: transform 0.4s linear;\\n\\tcursor: pointer;\\n}\\n\\n.layout-components-styles__iconRotated--XB67Y {\\n\\ttransform: rotate(-180deg);\\n\\ttransition: transform 0.5s;\\n\\tcursor: pointer;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./layout/components/styles.css\"],\"names\":[],\"mappings\":\"AAAA,8CAA8C;AAC9C;CACC,YAAY;AACb;AACA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;CAChB,aAAa;CACb,sBAAsB;AACvB;;AAEA;CACC,2BAA2B;CAC3B,oBAAoB;AACrB;;AAEA;CACC,oBAAoB;CACpB,2BAA2B;AAC5B;;AAEA;CACC,2BAA2B;CAC3B,sBAAsB;CACtB,uBAAuB;CACvB,2BAA2B;CAC3B,oBAAoB;CACpB,gBAAgB,EAAE,8DAA8D;CAChF,wCAAwC;AACzC;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,OAAO;CACP,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,qBAAqB;CACrB,sCAAsC,EAAE,2EAA2E;CACnH,gBAAgB,EAAE,8DAA8D;AACjF;;AAEA;CACC,OAAO,EAAE,6FAA6F;CACtG,yBAAyB;CACzB,YAAY;CACZ,gBAAgB,EAAE,8DAA8D;CAChF,kBAAkB,EAAE,8DAA8D;AACnF;;AAEA;CACC,oBAAoB;CACpB,2BAA2B;AAC5B;;AAEA;CACC,uBAAuB;CACvB,2BAA2B;CAC3B,eAAe;AAChB;;AAEA;CACC,wBAAwB;CACxB,2BAA2B;CAC3B,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,sBAAsB;AACvB;;AAEA;CACC,yBAAyB;CACzB,2BAA2B;CAC3B,gBAAgB;AACjB;;AAEA;CACC,uBAAuB;CACvB,iCAAiC;CACjC,eAAe;AAChB;;AAEA;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,eAAe;AAChB\",\"sourcesContent\":[\"/* Need to pass 100% height all the way down */\\n:global(#root) {\\n\\theight: 100%;\\n}\\n:global(#root) > div {\\n\\theight: 100%;\\n}\\n\\n.parent {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.menubar {\\n\\tborder-radius: 0 !important;\\n\\tmargin: 0 !important;\\n}\\n\\n.statusbar {\\n\\tmargin: 0 !important;\\n\\tborder-radius: 0 !important;\\n}\\n\\n.secondaryMenu {\\n\\tmin-width: 220px !important;\\n\\twidth: 100% !important;\\n\\theight: 100% !important;\\n\\tborder-radius: 0 !important;\\n\\tmargin: 0 !important;\\n\\toverflow-x: auto; /* added to make the content scroll and not the whole layout */\\n\\ttransition: margin-left 0.3s ease-in-out;\\n}\\n\\n.secondaryMenuHidden {\\n\\tmargin-left: -220px !important;\\n}\\n\\n.contentWrapper {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tpadding: 0 !important;\\n\\tborder: 0 solid transparent !important; /* this is a segment, and they seem to have a 1px white border by default */\\n\\toverflow-y: auto; /* added to make the content scroll and not the whole layout */\\n}\\n\\n.content {\\n\\tflex: 1; /* changed this to have a flex of one instead of auto so the side menu doesn't get squished */\\n\\talign-content: flex-start;\\n\\theight: 100%;\\n\\tmax-height: 100%; /* added to make the content scroll and not the whole layout */\\n\\toverflow-x: hidden; /* added to make the content scroll and not the whole layout */\\n}\\n\\n.footer {\\n\\tmargin: 0 !important;\\n\\tborder-radius: 0 !important;\\n}\\n\\n.verticalDropdownIcon {\\n\\ttransform: rotate(0deg);\\n\\ttransition: transform 0.3s ;\\n\\tcursor: pointer;\\n}\\n\\n.verticalDropdownIconRotated {\\n\\ttransform: rotate(90deg);\\n\\ttransition: transform 0.3s ;\\n\\tcursor: pointer;\\n}\\n\\n.verticalDropdownTitle {\\n\\tpadding: 0;\\n\\tcolor: #fff !important;\\n}\\n\\n.verticalDropdownContent {\\n\\tpadding-top: 0 !important;\\n\\tmargin: 0 -1.14285714em 0 0;\\n\\tborder-radius: 0;\\n}\\n\\n.icon {\\n\\ttransform: rotate(0deg);\\n\\ttransition: transform 0.4s linear;\\n\\tcursor: pointer;\\n}\\n\\n.iconRotated {\\n\\ttransform: rotate(-180deg);\\n\\ttransition: transform 0.5s;\\n\\tcursor: pointer;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"parent\": \"layout-components-styles__parent--sws8O\",\n\t\"menubar\": \"layout-components-styles__menubar--WMcXn\",\n\t\"statusbar\": \"layout-components-styles__statusbar--Ha4f_\",\n\t\"secondaryMenu\": \"layout-components-styles__secondaryMenu--byu6y\",\n\t\"secondaryMenuHidden\": \"layout-components-styles__secondaryMenuHidden--ek7Qz\",\n\t\"contentWrapper\": \"layout-components-styles__contentWrapper--SaYGn\",\n\t\"content\": \"layout-components-styles__content--JGDuW\",\n\t\"footer\": \"layout-components-styles__footer--A7LSH\",\n\t\"verticalDropdownIcon\": \"layout-components-styles__verticalDropdownIcon--V69Cw\",\n\t\"verticalDropdownIconRotated\": \"layout-components-styles__verticalDropdownIconRotated--bZyNO\",\n\t\"verticalDropdownTitle\": \"layout-components-styles__verticalDropdownTitle--s6Asq\",\n\t\"verticalDropdownContent\": \"layout-components-styles__verticalDropdownContent--xGHxa\",\n\t\"icon\": \"layout-components-styles__icon--Gtl4t\",\n\t\"iconRotated\": \"layout-components-styles__iconRotated--XB67Y\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var _i = 0; _i < this.length; _i++) {\n var id = this[_i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i2 = 0; _i2 < modules.length; _i2++) {\n var item = [].concat(modules[_i2]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-redux\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-responsive\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/defineProperty\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@imperium/state\");","import {createSliceHook} from '@imperium/state';\nimport {createSlice, PayloadAction} from '@reduxjs/toolkit';\n\nexport const state = createSlice({\n\tname: 'imperiumLayout',\n\tinitialState: {\n\t\tisMobile: false,\n\t},\n\treducers: {\n\t\tsetMobile: (st, action: PayloadAction<boolean>) => ({...st, isMobile: action.payload}),\n\t},\n});\n\nexport const useLayoutState = createSliceHook(state);\n\nexport const {actions} = state;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@reduxjs/toolkit\");","import {useEffect} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {useMediaQuery} from 'react-responsive';\nimport {actions} from '../../state';\n\nexport function useMobileLayout() {\n\tconst dispatch = useDispatch();\n\tconst isMobile = useMediaQuery({query: '(max-width: 900px)'});\n\tuseEffect(() => {\n\t\tdispatch(actions.setMobile(isMobile));\n\t}, [dispatch, isMobile]);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/toConsumableArray\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"debug\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/fp\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-router-dom\");","import type {DataHook} from './types';\n\ninterface ExecuteDataHookProps {\n\tdataHook: DataHook;\n\trouteParams?: any;\n}\n\nexport function ExecuteDataHook({dataHook, routeParams}: ExecuteDataHookProps) {\n\tdataHook(routeParams);\n\treturn null;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react/jsx-runtime\");","import debug from 'debug';\nimport {compose} from 'lodash/fp';\nimport React from 'react';\nimport {useLocation} from 'react-router-dom';\nimport {ExecuteDataHook} from './ExecuteDataHook';\nimport type {DataHookItem} from './types';\n\nconst d = debug('imperium.layout.datahooks.DataHooks');\n\ninterface DataHooksProps {\n\tdataHooks: DataHookItem[];\n}\n\n/**\n * Renders layout data hooks. These hooks should return nothing. All interaction should be in side-effects, usually retrieving data and setting Redux state.\n * @param dataHooks\n * @constructor\n */\nexport function DataHooks({dataHooks}: DataHooksProps) {\n\tconst {pathname} = useLocation();\n\n\treturn (\n\t\t<>\n\t\t\t{dataHooks.map((hook, index) => {\n\t\t\t\tif (typeof hook === 'function') {\n\t\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\t\treturn <ExecuteDataHook key={index} dataHook={hook} />;\n\t\t\t\t}\n\t\t\t\tconst fn = Array.isArray(hook.routeMatch) ? compose(hook.routeMatch) : hook.routeMatch;\n\t\t\t\tconst routeParams = fn(pathname);\n\t\t\t\tif (Array.isArray(hook.dataHook)) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\t\t\t<React.Fragment key={index}>\n\t\t\t\t\t\t\t{hook.dataHook.map((dh, index2) => {\n\t\t\t\t\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\t\t\t\t\treturn <ExecuteDataHook key={index2} dataHook={dh} routeParams={routeParams} />;\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\treturn <ExecuteDataHook dataHook={hook.dataHook} key={index} routeParams={routeParams} />;\n\t\t\t})}\n\t\t</>\n\t);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/slicedToArray\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"semantic-ui-react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/groupBy\");","import type {SemanticICONS} from 'semantic-ui-react';\nimport type {HorizontalPositionedItem, RouteItem, VisibilityItem, WeightedItem} from '../commonItems';\nimport type {DataHookItem} from '../datahooks/types';\nimport type {Data} from '../types';\n\n/**\n * Describes a basic weighted, possibly visible item\n */\nexport interface BaseLayoutItem extends WeightedItem, VisibilityItem {\n\ttext: string | ((data: Data) => string);\n\ticon?: SemanticICONS | ((data: Data) => SemanticICONS);\n\tmoveToKey?: string;\n}\n\nexport interface CustomLayoutItem extends WeightedItem, VisibilityItem {\n\trender: (data: Data) => JSX.Element | null;\n\tmoveToKey?: string;\n}\n\n/**\n * Describes a menu that displays a dropdown list of items\n */\nexport interface DropdownLayoutItem extends BaseLayoutItem {\n\tdropdown: ((BaseLayoutItem & RouteItem) | CustomLayoutItem)[];\n\tkey?: string;\n}\n\n/**\n * Describes a menu that displays a sub menu (not a dropdown list)\n */\nexport interface MenuLayoutItem extends BaseLayoutItem {\n\tmenu: ((BaseLayoutItem & RouteItem) | CustomLayoutItem)[];\n\tkey?: string;\n}\n\n/**\n * Describes a horizontal menu item which is either a route item or dropdown menu\n */\nexport type LayoutItem = (BaseLayoutItem & RouteItem) | DropdownLayoutItem | MenuLayoutItem | CustomLayoutItem;\n\nexport interface LayoutData {\n\tdataHooks?: DataHookItem[];\n\tprimaryMenu?: (LayoutItem & HorizontalPositionedItem)[]; // primary menu\n\tstatusbar?: (LayoutItem & HorizontalPositionedItem)[];\n\tsecondaryMenu?: LayoutItem[]; // secondary menu\n\tfooter?: (LayoutItem & HorizontalPositionedItem)[]; // footer\n}\n\nexport function isCustomLayoutItem(value: any): value is CustomLayoutItem {\n\treturn !!(value as CustomLayoutItem).render;\n}\n\nexport function isDropdownLayoutItem(value: any): value is DropdownLayoutItem {\n\treturn !!(value as DropdownLayoutItem).dropdown;\n}\n\nexport function isMenuLayoutItem(value: any): value is MenuLayoutItem {\n\treturn !!(value as MenuLayoutItem).menu;\n}\n","import debug from 'debug';\nimport groupBy from 'lodash/groupBy';\nimport type {LayoutItem} from './types';\nimport {isDropdownLayoutItem, isMenuLayoutItem} from './types';\n\nconst d = debug('imperium.layout.moveItems');\n\nfunction pullItems(items: LayoutItem[], pulled: LayoutItem[] = []): LayoutItem[] {\n\treturn items.reduce((memo, item) => {\n\t\tif (isDropdownLayoutItem(item)) {\n\t\t\treturn [\n\t\t\t\t...memo,\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tdropdown: pullItems(item.dropdown, pulled),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tif (isMenuLayoutItem(item)) {\n\t\t\treturn [\n\t\t\t\t...memo,\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tmenu: pullItems(item.menu, pulled),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tif (!item.moveToKey) {\n\t\t\treturn [...memo, item];\n\t\t}\n\n\t\tpulled.push(item);\n\t\treturn memo;\n\t}, [] as LayoutItem[]);\n}\n\nfunction addItems(items: LayoutItem[], pulled: Record<string, LayoutItem[]>): LayoutItem[] {\n\treturn items.reduce((memo, item) => {\n\t\tif (isDropdownLayoutItem(item)) {\n\t\t\tconst newItems = item.key && pulled[item.key] ? pulled[item.key] : [];\n\t\t\treturn [\n\t\t\t\t...memo,\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tdropdown: [...addItems(item.dropdown, pulled), ...newItems],\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tif (isMenuLayoutItem(item) && item.key) {\n\t\t\tconst newItems = item.key && pulled[item.key] ? pulled[item.key] : [];\n\t\t\treturn [\n\t\t\t\t...memo,\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tmenu: [...addItems(item.menu, pulled), ...newItems],\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn [...memo, item];\n\t}, [] as LayoutItem[]);\n}\n\nexport function moveItems(items: LayoutItem[]) {\n\tconst pulled: LayoutItem[] = [];\n\tconst itemsMinusPulled = pullItems(items, pulled);\n\treturn addItems(itemsMinusPulled, groupBy(pulled, 'moveToKey'));\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/objectWithoutProperties\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/memoize\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/sortBy\");","import memoize from 'lodash/memoize';\nimport sortBy from 'lodash/sortBy';\nimport type {WeightedItem} from './commonItems';\n\n/**\n * Sorts weighted items\n */\nexport const sortWeightedItems = memoize(function sortWeightedItemsImpl<T extends WeightedItem>(items: T[]) {\n\treturn sortBy(items, v => v.weight || 0);\n});\n","import React from 'react';\nimport {Link} from 'react-router-dom';\nimport {Icon, SemanticICONS} from 'semantic-ui-react';\nimport type {RouteItem} from '../commonItems';\nimport {isHorizontalPositionedItem} from '../commonItems';\nimport type {Data} from '../types';\nimport type {BaseLayoutItem, LayoutItem} from './types';\n\n/**\n * Splits positioned items into left and right arrays (if horizontal)\n * @param items\n */\nexport function splitPositionedItems<T extends LayoutItem>(items: T[]) {\n\treturn items.reduce(\n\t\t(memo, v) => {\n\t\t\tif (isHorizontalPositionedItem(v) && v.position === 'right') {\n\t\t\t\treturn {\n\t\t\t\t\tleftItems: memo.leftItems,\n\t\t\t\t\trightItems: [...memo.rightItems, v],\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tleftItems: [...memo.leftItems, v],\n\t\t\t\trightItems: memo.rightItems,\n\t\t\t};\n\t\t},\n\t\t{leftItems: [], rightItems: []} as {leftItems: T[]; rightItems: T[]},\n\t);\n}\n\nexport function linkParameters(item: BaseLayoutItem & RouteItem, data: Data) {\n\treturn item.to\n\t\t? {\n\t\t\t\tas: Link,\n\t\t\t\tactive: data.active,\n\t\t\t\tto: typeof item.to === 'function' ? item.to(data) : item.to,\n\t\t }\n\t\t: {};\n}\n\nexport function getText(item: BaseLayoutItem, data: Data) {\n\treturn typeof item.text === 'function' ? item.text(data) : item.text;\n}\n\nexport function getIcon(item: BaseLayoutItem, data: Data) {\n\t// Generate the icon component, if it exists\n\tlet iconName: SemanticICONS | undefined;\n\tif (item.icon) {\n\t\ticonName = typeof item.icon === 'function' ? item.icon(data) : item.icon;\n\t}\n\treturn item.icon ? <Icon name={iconName} /> : null;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"mingo\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/compact\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/merge\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"querystring\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-router\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/flowRight\");","import debug from 'debug';\nimport type {Location} from 'history';\nimport compact from 'lodash/compact';\nimport merge from 'lodash/merge';\nimport queryString from 'querystring';\nimport {useLocation} from 'react-router-dom';\nimport type {Data, StateSelectorHook} from '../types';\nimport {useIsActiveRoute} from './useIsActiveRoute';\nimport {useSelectState} from './useSelectState';\n\nconst d = debug('imperium.layout.hooks.useBuildData');\n\nexport interface UseBuildDataParams {\n\tdata?: Data;\n\trouteItem?: any;\n\tstateSelectorHook?: StateSelectorHook | StateSelectorHook[];\n}\n\nexport function useBuildData({stateSelectorHook, data, routeItem}: UseBuildDataParams) {\n\tconst state = useSelectState(stateSelectorHook);\n\tconst loc = useLocation() as Location;\n\tconst route = {\n\t\tpath: compact(loc.pathname.split('/')),\n\t\thash: loc.hash,\n\t\tsearch: queryString.parse(loc.search),\n\t};\n\tconst active = useIsActiveRoute({loc, route, state, active: false}, routeItem);\n\tconst newData: Data = {state, loc, active, route};\n\n\treturn data ? merge(data, newData) : newData;\n}\n","import flowRight from 'lodash/flowRight';\nimport type {StateSelectorHook} from '../types';\n\nexport function useSelectState(stateSelectorHook?: StateSelectorHook | StateSelectorHook[]) {\n\tlet finalSelectorHook: () => any = () => ({});\n\tif (stateSelectorHook) {\n\t\tfinalSelectorHook = Array.isArray(stateSelectorHook) ? flowRight(stateSelectorHook) : stateSelectorHook;\n\t}\n\treturn finalSelectorHook();\n}\n","import {useRouteMatch} from 'react-router';\nimport type {RouteProps} from 'react-router-dom';\nimport {isRouteItem} from '../commonItems';\nimport type {Data} from '../types';\n\nexport function useIsActiveRoute(data: Data, item?: any) {\n\t// Determine if the current route matches the to route to see if the link is active\n\tconst routeMatchObject: RouteProps = {};\n\tif (item && isRouteItem(item)) {\n\t\tif (typeof item.to === 'string') {\n\t\t\trouteMatchObject.path = item.to;\n\t\t}\n\t\tif (typeof item.to === 'function') {\n\t\t\trouteMatchObject.path = item.to(data);\n\t\t}\n\t\trouteMatchObject.exact = item.exact !== false;\n\t\trouteMatchObject.sensitive = item.sensitive;\n\t\trouteMatchObject.strict = item.strict;\n\t}\n\tconst routeMatch = useRouteMatch(routeMatchObject);\n\treturn routeMatch !== null;\n}\n","import type {Data, StateSelectorHook, VisibilityQueryFn} from './types';\n\n/**\n * Describes an item that can hide itself based on redux state\n */\nexport interface VisibilityItem {\n\tstateSelectorHook?: StateSelectorHook | StateSelectorHook[]; // Hook or array of hooks that select state\n\tvisible?: Record<string, unknown> | VisibilityQueryFn;\n}\n\n/**\n * Describes an item with optional weight\n */\nexport interface WeightedItem {\n\tweight?: number; // Larger numbers move right/down\n}\n\n/**\n * Describes an item that links to a route\n */\nexport interface RouteItem {\n\tto?: string | ((data: Data) => string);\n\texact?: boolean;\n\tstrict?: boolean;\n\tsensitive?: boolean;\n}\n\n/**\n * Describes an item that can be positioned horizontally left or right\n */\nexport interface HorizontalPositionedItem {\n\tposition?: 'left' | 'right'; // Default is left\n\tstickOnMobile?: boolean; // If true, will not be hidden when in mobile mode\n}\n\nexport function isHorizontalPositionedItem(value: any): value is HorizontalPositionedItem {\n\treturn !!((value as HorizontalPositionedItem).position || (value as HorizontalPositionedItem).stickOnMobile);\n}\n\nexport function isRouteItem(value: any): value is RouteItem {\n\treturn !!((value as RouteItem).to || (value as RouteItem).exact || (value as RouteItem).strict || (value as RouteItem).sensitive);\n}\n","import type {Data} from '../../types';\nimport type {CustomLayoutItem} from '../types';\n\ninterface CustomLayoutItemComponentProps {\n\titem: CustomLayoutItem;\n\tdata: Data;\n}\n\nexport function CustomLayoutItemComponent({item, data}: CustomLayoutItemComponentProps) {\n\treturn item.render(data);\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","import debug from 'debug';\nimport React, {useState} from 'react';\nimport {Accordion, Dropdown, Icon, Menu} from 'semantic-ui-react';\nimport type {Data} from '../../types';\nimport type {DropdownLayoutItem} from '../types';\nimport {getText} from '../utils';\nimport styles from './styles.css';\n\nconst d = debug('imperium.layout.components.DropdownItem');\n\ninterface DropdownItemProps {\n\titem: DropdownLayoutItem;\n\tchildren: JSX.Element[];\n\tdata: Data;\n\tvertical?: boolean;\n}\n\nexport function DropdownItem({item, vertical, children, data}: DropdownItemProps) {\n\tconst [open, setOpen] = useState(false);\n\n\tif (vertical) {\n\t\treturn (\n\t\t\t<Menu.Item className=\"imperiumVerticalDropdown\">\n\t\t\t\t<Accordion fluid>\n\t\t\t\t\t<Accordion.Title\n\t\t\t\t\t\tclassName={styles.verticalDropdownTitle}\n\t\t\t\t\t\tonClick={ev => {\n\t\t\t\t\t\t\tev.stopPropagation();\n\t\t\t\t\t\t\tsetOpen(!open);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon className={open ? styles.verticalDropdownIconRotated : styles.verticalDropdownIcon} name=\"arrow right\" />\n\t\t\t\t\t\t{item.text}\n\t\t\t\t\t</Accordion.Title>\n\t\t\t\t\t<Accordion.Content active={open} className={`${styles.verticalDropdownContent} imperiumVerticalDropdownContent`} children={children} />\n\t\t\t\t</Accordion>\n\t\t\t</Menu.Item>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Dropdown item text={getText(item, data)} className=\"imperiumDropdown\">\n\t\t\t<Dropdown.Menu className=\"imperiumDropdownContent\">{children}</Dropdown.Menu>\n\t\t</Dropdown>\n\t);\n}\n","import React from 'react';\nimport {Menu} from 'semantic-ui-react';\nimport type {MenuLayoutItem} from '../types';\n\ninterface MenuItemProps {\n\titem: MenuLayoutItem;\n\tchildren: JSX.Element[];\n}\n\nexport function MenuItem({item, children}: MenuItemProps) {\n\treturn (\n\t\t<Menu.Item>\n\t\t\t<Menu.Header>{item.text}</Menu.Header>\n\t\t\t<Menu.Menu compact=\"\">{children}</Menu.Menu>\n\t\t</Menu.Item>\n\t);\n}\n","import React from 'react';\nimport {Menu} from 'semantic-ui-react';\nimport type {Data} from '../../types';\nimport type {CustomLayoutItem, DropdownLayoutItem, LayoutItem, MenuLayoutItem} from '../types';\nimport {getIcon, getText, linkParameters} from '../utils';\n\ninterface PlainItemProps {\n\titem: Exclude<LayoutItem, MenuLayoutItem | DropdownLayoutItem | CustomLayoutItem>;\n\tdata: Data;\n\tas?: React.ComponentClass;\n}\n\nexport function PlainItem({item, data, as}: PlainItemProps) {\n\tconst linkParams = linkParameters(item, data);\n\n\tconst ItemX = as || Menu.Item;\n\n\treturn (\n\t\t<ItemX {...linkParams}>\n\t\t\t{getIcon(item, data)}\n\t\t\t{getText(item, data)}\n\t\t</ItemX>\n\t);\n}\n","import debug from 'debug';\nimport {Query} from 'mingo';\nimport React from 'react';\nimport {Dropdown} from 'semantic-ui-react';\nimport {useBuildData} from '../../hooks/useBuildData';\nimport type {Data} from '../../types';\nimport {sortWeightedItems} from '../../utils';\nimport type {LayoutItem} from '../types';\nimport {isCustomLayoutItem, isDropdownLayoutItem, isMenuLayoutItem} from '../types';\nimport {CustomLayoutItemComponent} from './CustomLayoutItemComponent';\nimport {DropdownItem} from './DropdownItem';\nimport {MenuItem} from './MenuItem';\nimport {PlainItem} from './PlainItem';\n\nconst d = debug('imperium.layout.components.LayoutItemWrapper');\n\ninterface ItemWrapperProps {\n\titem: LayoutItem;\n\tas?: React.ComponentClass;\n\tvertical?: boolean;\n\tdata?: Data;\n}\n\n/**\n * Renders any type of Item. Gathers state, route and other data and checks for visibility.\n * @param item\n * @param as\n * @param vertical\n * @param parentData\n * @constructor\n */\nexport function LayoutItemWrapper({item, as, vertical, data: parentData}: ItemWrapperProps) {\n\tconst data = useBuildData({stateSelectorHook: item.stateSelectorHook, routeItem: item, data: parentData});\n\n\t// Check if visible\n\tif (item.visible) {\n\t\tif (typeof item.visible === 'function') {\n\t\t\tif (!item.visible(data)) return null;\n\t\t} else {\n\t\t\tconst q = new Query(item.visible || {});\n\t\t\tif (!q.test(data)) return null;\n\t\t}\n\t}\n\n\tif (isCustomLayoutItem(item)) {\n\t\treturn <CustomLayoutItemComponent item={item} data={data} />;\n\t}\n\tif (isDropdownLayoutItem(item)) {\n\t\t// eslint-disable-next-line react/no-array-index-key\n\t\tconst children = sortWeightedItems(item.dropdown).map((v, index) => <LayoutItemWrapper key={index} item={v} as={Dropdown.Item} data={data} />);\n\t\treturn <DropdownItem item={item} children={children} vertical={vertical} data={data} />;\n\t}\n\tif (isMenuLayoutItem(item)) {\n\t\t// eslint-disable-next-line react/no-array-index-key\n\t\tconst children = sortWeightedItems(item.menu).map((v, index) => (\n\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t<LayoutItemWrapper key={index} item={v} as={Dropdown.Item} vertical={vertical} data={data} />\n\t\t));\n\t\treturn <MenuItem item={item} children={children} />;\n\t}\n\treturn <PlainItem item={item} data={data} as={as} />;\n}\n","import debug from 'debug';\nimport React from 'react';\nimport type {MenuProps} from 'semantic-ui-react';\nimport {Menu} from 'semantic-ui-react';\nimport {sortWeightedItems} from '../../utils';\nimport type {LayoutItem} from '../types';\nimport {splitPositionedItems} from '../utils';\nimport {LayoutItemWrapper} from './LayoutItemWrapper';\n\nconst d = debug('imperium.layout.components.LayoutItemBar');\n\ninterface ItemBarProps extends MenuProps {\n\titems: LayoutItem[];\n}\n\n/**\n * Renders a horizontal or vertical bar of menu items.\n * @param name\n * @param items\n * @param rest\n * @constructor\n */\nexport function LayoutItemBar({items, ...rest}: ItemBarProps) {\n\tconst ims = splitPositionedItems(items);\n\n\t// eslint-disable-next-line react/no-array-index-key\n\tconst leftItems = sortWeightedItems(ims.leftItems).map((item, index) => <LayoutItemWrapper item={item} key={index} vertical={rest.vertical} />);\n\t// eslint-disable-next-line react/no-array-index-key\n\tconst rightItems = sortWeightedItems(ims.rightItems).map((item, index) => <LayoutItemWrapper item={item} key={index} vertical={rest.vertical} />);\n\n\treturn (\n\t\t<Menu {...rest}>\n\t\t\t{leftItems}\n\t\t\t{rest.vertical ? rightItems : <Menu.Menu position=\"right\">{rightItems}</Menu.Menu>}\n\t\t</Menu>\n\t);\n}\n","import React from 'react';\nimport {Icon, Menu} from 'semantic-ui-react';\nimport styles from './styles.css';\n\ninterface SecondaryMenuToggleItemProps {\n\tmenuOpen: boolean;\n\tsetMenuOpen: (open: boolean) => void;\n}\n\nexport function SecondaryMenuToggleItem({menuOpen, setMenuOpen}: SecondaryMenuToggleItemProps) {\n\treturn (\n\t\t<Menu.Item>\n\t\t\t<Icon\n\t\t\t\tclassName={menuOpen ? styles.iconRotated : styles.icon}\n\t\t\t\tname={menuOpen ? 'close' : 'sidebar'}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tsetMenuOpen(!menuOpen);\n\t\t\t\t}}\n\t\t\t/>\n\t\t</Menu.Item>\n\t);\n}\n","import debug from 'debug';\nimport React, {ReactNode, useState} from 'react';\nimport {Segment} from 'semantic-ui-react';\nimport {useLayoutState} from '../../state';\nimport {moveItems} from '../moveItems';\nimport type {LayoutData} from '../types';\nimport {LayoutItemBar} from './LayoutItemBar';\nimport {SecondaryMenuToggleItem} from './SecondaryMenuToggleItem';\nimport styles from './styles.css';\n\nconst d = debug('imperium.layout.components.Layout');\n\ninterface LayoutProps extends Required<LayoutData> {\n\tchildren?: ReactNode;\n}\n\n/**\n * Renders the main layout.\n * Hides/shows/collapses things as need for mobile layout.\n * Tracks state to whether the side menu is open or not.\n * @param footer\n * @param menubar\n * @param statusbar\n * @param children\n * @constructor\n */\nexport function Layout({footer, primaryMenu, statusbar, secondaryMenu, children}: LayoutProps) {\n\tconst {isMobile} = useLayoutState();\n\tconst [menuOpen, setMenuOpen] = useState(true);\n\n\tconst primaryMenuToggle = {\n\t\tstickOnMobile: true,\n\t\tweight: -19999,\n\t\trender: () => {\n\t\t\tif (!isMobile) return null;\n\t\t\treturn <SecondaryMenuToggleItem menuOpen={menuOpen} setMenuOpen={setMenuOpen} />;\n\t\t},\n\t};\n\n\t// Determine menubar items\n\tconst primaryMenuItems = moveItems(\n\t\tisMobile ? [primaryMenuToggle, ...primaryMenu].filter(v => v.stickOnMobile === true) : [primaryMenuToggle, ...primaryMenu],\n\t);\n\n\t// const pmi = mergeItems(primaryMenuItems);\n\n\t// Determine sidebar items\n\tconst secondaryMenuItems = moveItems(\n\t\tisMobile\n\t\t\t? [\n\t\t\t\t\t...secondaryMenu,\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: '',\n\t\t\t\t\t\tmenu: [primaryMenuToggle, ...primaryMenu].filter(v => v.stickOnMobile !== true),\n\t\t\t\t\t},\n\t\t\t ]\n\t\t\t: secondaryMenu,\n\t);\n\n\tconst secondaryMenuComp =\n\t\tsecondaryMenuItems.length > 0 ? (\n\t\t\t<div className=\"imperiumSecondaryMenuWrapper\">\n\t\t\t\t<LayoutItemBar\n\t\t\t\t\titems={secondaryMenuItems}\n\t\t\t\t\tinverted\n\t\t\t\t\tvertical\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisMobile && !menuOpen\n\t\t\t\t\t\t\t? `${styles.secondaryMenu} ${styles.secondaryMenuHidden} imperiumSecondaryMenu`\n\t\t\t\t\t\t\t: `${styles.secondaryMenu} imperiumSecondaryMenu`\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t) : null;\n\n\t// Determine footer items\n\tconst footerItems = moveItems(footer);\n\tconst footerComp =\n\t\tfooterItems.length > 0 ? (\n\t\t\t<LayoutItemBar name=\"footer\" items={footerItems} className={`${styles.footer} imperiumFooter`} inverted borderless />\n\t\t) : null;\n\n\t// Determine status bar items\n\tconst statusbarItems = moveItems(statusbar);\n\tconst statusbarComp =\n\t\tstatusbarItems.length > 0 ? <LayoutItemBar items={statusbarItems} inverted className={`${styles.statusbar} imperiumStatusbar`} /> : null;\n\n\treturn (\n\t\t<div className={`${styles.parent} imperiumLayout ${isMobile ? 'imperiumMobile' : 'imperiumNotMobile'}`}>\n\t\t\t<div className=\"imperiumPrimaryMenuWrapper\">\n\t\t\t\t<LayoutItemBar items={primaryMenuItems} inverted borderless className={`${styles.menubar} imperiumPrimaryMenu`} />\n\t\t\t\t{statusbarComp}\n\t\t\t</div>\n\t\t\t<Segment attached className={`${styles.contentWrapper} imperiumLayoutContentWrapper`}>\n\t\t\t\t{secondaryMenuComp}\n\t\t\t\t<div className={`${styles.content} imperiumLayoutContent`}>{children}</div>\n\t\t\t</Segment>\n\t\t\t{footerComp}\n\t\t</div>\n\t);\n}\n","import type {Hoc, ImperiumClient} from '@imperium/client';\nimport debug from 'debug';\nimport React, {ComponentType} from 'react';\nimport {DataHooks} from '../datahooks/DataHooks';\nimport {isImperiumLayoutClientModule} from '../types';\nimport {Layout} from './components/Layout';\nimport type {LayoutData} from './types';\n\nconst d = debug('imperium.layout.withLayout');\n\nconst initialLayoutModuleData: Required<LayoutData> = {\n\tdataHooks: [],\n\tprimaryMenu: [],\n\tstatusbar: [],\n\tsecondaryMenu: [],\n\tfooter: [],\n};\n\nexport function withLayout(client: ImperiumClient): Hoc {\n\tconst layoutModuleData = client.modules.reduce((memo, module) => {\n\t\tif (isImperiumLayoutClientModule(module)) {\n\t\t\treturn {\n\t\t\t\tdataHooks: [...(memo.dataHooks || []), ...(module.layout.dataHooks || [])],\n\t\t\t\tprimaryMenu: [...(memo.primaryMenu || []), ...(module.layout.primaryMenu || [])],\n\t\t\t\tstatusbar: [...(memo.statusbar || []), ...(module.layout.statusbar || [])],\n\t\t\t\tsecondaryMenu: [...(memo.secondaryMenu || []), ...(module.layout.secondaryMenu || [])],\n\t\t\t\tfooter: [...(memo.footer || []), ...(module.layout.footer || [])],\n\t\t\t} as Required<LayoutData>;\n\t\t}\n\t\treturn memo;\n\t}, initialLayoutModuleData);\n\td('Layout items processed', layoutModuleData);\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\treturn function layoutHoc(Wrapped: ComponentType<any>) {\n\t\tconst displayName = Wrapped.displayName || Wrapped.name || '';\n\n\t\tfunction WithLayout(props: unknown) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<Layout {...layoutModuleData}>\n\t\t\t\t\t\t<Wrapped {...props} layout={layoutModuleData} />\n\t\t\t\t\t</Layout>\n\t\t\t\t\t<DataHooks dataHooks={layoutModuleData.dataHooks} />\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tWithLayout.displayName = `withLayout(${displayName})`;\n\n\t\treturn WithLayout;\n\t};\n}\n","import type {ImperiumClientModule} from '@imperium/client';\nimport type {Location} from 'history';\nimport type {LayoutData} from './layout/types';\n\nexport type State = Record<string, any>;\n/**\n * A hook that selects from redux state.\n */\nexport type StateSelectorHook = () => State;\n/**\n * The visibility query can either be a mingo query or a function that returns a boolean. The data is an object with the router path merged with any state selector hook data.\n */\nexport type VisibilityQueryFn = (data: Data) => boolean;\n\nexport interface Data extends Record<string, unknown> {\n\tloc: Location;\n\troute: {\n\t\tpath: string[];\n\t\thash: string;\n\t\tsearch: Record<string, any>;\n\t};\n\tstate: State;\n\tactive: boolean;\n}\n\nexport interface ImperiumLayoutClientModule extends ImperiumClientModule {\n\tlayout: LayoutData;\n}\n\nexport function isImperiumLayoutClientModule(module: ImperiumClientModule): module is ImperiumLayoutClientModule {\n\tconst layoutModule = module as ImperiumLayoutClientModule;\n\treturn layoutModule.layout !== undefined;\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport type {UseBuildDataParams} from '../../hooks/useBuildData';\nimport {useBuildData} from '../../hooks/useBuildData';\nimport type {ContentData, RouteParameters} from '../types';\n\ninterface UseBuildContentDataParams<T extends DefineRouteOptions, K extends keyof T> extends UseBuildDataParams {\n\tdata?: ContentData<T, K>;\n\tparams: RouteParameters<T[K]['params']>;\n}\n\nexport function useBuildContentData<T extends DefineRouteOptions, K extends keyof T>({\n\tdata,\n\tstateSelectorHook,\n\trouteItem,\n\tparams,\n}: UseBuildContentDataParams<T, K>) {\n\tconst buildData = useBuildData({data, stateSelectorHook, routeItem});\n\treturn {\n\t\t...buildData,\n\t\tparams,\n\t};\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","import type {DefineRouteOptions} from '@imperium/router';\nimport debug from 'debug';\nimport React from 'react';\nimport type {ContentData, ContentHeader} from '../types';\nimport styles from './styles.css';\n\nconst d = debug('imperium.layout.content.components.Header');\n\ninterface HeaderProps<T extends DefineRouteOptions, K extends keyof T> {\n\theader: ContentHeader<T, K>;\n\tdata: ContentData<T, K>;\n}\n\nexport function Header<T extends DefineRouteOptions, K extends keyof T>({data, header}: HeaderProps<T, K>) {\n\tif (header) {\n\t\tlet headerInfo = {\n\t\t\ttitle: '',\n\t\t};\n\t\tif (typeof header === 'string') {\n\t\t\theaderInfo.title = header;\n\t\t} else if (typeof header === 'function') {\n\t\t\theaderInfo = header(data);\n\t\t} else {\n\t\t\theaderInfo = header;\n\t\t}\n\t\treturn (\n\t\t\t<div className={`${styles.header} imperiumContentHeader`}>\n\t\t\t\t<h2>{headerInfo.title}</h2>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn null;\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport React from 'react';\nimport {Icon, SemanticCOLORS} from 'semantic-ui-react';\nimport type {RouteItem} from '../commonItems';\nimport type {BaseSidebarItem, ContentData} from './types';\n\nexport function getIcon<T extends DefineRouteOptions, K extends keyof T>(item: BaseSidebarItem<T, K>, data: ContentData<T, K>) {\n\tif (item.icon) {\n\t\tconst iconName = typeof item.icon === 'function' ? item.icon(data) : item.icon;\n\t\treturn <Icon name={iconName} />;\n\t}\n\treturn null;\n}\n\nexport function getRouteTo<T extends DefineRouteOptions, K extends keyof T>(item: RouteItem, data: ContentData<T, K>) {\n\tif (item.to) {\n\t\treturn typeof item.to === 'function' ? item.to(data) : item.to;\n\t}\n\treturn '';\n}\n\nexport function getText<T extends DefineRouteOptions, K extends keyof T>(item: BaseSidebarItem<T, K>, data: ContentData<T, K>) {\n\treturn typeof item.text === 'function' ? item.text(data) : item.text;\n}\n\nexport function getColor<T extends DefineRouteOptions, K extends keyof T>(item: BaseSidebarItem<T, K>, data: ContentData<T, K>): SemanticCOLORS {\n\tif (!item.color) return 'blue';\n\treturn typeof item.color === 'function' ? item.color(data) : item.color;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@thx/controls\");","import type {DefineRouteOptions} from '@imperium/router';\nimport {useTForm} from '@thx/controls';\nimport debug from 'debug';\nimport React from 'react';\nimport {Button, Form, Icon, Message, Popup} from 'semantic-ui-react';\nimport type {ActionFormSidebarItem, ContentData} from '../types';\n\nconst d = debug('imperium.layout.content.components.ActionForm');\n\ninterface ActionFormProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: ActionFormSidebarItem<T, K>;\n\tdata: ContentData<T, K>;\n\tonHideForm: () => void;\n}\n\nexport function ActionForm<T extends DefineRouteOptions, K extends keyof T>({item, data, onHideForm}: ActionFormProps<T, K>) {\n\t// Get initial values\n\tlet initialValues = {};\n\tif (item.initialValues) {\n\t\tif (typeof item.initialValues === 'function') {\n\t\t\tinitialValues = item.initialValues(data);\n\t\t} else {\n\t\t\tinitialValues = item.initialValues;\n\t\t}\n\t}\n\n\t// TForm\n\tconst {hasErrors, hasWarnings, handleSubmit, handleChange, values, resetForm, errors, fieldError} = useTForm({\n\t\tinitialValues,\n\t\tonSubmit: submitValues => {\n\t\t\tif (item.onSubmit) {\n\t\t\t\titem.onSubmit(submitValues, data);\n\t\t\t}\n\t\t\tonHideForm();\n\t\t},\n\t\tenableReinitialize: true,\n\t\tvalidationSchema: item.validationSchema,\n\t});\n\n\tconst saveButton = hasWarnings ? (\n\t\t<Popup\n\t\t\ttrigger={\n\t\t\t\t<Button positive type=\"submit\" floated=\"right\" icon labelPosition=\"left\">\n\t\t\t\t\t<Icon name=\"exclamation circle\" color=\"red\" />\n\t\t\t\t\tSave\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tcontent={<Message error list={Object.values(errors)} />}\n\t\t\ton=\"hover\"\n\t\t/>\n\t) : (\n\t\t<Button positive type=\"submit\" floated=\"right\">\n\t\t\tSave\n\t\t</Button>\n\t);\n\n\t// Render form\n\treturn (\n\t\t<Form error={hasErrors} warning={hasWarnings} onSubmit={handleSubmit}>\n\t\t\t{item.form({handleChange, values, data, fieldError})}\n\t\t\t{saveButton}\n\t\t\t<Button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => {\n\t\t\t\t\tresetForm();\n\t\t\t\t\tonHideForm();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tCancel\n\t\t\t</Button>\n\t\t</Form>\n\t);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport debug from 'debug';\nimport React, {useState} from 'react';\nimport {Button} from 'semantic-ui-react';\nimport type {ActionFormSidebarItem, ContentData} from '../types';\nimport {getColor, getIcon, getText} from '../utils';\nimport {ActionForm} from './ActionForm';\n\nconst d = debug('imperium.layout.content.components.ActionFormSidebarItemComponent');\n\ninterface ActionFormSidebarItemComponentProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: ActionFormSidebarItem<T, K>;\n\tdata: ContentData<T, K>;\n}\n\nexport function ActionFormSidebarItemComponent<T extends DefineRouteOptions, K extends keyof T>({\n\titem,\n\tdata,\n}: ActionFormSidebarItemComponentProps<T, K>) {\n\tconst [isEdit, setIsEdit] = useState(false);\n\n\tif (isEdit) {\n\t\treturn (\n\t\t\t<ActionForm\n\t\t\t\titem={item}\n\t\t\t\tdata={data}\n\t\t\t\tonHideForm={() => {\n\t\t\t\t\tsetIsEdit(false);\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst icon = getIcon(item, data);\n\n\t// Render action button\n\treturn (\n\t\t<Button\n\t\t\tfluid\n\t\t\tcompact\n\t\t\tcolor={getColor(item, data)}\n\t\t\ticon={!!icon}\n\t\t\tlabelPosition={icon ? 'left' : undefined}\n\t\t\tonClick={() => {\n\t\t\t\tsetIsEdit(true);\n\t\t\t}}\n\t\t>\n\t\t\t{icon}\n\t\t\t{getText(item, data)}\n\t\t</Button>\n\t);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport React from 'react';\nimport {Button} from 'semantic-ui-react';\nimport type {ActionSidebarItem, ContentData} from '../types';\nimport {getColor, getIcon, getText} from '../utils';\n\ninterface ActionSidebarItemComponentProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: ActionSidebarItem<T, K>;\n\tdata: ContentData<T, K>;\n}\n\nexport function ActionSidebarItemComponent<T extends DefineRouteOptions, K extends keyof T>({item, data}: ActionSidebarItemComponentProps<T, K>) {\n\tconst icon = getIcon(item, data);\n\n\treturn (\n\t\t<Button\n\t\t\tfluid\n\t\t\tcompact\n\t\t\tcolor={getColor(item, data)}\n\t\t\ticon={!!icon}\n\t\t\tlabelPosition={icon ? 'left' : undefined}\n\t\t\tonClick={() => {\n\t\t\t\titem.onClick(data);\n\t\t\t}}\n\t\t>\n\t\t\t{icon}\n\t\t\t{getText(item, data)}\n\t\t</Button>\n\t);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport type {ContentData, CustomSidebarItem} from '../types';\n\ninterface CustomSidebarItemComponentProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: CustomSidebarItem<T, K>;\n\tdata: ContentData<T, K>;\n}\n\nexport function CustomSidebarItemComponent<T extends DefineRouteOptions, K extends keyof T>({item, data}: CustomSidebarItemComponentProps<T, K>) {\n\treturn item.render(data);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport React from 'react';\nimport {Link} from 'react-router-dom';\nimport {Button} from 'semantic-ui-react';\nimport type {ActionFormSidebarItem, ActionSidebarItem, ContentData, CustomSidebarItem, DividerSidebarItem, SidebarItem} from '../types';\nimport {getColor, getIcon, getRouteTo, getText} from '../utils';\n\ninterface PlainSidebarItemProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: Exclude<SidebarItem<T, K>, CustomSidebarItem<T, K> | ActionSidebarItem<T, K> | ActionFormSidebarItem<T, K> | DividerSidebarItem<T, K>>;\n\tdata: ContentData<T, K>;\n}\n\nexport function PlainSidebarItem<T extends DefineRouteOptions, K extends keyof T>({item, data}: PlainSidebarItemProps<T, K>) {\n\tconst icon = getIcon(item, data);\n\n\treturn (\n\t\t<Button fluid compact color={getColor(item, data)} icon={!!icon} labelPosition={icon ? 'left' : undefined} as={Link} to={getRouteTo(item, data)}>\n\t\t\t{icon}\n\t\t\t{getText(item, data)}\n\t\t</Button>\n\t);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport debug from 'debug';\nimport {Query} from 'mingo';\nimport React from 'react';\nimport {Divider} from 'semantic-ui-react';\nimport {useBuildContentData} from '../hooks/useBuildContentData';\nimport type {ContentData, RouteParameters, SidebarItem} from '../types';\nimport {isActionFormSidebarItem, isActionSidebarItem, isCustomSidebarItem, isDividerSidebarItem} from '../types';\nimport {ActionFormSidebarItemComponent} from './ActionFormSidebarItemComponent';\nimport {ActionSidebarItemComponent} from './ActionSidebarItemComponent';\nimport {CustomSidebarItemComponent} from './CustomSidebarItemComponent';\nimport {PlainSidebarItem} from './PlainSidebarItem';\n\nconst d = debug('imperium.layout.content.components.SidebarItemWrapper');\n\ninterface SidebarItemWrapperProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: SidebarItem<T, K>;\n\tdata?: ContentData<T, K>;\n\tparams: RouteParameters<T[K]['params']>;\n}\n\nexport function SidebarItemWrapper<T extends DefineRouteOptions, K extends keyof T>({item, data: parentData, params}: SidebarItemWrapperProps<T, K>) {\n\tconst data = useBuildContentData({data: parentData, stateSelectorHook: item.stateSelectorHook, params});\n\n\t// Check if visible\n\tif (item.visible) {\n\t\tif (typeof item.visible === 'function') {\n\t\t\tif (!item.visible(data)) return null;\n\t\t} else {\n\t\t\tconst q = new Query(item.visible || {});\n\t\t\tif (!q.test(data)) return null;\n\t\t}\n\t}\n\n\tif (isCustomSidebarItem(item)) {\n\t\treturn <CustomSidebarItemComponent item={item} data={data} />;\n\t}\n\n\tif (isActionSidebarItem(item)) {\n\t\treturn <ActionSidebarItemComponent item={item} data={data} />;\n\t}\n\n\tif (isActionFormSidebarItem(item)) {\n\t\treturn <ActionFormSidebarItemComponent item={item} data={data} />;\n\t}\n\n\tif (isDividerSidebarItem(item)) {\n\t\treturn <Divider />;\n\t}\n\n\t// @ts-ignore These types should work, not sure why it's not. Runtime code is fine.\n\treturn <PlainSidebarItem item={item} data={data} />;\n}\n","import type {DefineRouteOptions, ParametersFromAssertion} from '@imperium/router';\nimport type React from 'react';\nimport type {SemanticCOLORS, SemanticICONS} from 'semantic-ui-react';\nimport type {RouteItem, VisibilityItem, WeightedItem} from '../commonItems';\nimport type {DataHookItem} from '../datahooks/types';\nimport type {Data, StateSelectorHook} from '../types';\n\nexport type RouteParameters<T extends readonly string[] | undefined> = T extends readonly string[] ? ParametersFromAssertion<T> : never;\n\nexport interface ContentData<T extends DefineRouteOptions, K extends keyof T> extends Data {\n\tparams: RouteParameters<T[K]['params']>;\n}\n\nexport type Content<T extends DefineRouteOptions, K extends keyof T> = (data: ContentData<T, K>) => JSX.Element;\n\nexport interface BaseSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends WeightedItem, VisibilityItem {\n\ttext: string | ((data: ContentData<T, K>) => string);\n\ticon?: SemanticICONS | ((data: ContentData<T, K>) => SemanticICONS);\n\tcolor?: SemanticCOLORS | ((data: ContentData<T, K>) => SemanticCOLORS);\n}\n\nexport interface DividerSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends BaseSidebarItem<T, K> {\n\tdivider: boolean;\n}\n\nexport interface ActionSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends BaseSidebarItem<T, K> {\n\tonClick: (data: ContentData<T, K>) => void;\n}\n\ninterface ActionFormSidebarItemFormParams<T extends DefineRouteOptions, K extends keyof T> {\n\tvalues: Record<string, any>;\n\thandleChange: (e: React.ChangeEvent<any>) => void;\n\tfieldError: (fieldName: string | number) => boolean;\n\tdata: ContentData<T, K>;\n}\nexport interface ActionFormSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends BaseSidebarItem<T, K> {\n\tform: (params: ActionFormSidebarItemFormParams<T, K>) => JSX.Element | null;\n\tinitialValues?: Record<string, any> | ((data: ContentData<T, K>) => Record<string, any>);\n\tonSubmit?: (values: Record<string, any>, data: ContentData<T, K>) => void;\n\tvalidationSchema?: any;\n}\n\nexport interface CustomSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends WeightedItem, VisibilityItem {\n\trender: (data: ContentData<T, K>) => JSX.Element | null;\n}\n\nexport type SidebarItem<T extends DefineRouteOptions, K extends keyof T> =\n\t| (BaseSidebarItem<T, K> & RouteItem)\n\t| ActionSidebarItem<T, K>\n\t| CustomSidebarItem<T, K>\n\t| ActionFormSidebarItem<T, K>\n\t| DividerSidebarItem<T, K>;\n\nexport type ContentHeader<T extends DefineRouteOptions, K extends keyof T> =\n\t| string\n\t| {title: string; icon?: string} // TODO icon should probably be SemanticICONS\n\t| ((data: ContentData<T, K>) => {title: string; icon?: string})\n\t| undefined;\n\nexport interface Page<T extends DefineRouteOptions, K extends keyof T> {\n\tdataHooks?: DataHookItem[];\n\tstateSelectorHook?: StateSelectorHook | StateSelectorHook[];\n\tcontent: Content<T, K>;\n\theader?: ContentHeader<T, K>;\n\tsidebar?: SidebarItem<T, K>[];\n\tfull?: boolean;\n}\n\nexport type Pages<T extends DefineRouteOptions> = {\n\t[key in keyof T]: Page<T, key> | Content<T, key>;\n};\n\nexport function isPage<T extends DefineRouteOptions, K extends keyof T>(value: any): value is Page<T, K> {\n\treturn !!(value as Page<T, K>).content;\n}\n\nexport function isActionSidebarItem<T extends DefineRouteOptions, K extends keyof T>(value: any): value is ActionSidebarItem<T, K> {\n\treturn !!(value as ActionSidebarItem<T, K>).onClick;\n}\n\nexport function isActionFormSidebarItem<T extends DefineRouteOptions, K extends keyof T>(value: any): value is ActionFormSidebarItem<T, K> {\n\treturn !!(value as ActionFormSidebarItem<T, K>).form;\n}\n\nexport function isCustomSidebarItem<T extends DefineRouteOptions, K extends keyof T>(value: any): value is CustomSidebarItem<T, K> {\n\treturn !!(value as CustomSidebarItem<T, K>).render;\n}\n\nexport function isDividerSidebarItem<T extends DefineRouteOptions, K extends keyof T>(value: any): value is DividerSidebarItem<T, K> {\n\treturn (value as DividerSidebarItem<T, K>).divider;\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport debug from 'debug';\nimport React from 'react';\nimport {DataHooks} from '../../datahooks/DataHooks';\nimport {sortWeightedItems} from '../../utils';\nimport {useBuildContentData} from '../hooks/useBuildContentData';\nimport type {Page, RouteParameters} from '../types';\nimport {Header} from './Header';\nimport {SidebarItemWrapper} from './SidebarItemWrapper';\nimport styles from './styles.css';\n\nconst d = debug('imperium.layout.content.components.ContentComponent');\n\ninterface ContentComponentProps<T extends DefineRouteOptions, K extends keyof T> {\n\tpage: Page<T, K>;\n\tparams: RouteParameters<T[K]['params']>;\n}\n\nexport function ContentComponent<T extends DefineRouteOptions, K extends keyof T>({page, params}: ContentComponentProps<T, K>) {\n\tconst data = useBuildContentData({stateSelectorHook: page.stateSelectorHook, params});\n\n\tconst content = page.content(data);\n\tconst sidebarItems = sortWeightedItems(page.sidebar || []);\n\n\tconst sidebar =\n\t\tsidebarItems.length > 0 ? (\n\t\t\t<div className={`${styles.sidebar} imperiumContentSidebar`}>\n\t\t\t\t<div className={`${styles.actionsHeader} imperiumContentSidebarHeader`}>\n\t\t\t\t\t<h3>Actions</h3>\n\t\t\t\t</div>\n\t\t\t\t{sidebarItems.map((sb, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\t\t\t<div className={styles.sidebarItem} key={index}>\n\t\t\t\t\t\t\t<SidebarItemWrapper item={sb} params={params} data={data} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t) : null;\n\n\treturn (\n\t\t<div className={`${styles.parent} imperiumContentWrapperParent`}>\n\t\t\t<div className={`${styles.wrapper} imperiumContentWrapper`}>\n\t\t\t\t<Header header={page.header} data={data} />\n\t\t\t\t<div className={`${styles.content} imperiumContent ${page.full && styles.contentFull}`}>{content}</div>\n\t\t\t</div>\n\t\t\t{sidebar}\n\t\t\t<DataHooks dataHooks={page.dataHooks || []} />\n\t\t</div>\n\t);\n}\n","import type {Routes, DefineRouteOptions, KeyedRouteRenderFns} from '@imperium/router';\nimport debug from 'debug';\nimport React from 'react';\nimport {ContentComponent} from './components/ContentComponent';\nimport type {Pages, RouteParameters} from './types';\nimport {isPage} from './types';\n\nconst d = debug('imperium.layout.content.createPages');\n\nexport function createPages<T extends DefineRouteOptions>(routes: Routes<T>, pages: Pages<T>) {\n\tconst renderRoutePropsObj = Object.keys(routes.types).reduce((memo, key) => {\n\t\treturn {\n\t\t\t...memo,\n\t\t\t[key]: (params: RouteParameters<T[typeof key]['params']>) => {\n\t\t\t\tconst pg = pages[key];\n\t\t\t\tif (isPage(pg)) {\n\t\t\t\t\treturn <ContentComponent page={pg} params={params} />;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<ContentComponent\n\t\t\t\t\t\tpage={{\n\t\t\t\t\t\t\tcontent: pg,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tparams={params}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t}, {} as KeyedRouteRenderFns<T>);\n\n\treturn routes.renderRouteProps(renderRoutePropsObj);\n}\n","import type {DividerSidebarItem} from './types';\n\nexport const dividerSidebarItem: DividerSidebarItem<any, any> = {\n\ttext: '',\n\tdivider: true,\n};\n","import type {ImperiumStateClientModule} from '@imperium/state';\nimport {useMobileLayout} from './layout/hooks/useMobileLayout';\nimport {withLayout} from './layout/withLayout';\nimport {state} from './state';\nimport type {ImperiumLayoutClientModule} from './types';\n\nexport function layoutClientModule(): ImperiumStateClientModule & ImperiumLayoutClientModule {\n\treturn {\n\t\tname: '@imperium/layout',\n\t\torder: 30,\n\t\thocs: [withLayout],\n\t\tstate,\n\t\tlayout: {\n\t\t\tdataHooks: [useMobileLayout],\n\t\t},\n\t};\n}\n\nexport type {LayoutData} from './layout/types';\nexport {useLayoutState, actions as layoutActions} from './state';\nexport {createPages} from './content/createPages';\nexport type {ImperiumLayoutClientModule} from './types';\nexport {dividerSidebarItem} from './content/dividerSidebarItem';\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","locals","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","_i","_i2","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_index","memo","insert","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","require","state","createSlice","name","initialState","isMobile","reducers","setMobile","st","action","payload","useLayoutState","createSliceHook","actions","useMobileLayout","dispatch","useDispatch","useMediaQuery","query","useEffect","ExecuteDataHook","dataHook","routeParams","DataHooks","dataHooks","pathname","useLocation","hook","Array","isArray","routeMatch","compose","dh","index2","debug","isDropdownLayoutItem","dropdown","isMenuLayoutItem","menu","pullItems","items","pulled","reduce","moveToKey","addItems","newItems","moveItems","groupBy","sortWeightedItems","memoize","sortBy","v","weight","getText","text","getIcon","iconName","icon","Icon","useBuildData","stateSelectorHook","routeItem","finalSelectorHook","flowRight","useSelectState","loc","route","path","compact","split","hash","search","queryString","active","routeMatchObject","to","exact","strict","sensitive","useRouteMatch","useIsActiveRoute","newData","merge","CustomLayoutItemComponent","render","DropdownItem","vertical","children","useState","open","setOpen","Menu","className","Accordion","fluid","styles","onClick","ev","stopPropagation","Dropdown","MenuItem","PlainItem","as","linkParams","Link","linkParameters","ItemX","LayoutItemWrapper","parentData","visible","Query","test","LayoutItemBar","rest","ims","position","stickOnMobile","leftItems","rightItems","splitPositionedItems","SecondaryMenuToggleItem","menuOpen","setMenuOpen","Layout","footer","primaryMenu","statusbar","secondaryMenu","primaryMenuToggle","primaryMenuItems","filter","secondaryMenuItems","secondaryMenuComp","inverted","footerItems","footerComp","borderless","statusbarItems","statusbarComp","Segment","attached","initialLayoutModuleData","withLayout","client","layoutModuleData","layout","isImperiumLayoutClientModule","Wrapped","displayName","WithLayout","props","useBuildContentData","params","Header","header","headerInfo","title","getRouteTo","getColor","color","ActionForm","onHideForm","initialValues","useTForm","onSubmit","submitValues","enableReinitialize","validationSchema","hasErrors","hasWarnings","handleSubmit","handleChange","values","resetForm","errors","fieldError","saveButton","Popup","trigger","Button","positive","type","floated","labelPosition","Message","error","on","Form","warning","form","ActionFormSidebarItemComponent","isEdit","setIsEdit","ActionSidebarItemComponent","CustomSidebarItemComponent","PlainSidebarItem","SidebarItemWrapper","isActionFormSidebarItem","divider","isDividerSidebarItem","Divider","ContentComponent","page","sidebarItems","sidebar","sb","full","createPages","routes","pages","renderRoutePropsObj","keys","types","pg","renderRouteProps","dividerSidebarItem","layoutClientModule","order","hocs"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"client.min.js","mappings":"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","sources":["webpack:///./content/components/styles.css","webpack:///./layout/components/styles.css","webpack:///../../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack:///../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///external commonjs \"debug\"","webpack:///external commonjs \"react\"","webpack:///external commonjs \"react-redux\"","webpack:///external commonjs \"react-responsive\"","webpack:///external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack:///external commonjs \"@imperium/state\"","webpack:///./state.ts","webpack:///external commonjs \"@reduxjs/toolkit\"","webpack:///./layout/hooks/useMobileLayout.ts","webpack:///external commonjs \"@babel/runtime/helpers/toConsumableArray\"","webpack:///external commonjs \"lodash/fp\"","webpack:///external commonjs \"react-router-dom\"","webpack:///./datahooks/ExecuteDataHook.tsx","webpack:///external commonjs \"react/jsx-runtime\"","webpack:///./datahooks/DataHooks.tsx","webpack:///./datahooks/ExecutePermissionHook.tsx","webpack:///./datahooks/PermissionHooks.tsx","webpack:///external commonjs \"@babel/runtime/helpers/slicedToArray\"","webpack:///external commonjs \"semantic-ui-react\"","webpack:///external commonjs \"lodash/groupBy\"","webpack:///./layout/types.ts","webpack:///./layout/moveItems.ts","webpack:///external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack:///external commonjs \"lodash/memoize\"","webpack:///external commonjs \"lodash/sortBy\"","webpack:///./utils.ts","webpack:///./layout/utils.tsx","webpack:///external commonjs \"mingo\"","webpack:///external commonjs \"@imperium/auth-client\"","webpack:///external commonjs \"lodash/compact\"","webpack:///external commonjs \"lodash/merge\"","webpack:///external commonjs \"querystring\"","webpack:///external commonjs \"react-router\"","webpack:///external commonjs \"lodash/flowRight\"","webpack:///./hooks/useBuildData.ts","webpack:///./hooks/useSelectState.ts","webpack:///./hooks/useIsActiveRoute.ts","webpack:///./commonItems.ts","webpack:///./hooks/useSelectPermission.ts","webpack:///./layout/components/CustomLayoutItemComponent.tsx","webpack:///./layout/components/styles.css?16f0","webpack:///./layout/components/DropdownItem.tsx","webpack:///./layout/components/MenuItem.tsx","webpack:///./layout/components/PlainItem.tsx","webpack:///./layout/components/LayoutItemWrapper.tsx","webpack:///./layout/components/LayoutItemBar.tsx","webpack:///./layout/components/SecondaryMenuToggleItem.tsx","webpack:///./layout/components/Layout.tsx","webpack:///./layout/withLayout.tsx","webpack:///./types.ts","webpack:///external commonjs \"lodash\"","webpack:///./content/hooks/useBuildContentData.ts","webpack:///./content/components/styles.css?d1f5","webpack:///./content/components/Header.tsx","webpack:///./content/utils.tsx","webpack:///external commonjs \"@thx/controls\"","webpack:///./content/components/ActionForm.tsx","webpack:///./content/components/ActionFormSidebarItemComponent.tsx","webpack:///./content/components/ActionSidebarItemComponent.tsx","webpack:///./content/components/CustomSidebarItemComponent.tsx","webpack:///./content/components/PlainSidebarItem.tsx","webpack:///./content/components/SidebarItemWrapper.tsx","webpack:///./content/types.ts","webpack:///./content/components/ContentComponent.tsx","webpack:///./content/createPages.tsx","webpack:///./content/dividerSidebarItem.ts","webpack:///./index.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".content-components-styles__parent--qcZqw {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\theight: 100%;\\n}\\n\\n.content-components-styles__wrapper--mbzSi {\\n\\tflex: 1;\\n\\tflex-basis: calc(65%);\\n}\\n\\n.content-components-styles__content--fhSXG {\\n\\tmargin: 0 0.8rem 0.8rem 0.8rem;\\n}\\n\\n.content-components-styles__contentFull--kUW3_ {\\n\\theight: 100%;\\n\\tmargin: 0 0;\\n}\\n\\n.content-components-styles__header--NOGyc {\\n\\tpadding: 0.8rem 0.8rem 0 0.8rem;\\n\\tmargin-bottom: 0.8rem;\\n}\\n\\n.content-components-styles__sidebar--rLU5R {\\n\\tmin-width: 250px;\\n\\tpadding: 10px;\\n\\toverflow-y: auto;\\n\\toverflow-x: hidden;\\n}\\n\\n.content-components-styles__sidebarItem--Eylgf {\\n\\tmargin-bottom: 5px;\\n}\\n\\n.content-components-styles__actionsHeader--N6zzM {\\n\\tdisplay: none;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n\\t.content-components-styles__parent--qcZqw {\\n\\t\\tflex-direction: column;\\n\\t\\theight: auto;\\n\\t}\\n\\t.content-components-styles__wrapper--mbzSi {\\n\\t\\tborder-right: none;\\n\\t\\tpadding-bottom: 20px;\\n\\t}\\n\\t.content-components-styles__sidebar--rLU5R {\\n\\t\\tmin-width: auto;\\n\\t}\\n\\t.content-components-styles__actionsHeader--N6zzM {\\n\\t\\tdisplay: block;\\n\\t\\tmargin-bottom: 5px;\\n\\t}\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./content/components/styles.css\"],\"names\":[],\"mappings\":\"AAAA;CACC,OAAO;CACP,aAAa;CACb,mBAAmB;CACnB,YAAY;AACb;;AAEA;CACC,OAAO;CACP,qBAAqB;AACtB;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,+BAA+B;CAC/B,qBAAqB;AACtB;;AAEA;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC;EACC,sBAAsB;EACtB,YAAY;CACb;CACA;EACC,kBAAkB;EAClB,oBAAoB;CACrB;CACA;EACC,eAAe;CAChB;CACA;EACC,cAAc;EACd,kBAAkB;CACnB;AACD\",\"sourcesContent\":[\".parent {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\theight: 100%;\\n}\\n\\n.wrapper {\\n\\tflex: 1;\\n\\tflex-basis: calc(65%);\\n}\\n\\n.content {\\n\\tmargin: 0 0.8rem 0.8rem 0.8rem;\\n}\\n\\n.contentFull {\\n\\theight: 100%;\\n\\tmargin: 0 0;\\n}\\n\\n.header {\\n\\tpadding: 0.8rem 0.8rem 0 0.8rem;\\n\\tmargin-bottom: 0.8rem;\\n}\\n\\n.sidebar {\\n\\tmin-width: 250px;\\n\\tpadding: 10px;\\n\\toverflow-y: auto;\\n\\toverflow-x: hidden;\\n}\\n\\n.sidebarItem {\\n\\tmargin-bottom: 5px;\\n}\\n\\n.actionsHeader {\\n\\tdisplay: none;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n\\t.parent {\\n\\t\\tflex-direction: column;\\n\\t\\theight: auto;\\n\\t}\\n\\t.wrapper {\\n\\t\\tborder-right: none;\\n\\t\\tpadding-bottom: 20px;\\n\\t}\\n\\t.sidebar {\\n\\t\\tmin-width: auto;\\n\\t}\\n\\t.actionsHeader {\\n\\t\\tdisplay: block;\\n\\t\\tmargin-bottom: 5px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"parent\": \"content-components-styles__parent--qcZqw\",\n\t\"wrapper\": \"content-components-styles__wrapper--mbzSi\",\n\t\"content\": \"content-components-styles__content--fhSXG\",\n\t\"contentFull\": \"content-components-styles__contentFull--kUW3_\",\n\t\"header\": \"content-components-styles__header--NOGyc\",\n\t\"sidebar\": \"content-components-styles__sidebar--rLU5R\",\n\t\"sidebarItem\": \"content-components-styles__sidebarItem--Eylgf\",\n\t\"actionsHeader\": \"content-components-styles__actionsHeader--N6zzM\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Need to pass 100% height all the way down */\\n#root {\\n\\theight: 100%;\\n}\\n#root > div {\\n\\theight: 100%;\\n}\\n\\n.layout-components-styles__parent--sws8O {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.layout-components-styles__menubar--WMcXn {\\n\\tborder-radius: 0 !important;\\n\\tmargin: 0 !important;\\n}\\n\\n.layout-components-styles__statusbar--Ha4f_ {\\n\\tmargin: 0 !important;\\n\\tborder-radius: 0 !important;\\n}\\n\\n.layout-components-styles__secondaryMenu--byu6y {\\n\\tmin-width: 220px !important;\\n\\twidth: 100% !important;\\n\\theight: 100% !important;\\n\\tborder-radius: 0 !important;\\n\\tmargin: 0 !important;\\n\\toverflow-x: auto; /* added to make the content scroll and not the whole layout */\\n\\ttransition: margin-left 0.3s ease-in-out;\\n}\\n\\n.layout-components-styles__secondaryMenuHidden--ek7Qz {\\n\\tmargin-left: -220px !important;\\n}\\n\\n.layout-components-styles__contentWrapper--SaYGn {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tpadding: 0 !important;\\n\\tborder: 0 solid transparent !important; /* this is a segment, and they seem to have a 1px white border by default */\\n\\toverflow-y: auto; /* added to make the content scroll and not the whole layout */\\n}\\n\\n.layout-components-styles__content--JGDuW {\\n\\tflex: 1; /* changed this to have a flex of one instead of auto so the side menu doesn't get squished */\\n\\talign-content: flex-start;\\n\\theight: 100%;\\n\\tmax-height: 100%; /* added to make the content scroll and not the whole layout */\\n\\toverflow-x: hidden; /* added to make the content scroll and not the whole layout */\\n}\\n\\n.layout-components-styles__footer--A7LSH {\\n\\tmargin: 0 !important;\\n\\tborder-radius: 0 !important;\\n}\\n\\n.layout-components-styles__verticalDropdownIcon--V69Cw {\\n\\ttransform: rotate(0deg);\\n\\ttransition: transform 0.3s ;\\n\\tcursor: pointer;\\n}\\n\\n.layout-components-styles__verticalDropdownIconRotated--bZyNO {\\n\\ttransform: rotate(90deg);\\n\\ttransition: transform 0.3s ;\\n\\tcursor: pointer;\\n}\\n\\n.layout-components-styles__verticalDropdownTitle--s6Asq {\\n\\tpadding: 0;\\n\\tcolor: #fff !important;\\n}\\n\\n.layout-components-styles__verticalDropdownContent--xGHxa {\\n\\tpadding-top: 0 !important;\\n\\tmargin: 0 -1.14285714em 0 0;\\n\\tborder-radius: 0;\\n}\\n\\n.layout-components-styles__icon--Gtl4t {\\n\\ttransform: rotate(0deg);\\n\\ttransition: transform 0.4s linear;\\n\\tcursor: pointer;\\n}\\n\\n.layout-components-styles__iconRotated--XB67Y {\\n\\ttransform: rotate(-180deg);\\n\\ttransition: transform 0.5s;\\n\\tcursor: pointer;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./layout/components/styles.css\"],\"names\":[],\"mappings\":\"AAAA,8CAA8C;AAC9C;CACC,YAAY;AACb;AACA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;CAChB,aAAa;CACb,sBAAsB;AACvB;;AAEA;CACC,2BAA2B;CAC3B,oBAAoB;AACrB;;AAEA;CACC,oBAAoB;CACpB,2BAA2B;AAC5B;;AAEA;CACC,2BAA2B;CAC3B,sBAAsB;CACtB,uBAAuB;CACvB,2BAA2B;CAC3B,oBAAoB;CACpB,gBAAgB,EAAE,8DAA8D;CAChF,wCAAwC;AACzC;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,OAAO;CACP,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,qBAAqB;CACrB,sCAAsC,EAAE,2EAA2E;CACnH,gBAAgB,EAAE,8DAA8D;AACjF;;AAEA;CACC,OAAO,EAAE,6FAA6F;CACtG,yBAAyB;CACzB,YAAY;CACZ,gBAAgB,EAAE,8DAA8D;CAChF,kBAAkB,EAAE,8DAA8D;AACnF;;AAEA;CACC,oBAAoB;CACpB,2BAA2B;AAC5B;;AAEA;CACC,uBAAuB;CACvB,2BAA2B;CAC3B,eAAe;AAChB;;AAEA;CACC,wBAAwB;CACxB,2BAA2B;CAC3B,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,sBAAsB;AACvB;;AAEA;CACC,yBAAyB;CACzB,2BAA2B;CAC3B,gBAAgB;AACjB;;AAEA;CACC,uBAAuB;CACvB,iCAAiC;CACjC,eAAe;AAChB;;AAEA;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,eAAe;AAChB\",\"sourcesContent\":[\"/* Need to pass 100% height all the way down */\\n:global(#root) {\\n\\theight: 100%;\\n}\\n:global(#root) > div {\\n\\theight: 100%;\\n}\\n\\n.parent {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.menubar {\\n\\tborder-radius: 0 !important;\\n\\tmargin: 0 !important;\\n}\\n\\n.statusbar {\\n\\tmargin: 0 !important;\\n\\tborder-radius: 0 !important;\\n}\\n\\n.secondaryMenu {\\n\\tmin-width: 220px !important;\\n\\twidth: 100% !important;\\n\\theight: 100% !important;\\n\\tborder-radius: 0 !important;\\n\\tmargin: 0 !important;\\n\\toverflow-x: auto; /* added to make the content scroll and not the whole layout */\\n\\ttransition: margin-left 0.3s ease-in-out;\\n}\\n\\n.secondaryMenuHidden {\\n\\tmargin-left: -220px !important;\\n}\\n\\n.contentWrapper {\\n\\tflex: 1;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tpadding: 0 !important;\\n\\tborder: 0 solid transparent !important; /* this is a segment, and they seem to have a 1px white border by default */\\n\\toverflow-y: auto; /* added to make the content scroll and not the whole layout */\\n}\\n\\n.content {\\n\\tflex: 1; /* changed this to have a flex of one instead of auto so the side menu doesn't get squished */\\n\\talign-content: flex-start;\\n\\theight: 100%;\\n\\tmax-height: 100%; /* added to make the content scroll and not the whole layout */\\n\\toverflow-x: hidden; /* added to make the content scroll and not the whole layout */\\n}\\n\\n.footer {\\n\\tmargin: 0 !important;\\n\\tborder-radius: 0 !important;\\n}\\n\\n.verticalDropdownIcon {\\n\\ttransform: rotate(0deg);\\n\\ttransition: transform 0.3s ;\\n\\tcursor: pointer;\\n}\\n\\n.verticalDropdownIconRotated {\\n\\ttransform: rotate(90deg);\\n\\ttransition: transform 0.3s ;\\n\\tcursor: pointer;\\n}\\n\\n.verticalDropdownTitle {\\n\\tpadding: 0;\\n\\tcolor: #fff !important;\\n}\\n\\n.verticalDropdownContent {\\n\\tpadding-top: 0 !important;\\n\\tmargin: 0 -1.14285714em 0 0;\\n\\tborder-radius: 0;\\n}\\n\\n.icon {\\n\\ttransform: rotate(0deg);\\n\\ttransition: transform 0.4s linear;\\n\\tcursor: pointer;\\n}\\n\\n.iconRotated {\\n\\ttransform: rotate(-180deg);\\n\\ttransition: transform 0.5s;\\n\\tcursor: pointer;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"parent\": \"layout-components-styles__parent--sws8O\",\n\t\"menubar\": \"layout-components-styles__menubar--WMcXn\",\n\t\"statusbar\": \"layout-components-styles__statusbar--Ha4f_\",\n\t\"secondaryMenu\": \"layout-components-styles__secondaryMenu--byu6y\",\n\t\"secondaryMenuHidden\": \"layout-components-styles__secondaryMenuHidden--ek7Qz\",\n\t\"contentWrapper\": \"layout-components-styles__contentWrapper--SaYGn\",\n\t\"content\": \"layout-components-styles__content--JGDuW\",\n\t\"footer\": \"layout-components-styles__footer--A7LSH\",\n\t\"verticalDropdownIcon\": \"layout-components-styles__verticalDropdownIcon--V69Cw\",\n\t\"verticalDropdownIconRotated\": \"layout-components-styles__verticalDropdownIconRotated--bZyNO\",\n\t\"verticalDropdownTitle\": \"layout-components-styles__verticalDropdownTitle--s6Asq\",\n\t\"verticalDropdownContent\": \"layout-components-styles__verticalDropdownContent--xGHxa\",\n\t\"icon\": \"layout-components-styles__icon--Gtl4t\",\n\t\"iconRotated\": \"layout-components-styles__iconRotated--XB67Y\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var _i = 0; _i < this.length; _i++) {\n var id = this[_i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i2 = 0; _i2 < modules.length; _i2++) {\n var item = [].concat(modules[_i2]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"debug\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-redux\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-responsive\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/defineProperty\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@imperium/state\");","/* eslint-disable no-param-reassign */\nimport {createSliceHook} from '@imperium/state';\nimport {createSlice, PayloadAction} from '@reduxjs/toolkit';\n\nexport const state = createSlice({\n\tname: 'imperiumLayout',\n\tinitialState: {\n\t\tisMobile: false,\n\t\tparams: {},\n\t\tpermissions: {} as Record<string, boolean>,\n\t},\n\treducers: {\n\t\tsetMobile: (st, action: PayloadAction<boolean>) => ({...st, isMobile: action.payload}),\n\t\tsetParams: (st, action: PayloadAction<Record<string, string>>) => {\n\t\t\tst.params = action.payload;\n\t\t},\n\t\tsetPermission: (st, action: PayloadAction<{permission: string; result: boolean}>) => {\n\t\t\tst.permissions[action.payload.permission] = action.payload.result;\n\t\t},\n\t},\n});\n\nexport const useLayoutState = createSliceHook(state);\n\nexport const {actions} = state;\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@reduxjs/toolkit\");","import debug from 'debug';\nimport {useEffect} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {useMediaQuery} from 'react-responsive';\nimport {actions, useLayoutState} from '../../state';\n\nconst d = debug('imperium.layout.hooks.useMobileLayout');\n\nexport function useMobileLayout() {\n\tconst dispatch = useDispatch();\n\tconst {isMobile} = useLayoutState();\n\tconst isMobileX = useMediaQuery({query: '(max-width: 900px)'});\n\tuseEffect(() => {\n\t\tif (isMobile !== isMobileX) {\n\t\t\td(`Media query change detected: ${isMobile} -> ${isMobileX}`);\n\t\t\tdispatch(actions.setMobile(isMobileX));\n\t\t}\n\t}, [dispatch, isMobile, isMobileX]);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/toConsumableArray\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/fp\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-router-dom\");","import type {DataHook} from './types';\n\ninterface ExecuteDataHookProps {\n\tdataHook: DataHook;\n\trouteParams?: any;\n}\n\nexport function ExecuteDataHook({dataHook, routeParams}: ExecuteDataHookProps) {\n\tdataHook(routeParams);\n\treturn null;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react/jsx-runtime\");","import debug from 'debug';\nimport {compose} from 'lodash/fp';\nimport React from 'react';\nimport {useLocation} from 'react-router-dom';\nimport {ExecuteDataHook} from './ExecuteDataHook';\nimport type {DataHookItem} from './types';\n\nconst d = debug('imperium.layout.datahooks.DataHooks');\n\ninterface DataHooksProps {\n\tdataHooks: DataHookItem[];\n}\n\n/**\n * Renders layout data hooks. These hooks should return nothing. All interaction should be in side effects, usually retrieving data and setting Redux state.\n * @param dataHooks\n * @constructor\n */\nexport function DataHooks({dataHooks}: DataHooksProps) {\n\tconst {pathname} = useLocation();\n\n\treturn (\n\t\t<>\n\t\t\t{dataHooks.map((hook, index) => {\n\t\t\t\tif (typeof hook === 'function') {\n\t\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\t\treturn <ExecuteDataHook key={index} dataHook={hook} />;\n\t\t\t\t}\n\t\t\t\tconst fn = Array.isArray(hook.routeMatch) ? compose(hook.routeMatch) : hook.routeMatch;\n\t\t\t\tconst routeParams = fn(pathname);\n\t\t\t\tif (Array.isArray(hook.dataHook)) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\t\t\t<React.Fragment key={index}>\n\t\t\t\t\t\t\t{hook.dataHook.map((dh, index2) => {\n\t\t\t\t\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\t\t\t\t\treturn <ExecuteDataHook key={index2} dataHook={dh} routeParams={routeParams} />;\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</React.Fragment>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\treturn <ExecuteDataHook dataHook={hook.dataHook} key={index} routeParams={routeParams} />;\n\t\t\t})}\n\t\t</>\n\t);\n}\n","import {useEffect} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {actions} from '../state';\nimport type {PermissionSelectorHook} from '../types';\n\ninterface ExecutePermissionHookProps {\n\tpermissionHook: PermissionSelectorHook;\n\trouteParams?: any;\n}\n\nexport function ExecutePermissionHook({permissionHook, routeParams}: ExecutePermissionHookProps) {\n\tconst dispatch = useDispatch();\n\tconst perms = permissionHook(routeParams);\n\n\tuseEffect(() => {\n\t\tObject.keys(perms).forEach(permission => {\n\t\t\tdispatch(actions.setPermission({permission, result: perms[permission]}));\n\t\t});\n\t}, [dispatch, perms]);\n\n\treturn null;\n}\n","import debug from 'debug';\nimport React from 'react';\nimport type {PermissionSelectorHook} from '../types';\nimport {ExecutePermissionHook} from './ExecutePermissionHook';\n\nconst d = debug('imperium.layout.datahooks.PermissionHooks');\n\ninterface PermissionHooksProps {\n\tpermissionHooks: PermissionSelectorHook[];\n}\n\nexport function PermissionHooks({permissionHooks}: PermissionHooksProps) {\n\treturn (\n\t\t<>\n\t\t\t{permissionHooks.map((hook, index) => {\n\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\treturn <ExecutePermissionHook key={index} permissionHook={hook} />;\n\t\t\t})}\n\t\t</>\n\t);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/slicedToArray\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"semantic-ui-react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/groupBy\");","import type {SemanticICONS} from 'semantic-ui-react';\nimport type {HorizontalPositionedItem, RouteItem, VisibilityItem, WeightedItem} from '../commonItems';\nimport type {DataHookItem} from '../datahooks/types';\nimport type {Data, PermissionSelectorHook} from '../types';\n\n/**\n * Describes a basic weighted, possibly visible item\n */\nexport interface BaseLayoutItem extends WeightedItem, VisibilityItem {\n\ttext: string | ((data: Data) => string);\n\ticon?: SemanticICONS | ((data: Data) => SemanticICONS);\n\tmoveToKey?: string;\n}\n\nexport interface CustomLayoutItem extends WeightedItem, VisibilityItem {\n\trender: (data: Data) => JSX.Element | null;\n\tmoveToKey?: string;\n}\n\n/**\n * Describes a menu that displays a dropdown list of items\n */\nexport interface DropdownLayoutItem extends BaseLayoutItem {\n\tdropdown: ((BaseLayoutItem & RouteItem<Data>) | CustomLayoutItem)[];\n\tkey?: string;\n}\n\n/**\n * Describes a menu that displays a sub menu (not a dropdown list)\n */\nexport interface MenuLayoutItem extends BaseLayoutItem {\n\tmenu: ((BaseLayoutItem & RouteItem<Data>) | CustomLayoutItem)[];\n\tkey?: string;\n}\n\n/**\n * Describes a horizontal menu item which is either a route item or dropdown menu\n */\nexport type LayoutItem = (BaseLayoutItem & RouteItem<Data>) | DropdownLayoutItem | MenuLayoutItem | CustomLayoutItem;\n\nexport interface LayoutData {\n\tpermissionSelectorHooks?: PermissionSelectorHook[];\n\tdataHooks?: DataHookItem[];\n\tprimaryMenu?: (LayoutItem & HorizontalPositionedItem)[]; // primary menu\n\tstatusbar?: (LayoutItem & HorizontalPositionedItem)[];\n\tsecondaryMenu?: LayoutItem[]; // secondary menu\n\tfooter?: (LayoutItem & HorizontalPositionedItem)[]; // footer\n}\n\nexport function isCustomLayoutItem(value: any): value is CustomLayoutItem {\n\treturn !!(value as CustomLayoutItem).render;\n}\n\nexport function isDropdownLayoutItem(value: any): value is DropdownLayoutItem {\n\treturn !!(value as DropdownLayoutItem).dropdown;\n}\n\nexport function isMenuLayoutItem(value: any): value is MenuLayoutItem {\n\treturn !!(value as MenuLayoutItem).menu;\n}\n","import debug from 'debug';\nimport groupBy from 'lodash/groupBy';\nimport type {LayoutItem} from './types';\nimport {isDropdownLayoutItem, isMenuLayoutItem} from './types';\n\nconst d = debug('imperium.layout.moveItems');\n\nfunction pullItems(items: LayoutItem[], pulled: LayoutItem[] = []): LayoutItem[] {\n\treturn items.reduce((memo, item) => {\n\t\tif (isDropdownLayoutItem(item)) {\n\t\t\treturn [\n\t\t\t\t...memo,\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tdropdown: pullItems(item.dropdown, pulled),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tif (isMenuLayoutItem(item)) {\n\t\t\treturn [\n\t\t\t\t...memo,\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tmenu: pullItems(item.menu, pulled),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tif (!item.moveToKey) {\n\t\t\treturn [...memo, item];\n\t\t}\n\n\t\tpulled.push(item);\n\t\treturn memo;\n\t}, [] as LayoutItem[]);\n}\n\nfunction addItems(items: LayoutItem[], pulled: Record<string, LayoutItem[]>): LayoutItem[] {\n\treturn items.reduce((memo, item) => {\n\t\tif (isDropdownLayoutItem(item)) {\n\t\t\tconst newItems = item.key && pulled[item.key] ? pulled[item.key] : [];\n\t\t\treturn [\n\t\t\t\t...memo,\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tdropdown: [...addItems(item.dropdown, pulled), ...newItems],\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tif (isMenuLayoutItem(item) && item.key) {\n\t\t\tconst newItems = item.key && pulled[item.key] ? pulled[item.key] : [];\n\t\t\treturn [\n\t\t\t\t...memo,\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tmenu: [...addItems(item.menu, pulled), ...newItems],\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn [...memo, item];\n\t}, [] as LayoutItem[]);\n}\n\nexport function moveItems(items: LayoutItem[]) {\n\tconst pulled: LayoutItem[] = [];\n\tconst itemsMinusPulled = pullItems(items, pulled);\n\treturn addItems(itemsMinusPulled, groupBy(pulled, 'moveToKey'));\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/objectWithoutProperties\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/memoize\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/sortBy\");","import memoize from 'lodash/memoize';\nimport sortBy from 'lodash/sortBy';\nimport type {WeightedItem} from './commonItems';\n\n/**\n * Sorts weighted items\n */\nexport const sortWeightedItems = memoize(function sortWeightedItemsImpl<T extends WeightedItem>(items: T[]) {\n\treturn sortBy(items, v => v.weight || 0);\n});\n","import React from 'react';\nimport {Link} from 'react-router-dom';\nimport {Icon, SemanticICONS} from 'semantic-ui-react';\nimport type {RouteItem} from '../commonItems';\nimport {isHorizontalPositionedItem} from '../commonItems';\nimport type {Data} from '../types';\nimport type {BaseLayoutItem, LayoutItem} from './types';\n\n/**\n * Splits positioned items into left and right arrays (if horizontal)\n * @param items\n */\nexport function splitPositionedItems<T extends LayoutItem>(items: T[]) {\n\treturn items.reduce(\n\t\t(memo, v) => {\n\t\t\tif (isHorizontalPositionedItem(v) && v.position === 'right') {\n\t\t\t\treturn {\n\t\t\t\t\tleftItems: memo.leftItems,\n\t\t\t\t\trightItems: [...memo.rightItems, v],\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tleftItems: [...memo.leftItems, v],\n\t\t\t\trightItems: memo.rightItems,\n\t\t\t};\n\t\t},\n\t\t{leftItems: [], rightItems: []} as {leftItems: T[]; rightItems: T[]},\n\t);\n}\n\nexport function linkParameters(item: BaseLayoutItem & RouteItem<Data>, data: Data) {\n\treturn item.to\n\t\t? {\n\t\t\t\tas: Link,\n\t\t\t\tactive: data.active,\n\t\t\t\tto: typeof item.to === 'function' ? item.to(data) : item.to,\n\t\t }\n\t\t: {};\n}\n\nexport function getText(item: BaseLayoutItem, data: Data) {\n\treturn typeof item.text === 'function' ? item.text(data) : item.text;\n}\n\nexport function getIcon(item: BaseLayoutItem, data: Data) {\n\t// Generate the icon component, if it exists\n\tlet iconName: SemanticICONS | undefined;\n\tif (item.icon) {\n\t\ticonName = typeof item.icon === 'function' ? item.icon(data) : item.icon;\n\t}\n\treturn item.icon ? <Icon name={iconName} /> : null;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"mingo\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@imperium/auth-client\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/compact\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/merge\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"querystring\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-router\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash/flowRight\");","import {useAuth} from '@imperium/auth-client';\nimport debug from 'debug';\nimport type {Location} from 'history';\nimport compact from 'lodash/compact';\nimport merge from 'lodash/merge';\nimport queryString from 'querystring';\nimport {useLocation} from 'react-router-dom';\nimport {useLayoutState} from '../state';\nimport type {Data, PermissionSelectorHook, StateSelectorHook} from '../types';\nimport {useIsActiveRoute} from './useIsActiveRoute';\nimport {useSelectPermission} from './useSelectPermission';\nimport {useSelectState} from './useSelectState';\n\nconst d = debug('imperium.layout.hooks.useBuildData');\n\nexport interface UseBuildDataParams {\n\tdata?: Data;\n\trouteItem?: any;\n\tstateSelectorHook?: StateSelectorHook | StateSelectorHook[];\n\tpermissionSelectorHook?: PermissionSelectorHook | PermissionSelectorHook[];\n}\n\nexport function useBuildData({stateSelectorHook, permissionSelectorHook, data, routeItem}: UseBuildDataParams) {\n\tconst {id} = useAuth();\n\tconst {permissions} = useLayoutState();\n\tconst state = useSelectState(stateSelectorHook);\n\tconst loc = useLocation() as Location;\n\tconst route = {\n\t\tpath: compact(loc.pathname.split('/')),\n\t\thash: loc.hash,\n\t\tsearch: queryString.parse(loc.search),\n\t};\n\tconst active = useIsActiveRoute({loc, route, state, active: false, id, permissions}, routeItem);\n\tconst permissionsX = useSelectPermission({state, loc, active, route, id, permissions}, permissionSelectorHook);\n\tconst newData: Data = {state, loc, active, route, permissions: {...permissions, ...permissionsX}, id};\n\treturn data ? merge(data, newData) : newData;\n}\n","import flowRight from 'lodash/flowRight';\nimport type {StateSelectorHook} from '../types';\n\nexport function useSelectState(stateSelectorHook?: StateSelectorHook | StateSelectorHook[]) {\n\tlet finalSelectorHook: () => any = () => ({});\n\tif (stateSelectorHook) {\n\t\tfinalSelectorHook = Array.isArray(stateSelectorHook) ? flowRight(stateSelectorHook) : stateSelectorHook;\n\t}\n\treturn finalSelectorHook();\n}\n","import {useRouteMatch} from 'react-router';\nimport type {RouteProps} from 'react-router-dom';\nimport {isRouteItem} from '../commonItems';\nimport type {Data} from '../types';\n\nexport function useIsActiveRoute(data: Data, item?: any) {\n\t// Determine if the current route matches the to route to see if the link is active\n\tconst routeMatchObject: RouteProps = {};\n\tif (item && isRouteItem(item)) {\n\t\tif (typeof item.to === 'string') {\n\t\t\trouteMatchObject.path = item.to;\n\t\t}\n\t\tif (typeof item.to === 'function') {\n\t\t\trouteMatchObject.path = item.to(data);\n\t\t}\n\t\trouteMatchObject.exact = item.exact !== false;\n\t\trouteMatchObject.sensitive = item.sensitive;\n\t\trouteMatchObject.strict = item.strict;\n\t}\n\tconst routeMatch = useRouteMatch(routeMatchObject);\n\treturn routeMatch !== null;\n}\n","import type {PermissionSelectorHook, StateSelectorHook, VisibilityQueryFn} from './types';\n\n/**\n * Describes an item that can hide itself based on redux state\n */\nexport interface VisibilityItem {\n\tstateSelectorHook?: StateSelectorHook | StateSelectorHook[]; // Hook or array of hooks that select state\n\tpermissionSelectorHook?: PermissionSelectorHook | PermissionSelectorHook[]; // Hook or array of hooks that select permissions\n\tvisible?: Record<string, unknown> | VisibilityQueryFn;\n}\n\n/**\n * Describes an item with optional weight\n */\nexport interface WeightedItem {\n\tweight?: number; // Larger numbers move right/down\n}\n\n/**\n * Describes an item that links to a route\n */\nexport interface RouteItem<T> {\n\tto?: string | ((data: T) => string);\n\texact?: boolean;\n\tstrict?: boolean;\n\tsensitive?: boolean;\n}\n\n/**\n * Describes an item that can be positioned horizontally left or right\n */\nexport interface HorizontalPositionedItem {\n\tposition?: 'left' | 'right'; // Default is left\n\tstickOnMobile?: boolean; // If true, will not be hidden when in mobile mode\n}\n\nexport function isHorizontalPositionedItem(value: any): value is HorizontalPositionedItem {\n\treturn !!((value as HorizontalPositionedItem).position || (value as HorizontalPositionedItem).stickOnMobile);\n}\n\nexport function isRouteItem<T>(value: any): value is RouteItem<T> {\n\treturn !!((value as RouteItem<T>).to || (value as RouteItem<T>).exact || (value as RouteItem<T>).strict || (value as RouteItem<T>).sensitive);\n}\n","import flowRight from 'lodash/flowRight';\nimport type {Data, PermissionSelectorHook} from '../types';\n\nexport function useSelectPermission(data: Data, permissionSelectorHook?: PermissionSelectorHook | PermissionSelectorHook[]) {\n\tlet finalSelectorHook: PermissionSelectorHook = () => ({});\n\tif (permissionSelectorHook) {\n\t\tfinalSelectorHook = Array.isArray(permissionSelectorHook) ? flowRight(permissionSelectorHook) : permissionSelectorHook;\n\t}\n\treturn finalSelectorHook(data);\n}\n","import type {Data} from '../../types';\nimport type {CustomLayoutItem} from '../types';\n\ninterface CustomLayoutItemComponentProps {\n\titem: CustomLayoutItem;\n\tdata: Data;\n}\n\nexport function CustomLayoutItemComponent({item, data}: CustomLayoutItemComponentProps) {\n\treturn item.render(data);\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","import debug from 'debug';\nimport React, {useState} from 'react';\nimport {Accordion, Dropdown, Icon, Menu} from 'semantic-ui-react';\nimport type {Data} from '../../types';\nimport type {DropdownLayoutItem} from '../types';\nimport {getText} from '../utils';\nimport styles from './styles.css';\n\nconst d = debug('imperium.layout.components.DropdownItem');\n\ninterface DropdownItemProps {\n\titem: DropdownLayoutItem;\n\tchildren: JSX.Element[];\n\tdata: Data;\n\tvertical?: boolean;\n}\n\nexport function DropdownItem({item, vertical, children, data}: DropdownItemProps) {\n\tconst [open, setOpen] = useState(false);\n\n\tif (vertical) {\n\t\treturn (\n\t\t\t<Menu.Item className=\"imperiumVerticalDropdown\">\n\t\t\t\t<Accordion fluid>\n\t\t\t\t\t<Accordion.Title\n\t\t\t\t\t\tclassName={styles.verticalDropdownTitle}\n\t\t\t\t\t\tonClick={ev => {\n\t\t\t\t\t\t\tev.stopPropagation();\n\t\t\t\t\t\t\tsetOpen(!open);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon className={open ? styles.verticalDropdownIconRotated : styles.verticalDropdownIcon} name=\"arrow right\" />\n\t\t\t\t\t\t{item.text}\n\t\t\t\t\t</Accordion.Title>\n\t\t\t\t\t<Accordion.Content active={open} className={`${styles.verticalDropdownContent} imperiumVerticalDropdownContent`} children={children} />\n\t\t\t\t</Accordion>\n\t\t\t</Menu.Item>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Dropdown item text={getText(item, data)} className=\"imperiumDropdown\">\n\t\t\t<Dropdown.Menu className=\"imperiumDropdownContent\">{children}</Dropdown.Menu>\n\t\t</Dropdown>\n\t);\n}\n","import React from 'react';\nimport {Menu} from 'semantic-ui-react';\nimport type {MenuLayoutItem} from '../types';\n\ninterface MenuItemProps {\n\titem: MenuLayoutItem;\n\tchildren: JSX.Element[];\n}\n\nexport function MenuItem({item, children}: MenuItemProps) {\n\treturn (\n\t\t<Menu.Item>\n\t\t\t<Menu.Header>{item.text}</Menu.Header>\n\t\t\t<Menu.Menu compact=\"\">{children}</Menu.Menu>\n\t\t</Menu.Item>\n\t);\n}\n","import React from 'react';\nimport {Menu} from 'semantic-ui-react';\nimport type {Data} from '../../types';\nimport type {CustomLayoutItem, DropdownLayoutItem, LayoutItem, MenuLayoutItem} from '../types';\nimport {getIcon, getText, linkParameters} from '../utils';\n\ninterface PlainItemProps {\n\titem: Exclude<LayoutItem, MenuLayoutItem | DropdownLayoutItem | CustomLayoutItem>;\n\tdata: Data;\n\tas?: React.ComponentClass;\n}\n\nexport function PlainItem({item, data, as}: PlainItemProps) {\n\tconst linkParams = linkParameters(item, data);\n\n\tconst ItemX = as || Menu.Item;\n\n\treturn (\n\t\t<ItemX {...linkParams}>\n\t\t\t{getIcon(item, data)}\n\t\t\t{getText(item, data)}\n\t\t</ItemX>\n\t);\n}\n","import debug from 'debug';\nimport {Query} from 'mingo';\nimport React from 'react';\nimport {Dropdown} from 'semantic-ui-react';\nimport {useBuildData} from '../../hooks/useBuildData';\nimport type {Data} from '../../types';\nimport {sortWeightedItems} from '../../utils';\nimport type {LayoutItem} from '../types';\nimport {isCustomLayoutItem, isDropdownLayoutItem, isMenuLayoutItem} from '../types';\nimport {CustomLayoutItemComponent} from './CustomLayoutItemComponent';\nimport {DropdownItem} from './DropdownItem';\nimport {MenuItem} from './MenuItem';\nimport {PlainItem} from './PlainItem';\n\nconst d = debug('imperium.layout.components.LayoutItemWrapper');\n\ninterface ItemWrapperProps {\n\titem: LayoutItem;\n\tas?: React.ComponentClass;\n\tvertical?: boolean;\n\tdata?: Data;\n}\n\n/**\n * Renders any type of Item. Gathers state, route and other data and checks for visibility.\n * @param item\n * @param as\n * @param vertical\n * @param parentData\n * @constructor\n */\nexport function LayoutItemWrapper({item, as, vertical, data: parentData}: ItemWrapperProps) {\n\tconst data = useBuildData({\n\t\tstateSelectorHook: item.stateSelectorHook,\n\t\tpermissionSelectorHook: item.permissionSelectorHook,\n\t\trouteItem: item,\n\t\tdata: parentData,\n\t});\n\n\t// Check if visible\n\tif (item.visible) {\n\t\tif (typeof item.visible === 'function') {\n\t\t\tif (!item.visible(data)) return null;\n\t\t} else {\n\t\t\tconst q = new Query(item.visible || {});\n\t\t\tif (!q.test(data)) return null;\n\t\t}\n\t}\n\n\tif (isCustomLayoutItem(item)) {\n\t\treturn <CustomLayoutItemComponent item={item} data={data} />;\n\t}\n\tif (isDropdownLayoutItem(item)) {\n\t\t// eslint-disable-next-line react/no-array-index-key\n\t\tconst children = sortWeightedItems(item.dropdown).map((v, index) => <LayoutItemWrapper key={index} item={v} as={Dropdown.Item} data={data} />);\n\t\treturn <DropdownItem item={item} children={children} vertical={vertical} data={data} />;\n\t}\n\tif (isMenuLayoutItem(item)) {\n\t\t// eslint-disable-next-line react/no-array-index-key\n\t\tconst children = sortWeightedItems(item.menu).map((v, index) => (\n\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t<LayoutItemWrapper key={index} item={v} as={Dropdown.Item} vertical={vertical} data={data} />\n\t\t));\n\t\treturn <MenuItem item={item} children={children} />;\n\t}\n\treturn <PlainItem item={item} data={data} as={as} />;\n}\n","import debug from 'debug';\nimport React from 'react';\nimport type {MenuProps} from 'semantic-ui-react';\nimport {Menu} from 'semantic-ui-react';\nimport {sortWeightedItems} from '../../utils';\nimport type {LayoutItem} from '../types';\nimport {splitPositionedItems} from '../utils';\nimport {LayoutItemWrapper} from './LayoutItemWrapper';\n\nconst d = debug('imperium.layout.components.LayoutItemBar');\n\ninterface ItemBarProps extends MenuProps {\n\titems: LayoutItem[];\n}\n\n/**\n * Renders a horizontal or vertical bar of menu items.\n * @param name\n * @param items\n * @param rest\n * @constructor\n */\nexport function LayoutItemBar({items, ...rest}: ItemBarProps) {\n\tconst ims = splitPositionedItems(items);\n\n\t// eslint-disable-next-line react/no-array-index-key\n\tconst leftItems = sortWeightedItems(ims.leftItems).map((item, index) => <LayoutItemWrapper item={item} key={index} vertical={rest.vertical} />);\n\t// eslint-disable-next-line react/no-array-index-key\n\tconst rightItems = sortWeightedItems(ims.rightItems).map((item, index) => <LayoutItemWrapper item={item} key={index} vertical={rest.vertical} />);\n\n\treturn (\n\t\t<Menu {...rest}>\n\t\t\t{leftItems}\n\t\t\t{rest.vertical ? rightItems : <Menu.Menu position=\"right\">{rightItems}</Menu.Menu>}\n\t\t</Menu>\n\t);\n}\n","import React from 'react';\nimport {Icon, Menu} from 'semantic-ui-react';\nimport styles from './styles.css';\n\ninterface SecondaryMenuToggleItemProps {\n\tmenuOpen: boolean;\n\tsetMenuOpen: (open: boolean) => void;\n}\n\nexport function SecondaryMenuToggleItem({menuOpen, setMenuOpen}: SecondaryMenuToggleItemProps) {\n\treturn (\n\t\t<Menu.Item>\n\t\t\t<Icon\n\t\t\t\tclassName={menuOpen ? styles.iconRotated : styles.icon}\n\t\t\t\tname={menuOpen ? 'close' : 'sidebar'}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tsetMenuOpen(!menuOpen);\n\t\t\t\t}}\n\t\t\t/>\n\t\t</Menu.Item>\n\t);\n}\n","import debug from 'debug';\nimport React, {ReactNode, useState} from 'react';\nimport {Segment} from 'semantic-ui-react';\nimport {useLayoutState} from '../../state';\nimport {moveItems} from '../moveItems';\nimport type {LayoutData} from '../types';\nimport {LayoutItemBar} from './LayoutItemBar';\nimport {SecondaryMenuToggleItem} from './SecondaryMenuToggleItem';\nimport styles from './styles.css';\n\nconst d = debug('imperium.layout.components.Layout');\n\ninterface LayoutProps extends Required<LayoutData> {\n\tchildren?: ReactNode;\n}\n\n/**\n * Renders the main layout.\n * Hides/shows/collapses things as need for mobile layout.\n * Tracks state to whether the side menu is open or not.\n * @param footer\n * @param menubar\n * @param statusbar\n * @param children\n * @constructor\n */\nexport function Layout({footer, primaryMenu, statusbar, secondaryMenu, children}: LayoutProps) {\n\tconst {isMobile} = useLayoutState();\n\tconst [menuOpen, setMenuOpen] = useState(true);\n\n\tconst primaryMenuToggle = {\n\t\tstickOnMobile: true,\n\t\tweight: -19999,\n\t\trender: () => {\n\t\t\tif (!isMobile) return null;\n\t\t\treturn <SecondaryMenuToggleItem menuOpen={menuOpen} setMenuOpen={setMenuOpen} />;\n\t\t},\n\t};\n\n\t// Determine menubar items\n\tconst primaryMenuItems = moveItems(\n\t\tisMobile ? [primaryMenuToggle, ...primaryMenu].filter(v => v.stickOnMobile === true) : [primaryMenuToggle, ...primaryMenu],\n\t);\n\n\t// const pmi = mergeItems(primaryMenuItems);\n\n\t// Determine sidebar items\n\tconst secondaryMenuItems = moveItems(\n\t\tisMobile\n\t\t\t? [\n\t\t\t\t\t...secondaryMenu,\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: '',\n\t\t\t\t\t\tmenu: [primaryMenuToggle, ...primaryMenu].filter(v => v.stickOnMobile !== true),\n\t\t\t\t\t},\n\t\t\t ]\n\t\t\t: secondaryMenu,\n\t);\n\n\tconst secondaryMenuComp =\n\t\tsecondaryMenuItems.length > 0 ? (\n\t\t\t<div className=\"imperiumSecondaryMenuWrapper\">\n\t\t\t\t<LayoutItemBar\n\t\t\t\t\titems={secondaryMenuItems}\n\t\t\t\t\tinverted\n\t\t\t\t\tvertical\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisMobile && !menuOpen\n\t\t\t\t\t\t\t? `${styles.secondaryMenu} ${styles.secondaryMenuHidden} imperiumSecondaryMenu`\n\t\t\t\t\t\t\t: `${styles.secondaryMenu} imperiumSecondaryMenu`\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t) : null;\n\n\t// Determine footer items\n\tconst footerItems = moveItems(footer);\n\tconst footerComp =\n\t\tfooterItems.length > 0 ? (\n\t\t\t<LayoutItemBar name=\"footer\" items={footerItems} className={`${styles.footer} imperiumFooter`} inverted borderless />\n\t\t) : null;\n\n\t// Determine status bar items\n\tconst statusbarItems = moveItems(statusbar);\n\tconst statusbarComp =\n\t\tstatusbarItems.length > 0 ? <LayoutItemBar items={statusbarItems} inverted className={`${styles.statusbar} imperiumStatusbar`} /> : null;\n\n\treturn (\n\t\t<div className={`${styles.parent} imperiumLayout ${isMobile ? 'imperiumMobile' : 'imperiumNotMobile'}`}>\n\t\t\t<div className=\"imperiumPrimaryMenuWrapper\">\n\t\t\t\t<LayoutItemBar items={primaryMenuItems} inverted borderless className={`${styles.menubar} imperiumPrimaryMenu`} />\n\t\t\t\t{statusbarComp}\n\t\t\t</div>\n\t\t\t<Segment attached className={`${styles.contentWrapper} imperiumLayoutContentWrapper`}>\n\t\t\t\t{secondaryMenuComp}\n\t\t\t\t<div className={`${styles.content} imperiumLayoutContent`}>{children}</div>\n\t\t\t</Segment>\n\t\t\t{footerComp}\n\t\t</div>\n\t);\n}\n","import type {Hoc, ImperiumClient} from '@imperium/client';\nimport debug from 'debug';\nimport React, {ComponentType} from 'react';\nimport {DataHooks} from '../datahooks/DataHooks';\nimport {PermissionHooks} from '../datahooks/PermissionHooks';\nimport {isImperiumLayoutClientModule} from '../types';\nimport {Layout} from './components/Layout';\nimport type {LayoutData} from './types';\n\nconst d = debug('imperium.layout.withLayout');\n\nconst initialLayoutModuleData: Required<LayoutData> = {\n\tdataHooks: [],\n\tpermissionSelectorHooks: [],\n\tprimaryMenu: [],\n\tstatusbar: [],\n\tsecondaryMenu: [],\n\tfooter: [],\n};\n\nexport function withLayout(client: ImperiumClient): Hoc {\n\tconst layoutModuleData = client.modules.reduce((memo, module) => {\n\t\tif (isImperiumLayoutClientModule(module)) {\n\t\t\treturn {\n\t\t\t\tdataHooks: [...(memo.dataHooks || []), ...(module.layout.dataHooks || [])],\n\t\t\t\tpermissionSelectorHooks: [...(memo.permissionSelectorHooks || []), ...(module.layout.permissionSelectorHooks || [])],\n\t\t\t\tprimaryMenu: [...(memo.primaryMenu || []), ...(module.layout.primaryMenu || [])],\n\t\t\t\tstatusbar: [...(memo.statusbar || []), ...(module.layout.statusbar || [])],\n\t\t\t\tsecondaryMenu: [...(memo.secondaryMenu || []), ...(module.layout.secondaryMenu || [])],\n\t\t\t\tfooter: [...(memo.footer || []), ...(module.layout.footer || [])],\n\t\t\t} as Required<LayoutData>;\n\t\t}\n\t\treturn memo;\n\t}, initialLayoutModuleData);\n\td('Layout items processed', layoutModuleData);\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\treturn function layoutHoc(Wrapped: ComponentType<any>) {\n\t\tconst displayName = Wrapped.displayName || Wrapped.name || '';\n\n\t\tfunction WithLayout(props: unknown) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<Layout {...layoutModuleData}>\n\t\t\t\t\t\t<Wrapped {...props} layout={layoutModuleData} />\n\t\t\t\t\t</Layout>\n\t\t\t\t\t<DataHooks dataHooks={layoutModuleData.dataHooks} />\n\t\t\t\t\t<PermissionHooks permissionHooks={layoutModuleData.permissionSelectorHooks} />\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tWithLayout.displayName = `withLayout(${displayName})`;\n\n\t\treturn WithLayout;\n\t};\n}\n","import type {ImperiumClientModule} from '@imperium/client';\nimport type {Location} from 'history';\nimport type {LayoutData} from './layout/types';\n\nexport type State = Record<string, any>;\n/**\n * A hook that selects from redux state.\n */\nexport type StateSelectorHook = () => State;\n\nexport type PermissionResults = Record<string, boolean>;\n\nexport type PermissionSelectorHook = (data: Data) => PermissionResults;\n\n/**\n * The visibility query can either be a mingo query or a function that returns a boolean. The data is an object with the router path merged with any state selector hook data.\n */\nexport type VisibilityQueryFn = (data: Data) => boolean;\n\nexport interface Data extends Record<string, unknown> {\n\tloc: Location;\n\troute: {\n\t\tpath: string[];\n\t\thash: string;\n\t\tsearch: Record<string, any>;\n\t};\n\tstate: State;\n\tactive: boolean;\n\tpermissions: PermissionResults;\n\tid?: string;\n}\n\nexport interface ImperiumLayoutClientModule extends ImperiumClientModule {\n\tlayout: LayoutData;\n}\n\nexport function isImperiumLayoutClientModule(module: ImperiumClientModule): module is ImperiumLayoutClientModule {\n\tconst layoutModule = module as ImperiumLayoutClientModule;\n\treturn layoutModule.layout !== undefined;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash\");","import type {DefineRouteOptions} from '@imperium/router';\nimport type {UseBuildDataParams} from '../../hooks/useBuildData';\nimport {useBuildData} from '../../hooks/useBuildData';\nimport type {ContentData, RouteParameters} from '../types';\n\ninterface UseBuildContentDataParams<T extends DefineRouteOptions, K extends keyof T> extends UseBuildDataParams {\n\tdata?: ContentData<T, K>;\n\tparams: RouteParameters<T[K]['params']>;\n}\n\nexport function useBuildContentData<T extends DefineRouteOptions, K extends keyof T>({\n\tdata,\n\tstateSelectorHook,\n\tpermissionSelectorHook,\n\trouteItem,\n\tparams,\n}: UseBuildContentDataParams<T, K>) {\n\tconst buildData = useBuildData({data, stateSelectorHook, permissionSelectorHook, routeItem});\n\treturn {\n\t\t...buildData,\n\t\tparams,\n\t};\n}\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","import type {DefineRouteOptions} from '@imperium/router';\nimport debug from 'debug';\nimport React from 'react';\nimport type {ContentData, ContentHeader} from '../types';\nimport styles from './styles.css';\n\nconst d = debug('imperium.layout.content.components.Header');\n\ninterface HeaderProps<T extends DefineRouteOptions, K extends keyof T> {\n\theader: ContentHeader<T, K>;\n\tdata: ContentData<T, K>;\n}\n\nexport function Header<T extends DefineRouteOptions, K extends keyof T>({data, header}: HeaderProps<T, K>) {\n\tif (header) {\n\t\tlet headerInfo = {\n\t\t\ttitle: '',\n\t\t};\n\t\tif (typeof header === 'string') {\n\t\t\theaderInfo.title = header;\n\t\t} else if (typeof header === 'function') {\n\t\t\theaderInfo = header(data);\n\t\t} else {\n\t\t\theaderInfo = header;\n\t\t}\n\t\treturn (\n\t\t\t<div className={`${styles.header} imperiumContentHeader`}>\n\t\t\t\t<h2>{headerInfo.title}</h2>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn null;\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport React from 'react';\nimport {Icon, SemanticCOLORS} from 'semantic-ui-react';\nimport type {RouteItem} from '../commonItems';\nimport type {BaseSidebarItem, ContentData} from './types';\n\nexport function getIcon<T extends DefineRouteOptions, K extends keyof T>(item: BaseSidebarItem<T, K>, data: ContentData<T, K>) {\n\tif (item.icon) {\n\t\tconst iconName = typeof item.icon === 'function' ? item.icon(data) : item.icon;\n\t\treturn <Icon name={iconName} />;\n\t}\n\treturn null;\n}\n\nexport function getRouteTo<T extends DefineRouteOptions, K extends keyof T>(item: RouteItem<ContentData<T, K>>, data: ContentData<T, K>) {\n\tif (item.to) {\n\t\treturn typeof item.to === 'function' ? item.to(data) : item.to;\n\t}\n\treturn '';\n}\n\nexport function getText<T extends DefineRouteOptions, K extends keyof T>(item: BaseSidebarItem<T, K>, data: ContentData<T, K>) {\n\treturn typeof item.text === 'function' ? item.text(data) : item.text;\n}\n\nexport function getColor<T extends DefineRouteOptions, K extends keyof T>(item: BaseSidebarItem<T, K>, data: ContentData<T, K>): SemanticCOLORS {\n\tif (!item.color) return 'blue';\n\treturn typeof item.color === 'function' ? item.color(data) : item.color;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@thx/controls\");","import type {DefineRouteOptions} from '@imperium/router';\nimport {useTForm} from '@thx/controls';\nimport debug from 'debug';\nimport React from 'react';\nimport {Button, Form, Icon, Message, Popup} from 'semantic-ui-react';\nimport type {ActionFormSidebarItem, ContentData} from '../types';\n\nconst d = debug('imperium.layout.content.components.ActionForm');\n\ninterface ActionFormProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: ActionFormSidebarItem<T, K>;\n\tdata: ContentData<T, K>;\n\tonHideForm: () => void;\n}\n\nexport function ActionForm<T extends DefineRouteOptions, K extends keyof T>({item, data, onHideForm}: ActionFormProps<T, K>) {\n\t// Get initial values\n\tlet initialValues = {};\n\tif (item.initialValues) {\n\t\tif (typeof item.initialValues === 'function') {\n\t\t\tinitialValues = item.initialValues(data);\n\t\t} else {\n\t\t\tinitialValues = item.initialValues;\n\t\t}\n\t}\n\n\t// TForm\n\tconst {hasErrors, hasWarnings, handleSubmit, handleChange, values, resetForm, errors, fieldError} = useTForm({\n\t\tinitialValues,\n\t\tonSubmit: submitValues => {\n\t\t\tif (item.onSubmit) {\n\t\t\t\titem.onSubmit(submitValues, data);\n\t\t\t}\n\t\t\tonHideForm();\n\t\t},\n\t\tenableReinitialize: true,\n\t\tvalidationSchema: item.validationSchema,\n\t});\n\n\tconst saveButton = hasWarnings ? (\n\t\t<Popup\n\t\t\ttrigger={\n\t\t\t\t<Button positive type=\"submit\" floated=\"right\" icon labelPosition=\"left\">\n\t\t\t\t\t<Icon name=\"exclamation circle\" color=\"red\" />\n\t\t\t\t\tSave\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tcontent={<Message error list={Object.values(errors)} />}\n\t\t\ton=\"hover\"\n\t\t/>\n\t) : (\n\t\t<Button positive type=\"submit\" floated=\"right\">\n\t\t\tSave\n\t\t</Button>\n\t);\n\n\t// Render form\n\treturn (\n\t\t<Form error={hasErrors} warning={hasWarnings} onSubmit={handleSubmit}>\n\t\t\t{item.form({handleChange, values, data, fieldError})}\n\t\t\t{saveButton}\n\t\t\t<Button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => {\n\t\t\t\t\tresetForm();\n\t\t\t\t\tonHideForm();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tCancel\n\t\t\t</Button>\n\t\t</Form>\n\t);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport debug from 'debug';\nimport React, {useState} from 'react';\nimport {Button} from 'semantic-ui-react';\nimport type {ActionFormSidebarItem, ContentData} from '../types';\nimport {getColor, getIcon, getText} from '../utils';\nimport {ActionForm} from './ActionForm';\n\nconst d = debug('imperium.layout.content.components.ActionFormSidebarItemComponent');\n\ninterface ActionFormSidebarItemComponentProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: ActionFormSidebarItem<T, K>;\n\tdata: ContentData<T, K>;\n}\n\nexport function ActionFormSidebarItemComponent<T extends DefineRouteOptions, K extends keyof T>({\n\titem,\n\tdata,\n}: ActionFormSidebarItemComponentProps<T, K>) {\n\tconst [isEdit, setIsEdit] = useState(false);\n\n\tif (isEdit) {\n\t\treturn (\n\t\t\t<ActionForm\n\t\t\t\titem={item}\n\t\t\t\tdata={data}\n\t\t\t\tonHideForm={() => {\n\t\t\t\t\tsetIsEdit(false);\n\t\t\t\t}}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst icon = getIcon(item, data);\n\n\t// Render action button\n\treturn (\n\t\t<Button\n\t\t\tfluid\n\t\t\tcompact\n\t\t\tcolor={getColor(item, data)}\n\t\t\ticon={!!icon}\n\t\t\tlabelPosition={icon ? 'left' : undefined}\n\t\t\tonClick={() => {\n\t\t\t\tsetIsEdit(true);\n\t\t\t}}\n\t\t>\n\t\t\t{icon}\n\t\t\t{getText(item, data)}\n\t\t</Button>\n\t);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport React from 'react';\nimport {Button} from 'semantic-ui-react';\nimport type {ActionSidebarItem, ContentData} from '../types';\nimport {getColor, getIcon, getText} from '../utils';\n\ninterface ActionSidebarItemComponentProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: ActionSidebarItem<T, K>;\n\tdata: ContentData<T, K>;\n}\n\nexport function ActionSidebarItemComponent<T extends DefineRouteOptions, K extends keyof T>({item, data}: ActionSidebarItemComponentProps<T, K>) {\n\tconst icon = getIcon(item, data);\n\n\treturn (\n\t\t<Button\n\t\t\tfluid\n\t\t\tcompact\n\t\t\tcolor={getColor(item, data)}\n\t\t\ticon={!!icon}\n\t\t\tlabelPosition={icon ? 'left' : undefined}\n\t\t\tonClick={() => {\n\t\t\t\titem.onClick(data);\n\t\t\t}}\n\t\t>\n\t\t\t{icon}\n\t\t\t{getText(item, data)}\n\t\t</Button>\n\t);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport type {ContentData, CustomSidebarItem} from '../types';\n\ninterface CustomSidebarItemComponentProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: CustomSidebarItem<T, K>;\n\tdata: ContentData<T, K>;\n}\n\nexport function CustomSidebarItemComponent<T extends DefineRouteOptions, K extends keyof T>({item, data}: CustomSidebarItemComponentProps<T, K>) {\n\treturn item.render(data);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport React from 'react';\nimport {Link} from 'react-router-dom';\nimport {Button} from 'semantic-ui-react';\nimport type {ActionFormSidebarItem, ActionSidebarItem, ContentData, CustomSidebarItem, DividerSidebarItem, SidebarItem} from '../types';\nimport {getColor, getIcon, getRouteTo, getText} from '../utils';\n\ninterface PlainSidebarItemProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: Exclude<SidebarItem<T, K>, CustomSidebarItem<T, K> | ActionSidebarItem<T, K> | ActionFormSidebarItem<T, K> | DividerSidebarItem<T, K>>;\n\tdata: ContentData<T, K>;\n}\n\nexport function PlainSidebarItem<T extends DefineRouteOptions, K extends keyof T>({item, data}: PlainSidebarItemProps<T, K>) {\n\tconst icon = getIcon(item, data);\n\n\treturn (\n\t\t<Button fluid compact color={getColor(item, data)} icon={!!icon} labelPosition={icon ? 'left' : undefined} as={Link} to={getRouteTo(item, data)}>\n\t\t\t{icon}\n\t\t\t{getText(item, data)}\n\t\t</Button>\n\t);\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport debug from 'debug';\nimport {Query} from 'mingo';\nimport React from 'react';\nimport {Divider} from 'semantic-ui-react';\nimport {useBuildContentData} from '../hooks/useBuildContentData';\nimport type {ContentData, RouteParameters, SidebarItem} from '../types';\nimport {isActionFormSidebarItem, isActionSidebarItem, isCustomSidebarItem, isDividerSidebarItem} from '../types';\nimport {ActionFormSidebarItemComponent} from './ActionFormSidebarItemComponent';\nimport {ActionSidebarItemComponent} from './ActionSidebarItemComponent';\nimport {CustomSidebarItemComponent} from './CustomSidebarItemComponent';\nimport {PlainSidebarItem} from './PlainSidebarItem';\n\nconst d = debug('imperium.layout.content.components.SidebarItemWrapper');\n\ninterface SidebarItemWrapperProps<T extends DefineRouteOptions, K extends keyof T> {\n\titem: SidebarItem<T, K>;\n\tdata?: ContentData<T, K>;\n\tparams: RouteParameters<T[K]['params']>;\n}\n\nexport function SidebarItemWrapper<T extends DefineRouteOptions, K extends keyof T>({item, data: parentData, params}: SidebarItemWrapperProps<T, K>) {\n\tconst data = useBuildContentData({\n\t\tdata: parentData,\n\t\tstateSelectorHook: item.stateSelectorHook,\n\t\tpermissionSelectorHook: item.permissionSelectorHook,\n\t\tparams,\n\t});\n\n\t// Check if visible\n\tif (item.visible) {\n\t\tif (typeof item.visible === 'function') {\n\t\t\tif (!item.visible(data)) return null;\n\t\t} else {\n\t\t\tconst q = new Query(item.visible || {});\n\t\t\tif (!q.test(data)) return null;\n\t\t}\n\t}\n\n\tif (isCustomSidebarItem(item)) {\n\t\treturn <CustomSidebarItemComponent item={item} data={data} />;\n\t}\n\n\tif (isActionSidebarItem(item)) {\n\t\treturn <ActionSidebarItemComponent item={item} data={data} />;\n\t}\n\n\tif (isActionFormSidebarItem(item)) {\n\t\treturn <ActionFormSidebarItemComponent item={item} data={data} />;\n\t}\n\n\tif (isDividerSidebarItem(item)) {\n\t\treturn <Divider />;\n\t}\n\n\t// @ts-ignore These types should work, not sure why it's not. Runtime code is fine.\n\treturn <PlainSidebarItem item={item} data={data} />;\n}\n","import type {DefineRouteOptions, ParametersFromAssertion} from '@imperium/router';\nimport type React from 'react';\nimport type {SemanticCOLORS, SemanticICONS} from 'semantic-ui-react';\nimport type {RouteItem, VisibilityItem, WeightedItem} from '../commonItems';\nimport type {DataHookItem} from '../datahooks/types';\nimport type {Data, PermissionSelectorHook, StateSelectorHook} from '../types';\n\nexport type RouteParameters<T extends readonly string[] | undefined> = T extends readonly string[] ? ParametersFromAssertion<T> : never;\n\nexport interface ContentData<T extends DefineRouteOptions, K extends keyof T> extends Data {\n\tparams: RouteParameters<T[K]['params']>;\n}\n\nexport type Content<T extends DefineRouteOptions, K extends keyof T> = (data: ContentData<T, K>) => JSX.Element;\n\nexport interface BaseSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends WeightedItem, VisibilityItem {\n\ttext: string | ((data: ContentData<T, K>) => string);\n\ticon?: SemanticICONS | ((data: ContentData<T, K>) => SemanticICONS);\n\tcolor?: SemanticCOLORS | ((data: ContentData<T, K>) => SemanticCOLORS);\n}\n\nexport interface DividerSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends BaseSidebarItem<T, K> {\n\tdivider: boolean;\n}\n\nexport interface ActionSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends BaseSidebarItem<T, K> {\n\tonClick: (data: ContentData<T, K>) => void;\n}\n\ninterface ActionFormSidebarItemFormParams<T extends DefineRouteOptions, K extends keyof T> {\n\tvalues: Record<string, any>;\n\thandleChange: (e: React.ChangeEvent<any>) => void;\n\tfieldError: (fieldName: string | number) => boolean;\n\tdata: ContentData<T, K>;\n}\nexport interface ActionFormSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends BaseSidebarItem<T, K> {\n\tform: (params: ActionFormSidebarItemFormParams<T, K>) => JSX.Element | null;\n\tinitialValues?: Record<string, any> | ((data: ContentData<T, K>) => Record<string, any>);\n\tonSubmit?: (values: Record<string, any>, data: ContentData<T, K>) => void;\n\tvalidationSchema?: any;\n}\n\nexport interface CustomSidebarItem<T extends DefineRouteOptions, K extends keyof T> extends WeightedItem, VisibilityItem {\n\trender: (data: ContentData<T, K>) => JSX.Element | null;\n}\n\nexport type SidebarItem<T extends DefineRouteOptions, K extends keyof T> =\n\t| (BaseSidebarItem<T, K> & RouteItem<ContentData<T, K>>)\n\t| ActionSidebarItem<T, K>\n\t| CustomSidebarItem<T, K>\n\t| ActionFormSidebarItem<T, K>\n\t| DividerSidebarItem<T, K>;\n\nexport type ContentHeader<T extends DefineRouteOptions, K extends keyof T> =\n\t| string\n\t| {title: string; icon?: string} // TODO icon should probably be SemanticICONS\n\t| ((data: ContentData<T, K>) => {title: string; icon?: string})\n\t| undefined;\n\nexport interface Page<T extends DefineRouteOptions, K extends keyof T> {\n\tdataHooks?: DataHookItem[];\n\tstateSelectorHook?: StateSelectorHook | StateSelectorHook[];\n\tpermissionSelectorHook?: PermissionSelectorHook | PermissionSelectorHook[];\n\tcontent: Content<T, K>;\n\theader?: ContentHeader<T, K>;\n\tsidebar?: SidebarItem<T, K>[];\n\tfull?: boolean;\n}\n\nexport type Pages<T extends DefineRouteOptions> = {\n\t[key in keyof T]: Page<T, key> | Content<T, key>;\n};\n\nexport function isPage<T extends DefineRouteOptions, K extends keyof T>(value: any): value is Page<T, K> {\n\treturn !!(value as Page<T, K>).content;\n}\n\nexport function isActionSidebarItem<T extends DefineRouteOptions, K extends keyof T>(value: any): value is ActionSidebarItem<T, K> {\n\treturn !!(value as ActionSidebarItem<T, K>).onClick;\n}\n\nexport function isActionFormSidebarItem<T extends DefineRouteOptions, K extends keyof T>(value: any): value is ActionFormSidebarItem<T, K> {\n\treturn !!(value as ActionFormSidebarItem<T, K>).form;\n}\n\nexport function isCustomSidebarItem<T extends DefineRouteOptions, K extends keyof T>(value: any): value is CustomSidebarItem<T, K> {\n\treturn !!(value as CustomSidebarItem<T, K>).render;\n}\n\nexport function isDividerSidebarItem<T extends DefineRouteOptions, K extends keyof T>(value: any): value is DividerSidebarItem<T, K> {\n\treturn (value as DividerSidebarItem<T, K>).divider;\n}\n","import type {DefineRouteOptions} from '@imperium/router';\nimport debug from 'debug';\nimport {isEqual} from 'lodash';\nimport React, {DependencyList, EffectCallback, useEffect, useRef} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {DataHooks} from '../../datahooks/DataHooks';\nimport {actions} from '../../state';\nimport {sortWeightedItems} from '../../utils';\nimport {useBuildContentData} from '../hooks/useBuildContentData';\nimport type {Page, RouteParameters} from '../types';\nimport {Header} from './Header';\nimport {SidebarItemWrapper} from './SidebarItemWrapper';\nimport styles from './styles.css';\n\nconst d = debug('imperium.layout.content.components.ContentComponent');\n\ninterface ContentComponentProps<T extends DefineRouteOptions, K extends keyof T> {\n\tpage: Page<T, K>;\n\tparams: RouteParameters<T[K]['params']>;\n}\n\nfunction useDeepCompareMemoize(value: any) {\n\tconst ref = useRef();\n\tif (!value && !ref.current) return ref.current;\n\tif (!isEqual(value, ref.current)) {\n\t\tref.current = value;\n\t}\n\treturn ref.current;\n}\n\nfunction useDeepCompareEffect(callback: EffectCallback, deps: DependencyList) {\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tuseEffect(callback, deps.map(useDeepCompareMemoize));\n}\n\nexport function ContentComponent<T extends DefineRouteOptions, K extends keyof T>({page, params}: ContentComponentProps<T, K>) {\n\tconst dispatch = useDispatch();\n\tconst data = useBuildContentData({stateSelectorHook: page.stateSelectorHook, permissionSelectorHook: page.permissionSelectorHook, params});\n\n\tuseDeepCompareEffect(() => {\n\t\tdispatch(actions.setParams(params));\n\t}, [dispatch, params]);\n\n\tconst content = page.content(data);\n\tconst sidebarItems = sortWeightedItems(page.sidebar || []);\n\n\tconst sidebar =\n\t\tsidebarItems.length > 0 ? (\n\t\t\t<div className={`${styles.sidebar} imperiumContentSidebar`}>\n\t\t\t\t<div className={`${styles.actionsHeader} imperiumContentSidebarHeader`}>\n\t\t\t\t\t<h3>Actions</h3>\n\t\t\t\t</div>\n\t\t\t\t{sidebarItems.map((sb, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\t\t\t<div className={styles.sidebarItem} key={index}>\n\t\t\t\t\t\t\t<SidebarItemWrapper item={sb} params={params} data={data} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t) : null;\n\n\treturn (\n\t\t<div className={`${styles.parent} imperiumContentWrapperParent`}>\n\t\t\t<div className={`${styles.wrapper} imperiumContentWrapper`}>\n\t\t\t\t<Header header={page.header} data={data} />\n\t\t\t\t<div className={`${styles.content} imperiumContent ${page.full && styles.contentFull}`}>{content}</div>\n\t\t\t</div>\n\t\t\t{sidebar}\n\t\t\t<DataHooks dataHooks={page.dataHooks || []} />\n\t\t</div>\n\t);\n}\n","import type {Routes, DefineRouteOptions, KeyedRouteRenderFns} from '@imperium/router';\nimport debug from 'debug';\nimport React from 'react';\nimport {ContentComponent} from './components/ContentComponent';\nimport type {Pages, RouteParameters} from './types';\nimport {isPage} from './types';\n\nconst d = debug('imperium.layout.content.createPages');\n\nexport function createPages<T extends DefineRouteOptions>(routes: Routes<T>, pages: Pages<T>) {\n\tconst renderRoutePropsObj = Object.keys(routes.types).reduce((memo, key) => {\n\t\treturn {\n\t\t\t...memo,\n\t\t\t[key]: (params: RouteParameters<T[typeof key]['params']>) => {\n\t\t\t\tconst pg = pages[key];\n\t\t\t\tif (isPage(pg)) {\n\t\t\t\t\treturn <ContentComponent page={pg} params={params} />;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<ContentComponent\n\t\t\t\t\t\tpage={{\n\t\t\t\t\t\t\tcontent: pg,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tparams={params}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t};\n\t}, {} as KeyedRouteRenderFns<T>);\n\n\treturn routes.renderRouteProps(renderRoutePropsObj);\n}\n","import type {DividerSidebarItem} from './types';\n\nexport const dividerSidebarItem: DividerSidebarItem<any, any> = {\n\ttext: '',\n\tdivider: true,\n};\n","import type {ImperiumStateClientModule} from '@imperium/state';\nimport {useMobileLayout} from './layout/hooks/useMobileLayout';\nimport {withLayout} from './layout/withLayout';\nimport {state} from './state';\nimport type {ImperiumLayoutClientModule} from './types';\n\nexport function layoutClientModule(): ImperiumStateClientModule & ImperiumLayoutClientModule {\n\treturn {\n\t\tname: '@imperium/layout',\n\t\torder: 30,\n\t\thocs: [withLayout],\n\t\tstate,\n\t\tlayout: {\n\t\t\tdataHooks: [useMobileLayout],\n\t\t},\n\t};\n}\n\nexport type {LayoutData} from './layout/types';\nexport {useLayoutState, actions as layoutActions} from './state';\nexport {createPages} from './content/createPages';\nexport type {ImperiumLayoutClientModule} from './types';\nexport {dividerSidebarItem} from './content/dividerSidebarItem';\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","locals","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","_i","_i2","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_index","memo","insert","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","require","state","createSlice","name","initialState","isMobile","params","permissions","reducers","setMobile","st","action","payload","setParams","setPermission","permission","useLayoutState","createSliceHook","actions","debug","useMobileLayout","dispatch","useDispatch","isMobileX","useMediaQuery","query","useEffect","ExecuteDataHook","dataHook","routeParams","DataHooks","dataHooks","pathname","useLocation","hook","Array","isArray","routeMatch","compose","dh","index2","ExecutePermissionHook","permissionHook","perms","keys","forEach","PermissionHooks","permissionHooks","isDropdownLayoutItem","dropdown","isMenuLayoutItem","menu","pullItems","items","pulled","reduce","moveToKey","addItems","newItems","moveItems","groupBy","sortWeightedItems","memoize","sortBy","v","weight","getText","text","getIcon","iconName","icon","Icon","useBuildData","stateSelectorHook","permissionSelectorHook","routeItem","useAuth","finalSelectorHook","flowRight","useSelectState","loc","route","path","compact","split","hash","search","queryString","active","routeMatchObject","to","exact","strict","sensitive","useRouteMatch","useIsActiveRoute","permissionsX","useSelectPermission","newData","merge","CustomLayoutItemComponent","render","DropdownItem","vertical","children","useState","open","setOpen","Menu","className","Accordion","fluid","styles","onClick","ev","stopPropagation","Dropdown","MenuItem","PlainItem","as","linkParams","Link","linkParameters","ItemX","LayoutItemWrapper","parentData","visible","Query","test","LayoutItemBar","rest","ims","position","stickOnMobile","leftItems","rightItems","splitPositionedItems","SecondaryMenuToggleItem","menuOpen","setMenuOpen","Layout","footer","primaryMenu","statusbar","secondaryMenu","primaryMenuToggle","primaryMenuItems","filter","secondaryMenuItems","secondaryMenuComp","inverted","footerItems","footerComp","borderless","statusbarItems","statusbarComp","Segment","attached","initialLayoutModuleData","permissionSelectorHooks","withLayout","client","layoutModuleData","layout","isImperiumLayoutClientModule","Wrapped","displayName","WithLayout","props","useBuildContentData","Header","header","headerInfo","title","getRouteTo","getColor","color","ActionForm","onHideForm","initialValues","useTForm","onSubmit","submitValues","enableReinitialize","validationSchema","hasErrors","hasWarnings","handleSubmit","handleChange","values","resetForm","errors","fieldError","saveButton","Popup","trigger","Button","positive","type","floated","labelPosition","Message","error","on","Form","warning","form","ActionFormSidebarItemComponent","isEdit","setIsEdit","ActionSidebarItemComponent","CustomSidebarItemComponent","PlainSidebarItem","SidebarItemWrapper","isActionFormSidebarItem","divider","isDividerSidebarItem","Divider","useDeepCompareMemoize","ref","useRef","current","isEqual","ContentComponent","callback","deps","page","sidebarItems","sidebar","sb","full","createPages","routes","pages","renderRoutePropsObj","types","pg","renderRouteProps","dividerSidebarItem","layoutClientModule","order","hocs"],"sourceRoot":""}
|
package/dist/commonItems.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PermissionSelectorHook, StateSelectorHook, VisibilityQueryFn } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Describes an item that can hide itself based on redux state
|
|
4
4
|
*/
|
|
5
5
|
export interface VisibilityItem {
|
|
6
6
|
stateSelectorHook?: StateSelectorHook | StateSelectorHook[];
|
|
7
|
+
permissionSelectorHook?: PermissionSelectorHook | PermissionSelectorHook[];
|
|
7
8
|
visible?: Record<string, unknown> | VisibilityQueryFn;
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
@@ -15,8 +16,8 @@ export interface WeightedItem {
|
|
|
15
16
|
/**
|
|
16
17
|
* Describes an item that links to a route
|
|
17
18
|
*/
|
|
18
|
-
export interface RouteItem {
|
|
19
|
-
to?: string | ((data:
|
|
19
|
+
export interface RouteItem<T> {
|
|
20
|
+
to?: string | ((data: T) => string);
|
|
20
21
|
exact?: boolean;
|
|
21
22
|
strict?: boolean;
|
|
22
23
|
sensitive?: boolean;
|
|
@@ -29,4 +30,4 @@ export interface HorizontalPositionedItem {
|
|
|
29
30
|
stickOnMobile?: boolean;
|
|
30
31
|
}
|
|
31
32
|
export declare function isHorizontalPositionedItem(value: any): value is HorizontalPositionedItem;
|
|
32
|
-
export declare function isRouteItem(value: any): value is RouteItem
|
|
33
|
+
export declare function isRouteItem<T>(value: any): value is RouteItem<T>;
|