@contena/meteor-component-library 5.5.0 → 5.6.0

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 (109) hide show
  1. package/NOTICE +24 -3
  2. package/dist/{useRepository-c69e2597.js → Criteria-86968a69.js} +111 -258
  3. package/dist/{useRepository-dfff5b4a.mjs → Criteria-dda62b10.mjs} +114 -261
  4. package/dist/{channel-eb1529aa.mjs → channel-c0a7f238.mjs} +65 -25
  5. package/dist/{channel-782f8c3b.js → channel-c7fd2abb.js} +81 -41
  6. package/dist/common/MtBaseField.js +1 -1
  7. package/dist/common/MtCard.d.ts +5 -4
  8. package/dist/common/MtCard.js +17 -11
  9. package/dist/common/MtCheckbox.js +1 -1
  10. package/dist/common/MtColorpicker.js +1 -1
  11. package/dist/common/MtContextButton.js +1 -1
  12. package/dist/common/MtContextMenuItem.js +1 -1
  13. package/dist/common/MtDataTable.d.ts +20 -18
  14. package/dist/common/MtDataTable.js +137 -130
  15. package/dist/common/MtDataTableFilter.js +4 -4
  16. package/dist/common/MtDataTableSettings.js +1 -1
  17. package/dist/common/MtEntityDataTable.js +4 -3
  18. package/dist/common/MtEntitySelect.js +4 -3
  19. package/dist/common/MtGrantPermissionServiceBanner.d.ts +2 -0
  20. package/dist/common/MtGrantPermissionServiceBanner.js +155 -0
  21. package/dist/common/MtModal.js +2 -2
  22. package/dist/common/MtNumberField.js +1 -1
  23. package/dist/common/MtPagination.js +2 -2
  24. package/dist/common/MtPasswordField.js +1 -1
  25. package/dist/common/MtPopover.js +1 -1
  26. package/dist/common/MtPopoverItem.js +1 -1
  27. package/dist/common/MtPopoverItemResult.js +1 -1
  28. package/dist/common/MtSegmentedControl.js +1 -1
  29. package/dist/common/MtSelect.js +1 -1
  30. package/dist/common/MtSelectBase.js +1 -1
  31. package/dist/common/MtSlider.js +1 -1
  32. package/dist/common/MtTabs.js +1 -1
  33. package/dist/common/MtTextEditor.d.ts +1 -1
  34. package/dist/common/MtTextEditor.js +1 -1
  35. package/dist/common/MtTextEditorToolbar.js +1 -1
  36. package/dist/common/MtTextEditorToolbarButtonColor.js +1 -1
  37. package/dist/common/MtTextEditorToolbarButtonLink.js +1 -1
  38. package/dist/common/MtTextEditorToolbarButtonTable.js +1 -1
  39. package/dist/common/MtTextField.js +1 -1
  40. package/dist/common/MtThemeSelect.js +2 -2
  41. package/dist/common/MtUnitField.js +1 -1
  42. package/dist/common/index.d.ts +2 -1
  43. package/dist/common/index.js +10 -5
  44. package/dist/contena-logo.svg +6 -0
  45. package/dist/esm/MtBaseField.js +1 -1
  46. package/dist/esm/MtCard.d.ts +5 -4
  47. package/dist/esm/MtCard.js +17 -11
  48. package/dist/esm/MtCheckbox.js +1 -1
  49. package/dist/esm/MtColorpicker.js +1 -1
  50. package/dist/esm/MtContextButton.js +1 -1
  51. package/dist/esm/MtContextMenuItem.js +1 -1
  52. package/dist/esm/MtDataTable.d.ts +20 -18
  53. package/dist/esm/MtDataTable.js +138 -131
  54. package/dist/esm/MtDataTableFilter.js +4 -4
  55. package/dist/esm/MtDataTableSettings.js +1 -1
  56. package/dist/esm/MtEntityDataTable.js +4 -3
  57. package/dist/esm/MtEntitySelect.js +4 -3
  58. package/dist/esm/MtGrantPermissionServiceBanner.d.ts +2 -0
  59. package/dist/esm/MtGrantPermissionServiceBanner.js +156 -0
  60. package/dist/esm/MtModal.js +2 -2
  61. package/dist/esm/MtNumberField.js +1 -1
  62. package/dist/esm/MtPagination.js +2 -2
  63. package/dist/esm/MtPasswordField.js +1 -1
  64. package/dist/esm/MtPopover.js +1 -1
  65. package/dist/esm/MtPopoverItem.js +1 -1
  66. package/dist/esm/MtPopoverItemResult.js +1 -1
  67. package/dist/esm/MtSegmentedControl.js +1 -1
  68. package/dist/esm/MtSelect.js +1 -1
  69. package/dist/esm/MtSelectBase.js +1 -1
  70. package/dist/esm/MtSlider.js +1 -1
  71. package/dist/esm/MtTabs.js +1 -1
  72. package/dist/esm/MtTextEditor.d.ts +1 -1
  73. package/dist/esm/MtTextEditor.js +1 -1
  74. package/dist/esm/MtTextEditorToolbar.js +1 -1
  75. package/dist/esm/MtTextEditorToolbarButtonColor.js +1 -1
  76. package/dist/esm/MtTextEditorToolbarButtonLink.js +1 -1
  77. package/dist/esm/MtTextEditorToolbarButtonTable.js +1 -1
  78. package/dist/esm/MtTextField.js +1 -1
  79. package/dist/esm/MtThemeSelect.js +2 -2
  80. package/dist/esm/MtUnitField.js +1 -1
  81. package/dist/esm/index.d.ts +2 -1
  82. package/dist/esm/index.js +54 -49
  83. package/dist/favicon.ico +0 -0
  84. package/dist/index-26e65048.mjs +198 -0
  85. package/dist/{index-f60dc18c.js → index-2cb63874.js} +4 -195
  86. package/dist/{index-8ddee025.mjs → index-ddce4e37.mjs} +4 -195
  87. package/dist/index-f8d7f486.js +197 -0
  88. package/dist/index.css +2 -2
  89. package/dist/{mt-base-field-32e14998.js → mt-base-field-b1264b8e.js} +1 -0
  90. package/dist/{mt-base-field-3b5538c6.mjs → mt-base-field-ddfd1f81.mjs} +2 -1
  91. package/dist/mt-card.css +37 -37
  92. package/dist/mt-data-table-filter.css +12 -12
  93. package/dist/mt-data-table.css +0 -10
  94. package/dist/{mt-entity-data-table.vue_vue_type_style_index_0_lang-40d1a210.mjs → mt-entity-data-table.vue_vue_type_style_index_0_lang-20da6e77.mjs} +3 -2
  95. package/dist/{mt-entity-data-table.vue_vue_type_style_index_0_lang-5acc37b3.js → mt-entity-data-table.vue_vue_type_style_index_0_lang-84494335.js} +6 -5
  96. package/dist/{mt-entity-select.vue_vue_type_script_setup_true_lang-50315e8d.js → mt-entity-select.vue_vue_type_script_setup_true_lang-2cdffea0.js} +5 -4
  97. package/dist/{mt-entity-select.vue_vue_type_script_setup_true_lang-3733f9fc.mjs → mt-entity-select.vue_vue_type_script_setup_true_lang-f3c35d00.mjs} +2 -1
  98. package/dist/mt-grant-permission-service-banner.css +88 -0
  99. package/dist/mt-modal.css +31 -29
  100. package/dist/mt-pagination.css +15 -15
  101. package/dist/mt-popover-item.css +0 -5
  102. package/dist/{mt-theme-select.vue_vue_type_script_setup_true_lang-9e44465e.js → mt-theme-select.vue_vue_type_script_setup_true_lang-42a2e3c8.js} +6 -5
  103. package/dist/{mt-theme-select.vue_vue_type_script_setup_true_lang-cc325e63.mjs → mt-theme-select.vue_vue_type_script_setup_true_lang-6ecf0bcb.mjs} +6 -5
  104. package/dist/{repository-30409275.js → repository-9c56cf7b.js} +2 -3
  105. package/dist/{repository-fd60b763.mjs → repository-e7884115.mjs} +2 -3
  106. package/dist/useRepository-28dfccf5.mjs +149 -0
  107. package/dist/useRepository-6804d3b6.js +148 -0
  108. package/package.json +3 -4
  109. package/THIRD-PARTY-LICENSES/UPSTREAM-METEOR-MIT.txt +0 -21
@@ -27,21 +27,21 @@ const MtDataTableResetFilterButton = require("./MtDataTableResetFilterButton.js"
27
27
  const MtDataTableFilter = require("./MtDataTableFilter.js");
28
28
  const MtInset = require("./MtInset.js");
29
29
  const vueI18n = require("vue-i18n");
30
+ const MtBaseField = require("../mt-base-field-b1264b8e.js");
30
31
  const index = require("../index-efdf1622.js");
31
32
  const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
32
33
  require("./MtLoader.js");
33
34
  require("./MtText.js");
34
35
  require("../useFutureFlags-bd0f8e37.js");
35
- require("../mt-base-field-32e14998.js");
36
+ require("./MtFieldError.js");
37
+ require("../id-8e80f112.js");
36
38
  require("./MtInheritanceSwitch.js");
37
39
  require("./MtTooltip.js");
38
40
  require("../floating-ui.vue-48d5c774.js");
39
41
  require("../floating-ui.dom-fe395b67.js");
40
42
  require("../useIsInsideTooltip-f4674e27.js");
41
43
  require("./MtFieldCopyable.js");
42
- require("../id-8e80f112.js");
43
44
  require("./MtHelpText.js");
44
- require("./MtFieldError.js");
45
45
  require("../mt-switch.vue_vue_type_style_index_0_lang-c202621e.js");
46
46
  require("./MtFieldLabel.js");
47
47
  require("./MtSmoothReflow.js");
@@ -551,7 +551,7 @@ const _sfc_main = vue.defineComponent({
551
551
  "update:appliedFilters",
552
552
  "context-select"
553
553
  ],
554
- setup(props, { emit }) {
554
+ setup(props, { emit, slots }) {
555
555
  const { t } = vueI18n.useI18n({
556
556
  messages: {
557
557
  en: {
@@ -627,6 +627,7 @@ const _sfc_main = vue.defineComponent({
627
627
  const filterChildViews = vue.computed(() => {
628
628
  return props.filters.map(({ id, label }) => ({ name: id, title: label }));
629
629
  });
630
+ const showToolbar = () => props.disableSearch !== true || props.filters.length > 0 || props.appliedFilters.length > 0 || MtBaseField.hasSlotContent(slots.toolbar);
630
631
  const sortedColumns = vue.computed(() => {
631
632
  return columnsWithChanges.value.slice().sort((a, b) => a.position - b.position);
632
633
  });
@@ -1272,6 +1273,7 @@ const _sfc_main = vue.defineComponent({
1272
1273
  emptyData,
1273
1274
  getRealIndex,
1274
1275
  isDragging,
1276
+ showToolbar,
1275
1277
  filterChildViews,
1276
1278
  removeFilter,
1277
1279
  addOption,
@@ -1382,130 +1384,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
1382
1384
  class: vue.normalizeClass(["mt-data-table", _ctx.MtDataTableClasses]),
1383
1385
  title: _ctx.title,
1384
1386
  subtitle: _ctx.subtitle
1385
- }, {
1386
- toolbar: vue.withCtx(() => [
1387
- vue.createElementVNode("div", _hoisted_1, [
1388
- _ctx.disableSearch !== true ? (vue.openBlock(), vue.createBlock(_component_mt_search, {
1389
- key: 0,
1390
- class: "mt-data-table__search",
1391
- size: "small",
1392
- "model-value": _ctx.searchValue,
1393
- "onUpdate:modelValue": _ctx.handleSearchUpdate
1394
- }, null, 8, ["model-value", "onUpdate:modelValue"])) : vue.createCommentVNode("", true),
1395
- _ctx.filters.length > 0 ? (vue.openBlock(), vue.createBlock(_component_mt_popover, {
1396
- key: 1,
1397
- title: "Filters",
1398
- "child-views": _ctx.filterChildViews
1399
- }, vue.createSlots({
1400
- trigger: vue.withCtx(({ toggleFloatingUi }) => [
1401
- vue.createVNode(_component_mt_button, {
1402
- variant: "secondary",
1403
- onClick: toggleFloatingUi
1404
- }, {
1405
- default: vue.withCtx(() => [
1406
- vue.createVNode(_component_mt_icon, {
1407
- name: "solid-filter-s",
1408
- "aria-hidden": "true"
1409
- }),
1410
- vue.createElementVNode("span", null, vue.toDisplayString(_ctx.t("filter.addFilter")), 1)
1411
- ]),
1412
- _: 2
1413
- }, 1032, ["onClick"])
1414
- ]),
1415
- "popover-items__base": vue.withCtx(({ changeView }) => [
1416
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.filters, (filter) => {
1417
- return vue.openBlock(), vue.createBlock(_component_mt_popover_item, {
1418
- key: filter.id,
1419
- label: filter.label,
1420
- "show-options": "",
1421
- onClickOptions: () => changeView(filter.id)
1422
- }, null, 8, ["label", "onClickOptions"]);
1423
- }), 128))
1424
- ]),
1425
- _: 2
1426
- }, [
1427
- vue.renderList(_ctx.filters, (filter) => {
1428
- return {
1429
- name: `popover-items__${filter.id}`,
1430
- fn: vue.withCtx(() => [
1431
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filter.type.options, (option) => {
1432
- return vue.openBlock(), vue.createBlock(_component_mt_popover_item, {
1433
- key: option.id,
1434
- label: option.label,
1435
- "show-checkbox": "",
1436
- "checkbox-checked": _ctx.isOptionSelected(filter.id, option.id),
1437
- onChangeCheckbox: (isChecked) => isChecked ? _ctx.addOption(filter.id, option.id) : _ctx.removeOption(filter.id, option.id)
1438
- }, null, 8, ["label", "checkbox-checked", "onChangeCheckbox"]);
1439
- }), 128))
1440
- ])
1441
- };
1442
- })
1443
- ]), 1032, ["child-views"])) : vue.createCommentVNode("", true),
1444
- vue.renderSlot(_ctx.$slots, "toolbar")
1445
- ]),
1446
- _ctx.appliedFilters.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
1447
- vue.createElementVNode("span", null, vue.toDisplayString(_ctx.isLoading ? _ctx.t("filter.fetchingFilteredResults") : _ctx.t("filter.numberOfResults", { n: _ctx.numberOfResults ?? 0 })), 1),
1448
- vue.createElementVNode("div", _hoisted_3, [
1449
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.appliedFilters, (filter) => {
1450
- return vue.openBlock(), vue.createBlock(_component_mt_data_table_filter, {
1451
- key: filter.id,
1452
- filter: _ctx.filters.find((f) => f.id === filter.id),
1453
- "applied-options": filter.type.options,
1454
- onAddOption: _cache[0] || (_cache[0] = (filterId, optionId) => _ctx.addOption(filterId, optionId)),
1455
- onRemoveOption: _cache[1] || (_cache[1] = (filterId, optionId) => _ctx.removeOption(filterId, optionId)),
1456
- onRemoveFilter: ($event) => _ctx.removeFilter(filter.id)
1457
- }, null, 8, ["filter", "applied-options", "onRemoveFilter"]);
1458
- }), 128))
1459
- ]),
1460
- vue.createVNode(_component_mt_popover, {
1461
- title: "Filters",
1462
- "child-views": _ctx.filterChildViews
1463
- }, vue.createSlots({
1464
- trigger: vue.withCtx(({ toggleFloatingUi }) => [
1465
- vue.createElementVNode("button", {
1466
- type: "button",
1467
- class: "mt-data-table__add-filter-button",
1468
- "aria-label": _ctx.t("filter.addFilter"),
1469
- onClick: toggleFloatingUi
1470
- }, [
1471
- vue.createVNode(_component_mt_icon, { name: "solid-plus-square-s" })
1472
- ], 8, _hoisted_4)
1473
- ]),
1474
- "popover-items__base": vue.withCtx(({ changeView }) => [
1475
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.filters, (filter) => {
1476
- return vue.openBlock(), vue.createBlock(_component_mt_popover_item, {
1477
- key: filter.id,
1478
- label: filter.label,
1479
- "show-options": "",
1480
- onClickOptions: () => changeView(filter.id)
1481
- }, null, 8, ["label", "onClickOptions"]);
1482
- }), 128))
1483
- ]),
1484
- _: 2
1485
- }, [
1486
- vue.renderList(_ctx.filters, (filter) => {
1487
- return {
1488
- name: `popover-items__${filter.id}`,
1489
- fn: vue.withCtx(() => [
1490
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filter.type.options, (option) => {
1491
- return vue.openBlock(), vue.createBlock(_component_mt_popover_item, {
1492
- key: option.id,
1493
- label: option.label,
1494
- "show-checkbox": "",
1495
- "checkbox-checked": _ctx.isOptionSelected(filter.id, option.id),
1496
- onChangeCheckbox: (isChecked) => isChecked ? _ctx.addOption(filter.id, option.id) : _ctx.removeOption(filter.id, option.id)
1497
- }, null, 8, ["label", "checkbox-checked", "onChangeCheckbox"]);
1498
- }), 128))
1499
- ])
1500
- };
1501
- })
1502
- ]), 1032, ["child-views"]),
1503
- vue.createVNode(_component_mt_data_table_reset_filter_button, {
1504
- "number-of-applied-filters": _ctx.appliedFilters.length,
1505
- onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("update:appliedFilters", []))
1506
- }, null, 8, ["number-of-applied-filters"])
1507
- ])) : vue.createCommentVNode("", true)
1508
- ]),
1387
+ }, vue.createSlots({
1509
1388
  default: vue.withCtx(() => [
1510
1389
  _ctx.somethingSelected ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
1511
1390
  vue.createVNode(_component_mt_segmented_control, {
@@ -1906,8 +1785,136 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
1906
1785
  _: 1
1907
1786
  })
1908
1787
  ]),
1909
- _: 3
1910
- }, 8, ["class", "title", "subtitle"]);
1788
+ _: 2
1789
+ }, [
1790
+ _ctx.showToolbar() ? {
1791
+ name: "toolbar",
1792
+ fn: vue.withCtx(() => [
1793
+ vue.createElementVNode("div", _hoisted_1, [
1794
+ _ctx.disableSearch !== true ? (vue.openBlock(), vue.createBlock(_component_mt_search, {
1795
+ key: 0,
1796
+ class: "mt-data-table__search",
1797
+ size: "small",
1798
+ "model-value": _ctx.searchValue,
1799
+ "onUpdate:modelValue": _ctx.handleSearchUpdate
1800
+ }, null, 8, ["model-value", "onUpdate:modelValue"])) : vue.createCommentVNode("", true),
1801
+ _ctx.filters.length > 0 ? (vue.openBlock(), vue.createBlock(_component_mt_popover, {
1802
+ key: 1,
1803
+ title: "Filters",
1804
+ "child-views": _ctx.filterChildViews
1805
+ }, vue.createSlots({
1806
+ trigger: vue.withCtx(({ toggleFloatingUi }) => [
1807
+ vue.createVNode(_component_mt_button, {
1808
+ variant: "secondary",
1809
+ onClick: toggleFloatingUi
1810
+ }, {
1811
+ default: vue.withCtx(() => [
1812
+ vue.createVNode(_component_mt_icon, {
1813
+ name: "solid-filter-s",
1814
+ "aria-hidden": "true"
1815
+ }),
1816
+ vue.createElementVNode("span", null, vue.toDisplayString(_ctx.t("filter.addFilter")), 1)
1817
+ ]),
1818
+ _: 2
1819
+ }, 1032, ["onClick"])
1820
+ ]),
1821
+ "popover-items__base": vue.withCtx(({ changeView }) => [
1822
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.filters, (filter) => {
1823
+ return vue.openBlock(), vue.createBlock(_component_mt_popover_item, {
1824
+ key: filter.id,
1825
+ label: filter.label,
1826
+ "show-options": "",
1827
+ onClickOptions: () => changeView(filter.id)
1828
+ }, null, 8, ["label", "onClickOptions"]);
1829
+ }), 128))
1830
+ ]),
1831
+ _: 2
1832
+ }, [
1833
+ vue.renderList(_ctx.filters, (filter) => {
1834
+ return {
1835
+ name: `popover-items__${filter.id}`,
1836
+ fn: vue.withCtx(() => [
1837
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filter.type.options, (option) => {
1838
+ return vue.openBlock(), vue.createBlock(_component_mt_popover_item, {
1839
+ key: option.id,
1840
+ label: option.label,
1841
+ "show-checkbox": "",
1842
+ "checkbox-checked": _ctx.isOptionSelected(filter.id, option.id),
1843
+ onChangeCheckbox: (isChecked) => isChecked ? _ctx.addOption(filter.id, option.id) : _ctx.removeOption(filter.id, option.id)
1844
+ }, null, 8, ["label", "checkbox-checked", "onChangeCheckbox"]);
1845
+ }), 128))
1846
+ ])
1847
+ };
1848
+ })
1849
+ ]), 1032, ["child-views"])) : vue.createCommentVNode("", true),
1850
+ vue.renderSlot(_ctx.$slots, "toolbar")
1851
+ ]),
1852
+ _ctx.appliedFilters.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
1853
+ vue.createElementVNode("span", null, vue.toDisplayString(_ctx.isLoading ? _ctx.t("filter.fetchingFilteredResults") : _ctx.t("filter.numberOfResults", { n: _ctx.numberOfResults ?? 0 })), 1),
1854
+ vue.createElementVNode("div", _hoisted_3, [
1855
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.appliedFilters, (filter) => {
1856
+ return vue.openBlock(), vue.createBlock(_component_mt_data_table_filter, {
1857
+ key: filter.id,
1858
+ filter: _ctx.filters.find((f) => f.id === filter.id),
1859
+ "applied-options": filter.type.options,
1860
+ onAddOption: _cache[0] || (_cache[0] = (filterId, optionId) => _ctx.addOption(filterId, optionId)),
1861
+ onRemoveOption: _cache[1] || (_cache[1] = (filterId, optionId) => _ctx.removeOption(filterId, optionId)),
1862
+ onRemoveFilter: ($event) => _ctx.removeFilter(filter.id)
1863
+ }, null, 8, ["filter", "applied-options", "onRemoveFilter"]);
1864
+ }), 128))
1865
+ ]),
1866
+ vue.createVNode(_component_mt_popover, {
1867
+ title: "Filters",
1868
+ "child-views": _ctx.filterChildViews
1869
+ }, vue.createSlots({
1870
+ trigger: vue.withCtx(({ toggleFloatingUi }) => [
1871
+ vue.createElementVNode("button", {
1872
+ type: "button",
1873
+ class: "mt-data-table__add-filter-button",
1874
+ "aria-label": _ctx.t("filter.addFilter"),
1875
+ onClick: toggleFloatingUi
1876
+ }, [
1877
+ vue.createVNode(_component_mt_icon, { name: "solid-plus-square-s" })
1878
+ ], 8, _hoisted_4)
1879
+ ]),
1880
+ "popover-items__base": vue.withCtx(({ changeView }) => [
1881
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.filters, (filter) => {
1882
+ return vue.openBlock(), vue.createBlock(_component_mt_popover_item, {
1883
+ key: filter.id,
1884
+ label: filter.label,
1885
+ "show-options": "",
1886
+ onClickOptions: () => changeView(filter.id)
1887
+ }, null, 8, ["label", "onClickOptions"]);
1888
+ }), 128))
1889
+ ]),
1890
+ _: 2
1891
+ }, [
1892
+ vue.renderList(_ctx.filters, (filter) => {
1893
+ return {
1894
+ name: `popover-items__${filter.id}`,
1895
+ fn: vue.withCtx(() => [
1896
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filter.type.options, (option) => {
1897
+ return vue.openBlock(), vue.createBlock(_component_mt_popover_item, {
1898
+ key: option.id,
1899
+ label: option.label,
1900
+ "show-checkbox": "",
1901
+ "checkbox-checked": _ctx.isOptionSelected(filter.id, option.id),
1902
+ onChangeCheckbox: (isChecked) => isChecked ? _ctx.addOption(filter.id, option.id) : _ctx.removeOption(filter.id, option.id)
1903
+ }, null, 8, ["label", "checkbox-checked", "onChangeCheckbox"]);
1904
+ }), 128))
1905
+ ])
1906
+ };
1907
+ })
1908
+ ]), 1032, ["child-views"]),
1909
+ vue.createVNode(_component_mt_data_table_reset_filter_button, {
1910
+ "number-of-applied-filters": _ctx.appliedFilters.length,
1911
+ onClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("update:appliedFilters", []))
1912
+ }, null, 8, ["number-of-applied-filters"])
1913
+ ])) : vue.createCommentVNode("", true)
1914
+ ]),
1915
+ key: "0"
1916
+ } : void 0
1917
+ ]), 1032, ["class", "title", "subtitle"]);
1911
1918
  }
1912
1919
  const MtDataTable = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
1913
1920
  module.exports = MtDataTable;
@@ -8,7 +8,7 @@ const MtText = require("./MtText.js");
8
8
  const vueI18n = require("vue-i18n");
9
9
  const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
10
10
  require("./MtCheckbox.js");
11
- require("../mt-base-field-32e14998.js");
11
+ require("../mt-base-field-b1264b8e.js");
12
12
  require("./MtInheritanceSwitch.js");
13
13
  require("./MtTooltip.js");
14
14
  require("../floating-ui.vue-48d5c774.js");
@@ -53,7 +53,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
53
53
  removeButton: "Remove filter"
54
54
  },
55
55
  zh: {
56
- is: "",
56
+ is: "等于",
57
57
  removeButton: "移除筛选"
58
58
  }
59
59
  }
@@ -119,6 +119,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
119
119
  };
120
120
  }
121
121
  });
122
- const mtDataTableFilter_vue_vue_type_style_index_0_scoped_a876f3f0_lang = "";
123
- const MtDataTableFilter = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-a876f3f0"]]);
122
+ const mtDataTableFilter_vue_vue_type_style_index_0_scoped_444741f3_lang = "";
123
+ const MtDataTableFilter = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-444741f3"]]);
124
124
  module.exports = MtDataTableFilter;
@@ -12,7 +12,7 @@ require("../useIsInsideTooltip-f4674e27.js");
12
12
  require("./MtLoader.js");
13
13
  require("./MtText.js");
14
14
  require("./MtCheckbox.js");
15
- require("../mt-base-field-32e14998.js");
15
+ require("../mt-base-field-b1264b8e.js");
16
16
  require("./MtInheritanceSwitch.js");
17
17
  require("./MtTooltip.js");
18
18
  require("../floating-ui.vue-48d5c774.js");
@@ -1,15 +1,16 @@
1
1
  import '../mt-entity-data-table.css';
2
2
  "use strict";
3
- const mtEntityDataTable_vue_vue_type_style_index_0_lang = require("../mt-entity-data-table.vue_vue_type_style_index_0_lang-5acc37b3.js");
3
+ const mtEntityDataTable_vue_vue_type_style_index_0_lang = require("../mt-entity-data-table.vue_vue_type_style_index_0_lang-84494335.js");
4
4
  require("vue");
5
- require("../useRepository-c69e2597.js");
5
+ require("../Criteria-86968a69.js");
6
+ require("../useRepository-6804d3b6.js");
6
7
  require("./MtDataTable.js");
7
8
  require("./MtCard.js");
8
9
  require("../mt-context-button.vue_vue_type_style_index_0_lang-fda7578e.js");
9
10
  require("../mt-icon.vue_vue_type_style_index_0_lang-228a1bb5.js");
10
11
  require("./MtPopover.js");
11
12
  require("./MtCheckbox.js");
12
- require("../mt-base-field-32e14998.js");
13
+ require("../mt-base-field-b1264b8e.js");
13
14
  require("./MtInheritanceSwitch.js");
14
15
  require("./MtTooltip.js");
15
16
  require("../floating-ui.vue-48d5c774.js");
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const mtEntitySelect_vue_vue_type_script_setup_true_lang = require("../mt-entity-select.vue_vue_type_script_setup_true_lang-50315e8d.js");
2
+ const mtEntitySelect_vue_vue_type_script_setup_true_lang = require("../mt-entity-select.vue_vue_type_script_setup_true_lang-2cdffea0.js");
3
3
  require("vue");
4
4
  require("./MtSelect.js");
5
5
  require("../debounce-77fa4677.js");
@@ -8,7 +8,7 @@ require("./MtFieldHint.js");
8
8
  require("../mt-icon.vue_vue_type_style_index_0_lang-228a1bb5.js");
9
9
  require("../_plugin-vue_export-helper-9c783a34.js");
10
10
  require("./MtSelectBase.js");
11
- require("../mt-base-field-32e14998.js");
11
+ require("../mt-base-field-b1264b8e.js");
12
12
  require("./MtInheritanceSwitch.js");
13
13
  require("./MtTooltip.js");
14
14
  require("../floating-ui.vue-48d5c774.js");
@@ -32,5 +32,6 @@ require("./MtSelectSelectionList.js");
32
32
  require("../mt-label.vue_vue_type_style_index_0_lang-cdaf52a6.js");
33
33
  require("./MtButton.js");
34
34
  require("../mt-highlight-text.vue_vue_type_style_index_0_lang-a463da9a.js");
35
- require("../useRepository-c69e2597.js");
35
+ require("../Criteria-86968a69.js");
36
+ require("../useRepository-6804d3b6.js");
36
37
  module.exports = mtEntitySelect_vue_vue_type_script_setup_true_lang._sfc_main;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,155 @@
1
+ import '../mt-grant-permission-service-banner.css';
2
+ "use strict";
3
+ const vue = require("vue");
4
+ const index = require("../index-e582fef8.js");
5
+ const vueI18n = require("vue-i18n");
6
+ const mtIcon_vue_vue_type_style_index_0_lang = require("../mt-icon.vue_vue_type_style_index_0_lang-228a1bb5.js");
7
+ const MtText = require("./MtText.js");
8
+ const MtButton = require("./MtButton.js");
9
+ const index$1 = require("../index-f8d7f486.js");
10
+ const channel = require("../channel-c7fd2abb.js");
11
+ const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
12
+ require("../index-efdf1622.js");
13
+ require("../useIsInsideTooltip-f4674e27.js");
14
+ require("./MtLoader.js");
15
+ require("../Criteria-86968a69.js");
16
+ const dispatch = channel.createSender("telemetryDispatch");
17
+ const isService = channel.createSender("contextIsService", {});
18
+ const grant = channel.createSender("servicePermissionGrant", {});
19
+ const isGranted = channel.createSender("servicePermissionIsGranted", {});
20
+ const _hoisted_1 = {
21
+ key: 0,
22
+ class: "mt-grant-permission-service-banner__container"
23
+ };
24
+ const _hoisted_2 = ["aria-labelledby"];
25
+ const _hoisted_3 = { class: "mt-grant-permission-service-banner__body" };
26
+ const _hoisted_4 = { class: "mt-grant-permission-service-banner__actions" };
27
+ const _hoisted_5 = { class: "mt-grant-permission-service-banner__label--short" };
28
+ const _hoisted_6 = { class: "mt-grant-permission-service-banner__label--long" };
29
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
30
+ __name: "mt-grant-permission-service-banner",
31
+ setup(__props) {
32
+ const { t } = vueI18n.useI18n({
33
+ messages: {
34
+ en: {
35
+ title: "Grant permissions to activate this service.",
36
+ description: "Only the data needed to function will be accessed.",
37
+ grantLabel: "Grant permissions",
38
+ grantLongLabel: "Grant permissions and activate",
39
+ moreInfo: "More info",
40
+ moreInfoUrl: "https://developer.contena.cn/docs/"
41
+ },
42
+ zh: {
43
+ title: "授予权限以启用此服务。",
44
+ description: "仅访问此功能运行所需的数据。",
45
+ grantLabel: "授予权限",
46
+ grantLongLabel: "授予权限并启用",
47
+ moreInfo: "了解更多",
48
+ moreInfoUrl: "https://developer.contena.cn/docs/"
49
+ }
50
+ }
51
+ });
52
+ const titleId = vue.useId();
53
+ const isLoading = vue.ref(false);
54
+ const isShowUI = index.computedAsync(async () => {
55
+ return await isService() && !await isGranted();
56
+ }, false);
57
+ const appInfo = index.computedAsync(async () => {
58
+ return await index$1.getAppInformation();
59
+ }, null);
60
+ function track(event, data) {
61
+ dispatch({ event, data }).catch(() => void 0);
62
+ }
63
+ async function handleGrantPermission() {
64
+ var _a, _b;
65
+ track(`${(_a = appInfo.value) == null ? void 0 : _a.name}_grant_permission_clicked`, {
66
+ contena_version: (_b = appInfo.value) == null ? void 0 : _b.version
67
+ });
68
+ if (isLoading.value) {
69
+ return;
70
+ }
71
+ isLoading.value = true;
72
+ try {
73
+ await grant();
74
+ } catch (error) {
75
+ console.error("Error granting permission:", error);
76
+ } finally {
77
+ isLoading.value = false;
78
+ }
79
+ }
80
+ function handleClickMoreInfo() {
81
+ var _a;
82
+ track(`${(_a = appInfo.value) == null ? void 0 : _a.name}_grant_permission_more_info`);
83
+ }
84
+ return (_ctx, _cache) => {
85
+ return vue.unref(isShowUI) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
86
+ vue.createElementVNode("section", {
87
+ class: "mt-grant-permission-service-banner",
88
+ "aria-labelledby": vue.unref(titleId)
89
+ }, [
90
+ vue.createVNode(mtIcon_vue_vue_type_style_index_0_lang._sfc_main, {
91
+ class: "mt-grant-permission-service-banner__icon",
92
+ name: "regular-trust",
93
+ size: "32",
94
+ decorative: ""
95
+ }),
96
+ vue.createElementVNode("div", _hoisted_3, [
97
+ vue.createVNode(MtText, {
98
+ id: vue.unref(titleId),
99
+ as: "h3",
100
+ weight: "bold",
101
+ size: "xs",
102
+ class: "mt-grant-permission-service-banner__title"
103
+ }, {
104
+ default: vue.withCtx(() => [
105
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("title")), 1)
106
+ ]),
107
+ _: 1
108
+ }, 8, ["id"]),
109
+ vue.createVNode(MtText, {
110
+ size: "2xs",
111
+ color: "color-text-secondary-default",
112
+ class: "mt-grant-permission-service-banner__description"
113
+ }, {
114
+ default: vue.withCtx(() => [
115
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("description")), 1)
116
+ ]),
117
+ _: 1
118
+ })
119
+ ]),
120
+ vue.createElementVNode("div", _hoisted_4, [
121
+ vue.createVNode(MtButton, {
122
+ variant: "primary",
123
+ class: "mt-grant-permission-service-banner__grant",
124
+ "is-loading": isLoading.value,
125
+ onClick: handleGrantPermission
126
+ }, {
127
+ default: vue.withCtx(() => [
128
+ vue.createElementVNode("span", _hoisted_5, vue.toDisplayString(vue.unref(t)("grantLabel")), 1),
129
+ vue.createElementVNode("span", _hoisted_6, vue.toDisplayString(vue.unref(t)("grantLongLabel")), 1)
130
+ ]),
131
+ _: 1
132
+ }, 8, ["is-loading"]),
133
+ vue.createVNode(MtButton, {
134
+ is: "a",
135
+ variant: "secondary",
136
+ class: "mt-grant-permission-service-banner__more-info",
137
+ href: vue.unref(t)("moreInfoUrl"),
138
+ target: "_blank",
139
+ rel: "noopener noreferrer",
140
+ onClick: handleClickMoreInfo
141
+ }, {
142
+ default: vue.withCtx(() => [
143
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("moreInfo")), 1)
144
+ ]),
145
+ _: 1
146
+ }, 8, ["href"])
147
+ ])
148
+ ], 8, _hoisted_2)
149
+ ])) : vue.createCommentVNode("", true);
150
+ };
151
+ }
152
+ });
153
+ const mtGrantPermissionServiceBanner_vue_vue_type_style_index_0_scoped_95188d4f_lang = "";
154
+ const mtGrantPermissionServiceBanner = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-95188d4f"]]);
155
+ module.exports = mtGrantPermissionServiceBanner;
@@ -262,6 +262,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
262
262
  };
263
263
  }
264
264
  });
265
- const mtModal_vue_vue_type_style_index_0_scoped_4d6bac13_lang = "";
266
- const MtModal = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-4d6bac13"]]);
265
+ const mtModal_vue_vue_type_style_index_0_scoped_684596ac_lang = "";
266
+ const MtModal = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-684596ac"]]);
267
267
  module.exports = MtModal;
@@ -6,7 +6,7 @@ const mtIcon_vue_vue_type_style_index_0_lang = require("../mt-icon.vue_vue_type_
6
6
  const MtFieldHint = require("./MtFieldHint.js");
7
7
  const vueI18n = require("vue-i18n");
8
8
  const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
9
- require("../mt-base-field-32e14998.js");
9
+ require("../mt-base-field-b1264b8e.js");
10
10
  require("./MtInheritanceSwitch.js");
11
11
  require("./MtTooltip.js");
12
12
  require("../floating-ui.vue-48d5c774.js");
@@ -156,6 +156,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
156
156
  };
157
157
  }
158
158
  });
159
- const mtPagination_vue_vue_type_style_index_0_scoped_c2204c1a_lang = "";
160
- const MtPagination = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-c2204c1a"]]);
159
+ const mtPagination_vue_vue_type_style_index_0_scoped_3c2685bd_lang = "";
160
+ const MtPagination = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-3c2685bd"]]);
161
161
  module.exports = MtPagination;
@@ -1,7 +1,7 @@
1
1
  import '../mt-password-field.css';
2
2
  "use strict";
3
3
  const vue = require("vue");
4
- const MtBaseField = require("../mt-base-field-32e14998.js");
4
+ const MtBaseField = require("../mt-base-field-b1264b8e.js");
5
5
  const MtFieldError = require("./MtFieldError.js");
6
6
  const MtFieldHint = require("./MtFieldHint.js");
7
7
  const mtIcon_vue_vue_type_style_index_0_lang = require("../mt-icon.vue_vue_type_style_index_0_lang-228a1bb5.js");
@@ -10,7 +10,7 @@ const MtSmoothReflow = require("./MtSmoothReflow.js");
10
10
  const mtFloatingUi_vue_vue_type_style_index_0_lang = require("../mt-floating-ui.vue_vue_type_style_index_0_lang-2ea8a18a.js");
11
11
  const MtText = require("./MtText.js");
12
12
  const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
13
- require("../mt-base-field-32e14998.js");
13
+ require("../mt-base-field-b1264b8e.js");
14
14
  require("./MtInheritanceSwitch.js");
15
15
  require("./MtTooltip.js");
16
16
  require("../floating-ui.vue-48d5c774.js");
@@ -7,7 +7,7 @@ const mtIcon_vue_vue_type_style_index_0_lang = require("../mt-icon.vue_vue_type_
7
7
  const id = require("../id-8e80f112.js");
8
8
  const index = require("../index-efdf1622.js");
9
9
  const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
10
- require("../mt-base-field-32e14998.js");
10
+ require("../mt-base-field-b1264b8e.js");
11
11
  require("./MtInheritanceSwitch.js");
12
12
  require("./MtTooltip.js");
13
13
  require("../floating-ui.vue-48d5c774.js");
@@ -8,7 +8,7 @@ require("vue-i18n");
8
8
  require("../mt-icon.vue_vue_type_style_index_0_lang-228a1bb5.js");
9
9
  require("./MtPopoverItem.js");
10
10
  require("./MtCheckbox.js");
11
- require("../mt-base-field-32e14998.js");
11
+ require("../mt-base-field-b1264b8e.js");
12
12
  require("./MtInheritanceSwitch.js");
13
13
  require("./MtTooltip.js");
14
14
  require("../floating-ui.vue-48d5c774.js");
@@ -5,7 +5,7 @@ const mtIcon_vue_vue_type_style_index_0_lang = require("../mt-icon.vue_vue_type_
5
5
  const MtPopover = require("./MtPopover.js");
6
6
  const vue = require("vue");
7
7
  const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
8
- require("../mt-base-field-32e14998.js");
8
+ require("../mt-base-field-b1264b8e.js");
9
9
  require("./MtInheritanceSwitch.js");
10
10
  require("./MtTooltip.js");
11
11
  require("../floating-ui.vue-48d5c774.js");
@@ -11,7 +11,7 @@ const mtHighlightText_vue_vue_type_style_index_0_lang = require("../mt-highlight
11
11
  const vueI18n = require("vue-i18n");
12
12
  const _pluginVue_exportHelper = require("../_plugin-vue_export-helper-9c783a34.js");
13
13
  require("../mt-icon.vue_vue_type_style_index_0_lang-228a1bb5.js");
14
- require("../mt-base-field-32e14998.js");
14
+ require("../mt-base-field-b1264b8e.js");
15
15
  require("./MtInheritanceSwitch.js");
16
16
  require("./MtTooltip.js");
17
17
  require("../floating-ui.vue-48d5c774.js");