@c8y/ngx-components 1006.6.36 → 1006.6.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/c8y-ngx-components-connectivity.umd.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.js +400 -131
- package/bundles/c8y-ngx-components.umd.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.min.js +2 -2
- package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
- package/c8y-ngx-components.d.ts +90 -87
- package/c8y-ngx-components.metadata.json +1 -1
- package/connectivity/c8y-ngx-components-connectivity.metadata.json +1 -1
- package/context-dashboard/c8y-ngx-components-context-dashboard.metadata.json +1 -1
- package/core/authentication/new-password.component.d.ts +8 -6
- package/core/docs/guide-docs.component.d.ts +25 -3
- package/core/forms/validation-pattern.d.ts +1 -0
- package/core/i18n/force-html-translate.directive.d.ts +32 -0
- package/core/login/change-password.component.d.ts +1 -1
- package/core/login/login.service.d.ts +15 -2
- package/core/login/password-strength-validator.directive.d.ts +9 -0
- package/core/login/strength-validator-service.d.ts +7 -0
- package/core/user/user-edit.component.d.ts +4 -2
- package/esm2015/c8y-ngx-components.js +90 -87
- package/esm2015/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm2015/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm2015/core/authentication/new-password.component.js +15 -20
- package/esm2015/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm2015/core/docs/guide-docs.component.js +69 -4
- package/esm2015/core/forms/validation-pattern.js +2 -1
- package/esm2015/core/i18n/force-html-translate.directive.js +99 -0
- package/esm2015/core/i18n/i18n.module.js +5 -3
- package/esm2015/core/i18n/pattern-messages.data.js +2 -2
- package/esm2015/core/login/change-password.component.js +5 -5
- package/esm2015/core/login/credentials.component.js +2 -2
- package/esm2015/core/login/login.module.js +4 -2
- package/esm2015/core/login/login.service.js +40 -6
- package/esm2015/core/login/password-strength-validator.directive.js +32 -0
- package/esm2015/core/login/strength-validator-service.js +28 -0
- package/esm2015/core/user/user-edit.component.js +10 -5
- package/esm2015/repository/configuration/configuration-list.component.js +2 -2
- package/esm2015/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/esm5/c8y-ngx-components.js +90 -87
- package/esm5/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm5/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm5/core/authentication/new-password.component.js +21 -25
- package/esm5/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm5/core/docs/guide-docs.component.js +72 -4
- package/esm5/core/forms/validation-pattern.js +2 -1
- package/esm5/core/i18n/force-html-translate.directive.js +105 -0
- package/esm5/core/i18n/i18n.module.js +5 -3
- package/esm5/core/i18n/pattern-messages.data.js +2 -2
- package/esm5/core/login/change-password.component.js +5 -5
- package/esm5/core/login/credentials.component.js +2 -2
- package/esm5/core/login/login.module.js +4 -2
- package/esm5/core/login/login.service.js +43 -6
- package/esm5/core/login/password-strength-validator.directive.js +38 -0
- package/esm5/core/login/strength-validator-service.js +29 -0
- package/esm5/core/user/user-edit.component.js +19 -9
- package/esm5/repository/configuration/configuration-list.component.js +2 -2
- package/esm5/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/fesm2015/c8y-ngx-components-connectivity.js +1 -1
- package/fesm2015/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm2015/c8y-ngx-components-repository.js +1 -1
- package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm2015/c8y-ngx-components.js +281 -40
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm5/c8y-ngx-components-repository.js +1 -1
- package/fesm5/c8y-ngx-components-repository.js.map +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm5/c8y-ngx-components.js +315 -49
- package/fesm5/c8y-ngx-components.js.map +1 -1
- package/locales/de.po +71 -60
- package/locales/es.po +120 -85
- package/locales/fr.po +107 -72
- package/locales/ja_JP.po +89 -78
- package/locales/ko.po +92 -57
- package/locales/locales.pot +9 -9
- package/locales/nl.po +95 -60
- package/locales/pl.po +88 -53
- package/locales/pt_BR.po +174 -138
- package/locales/ru.po +120 -85
- package/locales/zh_CN.po +87 -52
- package/package.json +2 -2
- package/repository/c8y-ngx-components-repository.metadata.json +1 -1
- package/sensor-phone/c8y-ngx-components-sensor-phone.metadata.json +1 -1
package/locales/zh_CN.po
CHANGED
|
@@ -214,7 +214,7 @@ msgid "<kept as is>"
|
|
|
214
214
|
msgstr "<保持原样>"
|
|
215
215
|
|
|
216
216
|
msgid "<no name>"
|
|
217
|
-
msgstr "
|
|
217
|
+
msgstr "<无名>"
|
|
218
218
|
|
|
219
219
|
msgid "<small>Multiple</small>"
|
|
220
220
|
msgstr "<small>多个</small>"
|
|
@@ -342,6 +342,9 @@ msgstr "活动:已触发 {{alarmTimeFromNow}}"
|
|
|
342
342
|
msgid "ACTIVE`tenant`"
|
|
343
343
|
msgstr "激活"
|
|
344
344
|
|
|
345
|
+
msgid "ADDED"
|
|
346
|
+
msgstr "已添加"
|
|
347
|
+
|
|
345
348
|
msgid "ADFS manifest"
|
|
346
349
|
msgstr "ADFS 清单"
|
|
347
350
|
|
|
@@ -1447,6 +1450,9 @@ msgstr "自动保存主机密钥"
|
|
|
1447
1450
|
msgid "Auto save host key on first connection on Remote access tab."
|
|
1448
1451
|
msgstr "在“远程访问”选项卡上自动保存第一个连接的主机密钥。"
|
|
1449
1452
|
|
|
1453
|
+
msgid "Auto-scroll"
|
|
1454
|
+
msgstr "自动滚动"
|
|
1455
|
+
|
|
1450
1456
|
msgid "Autodiscovery"
|
|
1451
1457
|
msgstr "自动发现"
|
|
1452
1458
|
|
|
@@ -1465,6 +1471,9 @@ msgstr "自动发现正在进行中。"
|
|
|
1465
1471
|
msgid "Autodiscovery request"
|
|
1466
1472
|
msgstr "自动发现请求"
|
|
1467
1473
|
|
|
1474
|
+
msgid "Automatically scrolls to the latest value"
|
|
1475
|
+
msgstr "自动滚动到最新值"
|
|
1476
|
+
|
|
1468
1477
|
msgid "Availability"
|
|
1469
1478
|
msgstr "可用性"
|
|
1470
1479
|
|
|
@@ -1691,9 +1700,6 @@ msgstr "浏览路径"
|
|
|
1691
1700
|
msgid "Browse the manual"
|
|
1692
1701
|
msgstr "浏览手册"
|
|
1693
1702
|
|
|
1694
|
-
msgid "Browse the manual <a c8y-guide-href=\"users-guide/cockpit/\">here</a>."
|
|
1695
|
-
msgstr "在<a c8y-guide-href=\"users-guide/cockpit/\">此处</a>浏览手册。"
|
|
1696
|
-
|
|
1697
1703
|
msgid "Building {{number}}"
|
|
1698
1704
|
msgstr "正在构建 {{number}}"
|
|
1699
1705
|
|
|
@@ -1764,6 +1770,9 @@ msgstr "CAN 总线"
|
|
|
1764
1770
|
msgid "CAN Bus communication"
|
|
1765
1771
|
msgstr "CAN 总线通信"
|
|
1766
1772
|
|
|
1773
|
+
msgid "CANCELED"
|
|
1774
|
+
msgstr "已取消"
|
|
1775
|
+
|
|
1767
1776
|
msgid "CANCELLED"
|
|
1768
1777
|
msgstr "已取消"
|
|
1769
1778
|
|
|
@@ -1809,6 +1818,9 @@ msgstr "已清除"
|
|
|
1809
1818
|
msgid "CLEARED: was active for {{alarmDuration}}"
|
|
1810
1819
|
msgstr "已清除:在 {{alarmDuration}} 内处于活动状态"
|
|
1811
1820
|
|
|
1821
|
+
msgid "COMPLETED"
|
|
1822
|
+
msgstr "已完成"
|
|
1823
|
+
|
|
1812
1824
|
msgid "COMPLETED SUCCESSFULLY"
|
|
1813
1825
|
msgstr "已成功完成"
|
|
1814
1826
|
|
|
@@ -2195,9 +2207,6 @@ msgstr "清除"
|
|
|
2195
2207
|
msgid "Clear`selection`"
|
|
2196
2208
|
msgstr "清除"
|
|
2197
2209
|
|
|
2198
|
-
msgid "Click <strong>Next</strong> once you have the app installed."
|
|
2199
|
-
msgstr "安装应用程序后单击<strong>下一步</strong>。"
|
|
2200
|
-
|
|
2201
2210
|
msgid "Click below to add the first one."
|
|
2202
2211
|
msgstr "在下面单击以添加第一个。"
|
|
2203
2212
|
|
|
@@ -2813,6 +2822,9 @@ msgstr "无法部署模块 \"{{moduleName}}\"。表达式 \"{{expression}}\" 编
|
|
|
2813
2822
|
msgid "Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}."
|
|
2814
2823
|
msgstr "无法部署模块 \"{{moduleName}}\"。表达式 \"{{expression}}\" 编译失败:行 {{line}} 列 {{column}} \"{{incorrectExpression}}\" 附近的语法不正确。"
|
|
2815
2824
|
|
|
2825
|
+
msgid "Could not download the file: object with ID \"{{ id }}\" is not a valid binary."
|
|
2826
|
+
msgstr "无法下载文件:ID 为 \"{{ id }}\" 的对象不是有效的二进制文件。"
|
|
2827
|
+
|
|
2816
2828
|
msgid "Could not download the log file."
|
|
2817
2829
|
msgstr "无法下载日志文件。"
|
|
2818
2830
|
|
|
@@ -3148,13 +3160,6 @@ msgstr "创建时间"
|
|
|
3148
3160
|
msgid "Credentials"
|
|
3149
3161
|
msgstr "证书"
|
|
3150
3162
|
|
|
3151
|
-
msgid ""
|
|
3152
|
-
"Credentials already provided.<br>\n"
|
|
3153
|
-
" Click \"Replace credentials\" below to overwrite them."
|
|
3154
|
-
msgstr ""
|
|
3155
|
-
"已提供凭据。<br>\n"
|
|
3156
|
-
"单击下面的 \"替换证书\" 予以覆盖。"
|
|
3157
|
-
|
|
3158
3163
|
msgid "Credentials deleted."
|
|
3159
3164
|
msgstr "已删除凭据。"
|
|
3160
3165
|
|
|
@@ -3321,6 +3326,9 @@ msgstr "停用"
|
|
|
3321
3326
|
msgid "DEACTIVATED"
|
|
3322
3327
|
msgstr "已停用"
|
|
3323
3328
|
|
|
3329
|
+
msgid "DELETED"
|
|
3330
|
+
msgstr "已删除"
|
|
3331
|
+
|
|
3324
3332
|
msgid "DES"
|
|
3325
3333
|
msgstr "DES"
|
|
3326
3334
|
|
|
@@ -4449,6 +4457,9 @@ msgstr "EVENT"
|
|
|
4449
4457
|
msgid "EXECUTING"
|
|
4450
4458
|
msgstr "正在执行"
|
|
4451
4459
|
|
|
4460
|
+
msgid "EXECUTING_WITH_ERROR"
|
|
4461
|
+
msgstr "正在执行_但显示_错误"
|
|
4462
|
+
|
|
4452
4463
|
msgid "Each support user request from subtenant user will prolong support user access by the given number of hours (default: 24 hours)"
|
|
4453
4464
|
msgstr "来自子租户用户的每个支持用户请求会将支持用户的访问延长指定小时数(默认:24 小时)"
|
|
4454
4465
|
|
|
@@ -4997,6 +5008,9 @@ msgstr "未能断开设备连接。"
|
|
|
4997
5008
|
msgid "Failed to extract certificate from PKCS12."
|
|
4998
5009
|
msgstr "从 PKCS12 提取证书失败。"
|
|
4999
5010
|
|
|
5011
|
+
msgid "Failed to generate a QR code."
|
|
5012
|
+
msgstr "无法生成二维码。"
|
|
5013
|
+
|
|
5000
5014
|
msgid "Failed to open the relay due to: \"{{failureReason | translate}}\"."
|
|
5001
5015
|
msgstr "无法打开中继,原因是:\"{{failureReason | translate}}\"。"
|
|
5002
5016
|
|
|
@@ -5187,9 +5201,6 @@ msgstr "过滤器"
|
|
|
5187
5201
|
msgid "Filter…"
|
|
5188
5202
|
msgstr "过滤…"
|
|
5189
5203
|
|
|
5190
|
-
msgid "Find and install <strong>Cumulocity IoT Sensor App</strong>."
|
|
5191
|
-
msgstr "找到并安装 <strong>Cumulocity IoT 传感器应用程序</strong>。"
|
|
5192
|
-
|
|
5193
5204
|
msgid "Find by external ID"
|
|
5194
5205
|
msgstr "按外部 ID 查找"
|
|
5195
5206
|
|
|
@@ -5276,13 +5287,6 @@ msgstr ""
|
|
|
5276
5287
|
"在\n"
|
|
5277
5288
|
"<a c8y-guide-href=\"users-guide/cockpit/#adding-alarms-or-events\">User guide</a>中详细了解。"
|
|
5278
5289
|
|
|
5279
|
-
msgid ""
|
|
5280
|
-
"Find out more in the\n"
|
|
5281
|
-
" <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>."
|
|
5282
|
-
msgstr ""
|
|
5283
|
-
"在\n"
|
|
5284
|
-
"<a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide</a>中详细了解。"
|
|
5285
|
-
|
|
5286
5290
|
msgid ""
|
|
5287
5291
|
"Find out more in the\n"
|
|
5288
5292
|
" <a c8y-guide-href=\"users-guide/cockpit/#export\">User guide`KEEP_ORIGINAL`</a>."
|
|
@@ -5311,13 +5315,6 @@ msgstr ""
|
|
|
5311
5315
|
"在\n"
|
|
5312
5316
|
" <a c8y-guide-href=\"users-guide/administration/#event-processing\">User guide</a>中详细了解。"
|
|
5313
5317
|
|
|
5314
|
-
msgid ""
|
|
5315
|
-
"Find out more in the\n"
|
|
5316
|
-
" <a c8y-guide-href=\"users-guide/device-management/#configuration-repository\">User guide`KEEP_ORIGINAL`</a>."
|
|
5317
|
-
msgstr ""
|
|
5318
|
-
"在\n"
|
|
5319
|
-
"<a c8y-guide-href=\"users-guide/device-management/#configuration-repository\">User guide</a>中详细了解。"
|
|
5320
|
-
|
|
5321
5318
|
msgid ""
|
|
5322
5319
|
"Find out more in the\n"
|
|
5323
5320
|
" <a c8y-guide-href=\"users-guide/device-management/#simulator\">User guide`KEEP_ORIGINAL`</a>."
|
|
@@ -6175,6 +6172,12 @@ msgstr "负重模式"
|
|
|
6175
6172
|
msgid "Heavy mode GPS"
|
|
6176
6173
|
msgstr "重型 GPS"
|
|
6177
6174
|
|
|
6175
|
+
msgid "Height for setting the right proportion for the logo: height / width x 100"
|
|
6176
|
+
msgstr "用于设置徽标正确比例的高度:高度/宽度 x 100"
|
|
6177
|
+
|
|
6178
|
+
msgid "Height for setting the right proportion for the navigator logo: height / width x 100 - should be 230px wide"
|
|
6179
|
+
msgstr "用于为导航器徽标设置正确比例的高度:高度/宽度 x 100 - 应为 230 像素宽"
|
|
6180
|
+
|
|
6178
6181
|
msgid "Hello"
|
|
6179
6182
|
msgstr "您好"
|
|
6180
6183
|
|
|
@@ -6290,12 +6293,18 @@ msgstr "IMPACT 提供商设置"
|
|
|
6290
6293
|
msgid "IMSI"
|
|
6291
6294
|
msgstr "IMSI"
|
|
6292
6295
|
|
|
6296
|
+
msgid "INCORRECT"
|
|
6297
|
+
msgstr "不正确"
|
|
6298
|
+
|
|
6293
6299
|
msgid "INTEGER"
|
|
6294
6300
|
msgstr "整数"
|
|
6295
6301
|
|
|
6296
6302
|
msgid "INVENTORY"
|
|
6297
6303
|
msgstr "库存"
|
|
6298
6304
|
|
|
6305
|
+
msgid "IN_PROGRESS"
|
|
6306
|
+
msgstr "进行_中"
|
|
6307
|
+
|
|
6299
6308
|
msgid "IP"
|
|
6300
6309
|
msgstr "IP"
|
|
6301
6310
|
|
|
@@ -7147,6 +7156,9 @@ msgstr "主要"
|
|
|
7147
7156
|
msgid "MANAGED_OBJECT"
|
|
7148
7157
|
msgstr "MANAGED_OBJECT"
|
|
7149
7158
|
|
|
7159
|
+
msgid "MARKET"
|
|
7160
|
+
msgstr "市场"
|
|
7161
|
+
|
|
7150
7162
|
msgid "MCC"
|
|
7151
7163
|
msgstr "MCC"
|
|
7152
7164
|
|
|
@@ -8664,13 +8676,6 @@ msgstr "仅分钟或小时的完整值有效。"
|
|
|
8664
8676
|
msgid "Open"
|
|
8665
8677
|
msgstr "打开"
|
|
8666
8678
|
|
|
8667
|
-
msgid ""
|
|
8668
|
-
"Open <strong>Google Play Store</strong> or <strong>Apple App Store</strong> on your\n"
|
|
8669
|
-
" smartphone."
|
|
8670
|
-
msgstr ""
|
|
8671
|
-
"打开您智能手机上的 <strong>Google Play Store</strong>\n"
|
|
8672
|
-
" 或 <strong>Apple App Store</strong>。"
|
|
8673
|
-
|
|
8674
8679
|
msgid "Open branded apps preview"
|
|
8675
8680
|
msgstr "打开品牌应用程序预览"
|
|
8676
8681
|
|
|
@@ -8876,6 +8881,12 @@ msgstr "待处理"
|
|
|
8876
8881
|
msgid "PENDING ACCEPTANCE"
|
|
8877
8882
|
msgstr "等待接受"
|
|
8878
8883
|
|
|
8884
|
+
msgid "PENDING_ACCEPTANCE"
|
|
8885
|
+
msgstr "待处理_接受"
|
|
8886
|
+
|
|
8887
|
+
msgid "PRIVATE"
|
|
8888
|
+
msgstr "私人"
|
|
8889
|
+
|
|
8879
8890
|
msgid "PURGED"
|
|
8880
8891
|
msgstr "已清除"
|
|
8881
8892
|
|
|
@@ -9200,16 +9211,6 @@ msgstr "首选登录模式"
|
|
|
9200
9211
|
msgid "Presets"
|
|
9201
9212
|
msgstr "预设"
|
|
9202
9213
|
|
|
9203
|
-
msgid ""
|
|
9204
|
-
"Press <strong>Manual registration</strong> and enter the following data in your\n"
|
|
9205
|
-
" smartphone."
|
|
9206
|
-
msgstr ""
|
|
9207
|
-
"按<strong>手动注册</strong>,\n"
|
|
9208
|
-
"然后在您的智能手机中输入以下数据。"
|
|
9209
|
-
|
|
9210
|
-
msgid "Press <strong>Scan QR code</strong> and use the code below."
|
|
9211
|
-
msgstr "按<strong>扫描二维码</strong>并使用下面的代码。"
|
|
9212
|
-
|
|
9213
9214
|
msgid "Preview"
|
|
9214
9215
|
msgstr "预览"
|
|
9215
9216
|
|
|
@@ -9450,6 +9451,9 @@ msgstr "重新激活"
|
|
|
9450
9451
|
msgid "READ"
|
|
9451
9452
|
msgstr "读取"
|
|
9452
9453
|
|
|
9454
|
+
msgid "REMOVED"
|
|
9455
|
+
msgstr "已删除"
|
|
9456
|
+
|
|
9453
9457
|
msgid "REPLACED"
|
|
9454
9458
|
msgstr "已更换"
|
|
9455
9459
|
|
|
@@ -10215,6 +10219,9 @@ msgstr "成功"
|
|
|
10215
10219
|
msgid "SUPPORT"
|
|
10216
10220
|
msgstr "支持"
|
|
10217
10221
|
|
|
10222
|
+
msgid "SUSPENDED"
|
|
10223
|
+
msgstr "已暂停"
|
|
10224
|
+
|
|
10218
10225
|
msgid "SUSPENDED`tenant`"
|
|
10219
10226
|
msgstr "已暂停"
|
|
10220
10227
|
|
|
@@ -10302,6 +10309,9 @@ msgstr "ScanWLAN"
|
|
|
10302
10309
|
msgid "Schedule device restart every day at 1am"
|
|
10303
10310
|
msgstr "安排设备在每天凌晨 1 点重新启动"
|
|
10304
10311
|
|
|
10312
|
+
msgid "Schedule export"
|
|
10313
|
+
msgstr "计划导出"
|
|
10314
|
+
|
|
10305
10315
|
msgid "Schedule interval"
|
|
10306
10316
|
msgstr "安排间隔时间"
|
|
10307
10317
|
|
|
@@ -12133,9 +12143,6 @@ msgstr "选项卡和布局"
|
|
|
12133
12143
|
msgid "Table of device properties, e.g. name, type or notes."
|
|
12134
12144
|
msgstr "设备属性表,例如名称、类型或备注。"
|
|
12135
12145
|
|
|
12136
|
-
msgid "Take your phone and click <strong>Next</strong>."
|
|
12137
|
-
msgstr "拿起手机并单击<strong>下一步</strong>。"
|
|
12138
|
-
|
|
12139
12146
|
msgid "Target"
|
|
12140
12147
|
msgstr "目标"
|
|
12141
12148
|
|
|
@@ -12666,6 +12673,9 @@ msgstr "这是令牌中字段的名称,其值将用于选择以下具有匹配
|
|
|
12666
12673
|
msgid "This less than attribute defines a threshold low value."
|
|
12667
12674
|
msgstr "此小于属性定义阈值的低值。"
|
|
12668
12675
|
|
|
12676
|
+
msgid "This login mode was already set by another administrator. Refresh the page to update the data."
|
|
12677
|
+
msgstr "此登录模式已由另一位管理员设置。请刷新页面以更新数据。"
|
|
12678
|
+
|
|
12669
12679
|
msgid "This node id is already in use."
|
|
12670
12680
|
msgstr "此节点 ID 已被占用。"
|
|
12671
12681
|
|
|
@@ -12974,6 +12984,9 @@ msgstr "Twitter 的小组件 ID"
|
|
|
12974
12984
|
msgid "Two-factor authentication"
|
|
12975
12985
|
msgstr "双重身份验证"
|
|
12976
12986
|
|
|
12987
|
+
msgid "Two-factor authentication has been turned on for this account. Provide your phone number above to save it in your user profile and start receiving verification codes via SMS."
|
|
12988
|
+
msgstr "此帐户已打开双重身份验证。在上方提供您的电话号码,以将其保存在用户配置文件中,并开始通过 SMS 接收验证代码。"
|
|
12989
|
+
|
|
12977
12990
|
msgid "Two-factor authentication token expired."
|
|
12978
12991
|
msgstr "双重身份验证令牌已过期。"
|
|
12979
12992
|
|
|
@@ -13604,6 +13617,9 @@ msgstr "验证代码"
|
|
|
13604
13617
|
msgid "Verification code SMS resent."
|
|
13605
13618
|
msgstr "已重新发送验证代码 SMS。"
|
|
13606
13619
|
|
|
13620
|
+
msgid "Verification code SMS sent."
|
|
13621
|
+
msgstr "验证代码 SMS 已发送。"
|
|
13622
|
+
|
|
13607
13623
|
msgid "Verification token SMS template"
|
|
13608
13624
|
msgstr "验证令牌 SMS 模板"
|
|
13609
13625
|
|
|
@@ -13658,6 +13674,9 @@ msgstr "语音使用情况(秒)"
|
|
|
13658
13674
|
msgid "WAITING FOR CONNECTION"
|
|
13659
13675
|
msgstr "正在等待连接"
|
|
13660
13676
|
|
|
13677
|
+
msgid "WAITING_FOR_CONNECTION"
|
|
13678
|
+
msgstr "正在_等待_连接"
|
|
13679
|
+
|
|
13661
13680
|
msgid "WAN"
|
|
13662
13681
|
msgstr "WAN"
|
|
13663
13682
|
|
|
@@ -13718,6 +13737,13 @@ msgstr "警告:已选择具有不同单位的测量。"
|
|
|
13718
13737
|
msgid "Warnings"
|
|
13719
13738
|
msgstr "警告"
|
|
13720
13739
|
|
|
13740
|
+
msgid ""
|
|
13741
|
+
"We don't collect any personal data.\n"
|
|
13742
|
+
" The only data we retrieve from your phone is sensor data and anonymized app usage data."
|
|
13743
|
+
msgstr ""
|
|
13744
|
+
"我们不收集任何个人数据。\n"
|
|
13745
|
+
" 我们从您的手机中检索的唯一数据是传感器数据和匿名的应用使用情况数据。"
|
|
13746
|
+
|
|
13721
13747
|
msgid "We will now log you out and redirect to your new domain {{vm.redirectUrl}} in <b>1</b> second."
|
|
13722
13748
|
msgid_plural "We will now log you out and redirect to your new domain {{vm.redirectUrl}} in <b>{{$count}}</b> seconds."
|
|
13723
13749
|
msgstr[0] "我们现将您注销并在 <b>{{$count}}</b> 秒内重定向到您的新域 {{vm.redirectUrl}}。"
|
|
@@ -14034,7 +14060,7 @@ msgid ""
|
|
|
14034
14060
|
" Do you want to proceed?"
|
|
14035
14061
|
msgstr ""
|
|
14036
14062
|
"您将要从所有 \"{{ deviceType }}\" 类型的设备中删除面板 \"{{ dashboardName }}\"。\n"
|
|
14037
|
-
"是否要继续?"
|
|
14063
|
+
". 是否要继续?"
|
|
14038
14064
|
|
|
14039
14065
|
msgid "You are about to delete the dashboard \"{{ dashboardName }}\". Do you want to proceed?"
|
|
14040
14066
|
msgstr "您将要删除面板 \"{{ dashboardName }}\"。是否要继续?"
|
|
@@ -14072,6 +14098,9 @@ msgstr "您将要删除用户 \"{{userName}}\"。是否要继续?"
|
|
|
14072
14098
|
msgid "You are about to delete your IMPACT credentials. Deleting credentials will break connection to IMPACT instance. Do you want to proceed?"
|
|
14073
14099
|
msgstr "您将要删除 IMPACT 证书。删除证书将中断与 IMPACT 实例的连接。是否要继续?"
|
|
14074
14100
|
|
|
14101
|
+
msgid "You are about to download file \"{{ fileName }}\". Do you want to proceed?"
|
|
14102
|
+
msgstr "您即将下载文件 \"{{ fileName }}\"。是否要继续?"
|
|
14103
|
+
|
|
14075
14104
|
msgid "You are about to edit the global role. Enter \"{{ ctrl.randomString }}\" to confirm:"
|
|
14076
14105
|
msgstr "您将要编辑全局角色。输入 \"{{ ctrl.randomString }}\" 以确认:"
|
|
14077
14106
|
|
|
@@ -14166,6 +14195,12 @@ msgstr "您没有启用/禁用此所有者用户的权限。"
|
|
|
14166
14195
|
msgid "You don't have permission to execute this operation."
|
|
14167
14196
|
msgstr "您没有执行此操作的权限。"
|
|
14168
14197
|
|
|
14198
|
+
msgid "You don't have the permission required to manage application access for {{ user.userName }}."
|
|
14199
|
+
msgstr "您没有管理 {{ user.userName }} 的应用程序访问权限所需的权限。"
|
|
14200
|
+
|
|
14201
|
+
msgid "You don't have the permission required to manage inventory roles for {{ vm.user }}."
|
|
14202
|
+
msgstr "您没有管理 {{ vm.user }} 的库存角色所需的权限。"
|
|
14203
|
+
|
|
14169
14204
|
msgid "You have to define at least 1 instance."
|
|
14170
14205
|
msgstr "您必须定义至少 1 个实例。"
|
|
14171
14206
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c8y/ngx-components",
|
|
3
|
-
"version": "1006.6.
|
|
3
|
+
"version": "1006.6.40",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Cumulocity",
|
|
6
6
|
"description": "Angular modules for Cumulocity IoT applications",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"rxjs": "~6.4.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@c8y/client": "1006.6.
|
|
26
|
+
"@c8y/client": "1006.6.40",
|
|
27
27
|
"@ngx-translate/core": "12.1.1",
|
|
28
28
|
"@ngx-translate/http-loader": "4.0.0",
|
|
29
29
|
"libphonenumber-js": "1.7.14",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"RepositoryModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CoreModule","line":14,"character":12},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":14,"character":24}],"exports":[],"entryComponents":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"ɵb"},{"provide":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"HOOK_NAVIGATOR_NODES","line":21,"character":15},"useClass":{"__symbolic":"reference","name":"ɵd"},"multi":true},{"provide":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"HOOK_ONCE_ROUTE","line":26,"character":15},"useValue":[{"path":"configuration-new","component":{"__symbolic":"reference","name":"ɵa"}}],"multi":true}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-configuration-list","template":"<c8y-title>\n <span translate>Configuration snapshots repository</span> \n <small *ngIf=\"(configurations$ | async)?.paging.totalPages === 1 && !filterTerm\"\n >{{ (configurations$ | async).data.length }} <span translate>snapshots</span></small\n >\n <small\n *ngIf=\"(configurations$ | async)?.paging.totalPages > 1 && !filterTerm\"\n [tooltip]=\"'More data available. Scroll to the bottom of the list to load it.' | translate\"\n container=\"body\"\n >{{ (configurations$ | async).paging.pageSize }}+ <span translate>snapshots</span></small\n >\n <small *ngIf=\"filterTerm\"\n ><span translate>Search results for</span> \"{{ this.filterTerm }}\"</small\n >\n</c8y-title>\n\n<c8y-action-bar-item itemClass=\"navbar-form\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Filter…' | translate }}\"\n type=\"text\"\n [value]=\"filterTerm\"\n (keyup)=\"filterChange$.next($event)\"\n />\n <span class=\"input-group-btn\">\n <button class=\"btn btn-clean\" (click)=\"filterTerm = ''; setPipe('')\">\n <i [c8yIcon]=\"filterTerm.length === 0 ? 'filter' : 'close'\"></i>\n </button>\n </span>\n </div>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button class=\"btn btn-link\" (click)=\"add()\">\n <i c8yIcon=\"plus-square\"></i> {{ 'Add configuration snapshot' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<div\n class=\"c8y-empty-state text-center\"\n *ngIf=\"!filterTerm && (configurations$ | async)?.data.length === 0\"\n>\n <h1 c8yIcon=\"gears\"></h1>\n <h3 translate>There are no configuration snapshots defined</h3>\n <p translate>Add a configuration snapshot first.</p>\n <div>\n <button (click)=\"add()\" class=\"btn btn-primary\" translate>\n Add configuration snapshot\n </button>\n </div>\n <p c8y-guide-docs>\n <small translate\n >Find out more in the\n <a c8y-guide-href=\"users-guide/device-management/#configuration-repository\"\n >User guide`KEEP_ORIGINAL`</a\n >.</small\n >\n </p>\n</div>\n\n<ng-template #notFound>\n <c8y-li class=\"p-8 text-center\">\n <p>\n <span translate>No more entries found for filter:</span> <strong>{{\n filterTerm\n }}</strong>\n </p>\n <button class=\"btn btn-primary btn-xs m-t-8\" translate (click)=\"filterTerm = ''; setPipe('')\">\n Reset filter\n </button>\n </c8y-li>\n</ng-template>\n<div class=\"p-b-32\">\n <c8y-list-group>\n <c8y-li\n *c8yFor=\"\n let configuration of configurations$;\n pipe: filterPipe;\n notFound: this.filterTerm ? notFound : undefined\n \"\n >\n <c8y-li-icon icon=\"gears\"></c8y-li-icon>\n <div class=\"row flex-row\">\n <div class=\"col-xs-3\">\n <c8y-highlight\n [text]=\"configuration.name || '-'\"\n elementClass=\"text-info\"\n [pattern]=\"filterTerm\"\n ></c8y-highlight>\n </div>\n <div class=\"col-xs-3\">\n <span class=\"text-muted text-truncate\" [title]=\"configuration.description\">{{\n configuration.description\n }}</span>\n </div>\n <div class=\"col-xs-3\">\n <small translate class=\"text-muted text-uppercase\">Device type:</small> \n {{ configuration.deviceType || '-' }}\n </div>\n <div class=\"col-xs-3 text-right\">\n <span class=\"label label-primary\" *ngIf=\"configuration.configurationType\">\n <c8y-highlight\n [text]=\"configuration.configurationType\"\n elementClass=\"text-info\"\n [pattern]=\"filterTerm\"\n ></c8y-highlight>\n </span>\n </div>\n </div>\n <c8y-li-action (click)=\"edit(configuration)\" icon=\"pencil\">\n Edit\n </c8y-li-action>\n <c8y-li-action (click)=\"delete(configuration)\" icon=\"trash-o\">\n Delete\n </c8y-li-action>\n </c8y-li>\n </c8y-list-group>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":24,"character":19},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":26,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"edit":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"setPipe":[{"__symbolic":"method"}],"filterContainString":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":7,"character":23},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryBinaryService","line":8,"character":29}]}],"listConfigurations":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"createEntry":[{"__symbolic":"method"}],"updateEntry":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"c8y-configuration-new-modal","template":"<div class=\"modal-header bg-primary text-white text-center\">\n <h1 c8yIcon=\"cogs\" style=\"font-size: 55px;\"></h1>\n <h4 class=\"p-t-16 text-uppercase\" translate *ngIf=\"mo.id\">Update configuration</h4>\n <h4 class=\"p-t-16 text-uppercase\" translate *ngIf=\"!mo.id\">Add configuration</h4>\n</div>\n\n<form #configurationForm=\"ngForm\" (ngSubmit)=\"configurationForm.form.valid && save()\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label translate>Name</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"e.g. hosts\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n [(ngModel)]=\"versionOrName\"\n name=\"versionOrName\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Device type</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"e.g. Posix\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"deviceType\"\n name=\"deviceType\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"e.g. Host configuration Posix\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"description\"\n name=\"description\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Configuration type</label>\n <c8y-typeahead\n [(selected)]=\"selected\"\n placeholder=\"e.g. ssh\"\n (onSearch)=\"setPipe($event)\"\n displayProperty=\"configurationType\"\n >\n <c8y-li\n *c8yFor=\"let config of configs; pipe: filterPipe; notFound: notFoundTemplate\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selected = config; setPipe('')\"\n [active]=\"selected === config\"\n >\n <c8y-highlight\n [text]=\"config.configurationType || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"pattern.length > 0\">\n <span translate>No match found, add new`configuration`?</span>\n <button type=\"button\" class=\"btn btn-primary btn-xs m-l-16\" translate>\n Create new`configuration`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-drop-area\n (dropped)=\"uploadFile($event, configurationForm)\"\n [loadingMessage]=\"'Importing, please wait.' | translate\"\n [title]=\"'Add a configuration file' | translate\"\n [loading]=\"isLoading\"\n >\n </c8y-drop-area>\n </div>\n\n <div class=\"modal-footer\">\n <button (click)=\"cancel()\" type=\"button\" class=\"btn btn-default\" [disabled]=\"isLoading\">\n <span translate>Cancel</span>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"!configurationForm.valid || configurationForm.pristine || isLoading\"\n >\n <span translate *ngIf=\"!mo.id\">Add configuration</span>\n <span translate *ngIf=\"mo.id\">Update configuration</span>\n </button>\n </div>\n</form>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":41,"character":24},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":42,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"setPipe":[{"__symbolic":"method"}],"uploadFile":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"OptionsService","line":7,"character":38}]}],"get":[{"__symbolic":"method"}]}}},"origins":{"RepositoryModule":"./repository.module","ɵa":"./configuration/configuration-list.component","ɵb":"./repository.service","ɵc":"./configuration/configuration-new-modal.component","ɵd":"./repository-navigation-factory"},"importAs":"@c8y/ngx-components/repository"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"RepositoryModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"CoreModule","line":14,"character":12},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":14,"character":24}],"exports":[],"entryComponents":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"ɵb"},{"provide":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"HOOK_NAVIGATOR_NODES","line":21,"character":15},"useClass":{"__symbolic":"reference","name":"ɵd"},"multi":true},{"provide":{"__symbolic":"reference","module":"@c8y/ngx-components","name":"HOOK_ONCE_ROUTE","line":26,"character":15},"useValue":[{"path":"configuration-new","component":{"__symbolic":"reference","name":"ɵa"}}],"multi":true}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-configuration-list","template":"<c8y-title>\n <span translate>Configuration snapshots repository</span> \n <small *ngIf=\"(configurations$ | async)?.paging.totalPages === 1 && !filterTerm\"\n >{{ (configurations$ | async).data.length }} <span translate>snapshots</span></small\n >\n <small\n *ngIf=\"(configurations$ | async)?.paging.totalPages > 1 && !filterTerm\"\n [tooltip]=\"'More data available. Scroll to the bottom of the list to load it.' | translate\"\n container=\"body\"\n >{{ (configurations$ | async).paging.pageSize }}+ <span translate>snapshots</span></small\n >\n <small *ngIf=\"filterTerm\"\n ><span translate>Search results for</span> \"{{ this.filterTerm }}\"</small\n >\n</c8y-title>\n\n<c8y-action-bar-item itemClass=\"navbar-form\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Filter…' | translate }}\"\n type=\"text\"\n [value]=\"filterTerm\"\n (keyup)=\"filterChange$.next($event)\"\n />\n <span class=\"input-group-btn\">\n <button class=\"btn btn-clean\" (click)=\"filterTerm = ''; setPipe('')\">\n <i [c8yIcon]=\"filterTerm.length === 0 ? 'filter' : 'close'\"></i>\n </button>\n </span>\n </div>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button class=\"btn btn-link\" (click)=\"add()\">\n <i c8yIcon=\"plus-square\"></i> {{ 'Add configuration snapshot' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<div\n class=\"c8y-empty-state text-center\"\n *ngIf=\"!filterTerm && (configurations$ | async)?.data.length === 0\"\n>\n <h1 c8yIcon=\"gears\"></h1>\n <h3 translate>There are no configuration snapshots defined</h3>\n <p translate>Add a configuration snapshot first.</p>\n <div>\n <button (click)=\"add()\" class=\"btn btn-primary\" translate>\n Add configuration snapshot\n </button>\n </div>\n <p c8y-guide-docs>\n <small forceHtmlTranslate ngNonBindable\n >Find out more in the\n <a c8y-guide-href=\"users-guide/device-management/#configuration-repository\"\n >User guide`KEEP_ORIGINAL`</a\n >.</small\n >\n </p>\n</div>\n\n<ng-template #notFound>\n <c8y-li class=\"p-8 text-center\">\n <p>\n <span translate>No more entries found for filter:</span> <strong>{{\n filterTerm\n }}</strong>\n </p>\n <button class=\"btn btn-primary btn-xs m-t-8\" translate (click)=\"filterTerm = ''; setPipe('')\">\n Reset filter\n </button>\n </c8y-li>\n</ng-template>\n<div class=\"p-b-32\">\n <c8y-list-group>\n <c8y-li\n *c8yFor=\"\n let configuration of configurations$;\n pipe: filterPipe;\n notFound: this.filterTerm ? notFound : undefined\n \"\n >\n <c8y-li-icon icon=\"gears\"></c8y-li-icon>\n <div class=\"row flex-row\">\n <div class=\"col-xs-3\">\n <c8y-highlight\n [text]=\"configuration.name || '-'\"\n elementClass=\"text-info\"\n [pattern]=\"filterTerm\"\n ></c8y-highlight>\n </div>\n <div class=\"col-xs-3\">\n <span class=\"text-muted text-truncate\" [title]=\"configuration.description\">{{\n configuration.description\n }}</span>\n </div>\n <div class=\"col-xs-3\">\n <small translate class=\"text-muted text-uppercase\">Device type:</small> \n {{ configuration.deviceType || '-' }}\n </div>\n <div class=\"col-xs-3 text-right\">\n <span class=\"label label-primary\" *ngIf=\"configuration.configurationType\">\n <c8y-highlight\n [text]=\"configuration.configurationType\"\n elementClass=\"text-info\"\n [pattern]=\"filterTerm\"\n ></c8y-highlight>\n </span>\n </div>\n </div>\n <c8y-li-action (click)=\"edit(configuration)\" icon=\"pencil\">\n Edit\n </c8y-li-action>\n <c8y-li-action (click)=\"delete(configuration)\" icon=\"trash-o\">\n Delete\n </c8y-li-action>\n </c8y-li>\n </c8y-list-group>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":24,"character":19},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":26,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"edit":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"setPipe":[{"__symbolic":"method"}],"filterContainString":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":7,"character":23},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryBinaryService","line":8,"character":29}]}],"listConfigurations":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"createEntry":[{"__symbolic":"method"}],"updateEntry":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"c8y-configuration-new-modal","template":"<div class=\"modal-header bg-primary text-white text-center\">\n <h1 c8yIcon=\"cogs\" style=\"font-size: 55px;\"></h1>\n <h4 class=\"p-t-16 text-uppercase\" translate *ngIf=\"mo.id\">Update configuration</h4>\n <h4 class=\"p-t-16 text-uppercase\" translate *ngIf=\"!mo.id\">Add configuration</h4>\n</div>\n\n<form #configurationForm=\"ngForm\" (ngSubmit)=\"configurationForm.form.valid && save()\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label translate>Name</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"e.g. hosts\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n [(ngModel)]=\"versionOrName\"\n name=\"versionOrName\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Device type</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"e.g. Posix\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"deviceType\"\n name=\"deviceType\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"e.g. Host configuration Posix\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"description\"\n name=\"description\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Configuration type</label>\n <c8y-typeahead\n [(selected)]=\"selected\"\n placeholder=\"e.g. ssh\"\n (onSearch)=\"setPipe($event)\"\n displayProperty=\"configurationType\"\n >\n <c8y-li\n *c8yFor=\"let config of configs; pipe: filterPipe; notFound: notFoundTemplate\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selected = config; setPipe('')\"\n [active]=\"selected === config\"\n >\n <c8y-highlight\n [text]=\"config.configurationType || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"pattern.length > 0\">\n <span translate>No match found, add new`configuration`?</span>\n <button type=\"button\" class=\"btn btn-primary btn-xs m-l-16\" translate>\n Create new`configuration`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-drop-area\n (dropped)=\"uploadFile($event, configurationForm)\"\n [loadingMessage]=\"'Importing, please wait.' | translate\"\n [title]=\"'Add a configuration file' | translate\"\n [loading]=\"isLoading\"\n >\n </c8y-drop-area>\n </div>\n\n <div class=\"modal-footer\">\n <button (click)=\"cancel()\" type=\"button\" class=\"btn btn-default\" [disabled]=\"isLoading\">\n <span translate>Cancel</span>\n </button>\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"!configurationForm.valid || configurationForm.pristine || isLoading\"\n >\n <span translate *ngIf=\"!mo.id\">Add configuration</span>\n <span translate *ngIf=\"mo.id\">Update configuration</span>\n </button>\n </div>\n</form>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":41,"character":24},{"__symbolic":"reference","module":"@c8y/ngx-components","name":"AlertService","line":42,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"setPipe":[{"__symbolic":"method"}],"uploadFile":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/ngx-components","name":"OptionsService","line":7,"character":38}]}],"get":[{"__symbolic":"method"}]}}},"origins":{"RepositoryModule":"./repository.module","ɵa":"./configuration/configuration-list.component","ɵb":"./repository.service","ɵc":"./configuration/configuration-new-modal.component","ɵd":"./repository-navigation-factory"},"importAs":"@c8y/ngx-components/repository"}
|