Browse Source

Angular 9 migration

pull/2411/head
Igor Kulikov 6 years ago
parent
commit
8bbee948fb
  1. 3
      ui-ngx/angular.json
  2. 413
      ui-ngx/package-lock.json
  3. 39
      ui-ngx/package.json
  4. 5
      ui-ngx/src/app/core/core.module.ts
  5. 29
      ui-ngx/src/app/core/notification/notification.selectors.ts
  6. 8
      ui-ngx/src/app/core/services/dynamic-component-factory.service.ts
  7. 3
      ui-ngx/src/app/core/translate/translate-default-compiler.ts
  8. 1
      ui-ngx/src/app/modules/dashboard/dashboard-pages.module.ts
  9. 20
      ui-ngx/src/app/modules/home/components/home-components.module.ts
  10. 2
      ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts
  11. 2
      ui-ngx/src/app/modules/home/components/import-export/table-columns-assignment.component.ts
  12. 3
      ui-ngx/src/app/modules/home/components/shared-home-components.module.ts
  13. 2
      ui-ngx/src/app/modules/home/components/widget/action/custom-sample-js.raw
  14. 2
      ui-ngx/src/app/modules/home/components/widget/action/manage-widget-actions.component.models.ts
  15. 14
      ui-ngx/src/app/modules/home/components/widget/dialog/custom-dialog-container.component.ts
  16. 2
      ui-ngx/src/app/modules/home/components/widget/dialog/custom-dialog.component.ts
  17. 2
      ui-ngx/src/app/modules/home/components/widget/dialog/custom-dialog.service.ts
  18. 35
      ui-ngx/src/app/modules/home/components/widget/legend-config.component.ts
  19. 2
      ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts
  20. 2
      ui-ngx/src/app/modules/home/components/widget/lib/entities-table-widget.component.ts
  21. 2
      ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts
  22. 8
      ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts
  23. 1
      ui-ngx/src/app/modules/home/components/widget/widget.component.ts
  24. 4
      ui-ngx/src/app/modules/home/dialogs/home-dialogs.module.ts
  25. 2
      ui-ngx/src/app/modules/home/models/datasource/attribute-datasource.ts
  26. 6
      ui-ngx/src/app/modules/home/models/datasource/entity-datasource.ts
  27. 3
      ui-ngx/src/app/modules/home/models/datasource/relation-datasource.ts
  28. 5
      ui-ngx/src/app/modules/home/pages/asset/asset.module.ts
  29. 4
      ui-ngx/src/app/modules/home/pages/customer/customer.module.ts
  30. 13
      ui-ngx/src/app/modules/home/pages/dashboard/dashboard.module.ts
  31. 3
      ui-ngx/src/app/modules/home/pages/dashboard/states/manage-dashboard-states-dialog.component.models.ts
  32. 4
      ui-ngx/src/app/modules/home/pages/dashboard/states/states-controller.module.ts
  33. 6
      ui-ngx/src/app/modules/home/pages/device/device.module.ts
  34. 5
      ui-ngx/src/app/modules/home/pages/entity-view/entity-view.module.ts
  35. 3
      ui-ngx/src/app/modules/home/pages/profile/profile.module.ts
  36. 2
      ui-ngx/src/app/modules/home/pages/rulechain/rulechain-routing.module.ts
  37. 7
      ui-ngx/src/app/modules/home/pages/rulechain/rulechain.module.ts
  38. 4
      ui-ngx/src/app/modules/home/pages/tenant/tenant.module.ts
  39. 6
      ui-ngx/src/app/modules/home/pages/user/user.module.ts
  40. 5
      ui-ngx/src/app/modules/home/pages/widget/widget-library.module.ts
  41. 16
      ui-ngx/src/app/shared/components/json-form/react/json-form-rc-select.tsx
  42. 3
      ui-ngx/src/app/shared/components/mat-chip-draggable.directive.ts
  43. 27
      ui-ngx/src/app/shared/components/nav-tree.component.scss
  44. 2
      ui-ngx/src/app/shared/components/time/timewindow.component.ts
  45. 10
      ui-ngx/src/app/shared/shared.module.ts
  46. 16
      ui-ngx/src/main.ts
  47. 2
      ui-ngx/src/polyfills.ts
  48. 2
      ui-ngx/src/styles.scss
  49. 2
      ui-ngx/src/theme.scss
  50. 3
      ui-ngx/src/tsconfig.app.json

3
ui-ngx/angular.json

@ -36,7 +36,7 @@
"node_modules/tooltipster/dist/css/tooltipster.bundle.min.css",
"node_modules/tooltipster/dist/css/plugins/tooltipster/sideTip/themes/tooltipster-sideTip-shadow.min.css",
"src/app/shared/components/json-form/react/json-form.scss",
"node_modules/rc-select/assets/index.css",
"node_modules/rc-select/assets/index.less",
"node_modules/jstree-bootstrap-theme/dist/themes/proton/style.min.css"
],
"stylePreprocessorOptions": {
@ -101,7 +101,6 @@
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": false,

413
ui-ngx/package-lock.json

@ -5,11 +5,14 @@
"requires": true,
"dependencies": {
"@angular-builders/custom-webpack": {
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/@angular-builders/custom-webpack/-/custom-webpack-8.4.1.tgz",
"integrity": "sha512-FbBt4mFbAxETdYLb6tTX869pIpm8nMiCpT34jROejuqLtsljymdqXhSCEWogWlel8ULAYus6BNdzZyRLyAkfqQ==",
"version": "9.0.0-beta.7",
"resolved": "https://registry.npmjs.org/@angular-builders/custom-webpack/-/custom-webpack-9.0.0-beta.7.tgz",
"integrity": "sha512-4TkeHIJIczuikLWpVu9MJ449zSCge6qC4sWV9vWwisD/Wr6YmkF4iNSeq7vmBkxHDbLsiZm5mZsbR0ItHZO/OA==",
"dev": true,
"requires": {
"@angular-devkit/architect": "^0.900.0-rc.2",
"@angular-devkit/build-angular": "^0.900.0-rc.2",
"@angular-devkit/core": "^9.0.0-rc.2",
"lodash": "^4.17.10",
"ts-node": "^8.5.2",
"webpack-merge": "^4.2.1"
@ -543,9 +546,9 @@
"integrity": "sha512-yyOcStpgN5t8wGRNO85mo0jplXkntP+v2tmSxNx45pahqmofSFm+QCEFa2zHQuMr7NoiGERhd0Tae7NDCCjtjA=="
},
"@auth0/angular-jwt": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@auth0/angular-jwt/-/angular-jwt-3.0.1.tgz",
"integrity": "sha512-hfWfgbpgtcvyU/agNxQ6cBk81mmASiNxQeZ6xn/3zJo8uLFHk2eQIy2yt2ztktcOQ6V2uc6GlKLRKjVIgyc1Sw==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@auth0/angular-jwt/-/angular-jwt-4.0.0.tgz",
"integrity": "sha512-CHvk1zJ9jpQupl0f5y7EmTvYAwugyFvC4ztLsZKr7ZC7anNVaDd1+pDFJYS+ZEU9jLWzE74+AfVKfigImADJuw==",
"requires": {
"url": "^0.11.0"
}
@ -2774,11 +2777,18 @@
"integrity": "sha512-AlEKV7TxjeK+jxWVKcCFrfYAk8spX9aCyiToFIiLPtfQbsjmRGLIhb5VZgptQcJdHtLXo7+m0DuurwFgUToQuA=="
},
"@date-io/date-fns": {
"version": "1.3.13",
"resolved": "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-1.3.13.tgz",
"integrity": "sha512-yXxGzcRUPcogiMj58wVgFjc9qUYrCnnU9eLcyNbsQCmae4jPuZCDoIBR21j8ZURsM7GRtU62VOw5yNd4dDHunA==",
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@date-io/date-fns/-/date-fns-2.3.0.tgz",
"integrity": "sha512-WlDNt3xPjhK/7pcnDU0En9qk6dF0yu2ve7qiDT466YHHxm++C3jsaJgODZ+avLdnhwxNJPnp8LwABsh2vtYcLQ==",
"requires": {
"@date-io/core": "^1.3.13"
"@date-io/core": "^2.3.0"
},
"dependencies": {
"@date-io/core": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@date-io/core/-/core-2.3.0.tgz",
"integrity": "sha512-aOmiF9tDtRCGuzGfBILKsd+zigEnGMBqXWNlr4ZDA6Y8r4JxTjIpvlCZrmtDP/0x2T+og28uhwBjJbCGFzdiCA=="
}
}
},
"@emotion/hash": {
@ -2807,17 +2817,14 @@
"dev": true
},
"@mat-datetimepicker/core": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@mat-datetimepicker/core/-/core-2.0.1.tgz",
"integrity": "sha1-4NsdtdTPe6Vrck7AQIF8totXdfI=",
"requires": {
"tslib": "^1.9.0"
}
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@mat-datetimepicker/core/-/core-4.0.0.tgz",
"integrity": "sha512-tOjRezVBZ1Jo1xw9L3oIZveVutvopoEfgKHeEfeazNJYdz4RWJ4Lanw4xqFhh811Hi5n5NXN7eRDcB86AJZcxw=="
},
"@material-ui/core": {
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.9.1.tgz",
"integrity": "sha512-wehQI0ahHDsZjK+uA8Q5Cs1K1/1HXYe2icwTqARaRCt7d9bTp0bJN/C9TLe/+sRWfRIkx6OIk7ABSJT1jBqxRg==",
"version": "4.9.2",
"resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.9.2.tgz",
"integrity": "sha512-fSf/yBuE5GR7dA+FiQAAGY7HrCN/8RaYApi9tx3IKMiJIJkRCHk+E2lktgJZ+QRsaqCACLo2lwhU2CW5aeO0UQ==",
"requires": {
"@babel/runtime": "^7.4.4",
"@material-ui/styles": "^4.9.0",
@ -2951,9 +2958,9 @@
}
},
"@ngx-translate/core": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-11.0.1.tgz",
"integrity": "sha512-nBCa1ZD9fAUY/3eskP3Lql2fNg8OMrYIej1/5GRsfcutx9tG/5fZLCv9m6UCw1aS+u4uK/vXjv1ctG/FdMvaWg==",
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-12.0.0.tgz",
"integrity": "sha512-hxuaLEqxlZ3IWBupyAoRXAhMZHCmaCg58XpY5+vevJmDhMEFJUEKdQyWVOKcf3+6PkoIFcuKJCeHa5C3Hb65gA==",
"requires": {
"tslib": "^1.9.0"
}
@ -3068,9 +3075,9 @@
}
},
"@types/jasmine": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.2.tgz",
"integrity": "sha512-7hrdBDFWlTb4EhrXYRyC7i3L2kKCV0TqYbzuV+gwyPNF2V4SSHw2Vs223ai26W4tEg+t4e9Wfi1vW6JLubYPiw==",
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.3.tgz",
"integrity": "sha512-LRJ21f/BO4QNZ3YDaMP0OEurOfE77x8mi8MfEnUsei5IKfmZL0GKl7juhABMdUIJHhVS9OCLotKHfsFNAuJ+DA==",
"dev": true
},
"@types/jasminewd2": {
@ -3083,9 +3090,9 @@
}
},
"@types/jquery": {
"version": "3.3.31",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.31.tgz",
"integrity": "sha512-Lz4BAJihoFw5nRzKvg4nawXPzutkv7wmfQ5121avptaSIXlDNJCUuxZxX/G+9EVidZGuO0UBlk+YjKbwRKJigg==",
"version": "3.3.32",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.32.tgz",
"integrity": "sha512-UKoof2mnV/X1/Ix2g+V2Ny5sgHjV8nK/UJbiYxuo4zPwzGyFlZ/mp4KaePb2VqQrqJctmcDQNA57buU84/2uIw==",
"requires": {
"@types/sizzle": "*"
}
@ -3117,9 +3124,9 @@
"integrity": "sha512-13gmo3M2qVvjQrWNseqM3+cR6S2Ss3grbR2NZltgMq94wOwqJYQdgn8qzwDshzgXqMlSUtyPZjysImmktu22ew=="
},
"@types/node": {
"version": "12.12.26",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.26.tgz",
"integrity": "sha512-UmUm94/QZvU5xLcUlNR8hA7Ac+fGpO1EG/a8bcWVz0P0LqtxFmun9Y2bbtuckwGboWJIT70DoWq1r3hb56n3DA==",
"version": "13.7.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz",
"integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==",
"dev": true
},
"@types/prop-types": {
@ -3525,12 +3532,9 @@
"dev": true
},
"angular-gridster2": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/angular-gridster2/-/angular-gridster2-8.3.0.tgz",
"integrity": "sha512-uQ7StNeF2SWxYA099MPifnqoOe/16rAu6KN00/sQ6kJ3umLDkPYRA61z3iPAdrxEkYMdXmtoMbFkm4igWLA3Ww==",
"requires": {
"tslib": "^1.9.0"
}
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/angular-gridster2/-/angular-gridster2-9.0.0.tgz",
"integrity": "sha512-0/nREskZEZMzSS9AdQmPHdncb4txIXzHnSgylIJ5esEPJI4dkB4A5bd9shUdwH6u4kPZInkHO3W0hHJOTSilUQ=="
},
"angular2-hotkeys": {
"version": "2.1.5",
@ -3609,9 +3613,9 @@
"dev": true
},
"arg": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.2.tgz",
"integrity": "sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg==",
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true
},
"argparse": {
@ -4097,6 +4101,22 @@
"dns-txt": "^2.0.2",
"multicast-dns": "^6.0.1",
"multicast-dns-service-types": "^1.1.0"
},
"dependencies": {
"deep-equal": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
"integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
"dev": true,
"requires": {
"is-arguments": "^1.0.4",
"is-date-object": "^1.0.1",
"is-regex": "^1.0.4",
"object-is": "^1.0.1",
"object-keys": "^1.1.1",
"regexp.prototype.flags": "^1.2.0"
}
}
}
},
"boolbase": {
@ -5531,9 +5551,9 @@
}
},
"date-fns": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.8.1.tgz",
"integrity": "sha512-EL/C8IHvYRwAHYgFRse4MGAPSqlJVlOrhVYZ75iQBKrnv+ZedmYsgwH3t+BCDuZDXpoo07+q9j4qgSSOa7irJg=="
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.9.0.tgz",
"integrity": "sha512-khbFLu/MlzLjEzy9Gh8oY1hNt/Dvxw3J6Rbc28cVoYWQaC1S3YI4xwkF9ZWcjDLscbZlY9hISMr66RFzZagLsA=="
},
"date-format": {
"version": "2.1.0",
@ -5569,16 +5589,29 @@
"dev": true
},
"deep-equal": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
"integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.1.tgz",
"integrity": "sha512-7Et6r6XfNW61CPPCIYfm1YPGSmh6+CliYeL4km7GWJcpX5LTAflGF8drLLR+MZX+2P3NZfAfSduutBbSWqER4g==",
"requires": {
"es-abstract": "^1.16.3",
"es-get-iterator": "^1.0.1",
"is-arguments": "^1.0.4",
"is-date-object": "^1.0.1",
"is-regex": "^1.0.4",
"isarray": "^2.0.5",
"object-is": "^1.0.1",
"object-keys": "^1.1.1",
"regexp.prototype.flags": "^1.2.0"
"regexp.prototype.flags": "^1.2.0",
"side-channel": "^1.0.1",
"which-boxed-primitive": "^1.0.1",
"which-collection": "^1.0.0"
},
"dependencies": {
"isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
}
}
},
"deep-freeze-strict": {
@ -5777,9 +5810,9 @@
"dev": true
},
"diff": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true
},
"diff-match-patch": {
@ -5852,11 +5885,6 @@
"csstype": "^2.6.7"
}
},
"dom-scroll-into-view": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz",
"integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4="
},
"dom-serialize": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
@ -6145,7 +6173,6 @@
"version": "1.17.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
"integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
"dev": true,
"requires": {
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
@ -6164,18 +6191,37 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
"dev": true,
"requires": {
"has": "^1.0.3"
}
}
}
},
"es-get-iterator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz",
"integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==",
"requires": {
"es-abstract": "^1.17.4",
"has-symbols": "^1.0.1",
"is-arguments": "^1.0.4",
"is-map": "^2.0.1",
"is-set": "^2.0.1",
"is-string": "^1.0.5",
"isarray": "^2.0.5"
},
"dependencies": {
"isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
}
}
},
"es-to-primitive": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
"integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
"dev": true,
"requires": {
"is-callable": "^1.1.4",
"is-date-object": "^1.0.1",
@ -7057,8 +7103,7 @@
"has-symbols": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
"dev": true
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
},
"has-value": {
"version": "1.0.0",
@ -7650,6 +7695,11 @@
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
"is-bigint": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.0.tgz",
"integrity": "sha512-t5mGUXC/xRheCK431ylNiSkGGpBp8bHENBcENTkDT6ppwPzEVxNGZRvgvmOEfbWkFhA7D2GEuE2mmQTr78sl2g=="
},
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@ -7659,6 +7709,11 @@
"binary-extensions": "^2.0.0"
}
},
"is-boolean-object": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz",
"integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ=="
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@ -7668,8 +7723,7 @@
"is-callable": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
"dev": true
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q=="
},
"is-color-stop": {
"version": "1.1.0",
@ -7773,12 +7827,22 @@
"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
"dev": true
},
"is-map": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz",
"integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw=="
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
"is-number-object": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
"integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw=="
},
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
@ -7831,11 +7895,11 @@
"dev": true
},
"is-regex": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
"integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
"requires": {
"has": "^1.0.1"
"has": "^1.0.3"
}
},
"is-resolvable": {
@ -7844,12 +7908,22 @@
"integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
"dev": true
},
"is-set": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz",
"integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA=="
},
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"dev": true
},
"is-string": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
"integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ=="
},
"is-svg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
@ -7863,7 +7937,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
"integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
"dev": true,
"requires": {
"has-symbols": "^1.0.1"
}
@ -7874,6 +7947,16 @@
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"dev": true
},
"is-weakmap": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
"integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA=="
},
"is-weakset": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz",
"integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw=="
},
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
@ -8288,13 +8371,13 @@
"integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
},
"jquery.terminal": {
"version": "1.23.2",
"resolved": "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-1.23.2.tgz",
"integrity": "sha512-ULKxZNzL8W4CoeAx5CJZTVY80SrNoeetA4lhnBeHd792uaLAkfRXMeJeARLWhBOrzDWo1yqn2nm4td0a+EU0dg==",
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.12.0.tgz",
"integrity": "sha512-y6uBR6OB0cViNH/AkEJRhr56H8db8MlTO7Vn0TuDZhl78R5+DnT5jMlQLKxZEQVhUWtZQMXZIlQt0Xr6Zf63BQ==",
"requires": {
"@types/jquery": "^3.3.6",
"@types/jquery": "^3.3.29",
"jquery": "~3",
"prismjs": "^1.15.0",
"prismjs": "^1.16.0",
"wcwidth": "^1.0.1"
}
},
@ -8592,12 +8675,12 @@
}
},
"karma-jasmine": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz",
"integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.1.0.tgz",
"integrity": "sha512-IVGbC8gap5x5NNCEOsAE77ic8rZtHDt6wmO0fFC5yT5FeB8qKnGTeud2mtKyQ41xl7vZkZ7ZxKr4wMGR6tWN+A==",
"dev": true,
"requires": {
"jasmine-core": "^3.3"
"jasmine-core": "^3.5.0"
}
},
"karma-jasmine-html-reporter": {
@ -9208,24 +9291,6 @@
}
}
},
"mini-store": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mini-store/-/mini-store-2.0.0.tgz",
"integrity": "sha512-EG0CuwpQmX+XL4QVS0kxNwHW5ftSbhygu1qxQH0pipugjnPkbvkalCdQbEihMwtQY6d3MTN+MS0q+aurs+RfLQ==",
"requires": {
"hoist-non-react-statics": "^2.3.1",
"prop-types": "^15.6.0",
"react-lifecycles-compat": "^3.0.4",
"shallowequal": "^1.0.2"
},
"dependencies": {
"hoist-non-react-statics": {
"version": "2.5.5",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
"integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
}
}
},
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
@ -9466,11 +9531,6 @@
"integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true
},
"mutationobserver-shim": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz",
"integrity": "sha512-gciOLNN8Vsf7YzcqRjKzlAJ6y7e+B86u7i3KXes0xfxx/nfLmozlW1Vn+Sc9x3tPIePFgc1AeIFhtRgkqTjzDQ=="
},
"mute-stream": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
@ -9534,9 +9594,9 @@
}
},
"ngx-color-picker": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-8.2.0.tgz",
"integrity": "sha512-rzR+cByjNG9M/UskU5vNoH7cUc6oM8STTDFKOZmnlX4ALOuM1+61CBjsNTGETWfo9a/h5mbGX02oh5/iNAa7vA=="
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-9.0.0.tgz",
"integrity": "sha512-fe5KS89gzzBBB+keugAQtneBOGso44EW8cxJa8j/4c7pELBGw1Xgu/duINuwlwVDalN9R5GIFWeMdNaBvBPHyA=="
},
"ngx-flowchart": {
"version": "git://github.com/thingsboard/ngx-flowchart.git#671b505b2484806a4a1c376344d0a12e5716679a",
@ -9867,13 +9927,12 @@
"object-inspect": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
"dev": true
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
},
"object-is": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
"integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY="
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
"integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ=="
},
"object-keys": {
"version": "1.1.1",
@ -9893,7 +9952,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"dev": true,
"requires": {
"define-properties": "^1.1.2",
"function-bind": "^1.1.1",
@ -9933,9 +9991,9 @@
}
},
"objectpath": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/objectpath/-/objectpath-1.2.2.tgz",
"integrity": "sha512-ie+GY5tJsKt7daHH6qGROf3JqxfD2XhfBPLY+HQrVuRY8MQE1ySKVSqQ/TQz/Dx7jDwuy3etQALDE1cRJAC0cg=="
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/objectpath/-/objectpath-2.0.0.tgz",
"integrity": "sha512-IWH9JOBUJz4HHBtXm1qqwoPiDAB8Qp+ZBE4PpXsOlXVEnxGa+fAgfAZFwN6L1cUYvzPpFeJ1HsY1WAhoOqQq7Q=="
},
"obuf": {
"version": "1.1.2",
@ -11486,14 +11544,14 @@
}
},
"rc-align": {
"version": "2.4.5",
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz",
"integrity": "sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==",
"version": "3.0.0-rc.1",
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-3.0.0-rc.1.tgz",
"integrity": "sha512-GbofumhCUb7SxP410j/fbtR2M9Zml+eoZSdaliZh6R3NhfEj5zP4jcO3HG3S9C9KIcXQQtd/cwVHkb9Y0KU7Hg==",
"requires": {
"babel-runtime": "^6.26.0",
"classnames": "2.x",
"dom-align": "^1.7.0",
"prop-types": "^15.5.8",
"rc-util": "^4.0.4"
"rc-util": "^4.12.0",
"resize-observer-polyfill": "^1.5.1"
}
},
"rc-animate": {
@ -11510,53 +11568,30 @@
"react-lifecycles-compat": "^3.0.4"
}
},
"rc-menu": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-7.5.5.tgz",
"integrity": "sha512-4YJXJgrpUGEA1rMftXN7bDhrV5rPB8oBJoHqT+GVXtIWCanfQxEnM3fmhHQhatL59JoAFMZhJaNzhJIk4FUWCQ==",
"requires": {
"classnames": "2.x",
"dom-scroll-into-view": "1.x",
"mini-store": "^2.0.0",
"mutationobserver-shim": "^0.3.2",
"rc-animate": "^2.10.1",
"rc-trigger": "^2.3.0",
"rc-util": "^4.13.0",
"resize-observer-polyfill": "^1.5.0",
"shallowequal": "^1.1.0"
}
},
"rc-select": {
"version": "9.2.3",
"resolved": "https://registry.npmjs.org/rc-select/-/rc-select-9.2.3.tgz",
"integrity": "sha512-WhswxOMWiNnkXRbxyrj0kiIvyCfo/BaRPaYbsDetSIAU2yEDwKHF798blCP5u86KLOBKBvtxWLFCkSsQw1so5w==",
"version": "10.0.0-rc.6",
"resolved": "https://registry.npmjs.org/rc-select/-/rc-select-10.0.0-rc.6.tgz",
"integrity": "sha512-eGQZBk2agq6eqVlF01kgT7i6hJzbWLWP4zC8qYp6sjuzBvDtFo8IRiHVPQk9ZHYJC+ZW8S9atD+ZzndCM1DcvQ==",
"requires": {
"babel-runtime": "^6.23.0",
"classnames": "2.x",
"component-classes": "1.x",
"dom-scroll-into-view": "1.x",
"prop-types": "^15.5.8",
"raf": "^3.4.0",
"rc-animate": "2.x",
"rc-menu": "^7.3.0",
"rc-trigger": "^2.5.4",
"rc-util": "^4.0.4",
"react-lifecycles-compat": "^3.0.2",
"warning": "^4.0.2"
"rc-animate": "^2.10.0",
"rc-trigger": "^4.0.0-alpha.4",
"rc-util": "^4.17.0",
"rc-virtual-list": "^0.0.0-alpha.25",
"warning": "^4.0.3"
}
},
"rc-trigger": {
"version": "2.6.5",
"resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.5.tgz",
"integrity": "sha512-m6Cts9hLeZWsTvWnuMm7oElhf+03GOjOLfTuU0QmdB9ZrW7jR2IpI5rpNM7i9MvAAlMAmTx5Zr7g3uu/aMvZAw==",
"version": "4.0.0-rc.5",
"resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.0.0-rc.5.tgz",
"integrity": "sha512-CUimlGKduOzBJxMEib3MzWhFpSq0wFk/iXxonaIIth/zVMZ4at+Wf3yxh8apY6UuYZlrJiA8S58/BfePpT+g0Q==",
"requires": {
"babel-runtime": "6.x",
"classnames": "^2.2.6",
"prop-types": "15.x",
"rc-align": "^2.4.0",
"rc-animate": "2.x",
"rc-util": "^4.4.0",
"react-lifecycles-compat": "^3.0.4"
"raf": "^3.4.1",
"rc-align": "^3.0.0-rc.0",
"rc-animate": "^2.10.2",
"rc-util": "^4.15.2"
}
},
"rc-util": {
@ -11571,6 +11606,15 @@
"shallowequal": "^1.1.0"
}
},
"rc-virtual-list": {
"version": "0.0.0-rc.1",
"resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-0.0.0-rc.1.tgz",
"integrity": "sha512-bd4Wj7XVG+fioBUW1tvQUdV9yrByf9Hc2MGnrhzxpGvSAYOoR9LqDxi2ahHOD8rzlwxsDUm1H5bvb89cZ/7baw==",
"requires": {
"classnames": "^2.2.6",
"rc-util": "^4.8.0"
}
},
"react": {
"version": "16.12.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz",
@ -11766,11 +11810,12 @@
}
},
"regexp.prototype.flags": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz",
"integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
"integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
"requires": {
"define-properties": "^1.1.2"
"define-properties": "^1.1.3",
"es-abstract": "^1.17.0-next.1"
}
},
"regexpu-core": {
@ -12370,6 +12415,15 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
"side-channel": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz",
"integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==",
"requires": {
"es-abstract": "^1.17.0-next.1",
"object-inspect": "^1.7.0"
}
},
"sigmund": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
@ -13081,7 +13135,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
"integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
"dev": true,
"requires": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
@ -13091,7 +13144,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
"integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
"dev": true,
"requires": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
@ -13612,16 +13664,16 @@
"dev": true
},
"ts-node": {
"version": "8.5.4",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.5.4.tgz",
"integrity": "sha512-izbVCRV68EasEPQ8MSIGBNK9dc/4sYJJKYA+IarMQct1RtEot6Xp0bXuClsbUSnKpg50ho+aOAx8en5c+y4OFw==",
"version": "8.6.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.6.2.tgz",
"integrity": "sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg==",
"dev": true,
"requires": {
"arg": "^4.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"source-map-support": "^0.5.6",
"yn": "^3.0.0"
"yn": "3.1.1"
}
},
"tslib": {
@ -13630,9 +13682,9 @@
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
},
"tslint": {
"version": "5.20.1",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz",
"integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-6.0.0.tgz",
"integrity": "sha512-9nLya8GBtlFmmFMW7oXXwoXS1NkrccqTqAtwXzdPV9e2mqSEvCki6iHL/Fbzi5oqbugshzgGPk7KBb2qNP1DSA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@ -13646,7 +13698,7 @@
"mkdirp": "^0.5.1",
"resolve": "^1.3.2",
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tslib": "^1.10.0",
"tsutils": "^2.29.0"
}
},
@ -15816,6 +15868,29 @@
"isexe": "^2.0.0"
}
},
"which-boxed-primitive": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz",
"integrity": "sha512-7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ==",
"requires": {
"is-bigint": "^1.0.0",
"is-boolean-object": "^1.0.0",
"is-number-object": "^1.0.3",
"is-string": "^1.0.4",
"is-symbol": "^1.0.2"
}
},
"which-collection": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
"integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
"requires": {
"is-map": "^2.0.1",
"is-set": "^2.0.1",
"is-weakmap": "^2.0.1",
"is-weakset": "^2.0.1"
}
},
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",

39
ui-ngx/package.json

@ -2,6 +2,7 @@
"name": "thingsboard",
"version": "3.0.0",
"scripts": {
"postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points",
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --open",
"build": "ng build",
@ -23,34 +24,34 @@
"@angular/platform-browser": "~9.0.0",
"@angular/platform-browser-dynamic": "~9.0.0",
"@angular/router": "~9.0.0",
"@auth0/angular-jwt": "^3.0.1",
"@date-io/date-fns": "^1.3.13",
"@auth0/angular-jwt": "^4.0.0",
"@date-io/date-fns": "^2.3.0",
"@flowjs/flow.js": "^2.14.0",
"@flowjs/ngx-flow": "^0.4.3",
"@mat-datetimepicker/core": "^2.0.1",
"@material-ui/core": "^4.9.1",
"@mat-datetimepicker/core": "^4.0.0",
"@material-ui/core": "^4.9.2",
"@material-ui/icons": "^4.9.1",
"@material-ui/pickers": "^3.2.10",
"@ngrx/effects": "^8.6.0",
"@ngrx/store": "^8.6.0",
"@ngrx/store-devtools": "^8.6.0",
"@ngx-share/core": "^7.1.4",
"@ngx-translate/core": "^11.0.1",
"@ngx-translate/core": "^12.0.0",
"@ngx-translate/http-loader": "^4.0.0",
"ace-builds": "^1.4.8",
"angular-gridster2": "^8.3.0",
"angular-gridster2": "^9.0.0",
"angular2-hotkeys": "^2.1.5",
"base64-js": "^1.3.1",
"compass-sass-mixins": "^0.12.7",
"core-js": "^3.6.4",
"date-fns": "2.8.1",
"deep-equal": "^1.1.1",
"date-fns": "^2.9.0",
"deep-equal": "^2.0.1",
"flot": "git://github.com/thingsboard/flot.git#0.9-work",
"flot.curvedlines": "git://github.com/MichaelZinsmaier/CurvedLines.git#master",
"font-awesome": "^4.7.0",
"javascript-detect-element-resize": "^0.5.3",
"jquery": "^3.4.1",
"jquery.terminal": "^1.5.0",
"jquery.terminal": "^2.12.0",
"js-beautify": "^1.10.3",
"json-schema-defaults": "^0.4.0",
"jstree": "^3.3.8",
@ -59,14 +60,14 @@
"messageformat": "^2.3.0",
"moment": "^2.24.0",
"ngx-clipboard": "^12.3.0",
"ngx-color-picker": "^8.2.0",
"ngx-color-picker": "^9.0.0",
"ngx-flowchart": "git://github.com/thingsboard/ngx-flowchart.git#master",
"ngx-hm-carousel": "^1.7.2",
"ngx-translate-messageformat-compiler": "^4.5.0",
"objectpath": "^1.2.2",
"objectpath": "^2.0.0",
"prop-types": "^15.7.2",
"raphael": "^2.3.0",
"rc-select": "^9.2.3",
"rc-select": "^10.0.0-rc.6",
"react": "^16.12.0",
"react-ace": "^8.0.0",
"react-dom": "^16.12.0",
@ -85,18 +86,18 @@
"zone.js": "~0.10.2"
},
"devDependencies": {
"@angular-builders/custom-webpack": "^8.4.1",
"@angular-builders/custom-webpack": "^9.0.0-beta.7",
"@angular-devkit/build-angular": "~0.900.1",
"@angular/cli": "^9.0.1",
"@angular/compiler-cli": "~9.0.0",
"@angular/language-service": "~9.0.0",
"@types/flot": "0.0.31",
"@types/jasmine": "^3.5.2",
"@types/jasmine": "^3.5.3",
"@types/jasminewd2": "~2.0.8",
"@types/jquery": "^3.3.31",
"@types/jquery": "^3.3.32",
"@types/js-beautify": "^1.8.1",
"@types/jstree": "^3.3.39",
"@types/node": "^12.11.1",
"@types/node": "^13.7.0",
"@types/raphael": "^2.1.30",
"@types/react": "^16.9.19",
"@types/react-dom": "^16.9.5",
@ -110,12 +111,12 @@
"karma": "~4.4.1",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~2.1.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine": "~3.1.0",
"karma-jasmine-html-reporter": "^1.5.2",
"ngrx-store-freeze": "^0.2.4",
"protractor": "^5.4.3",
"ts-node": "~8.5.4",
"tslint": "~5.20.1",
"ts-node": "~8.6.2",
"tslint": "~6.0.0",
"typescript": "~3.7.5"
},
"resolutions": {

5
ui-ngx/src/app/core/core.module.ts

@ -48,11 +48,6 @@ export function HttpLoaderFactory(http: HttpClient) {
}
@NgModule({
entryComponents: [
ConfirmDialogComponent,
AlertDialogComponent,
TodoDialogComponent
],
declarations: [
ConfirmDialogComponent,
AlertDialogComponent,

29
ui-ngx/src/app/core/notification/notification.selectors.ts

@ -1,29 +0,0 @@
///
/// Copyright © 2016-2019 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
import { createFeatureSelector, createSelector } from '@ngrx/store';
import { NotificationState } from './notification.models';
import { AppState } from '@app/core/core.state';
export const selectNotificationState = createFeatureSelector<AppState, NotificationState>(
'notification'
);
export const selectNotification = createSelector(
selectNotificationState,
(state: NotificationState) => state
);

8
ui-ngx/src/app/core/services/dynamic-component-factory.service.ts

@ -59,14 +59,13 @@ export class DynamicComponentFactoryService {
modules?: Type<any>[]): Observable<ComponentFactory<T>> {
const dymamicComponentFactorySubject = new ReplaySubject<ComponentFactory<T>>();
const comp = this.createDynamicComponent(componentType, template);
let moduleImports = [CommonModule];
let moduleImports: Type<any>[] = [CommonModule];
if (modules) {
moduleImports = [...moduleImports, ...modules];
}
// noinspection AngularInvalidImportedOrDeclaredSymbol,AngularInvalidEntryComponent
// noinspection AngularInvalidImportedOrDeclaredSymbol
@NgModule({
declarations: [comp],
entryComponents: [comp],
imports: moduleImports
})
class DynamicComponentInstanceModule extends DynamicComponentModule {}
@ -105,8 +104,7 @@ export class DynamicComponentFactoryService {
private createDynamicComponent<T>(componentType: Type<T>, template: string): Type<T> {
// noinspection AngularMissingOrInvalidDeclarationInModule
return Component({
template,
jit: true
template
})(componentType);
}

3
ui-ngx/src/app/core/translate/translate-default-compiler.ts

@ -18,9 +18,10 @@ import {
MESSAGE_FORMAT_CONFIG, MessageFormatConfig,
TranslateMessageFormatCompiler
} from 'ngx-translate-messageformat-compiler';
import { Inject, Optional } from '@angular/core';
import { Inject, Injectable, Optional } from '@angular/core';
const parse = require('messageformat-parser').parse;
@Injectable({ providedIn: 'root' })
export class TranslateDefaultCompiler extends TranslateMessageFormatCompiler {
constructor(

1
ui-ngx/src/app/modules/dashboard/dashboard-pages.module.ts

@ -23,7 +23,6 @@ import { DashboardModule } from '@home/pages/dashboard/dashboard.module';
import { DashboardPagesRoutingModule } from './dashboard-pages.routing.module';
@NgModule({
entryComponents: [],
imports: [
CommonModule,
SharedModule,

20
ui-ngx/src/app/modules/home/components/home-components.module.ts

@ -66,26 +66,6 @@ import { EventContentDialogComponent } from '@home/components/event/event-conten
import { SharedHomeComponentsModule } from '@home/components/shared-home-components.module';
@NgModule({
entryComponents: [
AddEntityDialogComponent,
AuditLogDetailsDialogComponent,
EventContentDialogComponent,
EventTableHeaderComponent,
RelationDialogComponent,
AlarmTableHeaderComponent,
AddAttributeDialogComponent,
EditAttributeValuePanelComponent,
AliasesEntitySelectPanelComponent,
EntityAliasesDialogComponent,
EntityAliasDialogComponent,
DataKeyConfigDialogComponent,
LegendConfigPanelComponent,
WidgetActionDialogComponent,
CustomDialogContainerComponent,
ImportDialogComponent,
ImportDialogCsvComponent,
AddWidgetToDashboardDialogComponent
],
declarations:
[
EntitiesTableComponent,

2
ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts

@ -691,7 +691,7 @@ export class ImportExportService {
const e = this.document.createEvent('MouseEvents');
const a = this.document.createElement('a');
a.download = filename;
a.href = this.window.URL.createObjectURL(blob);
a.href = URL.createObjectURL(blob);
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':');
// @ts-ignore
e.initEvent('click', true, false, this.window,

2
ui-ngx/src/app/modules/home/components/import-export/table-columns-assignment.component.ts

@ -21,8 +21,8 @@ import { AppState } from '@core/core.state';
import { EntityType } from '@shared/models/entity-type.models';
import { CsvColumnParam, ImportEntityColumnType, importEntityColumnTypeTranslations,
importEntityObjectColumns } from '@home/components/import-export/import-export.models';
import { CollectionViewer, DataSource } from '@angular/cdk/typings/collections';
import { BehaviorSubject, Observable } from 'rxjs';
import { CollectionViewer, DataSource } from '@angular/cdk/collections';
@Component({
selector: 'tb-table-columns-assignment',

3
ui-ngx/src/app/modules/home/components/shared-home-components.module.ts

@ -20,9 +20,6 @@ import { SharedModule } from '@app/shared/shared.module';
import { AlarmDetailsDialogComponent } from '@home/components/alarm/alarm-details-dialog.component';
@NgModule({
entryComponents: [
AlarmDetailsDialogComponent
],
declarations:
[
AlarmDetailsDialogComponent

2
ui-ngx/src/app/modules/home/components/widget/action/custom-sample-js.raw

@ -25,7 +25,7 @@
// vm.entityType = entityId.entityType;
//
// vm.editEntityFormGroup = vm.fb.group({
// entityName: [vm.entityName, [vm.Validators.required]]
// entityName: [vm.entityName, [vm.validators.required]]
// });
//
// vm.cancel = function() {

2
ui-ngx/src/app/modules/home/components/widget/action/manage-widget-actions.component.models.ts

@ -16,7 +16,7 @@
import { WidgetActionDescriptor, WidgetActionSource,
widgetActionTypeTranslationMap, CustomActionDescriptor } from '@app/shared/models/widget.models';
import { CollectionViewer, DataSource } from '@angular/cdk/typings/collections';
import { CollectionViewer, DataSource } from '@angular/cdk/collections';
import { EntityRelationInfo, EntitySearchDirection } from '@shared/models/relation.models';
import { BehaviorSubject, Observable, of, ReplaySubject } from 'rxjs';
import { emptyPageData, PageData } from '@shared/models/page/page-data';

14
ui-ngx/src/app/modules/home/components/widget/dialog/custom-dialog-container.component.ts

@ -62,16 +62,16 @@ export class CustomDialogContainerComponent extends DialogComponent<CustomDialog
if (this.data.data) {
customDialogData = {...customDialogData, ...this.data.data};
}
const injector: Injector = ReflectiveInjector.resolveAndCreate([
{
const injector: Injector = Injector.create({
providers: [{
provide: CUSTOM_DIALOG_DATA,
useValue: customDialogData
},
{
provide: MatDialogRef,
useValue: dialogRef
}
]);
{
provide: MatDialogRef,
useValue: dialogRef
}]
});
this.customComponentRef = this.viewContainerRef.createComponent(this.data.customComponentFactory, 0, injector);
}

2
ui-ngx/src/app/modules/home/components/widget/dialog/custom-dialog.component.ts

@ -42,7 +42,7 @@ export class CustomDialogComponent extends PageComponent {
@Inject(CUSTOM_DIALOG_DATA) public data: CustomDialogData) {
super(store);
// @ts-ignore
this.Validators = Validators;
this.validators = Validators;
this.data.controller(this);
}
}

2
ui-ngx/src/app/modules/home/components/widget/dialog/custom-dialog.service.ts

@ -70,8 +70,6 @@ export class CustomDialogService {
}
@NgModule({
entryComponents: [
],
declarations:
[
],

35
ui-ngx/src/app/modules/home/components/widget/legend-config.component.ts

@ -14,43 +14,14 @@
/// limitations under the License.
///
import {
Component,
forwardRef, Inject,
Input,
OnDestroy,
OnInit,
ViewChild,
ViewContainerRef
} from '@angular/core';
import { Component, forwardRef, Inject, Input, OnDestroy, OnInit, ViewChild, ViewContainerRef } from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
import { MillisecondsToTimeStringPipe } from '@shared/pipe/milliseconds-to-time-string.pipe';
import {
HistoryWindowType,
Timewindow,
TimewindowType,
initModelFromDefaultTimewindow, cloneSelectedTimewindow
} from '@shared/models/time/time.models';
import { DatePipe } from '@angular/common';
import {
Overlay,
CdkOverlayOrigin,
OverlayConfig,
OverlayPositionBuilder, ConnectedPosition, PositionStrategy, OverlayRef
} from '@angular/cdk/overlay';
import {
TIMEWINDOW_PANEL_DATA,
TimewindowPanelComponent,
TimewindowPanelData
} from '@shared/components/time/timewindow-panel.component';
import { DOCUMENT } from '@angular/common';
import { CdkOverlayOrigin, ConnectedPosition, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';
import { ComponentPortal, PortalInjector } from '@angular/cdk/portal';
import { MediaBreakpoints } from '@shared/models/constants';
import { BreakpointObserver } from '@angular/cdk/layout';
import { DOCUMENT } from '@angular/common';
import { WINDOW } from '@core/services/window.service';
import { TimeService } from '@core/services/time.service';
import { TooltipPosition } from '@angular/material/typings/tooltip';
import { deepClone } from '@core/utils';
import { LegendConfig } from '@shared/models/widget.models';
import {

2
ui-ngx/src/app/modules/home/components/widget/lib/alarms-table-widget.component.ts

@ -37,7 +37,7 @@ import { deepClone, isDefined, isNumber } from '@core/utils';
import cssjs from '@core/css/css';
import { PageLink } from '@shared/models/page/page-link';
import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order';
import { DataSource } from '@angular/cdk/typings/collections';
import { DataSource } from '@angular/cdk/collections';
import { CollectionViewer, SelectionModel } from '@angular/cdk/collections';
import { BehaviorSubject, forkJoin, fromEvent, merge, Observable, of } from 'rxjs';
import { emptyPageData, PageData } from '@shared/models/page/page-data';

2
ui-ngx/src/app/modules/home/components/widget/lib/entities-table-widget.component.ts

@ -43,7 +43,7 @@ import { deepClone, isDefined, isNumber } from '@core/utils';
import cssjs from '@core/css/css';
import { PageLink } from '@shared/models/page/page-link';
import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order';
import { DataSource } from '@angular/cdk/typings/collections';
import { DataSource } from '@angular/cdk/collections';
import { DataKeyType } from '@shared/models/telemetry/telemetry.models';
import { CollectionViewer } from '@angular/cdk/collections';
import { BehaviorSubject, fromEvent, merge, Observable, of } from 'rxjs';

2
ui-ngx/src/app/modules/home/components/widget/lib/timeseries-table-widget.component.ts

@ -44,7 +44,7 @@ import { isDefined, isNumber } from '@core/utils';
import cssjs from '@core/css/css';
import { PageLink } from '@shared/models/page/page-link';
import { Direction, SortOrder, sortOrderFromString } from '@shared/models/page/sort-order';
import { DataSource } from '@angular/cdk/typings/collections';
import { DataSource } from '@angular/cdk/collections';
import { CollectionViewer } from '@angular/cdk/collections';
import { BehaviorSubject, fromEvent, merge, Observable, of } from 'rxjs';
import { emptyPageData, PageData } from '@shared/models/page/page-data';

8
ui-ngx/src/app/modules/home/components/widget/widget-components.module.ts

@ -24,12 +24,9 @@ import { AlarmStatusFilterPanelComponent } from '@home/components/widget/lib/ala
import { SharedHomeComponentsModule } from '@home/components/shared-home-components.module';
import { TimeseriesTableWidgetComponent } from '@home/components/widget/lib/timeseries-table-widget.component';
import { EntitiesHierarchyWidgetComponent } from '@home/components/widget/lib/entities-hierarchy-widget.component';
import { CustomDialogService } from '@home/components/widget/dialog/custom-dialog.service';
@NgModule({
entryComponents: [
DisplayColumnsPanelComponent,
AlarmStatusFilterPanelComponent
],
declarations:
[
DisplayColumnsPanelComponent,
@ -49,6 +46,9 @@ import { EntitiesHierarchyWidgetComponent } from '@home/components/widget/lib/en
AlarmsTableWidgetComponent,
TimeseriesTableWidgetComponent,
EntitiesHierarchyWidgetComponent
],
providers: [
CustomDialogService
]
})
export class WidgetComponentsModule { }

1
ui-ngx/src/app/modules/home/components/widget/widget.component.ts

@ -663,6 +663,7 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI
}
);
this.dynamicWidgetComponentRef = this.widgetContentContainer.createComponent(this.widgetInfo.componentFactory, 0, injector);
this.dynamicWidgetComponent = this.dynamicWidgetComponentRef.instance;
const containerElement = $(this.elementRef.nativeElement.querySelector('#widget-container'));

4
ui-ngx/src/app/modules/home/dialogs/home-dialogs.module.ts

@ -22,10 +22,6 @@ import {AddEntitiesToCustomerDialogComponent} from '@modules/home/dialogs/add-en
import { HomeDialogsService } from './home-dialogs.service';
@NgModule({
entryComponents: [
AssignToCustomerDialogComponent,
AddEntitiesToCustomerDialogComponent
],
declarations:
[
AssignToCustomerDialogComponent,

2
ui-ngx/src/app/modules/home/models/datasource/attribute-datasource.ts

@ -14,7 +14,7 @@
/// limitations under the License.
///
import { CollectionViewer, DataSource } from '@angular/cdk/typings/collections';
import { CollectionViewer, DataSource } from '@angular/cdk/collections';
import { BehaviorSubject, Observable, of, ReplaySubject } from 'rxjs';
import { emptyPageData, PageData } from '@shared/models/page/page-data';
import { SelectionModel } from '@angular/cdk/collections';

6
ui-ngx/src/app/modules/home/models/datasource/entity-datasource.ts

@ -14,15 +14,13 @@
/// limitations under the License.
///
import { EntityId } from '@shared/models/id/entity-id';
import { PageLink } from '@shared/models/page/page-link';
import { BehaviorSubject, Observable, of, ReplaySubject } from 'rxjs';
import { emptyPageData, PageData } from '@shared/models/page/page-data';
import { BaseData, HasId } from '@shared/models/base-data';
import { CollectionViewer, DataSource } from '@angular/cdk/typings/collections';
import { CollectionViewer, DataSource, SelectionModel } from '@angular/cdk/collections';
import { catchError, map, share, take, tap } from 'rxjs/operators';
import { SelectionModel } from '@angular/cdk/collections';
import {EntityBooleanFunction} from '@home/models/entity/entities-table-config.models';
import { EntityBooleanFunction } from '@home/models/entity/entities-table-config.models';
export type EntitiesFetchFunction<T extends BaseData<HasId>, P extends PageLink> = (pageLink: P) => Observable<PageData<T>>;

3
ui-ngx/src/app/modules/home/models/datasource/relation-datasource.ts

@ -14,11 +14,10 @@
/// limitations under the License.
///
import { CollectionViewer, DataSource } from '@angular/cdk/typings/collections';
import { CollectionViewer, DataSource, SelectionModel } from '@angular/cdk/collections';
import { EntityRelationInfo, EntitySearchDirection } from '@shared/models/relation.models';
import { BehaviorSubject, Observable, of, ReplaySubject } from 'rxjs';
import { emptyPageData, PageData } from '@shared/models/page/page-data';
import { SelectionModel } from '@angular/cdk/collections';
import { EntityRelationService } from '@core/http/entity-relation.service';
import { PageLink } from '@shared/models/page/page-link';
import { catchError, map, publishReplay, refCount, take, tap } from 'rxjs/operators';

5
ui-ngx/src/app/modules/home/pages/asset/asset.module.ts

@ -25,11 +25,6 @@ import {HomeComponentsModule} from '@modules/home/components/home-components.mod
import { AssetTabsComponent } from '@home/pages/asset/asset-tabs.component';
@NgModule({
entryComponents: [
AssetComponent,
AssetTabsComponent,
AssetTableHeaderComponent
],
declarations: [
AssetComponent,
AssetTabsComponent,

4
ui-ngx/src/app/modules/home/pages/customer/customer.module.ts

@ -23,10 +23,6 @@ import {HomeComponentsModule} from '@modules/home/components/home-components.mod
import { CustomerTabsComponent } from '@home/pages/customer/customer-tabs.component';
@NgModule({
entryComponents: [
CustomerComponent,
CustomerTabsComponent
],
declarations: [
CustomerComponent,
CustomerTabsComponent

13
ui-ngx/src/app/modules/home/pages/dashboard/dashboard.module.ts

@ -39,19 +39,6 @@ import { DashboardStateDialogComponent } from './states/dashboard-state-dialog.c
import { SelectTargetStateDialogComponent } from './states/select-target-state-dialog.component';
@NgModule({
entryComponents: [
DashboardFormComponent,
DashboardTabsComponent,
ManageDashboardCustomersDialogComponent,
MakeDashboardPublicDialogComponent,
AddWidgetDialogComponent,
ManageDashboardLayoutsDialogComponent,
SelectTargetLayoutDialogComponent,
DashboardSettingsDialogComponent,
ManageDashboardStatesDialogComponent,
DashboardStateDialogComponent,
SelectTargetStateDialogComponent
],
declarations: [
DashboardFormComponent,
DashboardTabsComponent,

3
ui-ngx/src/app/modules/home/pages/dashboard/states/manage-dashboard-states-dialog.component.models.ts

@ -15,8 +15,7 @@
///
import { DashboardState } from '@shared/models/dashboard.models';
import { CollectionViewer, DataSource } from '@angular/cdk/typings/collections';
import { WidgetActionDescriptorInfo } from '@home/components/widget/action/manage-widget-actions.component.models';
import { CollectionViewer, DataSource } from '@angular/cdk/collections';
import { BehaviorSubject, Observable, of, ReplaySubject } from 'rxjs';
import { emptyPageData, PageData } from '@shared/models/page/page-data';
import { PageLink } from '@shared/models/page/page-link';

4
ui-ngx/src/app/modules/home/pages/dashboard/states/states-controller.module.ts

@ -25,10 +25,6 @@ import { HomeDialogsModule } from '@app/modules/home/dialogs/home-dialogs.module
import { DefaultStateControllerComponent } from '@home/pages/dashboard/states/default-state-controller.component';
@NgModule({
entryComponents: [
DefaultStateControllerComponent,
EntityStateControllerComponent
],
declarations: [
StatesComponentDirective,
DefaultStateControllerComponent,

6
ui-ngx/src/app/modules/home/pages/device/device.module.ts

@ -26,12 +26,6 @@ import {HomeComponentsModule} from '@modules/home/components/home-components.mod
import { DeviceTabsComponent } from '@home/pages/device/device-tabs.component';
@NgModule({
entryComponents: [
DeviceComponent,
DeviceTabsComponent,
DeviceTableHeaderComponent,
DeviceCredentialsDialogComponent
],
declarations: [
DeviceComponent,
DeviceTabsComponent,

5
ui-ngx/src/app/modules/home/pages/entity-view/entity-view.module.ts

@ -25,11 +25,6 @@ import {HomeComponentsModule} from '@modules/home/components/home-components.mod
import { EntityViewTabsComponent } from '@home/pages/entity-view/entity-view-tabs.component';
@NgModule({
entryComponents: [
EntityViewComponent,
EntityViewTabsComponent,
EntityViewTableHeaderComponent
],
declarations: [
EntityViewComponent,
EntityViewTabsComponent,

3
ui-ngx/src/app/modules/home/pages/profile/profile.module.ts

@ -22,9 +22,6 @@ import { ProfileRoutingModule } from './profile-routing.module';
import { ChangePasswordDialogComponent } from '@modules/home/pages/profile/change-password-dialog.component';
@NgModule({
entryComponents: [
ChangePasswordDialogComponent
],
declarations: [
ProfileComponent,
ChangePasswordDialogComponent

2
ui-ngx/src/app/modules/home/pages/rulechain/rulechain-routing.module.ts

@ -42,7 +42,7 @@ import * as AngularCommon from '@angular/common';
import * as AngularForms from '@angular/forms';
import * as AngularCdkCoercion from '@angular/cdk/coercion';
import * as AngularCdkKeycodes from '@angular/cdk/keycodes';
import * as AngularMaterial from '@angular/material';
import * as AngularMaterial from '@angular/material/esm5';
import * as NgrxStore from '@ngrx/store';
import * as TranslateCore from '@ngx-translate/core';
import * as TbCore from '@core/public-api';

7
ui-ngx/src/app/modules/home/pages/rulechain/rulechain.module.ts

@ -30,13 +30,6 @@ import { LinkLabelsComponent } from '@home/pages/rulechain/link-labels.component
import { RuleNodeConfigComponent } from './rule-node-config.component';
@NgModule({
entryComponents: [
RuleChainComponent,
RuleChainTabsComponent,
RuleNodeComponent,
AddRuleNodeLinkDialogComponent,
AddRuleNodeDialogComponent
],
declarations: [
RuleChainComponent,
RuleChainTabsComponent,

4
ui-ngx/src/app/modules/home/pages/tenant/tenant.module.ts

@ -23,10 +23,6 @@ import {HomeComponentsModule} from '@modules/home/components/home-components.mod
import { TenantTabsComponent } from '@home/pages/tenant/tenant-tabs.component';
@NgModule({
entryComponents: [
TenantComponent,
TenantTabsComponent
],
declarations: [
TenantComponent,
TenantTabsComponent

6
ui-ngx/src/app/modules/home/pages/user/user.module.ts

@ -25,12 +25,6 @@ import {HomeComponentsModule} from '@modules/home/components/home-components.mod
import { UserTabsComponent } from '@home/pages/user/user-tabs.component';
@NgModule({
entryComponents: [
UserComponent,
UserTabsComponent,
AddUserDialogComponent,
ActivationLinkDialogComponent
],
declarations: [
UserComponent,
UserTabsComponent,

5
ui-ngx/src/app/modules/home/pages/widget/widget-library.module.ts

@ -26,11 +26,6 @@ import { SelectWidgetTypeDialogComponent } from '@home/pages/widget/select-widge
import { SaveWidgetTypeAsDialogComponent } from './save-widget-type-as-dialog.component';
@NgModule({
entryComponents: [
WidgetsBundleComponent,
SelectWidgetTypeDialogComponent,
SaveWidgetTypeAsDialogComponent
],
declarations: [
WidgetsBundleComponent,
WidgetLibraryComponent,

16
ui-ngx/src/app/shared/components/json-form/react/json-form-rc-select.tsx

@ -16,12 +16,13 @@
import * as React from 'react';
import ThingsboardBaseComponent from './json-form-base-component';
import Select, {Option} from 'rc-select/lib';
import Select, {Option} from 'rc-select';
import {
JsonFormFieldProps,
JsonFormFieldState,
KeyLabelItem
} from '@shared/components/json-form/react/json-form.models';
import { Mode } from 'rc-select/lib/interface';
interface ThingsboardRcSelectState extends JsonFormFieldState {
currentValue: KeyLabelItem | KeyLabelItem[];
@ -150,6 +151,14 @@ class ThingsboardRcSelect extends React.Component<JsonFormFieldProps, Thingsboar
if (this.state.focused) {
labelClass += ' tb-focused';
}
let mode: Mode;
if (this.props.form.tags) {
mode = 'tags';
} else if (this.props.form.multiple) {
mode = 'multiple';
} else if (this.props.form.combobox) {
mode = 'combobox';
}
return (
<div className='tb-container'>
@ -158,12 +167,9 @@ class ThingsboardRcSelect extends React.Component<JsonFormFieldProps, Thingsboar
className={this.props.form.className}
dropdownClassName={this.props.form.dropdownClassName}
dropdownStyle={{...this.props.form.dropdownStyle, ...{zIndex: 100001}}}
dropdownMenuStyle={this.props.form.dropdownMenuStyle}
allowClear={this.props.form.allowClear}
tags={this.props.form.tags}
mode={mode}
maxTagTextLength={this.props.form.maxTagTextLength}
multiple={this.props.form.multiple}
combobox={this.props.form.combobox}
disabled={this.props.form.readonly}
optionLabelProp='children'
value={this.state.currentValue}

3
ui-ngx/src/app/shared/components/mat-chip-draggable.directive.ts

@ -14,9 +14,8 @@
/// limitations under the License.
///
import { AfterViewInit, Directive, ElementRef, OnDestroy, Renderer, Renderer2, HostListener, QueryList, Output, EventEmitter } from '@angular/core';
import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';
import { MatChip, MatChipList } from '@angular/material/chips';
import DragStartEvent = JQuery.DragStartEvent;
import Timeout = NodeJS.Timeout;
export interface MatChipDropEvent {

27
ui-ngx/src/app/shared/components/nav-tree.component.scss

@ -17,7 +17,7 @@
padding: 15px;
font-family: Roboto, "Helvetica Neue", sans-serif;
&.jstree-proton {
&.jstree-proton, &.jstree-proton-small, &.jstree-proton-large {
.jstree-node,
.jstree-icon {
background-image: url("../../../assets/jstree/32px.png");
@ -29,7 +29,12 @@
.jstree-themeicon-custom {
background-image: none;
}
}
&.jstree-proton {
.jstree-themeicon-custom {
&.material-icons {
font-size: 18px;
}
@ -41,18 +46,8 @@
}
&.jstree-proton-small {
.jstree-node,
.jstree-icon {
background-image: url("../../../assets/jstree/32px.png");
}
.jstree-last {
background: transparent;
}
.jstree-themeicon-custom {
background-image: none;
&.material-icons {
font-size: 14px;
}
@ -64,18 +59,8 @@
}
&.jstree-proton-large {
.jstree-node,
.jstree-icon {
background-image: url("../../../assets/jstree/32px.png");
}
.jstree-last {
background: transparent;
}
.jstree-themeicon-custom {
background-image: none;
&.material-icons {
font-size: 24px;
}

2
ui-ngx/src/app/shared/components/time/timewindow.component.ts

@ -51,7 +51,7 @@ import { BreakpointObserver } from '@angular/cdk/layout';
import { DOCUMENT } from '@angular/common';
import { WINDOW } from '@core/services/window.service';
import { TimeService } from '@core/services/time.service';
import { TooltipPosition } from '@angular/material/typings/tooltip';
import { TooltipPosition } from '@angular/material/tooltip';
import { deepClone } from '@core/utils';
// @dynamic

10
ui-ngx/src/app/shared/shared.module.ts

@ -133,16 +133,6 @@ import { LedLightComponent } from '@shared/components/led-light.component';
useValue: Flow
}
],
entryComponents: [
TbSnackBarComponent,
TbAnchorComponent,
TimewindowPanelComponent,
DashboardSelectPanelComponent,
MatSpinner,
ColorPickerDialogComponent,
MaterialIconsDialogComponent,
NodeScriptTestDialogComponent
],
declarations: [
FooterComponent,
LogoComponent,

16
ui-ngx/src/main.ts

@ -1,3 +1,19 @@
///
/// Copyright © 2016-2019 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
import { enableProdMode } from '@angular/core';

2
ui-ngx/src/polyfills.ts

@ -79,3 +79,5 @@ import 'core-js/es/array';
/***************************************************************************************************
* APPLICATION IMPORTS
*/
(window as any).global = window;

2
ui-ngx/src/styles.scss

@ -596,6 +596,7 @@ mat-label {
min-width: 40px;
word-wrap: initial;
display: table-cell;
box-sizing: content-box;
line-break: unset;
width: 0px;
overflow: hidden;
@ -674,6 +675,7 @@ mat-label {
.mat-icon {
vertical-align: middle;
box-sizing: content-box;
&.tb-mat-16 {
@include tb-mat-icon-size(16);
}

2
ui-ngx/src/theme.scss

@ -77,6 +77,7 @@ $tb-light-theme-background: (
disabled-button-toggle: map_get($mat-grey, 200),
unselected-chip: map_get($mat-grey, 300),
disabled-list-option: map_get($mat-grey, 200),
tooltip: map_get($mat-grey, 700)
);
@function get-tb-light-theme($primary, $accent, $warn: mat-palette($mat-red)) {
@ -148,6 +149,7 @@ $tb-dark-theme-background: (
disabled-button-toggle: black,
unselected-chip: map_get($tb-dark-mat-indigo, 700),
disabled-list-option: black,
tooltip: map_get($mat-grey, 700),
);
@function get-tb-dark-theme($primary, $accent, $warn: mat-palette($mat-red)) {

3
ui-ngx/src/tsconfig.app.json

@ -4,6 +4,9 @@
"outDir": "../out-tsc/app",
"types": ["node", "jquery", "flot", "tooltipster", "tinycolor2", "js-beautify", "react", "react-dom", "jstree", "raphael"]
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true
},
"exclude": [
"test.ts",
"**/*.spec.ts"

Loading…
Cancel
Save