@c8y/ng1-modules 1018.486.5 → 1018.496.6

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.
Files changed (90) hide show
  1. package/NOTICES +1 -1
  2. package/administration-alarmMapping/views/index.html +2 -2
  3. package/administration-auditLogs/views/list.html +8 -7
  4. package/administration-deviceUsers/views/list.html +55 -18
  5. package/app-logs/app-logs/app-logs.html +10 -9
  6. package/applicationLinks/index.js +1 -1
  7. package/binaryArtefactsManagement/views/list.html +63 -23
  8. package/core/core/services/measurements.js +1 -1
  9. package/core/locales/de.po +246 -102
  10. package/core/locales/en.po +34 -15
  11. package/core/locales/es.po +21 -103
  12. package/core/locales/fr.po +20 -102
  13. package/core/locales/ja_JP.po +20 -102
  14. package/core/locales/ko.po +20 -102
  15. package/core/locales/nl.po +20 -102
  16. package/core/locales/pl.po +21 -103
  17. package/core/locales/pt_BR.po +38 -120
  18. package/core/locales/ru.po +21 -103
  19. package/core/locales/zh_CN.po +21 -103
  20. package/core/locales/zh_TW.po +21 -103
  21. package/core/ui/directives/map2.js +1 -1
  22. package/core/ui/itemSelector/itemSelector.html +1 -1
  23. package/core/ui/services/measurementsReport.js +1 -1
  24. package/core/ui/user/editUser.directive.html +3 -3
  25. package/core/ui/user/rolesUiStrings.constant.js +1 -1
  26. package/core/ui/views/modal.html +1 -1
  27. package/dataBroker/connectors/connectors.html +87 -32
  28. package/dataPointExplorer/controllers/dataPointExplorer.js +1 -1
  29. package/dataPointExplorer/index.js +1 -1
  30. package/dataPointExplorer/views/explorer.html +6 -2
  31. package/dataPointExplorer/views/widgetConfig.html +1 -0
  32. package/dataPointTable/index.js +1 -1
  33. package/dataPointTable/views/widgetConfig.html +1 -3
  34. package/device-protocol-deviceDatabase4/device-type-protocol-base.provider.js +1 -1
  35. package/device-protocols/deviceProtocolList.html +4 -4
  36. package/device-protocols/deviceProtocolView.html +34 -14
  37. package/deviceDatabase4/cumulocity.json +4 -6
  38. package/deviceDatabase4/detail/device-type-detail.component.js +1 -1
  39. package/deviceDatabase4/detail/device-type-detail.html +1 -0
  40. package/deviceDatabase4/modals/configure-register.component.js +1 -1
  41. package/deviceDatabase4/modals/configure-register.html +2 -2
  42. package/deviceDatabase4/validate-measurement-fragment.directive.js +1 -0
  43. package/deviceList/views/index.html +4 -1
  44. package/devicemanagement-alarmList/views/index.html +57 -19
  45. package/devicemanagement-availability/controllers/availability.js +1 -1
  46. package/devicemanagement-availability/views/detail.html +19 -8
  47. package/devicemanagement-eventList/views/index.html +6 -2
  48. package/enterpriseEdition/enterpriseEdition.module.js +1 -1
  49. package/eventList/index.js +1 -1
  50. package/export/directives/timespan.js +1 -1
  51. package/export/services/filters.js +1 -1
  52. package/export/views/detail.html +1 -1
  53. package/export/views/list.html +21 -0
  54. package/export/views/properties.html +3 -3
  55. package/export/views/timespan.html +38 -9
  56. package/measurements/fragmentChart/fragmentChart.component.js +1 -1
  57. package/measurements/measurements2/series.service.js +1 -1
  58. package/modbusConfiguration4/fieldbus-config.html +2 -1
  59. package/modbusConfiguration4/fieldbus-device-list.html +3 -1
  60. package/package.json +1 -1
  61. package/platformConfiguration/cumulocity.json +1 -1
  62. package/platformConfiguration/platformConfiguration.component.js +1 -0
  63. package/platformConfiguration/platformConfiguration.html +22 -0
  64. package/platformConfiguration/platformConfigurationUi.provider.js +1 -1
  65. package/scada/config.controller.js +1 -1
  66. package/scada/views/componentConfig.html +28 -14
  67. package/scada/widget.controller.js +1 -1
  68. package/tenantPolicies/tenantPolicyList/tenantPolicyList.html +90 -25
  69. package/tenantStatistics/tenant-statistics.html +23 -14
  70. package/tenants/views/detail.html +1 -1
  71. package/userRoles/inventoryRolesTab/inventoryRolesTab.component.js +1 -1
  72. package/userRoles/inventoryRolesTab/inventoryRolesTab.html +16 -10
  73. package/users/userListView/userListView.html +47 -17
  74. package/users/usersUi.provider.js +1 -1
  75. package/deviceControlMessage/controllers/deviceControlMessageWidget.js +0 -1
  76. package/deviceControlMessage/cumulocity.json +0 -15
  77. package/deviceControlMessage/img/message-widget-pr.png +0 -0
  78. package/deviceControlMessage/index.js +0 -1
  79. package/deviceControlMessage/views/deviceControlMessageWidget.html +0 -26
  80. package/infoGauge/cumulocity.json +0 -20
  81. package/infoGauge/img/info-gauge-widget-pr.png +0 -0
  82. package/infoGauge/index.js +0 -1
  83. package/infoGauge/infoGauge.controller.js +0 -1
  84. package/infoGauge/infoGauge.service.js +0 -1
  85. package/infoGauge/infoGaugeConfig.controller.js +0 -1
  86. package/infoGauge/infoGaugeWidget.config.html +0 -58
  87. package/infoGauge/infoGaugeWidget.html +0 -32
  88. package/infoGauge/style.less +0 -0
  89. package/platformConfiguration/platformConfigurationForm.component.js +0 -1
  90. package/platformConfiguration/platformConfigurationForm.html +0 -50
package/NOTICES CHANGED
@@ -2979,7 +2979,7 @@ SOFTWARE.
2979
2979
 
2980
2980
  -----
2981
2981
 
2982
- The following software may be included in this product: @types/babel__core, @types/babel__generator, @types/babel__template, @types/babel__traverse, @types/body-parser, @types/bonjour, @types/connect, @types/connect-history-api-fallback, @types/cron, @types/eslint, @types/eslint-scope, @types/estree, @types/express, @types/express-serve-static-core, @types/file-saver, @types/fs-extra, @types/geojson, @types/graceful-fs, @types/html-minifier-terser, @types/http-proxy, @types/istanbul-lib-coverage, @types/istanbul-reports, @types/jest, @types/jsdom, @types/json-schema, @types/jsonfile, @types/leaflet, @types/marked, @types/mime, @types/minimist, @types/node, @types/normalize-package-data, @types/parse5, @types/prettier, @types/qrcode, @types/qs, @types/range-parser, @types/resolve, @types/semver, @types/send, @types/serve-index, @types/serve-static, @types/sinonjs__fake-timers, @types/sizzle, @types/sockjs, @types/stack-utils, @types/three, @types/tough-cookie, @types/webpack, @types/webpack-dev-server, @types/webxr, @types/ws, @types/yargs, @types/yargs-parser, @types/yauzl. A copy of the source code may be downloaded from https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__core), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__generator), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__template), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__traverse), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/body-parser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/bonjour), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/connect), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/connect-history-api-fallback), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/cron), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/eslint), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/eslint-scope), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/estree), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/express), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/express-serve-static-core), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/file-saver), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/fs-extra), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/geojson), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/graceful-fs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/html-minifier-terser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/http-proxy), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-lib-coverage), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-reports), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/jest), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/jsdom), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/json-schema), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/jsonfile), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/leaflet), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/marked), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/mime), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/minimist), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/node), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/normalize-package-data), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/parse5), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/prettier), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/qrcode), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/qs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/range-parser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/resolve), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/semver), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/send), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/serve-index), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/serve-static), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/sinonjs__fake-timers), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/sizzle), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/sockjs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/stack-utils), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/three), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/tough-cookie), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/webpack), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/webxr), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/ws), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yargs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yargs-parser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yauzl). This software contains the following license and notice below:
2982
+ The following software may be included in this product: @types/babel__core, @types/babel__generator, @types/babel__template, @types/babel__traverse, @types/body-parser, @types/bonjour, @types/cometd, @types/connect, @types/connect-history-api-fallback, @types/cron, @types/eslint, @types/eslint-scope, @types/estree, @types/express, @types/express-serve-static-core, @types/file-saver, @types/fs-extra, @types/geojson, @types/graceful-fs, @types/html-minifier-terser, @types/http-proxy, @types/istanbul-lib-coverage, @types/istanbul-reports, @types/jest, @types/jsdom, @types/json-schema, @types/jsonfile, @types/leaflet, @types/marked, @types/mime, @types/minimist, @types/node, @types/normalize-package-data, @types/parse5, @types/prettier, @types/qrcode, @types/qs, @types/range-parser, @types/resolve, @types/semver, @types/send, @types/serve-index, @types/serve-static, @types/sinonjs__fake-timers, @types/sizzle, @types/sockjs, @types/stack-utils, @types/three, @types/tough-cookie, @types/webpack, @types/webpack-dev-server, @types/webxr, @types/ws, @types/yargs, @types/yargs-parser, @types/yauzl. A copy of the source code may be downloaded from https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__core), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__generator), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__template), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__traverse), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/body-parser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/bonjour), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/cometd), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/connect), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/connect-history-api-fallback), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/cron), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/eslint), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/eslint-scope), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/estree), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/express), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/express-serve-static-core), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/file-saver), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/fs-extra), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/geojson), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/graceful-fs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/html-minifier-terser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/http-proxy), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-lib-coverage), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-reports), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/jest), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/jsdom), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/json-schema), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/jsonfile), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/leaflet), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/marked), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/mime), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/minimist), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/node), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/normalize-package-data), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/parse5), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/prettier), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/qrcode), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/qs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/range-parser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/resolve), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/semver), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/send), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/serve-index), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/serve-static), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/sinonjs__fake-timers), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/sizzle), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/sockjs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/stack-utils), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/three), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/tough-cookie), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/webpack), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/webxr), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/ws), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yargs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yargs-parser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yauzl). This software contains the following license and notice below:
2983
2983
 
2984
2984
  MIT License
2985
2985
 
@@ -115,7 +115,7 @@
115
115
  {{ 'New severity' | translate }}
116
116
  </label>
117
117
  <label
118
- class="c8y-radio input-sm"
118
+ class="c8y-radio input-sm a-i-center"
119
119
  title="{{ severity.label | translate }}"
120
120
  for="newSeverityValue{{ $index }}"
121
121
  ng-repeat="severity in vm.severities.values()"
@@ -338,7 +338,7 @@
338
338
  </label>
339
339
  <div class="d-flex-sm flex-wrap">
340
340
  <label
341
- class="c8y-radio input-sm"
341
+ class="c8y-radio input-sm a-i-center"
342
342
  ng-class="{ 'p-r-16': !$last }"
343
343
  title="{{ severity.label | translate }}"
344
344
  ng-repeat="severity in severities.values()"
@@ -1,24 +1,26 @@
1
1
  <div ng-controller="auditLogsCtrl as ctrl">
2
2
  <c8y-breadcrumbs-set>
3
3
  <c8y-breadcrumbs-item
4
- label="{{ 'Audit logs' | translate }}"
5
4
  icon="c8y-accounts"
5
+ label="{{ 'Audit logs' | translate }}"
6
6
  ></c8y-breadcrumbs-item>
7
7
  <c8y-breadcrumbs-item
8
- label="{{ 'Accounts' | translate }}"
9
8
  icon="c8y-accounts"
9
+ label="{{ 'Accounts' | translate }}"
10
10
  ></c8y-breadcrumbs-item>
11
11
  </c8y-breadcrumbs-set>
12
12
  <c8y-ui-action-bar-set>
13
- <li class="navbar-form" action-bar-position="left">
14
- <audit-logs-filter ng-model="ctrl.filter"> </audit-logs-filter>
13
+ <li
14
+ class="navbar-form"
15
+ action-bar-position="left"
16
+ >
17
+ <audit-logs-filter ng-model="ctrl.filter"></audit-logs-filter>
15
18
  </li>
16
19
 
17
20
  <c8y-refresh-btn></c8y-refresh-btn>
18
21
  </c8y-ui-action-bar-set>
19
22
 
20
23
  <c8y-help src="/users-guide/administration/#audit-logs"></c8y-help>
21
-
22
24
 
23
25
  <c8y-audit-list
24
26
  paging="paging"
@@ -26,6 +28,5 @@
26
28
  filter="ctrl.filter"
27
29
  reverse="true"
28
30
  columns="{time: true, text: true, type: true}"
29
- >
30
- </c8y-audit-list>
31
+ ></c8y-audit-list>
31
32
  </div>
@@ -6,45 +6,61 @@
6
6
 
7
7
  <c8y-breadcrumbs-set>
8
8
  <c8y-breadcrumbs-item
9
- label="{{ 'Device credentials' | translate }}"
10
9
  icon="card-security1"
10
+ label="{{ 'Device credentials' | translate }}"
11
11
  ></c8y-breadcrumbs-item>
12
12
  <c8y-breadcrumbs-item
13
- label="{{ 'Management' | translate }}"
14
13
  icon="c8y-management"
14
+ label="{{ 'Management' | translate }}"
15
15
  ></c8y-breadcrumbs-item>
16
16
  </c8y-breadcrumbs-set>
17
17
 
18
18
  <c8y-ui-action-bar-set>
19
- <li class="navbar-form" action-bar-position="left">
19
+ <li
20
+ class="navbar-form"
21
+ action-bar-position="left"
22
+ >
20
23
  <form class="form-inline">
21
24
  <div class="form-group">
22
- <div class="input-group input-group-search" title="{{ 'Filter…' | translate }}">
25
+ <div
26
+ class="input-group input-group-search"
27
+ title="{{ 'Filter…' | translate }}"
28
+ >
23
29
  <input
24
30
  class="form-control"
25
- type="search"
26
31
  placeholder="{{ 'Filter…' | translate }}"
32
+ type="search"
27
33
  ng-model="vm.filtering.filters.username"
28
34
  />
29
35
  <span class="input-group-addon">
30
36
  <button
31
37
  class="btn-clean"
32
- ng-click="vm.applyFilters()"
33
38
  title="{{ 'Apply filter' | translate }}"
34
39
  type="submit"
40
+ ng-click="vm.applyFilters()"
35
41
  >
36
42
  <i c8y-icon="search"></i>
37
- <span class="sr-only" translate>Apply`filters`</span>
43
+ <span
44
+ class="sr-only"
45
+ translate
46
+ >
47
+ Apply`filters`
48
+ </span>
38
49
  </button>
39
50
  <button
40
51
  class="btn-clean"
41
- ng-click="vm.clearFilters()"
42
- ng-show="vm.isAnyFilterSelected()"
43
52
  title="{{ 'Clear filters' | translate }}"
44
53
  type="button"
54
+ ng-click="vm.clearFilters()"
55
+ ng-show="vm.isAnyFilterSelected()"
45
56
  >
46
57
  <i c8y-icon="times"></i>
47
- <span class="sr-only" translate>Clear`filters`</span>
58
+ <span
59
+ class="sr-only"
60
+ translate
61
+ >
62
+ Clear`filters`
63
+ </span>
48
64
  </button>
49
65
  </span>
50
66
  </div>
@@ -76,8 +92,14 @@
76
92
  </div>
77
93
 
78
94
  <!-- no results empty state -->
79
- <div class="c8y-empty-state" ng-if="vm.filtering.applied && users.length === 0">
80
- <h1 class="c8y-icon-duocolor" c8y-icon="search"></h1>
95
+ <div
96
+ class="c8y-empty-state"
97
+ ng-if="vm.filtering.applied && users.length === 0"
98
+ >
99
+ <h1
100
+ class="c8y-icon-duocolor"
101
+ c8y-icon="search"
102
+ ></h1>
81
103
  <h3 translate>No results to display.</h3>
82
104
  <p>
83
105
  <span translate>No device users starting with</span>
@@ -88,7 +110,10 @@
88
110
  </p>
89
111
  </div>
90
112
 
91
- <div class="c8y-list__group" ng-if="users.length > 0">
113
+ <div
114
+ class="c8y-list__group"
115
+ ng-if="users.length > 0"
116
+ >
92
117
  <div
93
118
  class="c8y-list__item c8y-list__item--empty-actions page-sticky-header hidden-xs"
94
119
  ng-if="users.length"
@@ -114,7 +139,10 @@
114
139
  </div>
115
140
  </div>
116
141
 
117
- <div class="c8y-list__item" ng-repeat="user in users">
142
+ <div
143
+ class="c8y-list__item"
144
+ ng-repeat="user in users"
145
+ >
118
146
  <div class="c8y-list__item__block">
119
147
  <div class="c8y-list__item__icon">
120
148
  <i c8y-icon="card-security1"></i>
@@ -138,7 +166,10 @@
138
166
  class="c8y-switch c8y-switch--inline"
139
167
  ng-click="user.enabled ? deactivate(user) : activate(user)"
140
168
  >
141
- <input type="checkbox" ng-model="user.enabled" />
169
+ <input
170
+ type="checkbox"
171
+ ng-model="user.enabled"
172
+ />
142
173
  <span></span>
143
174
  <span ng-if="user.enabled">
144
175
  {{ 'Enabled' | translate }}
@@ -161,18 +192,24 @@
161
192
  </div>
162
193
  </div>
163
194
  <div class="c8y-list__item__actions">
164
- <div class="dropdown" uib-dropdown>
195
+ <div
196
+ class="dropdown"
197
+ uib-dropdown
198
+ >
165
199
  <button
166
200
  class="dropdown-toggle c8y-dropdown"
167
201
  title="{{ 'Actions' | translate }}"
202
+ aria-haspopup="true"
168
203
  type="button"
169
204
  uib-dropdown-toggle
170
205
  ng-click="::$event.stopPropagation()"
171
- aria-haspopup="true"
172
206
  >
173
207
  <i c8y-icon="ellipsis-v"></i>
174
208
  </button>
175
- <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
209
+ <ul
210
+ class="dropdown-menu dropdown-menu-right"
211
+ uib-dropdown-menu
212
+ >
176
213
  <li>
177
214
  <button
178
215
  title="{{ 'Edit' | translate }}"
@@ -1,18 +1,19 @@
1
+ <c8y-ui-title-set title="vm.mo.name | humanizeAppName"></c8y-ui-title-set>
1
2
  <c8y-download-logs
2
3
  app-id="vm.mo.applicationId"
3
- instance-name="vm.selectedInstance.name">
4
- </c8y-download-logs>
4
+ instance-name="vm.selectedInstance.name"
5
+ ></c8y-download-logs>
5
6
 
6
7
  <c8y-app-instance-logs
7
8
  selected-instance="vm.selectedInstance"
8
9
  mo="vm.mo"
9
10
  instances="vm.instances"
10
- on-next-button-click="vm.nextBtnClick"
11
- on-back-button-click="vm.backBtnClick"
12
- on-fast-forward-button-click="vm.loadLatestLogs"
13
- on-fast-backward-button-click="vm.beginningBtnClick"
11
+ on-next-button-click="(vm.nextBtnClick)"
12
+ on-back-button-click="(vm.backBtnClick)"
13
+ on-fast-forward-button-click="(vm.loadLatestLogs)"
14
+ on-fast-backward-button-click="(vm.beginningBtnClick)"
14
15
  logs-string="vm.selectedInstance.logs"
15
16
  buttons-disabled="vm.isRequestPending"
16
- on-instance-change="vm.onInstanceChange"
17
- on-date-from-change="vm.loadLogsFromDate">
18
- </c8y-app-instance-logs>
17
+ on-instance-change="(vm.onInstanceChange)"
18
+ on-date-from-change="(vm.loadLogsFromDate)"
19
+ ></c8y-app-instance-logs>
@@ -1 +1 @@
1
- "use strict";!function(){function i(i,t,e){_.merge({},window.C8Y_APP&&window.C8Y_APP.C8Y_INSTANCE_OPTIONS,window.C8Y_INSTANCE_OPTIONS).default_icon;i.add({name:"Applications",nameDisplay:t("Applications"),description:t("Displays the list of links to available applications."),templateUrl:":::PLUGIN_PATH:::/views/applications.html",previewImage:":::PLUGIN_PATH:::/img/applications-widget-pr.png",options:{noDeviceTarget:!0,widgetDefaults:{_width:8,_height:5}}})}i.$inject=["c8yComponentsProvider","gettext","DEFAULT_APP_ICON"],angular.module("c8y.welcome.applications",[]).constant("DEFAULT_APP_ICON","core/img/default_icon.svg").config(i)}();
1
+ "use strict";!function(){function i(i,t,e){_.merge({},window.C8Y_APP&&window.C8Y_APP.C8Y_INSTANCE_OPTIONS,window.C8Y_INSTANCE_OPTIONS).default_icon;i.add({name:"Applications",nameDisplay:t("Applications"),description:t("Displays the list of links to available applications."),templateUrl:":::PLUGIN_PATH:::/views/applications.html",previewImage:":::PLUGIN_PATH:::/img/applications-widget-pr.png",options:{noDeviceTarget:!0,widgetDefaults:{_width:16,_height:5}}})}i.$inject=["c8yComponentsProvider","gettext","DEFAULT_APP_ICON"],angular.module("c8y.welcome.applications",[]).constant("DEFAULT_APP_ICON","core/img/default_icon.svg").config(i)}();
@@ -1,40 +1,55 @@
1
1
  <div ng-controller="binaryArtefactsListCtrl as vm">
2
2
  <c8y-breadcrumbs-set>
3
3
  <c8y-breadcrumbs-item
4
- label="{{ 'Files repository' | translate }}"
5
4
  icon="c8y-management"
5
+ label="{{ 'Files repository' | translate }}"
6
6
  ></c8y-breadcrumbs-item>
7
7
  <c8y-breadcrumbs-item
8
- label="{{ 'Management' | translate }}"
9
8
  icon="c8y-management"
9
+ label="{{ 'Management' | translate }}"
10
10
  ></c8y-breadcrumbs-item>
11
11
  </c8y-breadcrumbs-set>
12
12
 
13
13
  <c8y-ui-action-bar-set>
14
- <li class="navbar-form" action-bar-position="left">
14
+ <li
15
+ class="navbar-form"
16
+ action-bar-position="left"
17
+ >
15
18
  <div class="input-group input-group-search">
16
19
  <input
17
20
  class="form-control"
18
21
  title="{{ 'Filter files' | translate }}…"
19
22
  id="Filter"
20
- type="search"
21
23
  placeholder="{{ 'Filter' | translate }}…"
24
+ type="search"
22
25
  ng-model="vm.searchString"
23
26
  />
24
27
  <span class="input-group-addon">
25
- <i c8y-icon="search" ng-if="vm.searchString.length === 0 || !vm.searchString"></i>
26
28
  <i
27
- c8y-icon="times"
29
+ c8y-icon="search"
30
+ ng-if="vm.searchString.length === 0 || !vm.searchString"
31
+ ></i>
32
+ <i
28
33
  class="text-muted"
34
+ c8y-icon="times"
29
35
  ng-if="vm.searchString.length > 0"
30
36
  ng-click="vm.searchString = ''"
31
37
  ></i>
32
38
  </span>
33
- <span for="Filter" class="sr-only" translate>Filter files</span>
39
+ <span
40
+ class="sr-only"
41
+ for="Filter"
42
+ translate
43
+ >
44
+ Filter files
45
+ </span>
34
46
  </div>
35
47
  </li>
36
48
 
37
- <li c8y-if-allowed any-role="['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE']">
49
+ <li
50
+ c8y-if-allowed
51
+ any-role="['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE']"
52
+ >
38
53
  <button
39
54
  class="btn btn-link"
40
55
  title="{{ 'Upload file' | translate }}"
@@ -54,10 +69,10 @@
54
69
 
55
70
  <!-- empty state -->
56
71
  <c8y-ui-empty-state
57
- ng-if="files.length === 0"
58
72
  [icon]="'c8y-archive'"
59
73
  [title]="'No files to display.' | translate"
60
74
  [subtitle]="'Click below to upload your first file.' | translate"
75
+ ng-if="files.length === 0"
61
76
  >
62
77
  <button
63
78
  class="btn btn-primary"
@@ -72,9 +87,12 @@
72
87
 
73
88
  <div
74
89
  class="c8y-list__group m-b-24"
75
- ng-class="{ 'dd-low': (files | filter: vm.filter).length < 10 }"
90
+ ng-class="{ 'dd-low': (files | filter : vm.filter).length < 10 }"
76
91
  >
77
- <div class="page-sticky-header c8y-list__item hidden-xs" ng-if="files.length > 0">
92
+ <div
93
+ class="page-sticky-header c8y-list__item hidden-xs"
94
+ ng-if="files.length > 0"
95
+ >
78
96
  <div class="c8y-list__item__block">
79
97
  <div class="c8y-list__item__icon">
80
98
  <i class="p-l-24"></i>
@@ -113,21 +131,24 @@
113
131
  <div class="c8y-list__item__body">
114
132
  <div class="content-flex-60">
115
133
  <div class="col-3">
116
- <div class="text-truncate" title="{{ file.name }}">
134
+ <div
135
+ class="text-truncate"
136
+ title="{{ file.name }}"
137
+ >
117
138
  {{ file.name }}
118
139
  </div>
119
140
  </div>
120
141
  <div class="col-1">
121
142
  <span ng-if="isImage(file)">
122
143
  <button
144
+ class="btn btn-default btn-xs visible-xs-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block"
145
+ title="{{ 'Preview file' | translate }}"
146
+ type="button"
123
147
  ng-click="toggle(file)"
124
148
  uib-popover-template="popoverTemplateUrl"
125
149
  popover-placement="right"
126
150
  popover-append-to-body="true"
127
151
  popover-trigger="'focus'"
128
- title="{{ 'Preview file' | translate }}"
129
- type="button"
130
- class="btn btn-default btn-xs visible-xs-block visible-sm-inline-block visible-md-inline-block visible-lg-inline-block"
131
152
  >
132
153
  <i c8y-icon="search"></i>
133
154
  </button>
@@ -137,7 +158,10 @@
137
158
  <span class="text-label-small visible-xs m-t-8">
138
159
  {{ 'File type' | translate }}
139
160
  </span>
140
- <div class="text-truncate" title="{{ file.type }}">
161
+ <div
162
+ class="text-truncate"
163
+ title="{{ file.type }}"
164
+ >
141
165
  <span>
142
166
  {{ file.type }}
143
167
  </span>
@@ -151,11 +175,17 @@
151
175
  {{ size(file) | bytes }}
152
176
  </span>
153
177
  </div>
154
- <div class="col-2" title="{{ 'Owner' | translate }}: {{ file.owner }}">
178
+ <div
179
+ class="col-2"
180
+ title="{{ 'Owner' | translate }}: {{ file.owner }}"
181
+ >
155
182
  <span class="text-label-small visible-xs m-t-8">
156
183
  {{ 'File owner' | translate }}
157
184
  </span>
158
- <div class="text-truncate" title="{{ file.type }}">
185
+ <div
186
+ class="text-truncate"
187
+ title="{{ file.type }}"
188
+ >
159
189
  <span>
160
190
  {{ file.owner }}
161
191
  </span>
@@ -165,7 +195,10 @@
165
195
  <span class="text-label-small visible-xs m-t-8">
166
196
  {{ 'Last update' | translate }}
167
197
  </span>
168
- <span class="text-muted" title="{{ 'Last update' | translate }}">
198
+ <span
199
+ class="text-muted"
200
+ title="{{ 'Last update' | translate }}"
201
+ >
169
202
  <i c8y-icon="calendar"></i>
170
203
  {{ file.lastUpdated | absoluteDate }}
171
204
  </span>
@@ -173,17 +206,24 @@
173
206
  </div>
174
207
  </div>
175
208
  <div class="c8y-list__item__actions">
176
- <div class="settings pull-right dropdown" uib-dropdown is-open="menuOpen">
209
+ <div
210
+ class="settings pull-right dropdown"
211
+ uib-dropdown
212
+ is-open="menuOpen"
213
+ >
177
214
  <button
178
215
  class="dropdown-toggle c8y-dropdown"
179
216
  title="{{ 'Actions' | translate }}"
217
+ aria-haspopup="true"
180
218
  type="button"
181
219
  uib-dropdown-toggle
182
- aria-haspopup="true"
183
220
  >
184
221
  <i c8y-icon="ellipsis-v"></i>
185
222
  </button>
186
- <ul class="dropdown-menu" uib-dropdown-menu>
223
+ <ul
224
+ class="dropdown-menu"
225
+ uib-dropdown-menu
226
+ >
187
227
  <li>
188
228
  <c8y-download-button
189
229
  binary="file"
@@ -211,10 +251,10 @@
211
251
 
212
252
  <!-- no results empty state -->
213
253
  <c8y-ui-empty-state
214
- ng-if="filtered.length === 0 && vm.searchString.length > 0"
215
254
  [icon]="'search'"
216
255
  [title]="'No results to display.' | translate"
217
256
  [subtitle]="'Refine your search terms or check your spelling.' | translate"
257
+ ng-if="filtered.length === 0 && vm.searchString.length > 0"
218
258
  ></c8y-ui-empty-state>
219
259
 
220
260
  <c8y-load-more></c8y-load-more>
@@ -1 +1 @@
1
- "use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(){function e(s,m,d,t,f,n,e){var l=window.c8y_testing?1:500,u=2083,r=f.clean,c="measurement/measurements",a={headers:f.contentHeaders("measurement")},p=e.getUnitHeaders();function i(e){e=e.id||e;return"".concat(f.url(c),"/").concat(e)}var o=f.createEnum([{name:"stream",value:"application/json-stream"},{name:"csv",value:"text/csv"},{name:"xlsx",value:"application/vnd.ms-excel"}]);function g(e,t){var n=f.url(c),e=_.assign({},f.todayFilter({}),{pageSize:1440},e),r={params:e},e=t?(r.responseType="blob",function(e){return e.data}):f.cleanListCallback("measurements",g,e),a={Accept:(t=t||o.stream)&&_(o).map("value").includes(t.value)?t.value:"application/json"};return p.then(function(e){return r.headers=_.assign({},e,a),s.get(n,r).then(function(e){return 202===e.status?m.reject({async:!0,data:e.data}):e})}).then(e)}function v(e){var n=f.url("".concat(c,"/series")),r=f.todayFilter(_.assign({pageSize:1440,revert:!0},e||{}));r.dateFrom&&(r.dateFrom=moment(r.dateFrom).format(f.dateFullFormat)),r.dateTo&&(r.dateTo=moment(r.dateTo).format(f.dateFullFormat));function a(e){return e.data}var i={params:r},e=_.findIndex(v._cacheFilter,_.partial(_.isEqual,r)),o=0<=e?v._cacheRequest[e]:null;return r.dateFrom&&(r.dateFrom=moment(r.dateFrom).format(f.dateFullFormat)),r.dateTo&&(r.dateTo=moment(r.dateTo).format(f.dateFullFormat)),e=r,"".concat(f.absoluteUrl(n),"?").concat(t(e)).length>u&&_.unset(r,"series"),p.then(function(e){var t;return _.assign(i,{headers:e}),o||(o=s.get(n,i).then(a),t=_.cloneDeep(r),v._cacheFilter.push(_.cloneDeep(t)),v._cacheRequest.push(o),moment(r.dateTo).isAfter(moment())&&setTimeout(function(){var e;e=o,_.remove(v._cacheFilter,t),_.remove(v._cacheRequest,e)},3e3)),o})}function h(e){var t=f.url(c),n=_.cloneDeep(a);if(e.source)return s.post(t,e,n);throw new Error("c8yMeasurement: source must be defined")}function y(e){var t=i(e),e=r(e),n=_.cloneDeep(a);return s.put(t,e,n)}v._cacheFilter=[],v._cacheRequest=[];var b=[];return{format:o,list:g,listPaged:function(e){function n(e){var t=!_.isUndefined(e.paging.next)&&e.length>=a.pageSize;return r.notify(e),t||r.resolve(!0),!!i||!t||e.paging.next().then(n)}var r=m.defer(),a=_.assign(e||{},{pageSize:1e3,withTotalPages:!0}),i=!1;return _.assign(r.promise,{cancel:function(){i=!0,r.reject("canceled")}}),g(a).then(n),r.promise},listSeries:v,listSeriesPaged:function(e){function t(e){return n.notify(e),e.paging.next||n.resolve(!0),!!r||!e.paging.next||e.paging.next().then(t)}var n=m.defer(),e=_.assign({revert:!0},e||{},{pageSize:1e3,withTotalPages:!0}),r=!1;return _.assign(n.promise,{cancel:function(){r=!0,n.reject("canceled")}}),v(e).then(t),n.promise},detail:function(e){return e=i(e),s.get(e)},create:h,update:y,save:function(e){return(e.id?y:h)(e)},remove:function(e){return e=i(e),s.delete(e)},latest:function(){var e,r=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=1<arguments.length?arguments[1]:void 0,a={};if(!r.device)throw new Error("filter.device must be defined");if(!r.fragment)throw new Error("filter.fragment must be defined");if(r.series)return e=g(_.assign(f.timeOrderFilter(),{revert:!0,valueFragmentType:r.fragment,valueFragmentSeries:r.series,source:r.device,pageSize:1,dateTo:void 0})).then(function(e){return _.assign(a,_.first(e)||{}),a}),t&&(t={ops:"CREATE",channel:"/measurements/".concat(r.device),onUpdate:function(e,t){var n=t[r.fragment];n&&n[r.series]&&_.assign(a,t)}},t=n.watch(t),e.stop=_.bind(t.stop,t)),e;throw new Error("filter.series must be defined")},listForDataPoint:function(e,t,n,r,a){var i=b,o=("object"===_typeof(a)&&(i=a._cachedRequests||[],a._cachedRequests=i),t),s=n,a=e.__target.id,t=("NONE"!==r?r:0)||void 0;if(o){switch(o=moment(o),r){case"HOURLY":o.subtract(1,"hour").startOf("hour");break;case"DAILY":o.subtract(1,"day").startOf("day");break;default:o.subtract(1,"minute").startOf("minute")}o=o.format(f.dateFullFormat)}if(s){switch(s=moment(s),r){case"HOURLY":s.add(1,"hour").startOf("hour");break;case"DAILY":s.add(1,"days").startOf("day");break;default:s.add(1,"minute").startOf("minute")}s=s.format(f.dateFullFormat)}var u={dateFrom:o,dateTo:s,source:a,aggregationType:t},c=_.find(i,function(e){return _.isMatch(e.filters,u)}),n=(c||(c={deferred:m.defer(),sendDebounced:function(){return c._sendDebounced(),c.deferred.promise},_sendDebounced:_.debounce(function(){v(c.filters).then(_.unary(c.deferred.resolve))},l),filters:u},i.push(c)),[e.fragment,e.series].join("."));return c.filters.series=_.uniq((c.filters.series||[]).concat([n])),d(function(){return c.sendDebounced().then((t=e,function(e){var n=_.findIndex(e.series,function(e){return e.name===t.series&&e.type===t.fragment}),r=[];return-1<n&&_.forEach(e.values,function(e,t){_.isObjectLike(e[n])&&r.push({time:t,min:e[n].min&&Number(e[n].min),max:e[n].max&&Number(e[n].max)})}),{dataPoint:t,values:r,truncated:e.truncated}})).then(function(e){return e.aggregation=r,e.dateFrom=o,e.dateTo=s,e}).finally(function(){_.remove(i,c)});var t},5)},rtMeasurementForDatapoint:function(a){return function(e){var t=a.__target.id,n=a.fragment,r=a.series,n=_.get(e,[n,r]);return e.source.id===t&&!!n&&{dataPoint:a,values:[{time:e.time,min:n.value,max:n.value}]}}}}}e.$inject=["$http","$q","$timeout","$httpParamSerializer","c8yBase","c8yRealtime","c8yMeasurementUnits"],angular.module("c8y.core").factory("c8yMeasurements",e)}();
1
+ "use strict";function ownKeys(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!==_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(){function e(u,f,m,t,d,r,e){var l=window.c8y_testing?1:500,s=2083,n=d.clean,c="measurement/measurements",a={headers:d.contentHeaders("measurement")},p=e.getUnitHeaders();function o(e){e=e.id||e;return"".concat(d.url(c),"/").concat(e)}var i=d.createEnum([{name:"stream",value:"application/json-stream"},{name:"csv",value:"text/csv"},{name:"xlsx",value:"application/vnd.ms-excel"}]);function g(e,t){var r=d.url(c),e=_.assign({},d.todayFilter({}),{pageSize:1440},e),n={params:e},e=t?(n.responseType="blob",function(e){return e.data}):d.cleanListCallback("measurements",g,e),a={Accept:(t=t||i.stream)&&_(i).map("value").includes(t.value)?t.value:"application/json"};return p.then(function(e){return n.headers=_.assign({},e,a),u.get(r,n).then(function(e){return 202===e.status?f.reject({async:!0,data:e.data}):e})}).then(e)}function v(e){var r=d.url("".concat(c,"/series")),n=d.todayFilter(_.assign({pageSize:1440,revert:!0},e||{}));n.dateFrom&&(n.dateFrom=moment(n.dateFrom).format(d.dateFullFormat)),n.dateTo&&(n.dateTo=moment(n.dateTo).format(d.dateFullFormat));function a(e){return e.data}var o={params:n},e=_.findIndex(v._cacheFilter,_.partial(_.isEqual,n)),i=0<=e?v._cacheRequest[e]:null;return n.dateFrom&&(n.dateFrom=moment(n.dateFrom).format(d.dateFullFormat)),n.dateTo&&(n.dateTo=moment(n.dateTo).format(d.dateFullFormat)),e=n,"".concat(d.absoluteUrl(r),"?").concat(t(e)).length>s&&_.unset(n,"series"),p.then(function(e){var t;return _.assign(o,{headers:e}),i||(i=u.get(r,o).then(a),t=_.cloneDeep(n),v._cacheFilter.push(_.cloneDeep(t)),v._cacheRequest.push(i),moment(n.dateTo).isAfter(moment())&&setTimeout(function(){var e;e=i,_.remove(v._cacheFilter,t),_.remove(v._cacheRequest,e)},3e3)),i})}function y(e){var t=d.url(c),r=_.cloneDeep(a);if(e.source)return u.post(t,e,r);throw new Error("c8yMeasurement: source must be defined")}function b(e){var t=o(e),e=n(e),r=_.cloneDeep(a);return u.put(t,e,r)}v._cacheFilter=[],v._cacheRequest=[];var h=[];return{format:i,list:g,listPaged:function(e){function r(e){var t=!_.isUndefined(e.paging.next)&&e.length>=a.pageSize;return n.notify(e),t||n.resolve(!0),!!o||!t||e.paging.next().then(r)}var n=f.defer(),a=_.assign(e||{},{pageSize:1e3,withTotalPages:!0}),o=!1;return _.assign(n.promise,{cancel:function(){o=!0,n.reject("canceled")}}),g(a).then(r),n.promise},listSeries:v,listSeriesPaged:function(e){function t(e){return r.notify(e),e.paging.next||r.resolve(!0),!!n||!e.paging.next||e.paging.next().then(t)}var r=f.defer(),e=_.assign({revert:!0},e||{},{pageSize:1e3,withTotalPages:!0}),n=!1;return _.assign(r.promise,{cancel:function(){n=!0,r.reject("canceled")}}),v(e).then(t),r.promise},detail:function(e){return e=o(e),u.get(e)},create:y,update:b,save:function(e){return(e.id?b:y)(e)},remove:function(e){return e=o(e),u.delete(e)},latest:function(){var e,n=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=1<arguments.length?arguments[1]:void 0,a={};if(!n.device)throw new Error("filter.device must be defined");if(!n.fragment)throw new Error("filter.fragment must be defined");if(n.series)return e=g(_.assign(d.timeOrderFilter(),{revert:!0,valueFragmentType:n.fragment,valueFragmentSeries:n.series,source:n.device,pageSize:1,dateTo:void 0})).then(function(e){return _.assign(a,_.first(e)||{}),a}),t&&(t={ops:"CREATE",channel:"/measurements/".concat(n.device),onUpdate:function(e,t){var r=t[n.fragment];r&&r[n.series]&&_.assign(a,t)}},t=r.watch(t),e.stop=_.bind(t.stop,t)),e;throw new Error("filter.series must be defined")},listForDataPoint:function(e,t,r,n,a){var o=h,i=("object"===_typeof(a)&&(o=a._cachedRequests||[],a._cachedRequests=o),t),u=r,a=e.__target.id,t=("NONE"!==n?n:0)||void 0;if(i){switch(i=moment(i),n){case"HOURLY":i.subtract(1,"hour").startOf("hour");break;case"DAILY":i.subtract(1,"day").startOf("day");break;default:i.subtract(1,"minute").startOf("minute")}i=i.format(d.dateFullFormat)}if(u){switch(u=moment(u),n){case"HOURLY":u.add(1,"hour").startOf("hour");break;case"DAILY":u.add(1,"days").startOf("day");break;default:u.add(1,"minute").startOf("minute")}u=u.format(d.dateFullFormat)}var s={dateFrom:i,dateTo:u,source:a,aggregationType:t},c=_.find(o,function(e){return _.isMatch(e.filters,s)}),r=(c||(c={deferred:f.defer(),sendDebounced:function(){return c._sendDebounced(),c.deferred.promise},_sendDebounced:_.debounce(function(){v(c.filters).then(_.unary(c.deferred.resolve))},l),filters:s},o.push(c)),[e.fragment,e.series].join("."));return c.filters.series=_.uniq((c.filters.series||[]).concat([r])),m(function(){return c.sendDebounced().then((a=e,function(e){var t,r=_.findIndex(e.series,function(e){return e.name===a.series&&e.type===a.fragment}),n=[];return-1<r&&(t=e.series[r].unit,_.forEach(e.values,function(e,t){_.isObjectLike(e[r])&&n.push({time:t,min:e[r].min&&Number(e[r].min),max:e[r].max&&Number(e[r].max)})})),{dataPoint:_objectSpread(_objectSpread({},a),{},{unit:t}),values:n,truncated:e.truncated}})).then(function(e){return e.aggregation=n,e.dateFrom=i,e.dateTo=u,e}).finally(function(){_.remove(o,c)});var a},5)},rtMeasurementForDatapoint:function(a){return function(e){var t=a.__target.id,r=a.fragment,n=a.series,r=_.get(e,[r,n]);return e.source.id===t&&!!r&&{dataPoint:a,values:[{time:e.time,min:r.value,max:r.value}]}}}}}e.$inject=["$http","$q","$timeout","$httpParamSerializer","c8yBase","c8yRealtime","c8yMeasurementUnits"],angular.module("c8y.core").factory("c8yMeasurements",e)}();