docker-client-mx 1.40.0 → 1.42.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 (100) hide show
  1. package/dist/docker-desktop-mx/browser/{chunk-CpVmilfG.js → chunk-3VyqMz_T.js} +2 -2
  2. package/dist/docker-desktop-mx/browser/{chunk-Doow6WqE.js → chunk-BW20bBdg.js} +1 -1
  3. package/dist/docker-desktop-mx/browser/chunk-Ba_z6LGV.js +1 -0
  4. package/dist/docker-desktop-mx/browser/chunk-BdOOWVGY.js +4 -0
  5. package/dist/docker-desktop-mx/browser/chunk-BgNCBUvw2.js +1 -0
  6. package/dist/docker-desktop-mx/browser/{chunk-D4dQfTTc.js → chunk-BoN9ZlqT.js} +1 -1
  7. package/dist/docker-desktop-mx/browser/chunk-BsAqguck2.js +3 -0
  8. package/dist/docker-desktop-mx/browser/{chunk-Bw7Mtap6.js → chunk-Bx2_SrZM.js} +1 -1
  9. package/dist/docker-desktop-mx/browser/{chunk-CZNcOfBu2.js → chunk-C-yEXU2P.js} +2 -2
  10. package/dist/docker-desktop-mx/browser/chunk-C1Wg9uje.js +1 -0
  11. package/dist/docker-desktop-mx/browser/{chunk-CC_wIdx2.js → chunk-C22Z7vgK.js} +1 -1
  12. package/dist/docker-desktop-mx/browser/chunk-C6u6rXYb2.js +1 -0
  13. package/dist/docker-desktop-mx/browser/{chunk-Ch8nHKqR.js → chunk-CC84vXik.js} +1 -1
  14. package/dist/docker-desktop-mx/browser/{chunk-DdFeg3-c.js → chunk-CI9I9Npi.js} +1 -1
  15. package/dist/docker-desktop-mx/browser/{chunk-DBPVGjlB.js → chunk-CMrtklQ1.js} +2 -2
  16. package/dist/docker-desktop-mx/browser/{chunk-wVwXBw1N.js → chunk-CRNeTD5E.js} +1 -1
  17. package/dist/docker-desktop-mx/browser/{chunk-5jLUVNg7.js → chunk-CSrKHPxR.js} +1 -1
  18. package/dist/docker-desktop-mx/browser/{chunk-Dz9ZDzia.js → chunk-CT1ZUgmS.js} +1 -1
  19. package/dist/docker-desktop-mx/browser/chunk-CWusqRG0.js +1 -0
  20. package/dist/docker-desktop-mx/browser/{chunk-8P32TlCt.js → chunk-Cbit44lz.js} +1 -1
  21. package/dist/docker-desktop-mx/browser/chunk-Cc4_zCxe2.js +1 -0
  22. package/dist/docker-desktop-mx/browser/{chunk-BH9xkVLp.js → chunk-Ckq_aT3A.js} +1 -1
  23. package/dist/docker-desktop-mx/browser/{chunk-BEAPEQBM.js → chunk-CrBxmi_g.js} +1 -1
  24. package/dist/docker-desktop-mx/browser/chunk-D-7d5O7f.js +1 -0
  25. package/dist/docker-desktop-mx/browser/{chunk-CP90rR4k.js → chunk-D0xC_xVf.js} +1 -1
  26. package/dist/docker-desktop-mx/browser/chunk-D29s9m84.js +1 -0
  27. package/dist/docker-desktop-mx/browser/chunk-DKpHNjiv.js +1 -0
  28. package/dist/docker-desktop-mx/browser/chunk-DLeqF0uQ.js +1 -0
  29. package/dist/docker-desktop-mx/browser/chunk-DZjRtM2K.js +1 -0
  30. package/dist/docker-desktop-mx/browser/chunk-DsuW5Ksa2.js +1 -0
  31. package/dist/docker-desktop-mx/browser/chunk-DvoPI4MU.js +1 -0
  32. package/dist/docker-desktop-mx/browser/chunk-DzG5R5Kk.js +1 -0
  33. package/dist/docker-desktop-mx/browser/{chunk-fqYbS3e-.js → chunk-KUYJNmP22.js} +1 -1
  34. package/dist/docker-desktop-mx/browser/chunk-QaMufr3I.js +1 -0
  35. package/dist/docker-desktop-mx/browser/{chunk-MpnWAfxv.js → chunk-V7ftX_10.js} +1 -1
  36. package/dist/docker-desktop-mx/browser/{chunk-Bn40KMmY.js → chunk-Zcfhi-RM.js} +1 -1
  37. package/dist/docker-desktop-mx/browser/{chunk-CiOk-qoT.js → chunk-Zom3ankA.js} +1 -1
  38. package/dist/docker-desktop-mx/browser/{chunk-DKNRYU3y.js → chunk-cYufOe8J.js} +1 -1
  39. package/dist/docker-desktop-mx/browser/chunk-eG8Su12W.js +1 -0
  40. package/dist/docker-desktop-mx/browser/chunk-ep62jwHG.js +1 -0
  41. package/dist/docker-desktop-mx/browser/{chunk-Di8ZOBwa.js → chunk-iwVkNYYA.js} +1 -1
  42. package/dist/docker-desktop-mx/browser/chunk-wa_VZZFY.js +1 -0
  43. package/dist/docker-desktop-mx/browser/index.html +2 -2
  44. package/dist/docker-desktop-mx/browser/main-DECBD64Q.js +1 -0
  45. package/dist/docker-desktop-mx/browser/styles-5TXFXUUF.css +1 -0
  46. package/dist-electron/auto-prune.js +76 -0
  47. package/dist-electron/auto-prune.js.map +1 -0
  48. package/dist-electron/channels.js +9 -0
  49. package/dist-electron/channels.js.map +1 -1
  50. package/dist-electron/container-commit.js +39 -0
  51. package/dist-electron/container-commit.js.map +1 -0
  52. package/dist-electron/container-rename.js +63 -0
  53. package/dist-electron/container-rename.js.map +1 -0
  54. package/dist-electron/environment.js +52 -0
  55. package/dist-electron/environment.js.map +1 -0
  56. package/dist-electron/image-reference.js +92 -0
  57. package/dist-electron/image-reference.js.map +1 -0
  58. package/dist-electron/image-tags.js +138 -0
  59. package/dist-electron/image-tags.js.map +1 -0
  60. package/dist-electron/images.js +2 -17
  61. package/dist-electron/images.js.map +1 -1
  62. package/dist-electron/ipc.js +26 -0
  63. package/dist-electron/ipc.js.map +1 -1
  64. package/dist-electron/main.js +34 -0
  65. package/dist-electron/main.js.map +1 -1
  66. package/dist-electron/preload.js +18 -1
  67. package/dist-electron/preload.js.map +1 -1
  68. package/dist-electron/pull.js +20 -12
  69. package/dist-electron/pull.js.map +1 -1
  70. package/dist-electron/redact.js +9 -0
  71. package/dist-electron/redact.js.map +1 -1
  72. package/dist-electron/renew.js +2 -2
  73. package/dist-electron/renew.js.map +1 -1
  74. package/dist-electron/settings.js +22 -0
  75. package/dist-electron/settings.js.map +1 -1
  76. package/dist-electron/volume-backup.js +16 -3
  77. package/dist-electron/volume-backup.js.map +1 -1
  78. package/dist-electron/volume-copy.js +145 -0
  79. package/dist-electron/volume-copy.js.map +1 -0
  80. package/package.json +1 -1
  81. package/dist/docker-desktop-mx/browser/chunk-7fAa0H9l2.js +0 -1
  82. package/dist/docker-desktop-mx/browser/chunk-BMXieIjc.js +0 -1
  83. package/dist/docker-desktop-mx/browser/chunk-BfC3KqGQ.js +0 -1
  84. package/dist/docker-desktop-mx/browser/chunk-CC7DUrLR.js +0 -1
  85. package/dist/docker-desktop-mx/browser/chunk-CHFuuSv8.js +0 -1
  86. package/dist/docker-desktop-mx/browser/chunk-CaYY-6hH.js +0 -1
  87. package/dist/docker-desktop-mx/browser/chunk-CmtjDUsV.js +0 -1
  88. package/dist/docker-desktop-mx/browser/chunk-CzrtYwlw.js +0 -1
  89. package/dist/docker-desktop-mx/browser/chunk-D0pCyzqb.js +0 -1
  90. package/dist/docker-desktop-mx/browser/chunk-DAgdneMS.js +0 -1
  91. package/dist/docker-desktop-mx/browser/chunk-DEsPgcXV.js +0 -4
  92. package/dist/docker-desktop-mx/browser/chunk-DFhjd8-d2.js +0 -1
  93. package/dist/docker-desktop-mx/browser/chunk-DGtAiSbg.js +0 -1
  94. package/dist/docker-desktop-mx/browser/chunk-DLh60Eif.js +0 -1
  95. package/dist/docker-desktop-mx/browser/chunk-Dq9pgyA42.js +0 -2
  96. package/dist/docker-desktop-mx/browser/chunk-Ds9stAVj.js +0 -1
  97. package/dist/docker-desktop-mx/browser/chunk-lLCuDcp6.js +0 -1
  98. package/dist/docker-desktop-mx/browser/chunk-nped2UPz.js +0 -1
  99. package/dist/docker-desktop-mx/browser/main-HUWYR6IC.js +0 -1
  100. package/dist/docker-desktop-mx/browser/styles-D7Y5N7JX.css +0 -1
@@ -8,7 +8,7 @@ exports.listStaleContainers = listStaleContainers;
8
8
  exports.renewContainers = renewContainers;
9
9
  const compose_1 = require("./compose");
10
10
  const docker_client_1 = require("./docker-client");
11
- const images_1 = require("./images");
11
+ const image_reference_1 = require("./image-reference");
12
12
  /**
13
13
  * Na "Bijwerken" de containers ook vernieuwen.
14
14
  *
@@ -34,7 +34,7 @@ function normalizeReference(reference) {
34
34
  if (reference.includes('@')) {
35
35
  return null;
36
36
  }
37
- const { repository, tag } = (0, images_1.splitReference)(reference);
37
+ const { repository, tag } = (0, image_reference_1.splitReference)(reference);
38
38
  const slash = repository.indexOf('/');
39
39
  const first = slash === -1 ? '' : repository.slice(0, slash);
40
40
  // Zoals Docker het zelf beslist: het eerste deel is een host als er een punt of poort in
@@ -1 +1 @@
1
- {"version":3,"file":"renew.js","sourceRoot":"","sources":["../electron/renew.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renew.js","sourceRoot":"","sources":["../electron/renew.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@ exports.readSettings = readSettings;
10
10
  exports.updateSettings = updateSettings;
11
11
  exports.notificationsEnabled = notificationsEnabled;
12
12
  exports.wiringNotificationsEnabled = wiringNotificationsEnabled;
13
+ exports.autoPruneEnabled = autoPruneEnabled;
14
+ exports.lastAutoPrune = lastAutoPrune;
15
+ exports.recordAutoPrune = recordAutoPrune;
13
16
  exports.autoUpdateEnabled = autoUpdateEnabled;
14
17
  exports.assistantModel = assistantModel;
15
18
  const assistant_models_1 = require("./assistant-models");
@@ -20,6 +23,8 @@ const DEFAULTS = {
20
23
  notifyWiring: true,
21
24
  paletteShortcut: true,
22
25
  autoUpdate: true,
26
+ autoPrune: false,
27
+ lastAutoPrune: null,
23
28
  language: i18n_1.DEFAULT_LANGUAGE,
24
29
  assistantModel: assistant_models_1.DEFAULT_ASSISTANT_MODEL,
25
30
  };
@@ -99,6 +104,8 @@ function parseStored(text) {
99
104
  notifyWiring: typeof raw.notifyWiring === 'boolean' ? raw.notifyWiring : DEFAULTS.notifyWiring,
100
105
  paletteShortcut: typeof raw.paletteShortcut === 'boolean' ? raw.paletteShortcut : DEFAULTS.paletteShortcut,
101
106
  autoUpdate: typeof raw.autoUpdate === 'boolean' ? raw.autoUpdate : DEFAULTS.autoUpdate,
107
+ autoPrune: typeof raw.autoPrune === 'boolean' ? raw.autoPrune : DEFAULTS.autoPrune,
108
+ lastAutoPrune: typeof raw.lastAutoPrune === 'number' ? raw.lastAutoPrune : DEFAULTS.lastAutoPrune,
102
109
  language: (0, i18n_1.isLanguage)(raw.language) ? raw.language : DEFAULTS.language,
103
110
  // Een model dat deze versie niet kent (of niet meer): terug naar de standaard, anders
104
111
  // krijgt de gebruiker bij elke vraag een fout van de API.
@@ -140,6 +147,8 @@ function updateSettings(patch) {
140
147
  notifyWiring: patch.notifyWiring ?? stored.notifyWiring,
141
148
  paletteShortcut: patch.paletteShortcut ?? stored.paletteShortcut,
142
149
  autoUpdate: patch.autoUpdate ?? stored.autoUpdate,
150
+ autoPrune: patch.autoPrune ?? stored.autoPrune,
151
+ lastAutoPrune: stored.lastAutoPrune,
143
152
  language: patch.language ?? stored.language,
144
153
  assistantModel: patch.assistantModel ?? stored.assistantModel,
145
154
  };
@@ -159,6 +168,19 @@ function notificationsEnabled(kind) {
159
168
  function wiringNotificationsEnabled() {
160
169
  return stored.notifyWiring;
161
170
  }
171
+ /** Of de app eens per week zelf opruimt (fase 66). */
172
+ function autoPruneEnabled() {
173
+ return stored.autoPrune;
174
+ }
175
+ /** Wanneer de app de laatste keer zelf opruimde; `null` als nog nooit. */
176
+ function lastAutoPrune() {
177
+ return stored.lastAutoPrune;
178
+ }
179
+ /** Onthoudt dat er opgeruimd is, zodat een app die elke dag start niet elke dag opruimt. */
180
+ function recordAutoPrune(time) {
181
+ stored = { ...stored, lastAutoPrune: time };
182
+ persist();
183
+ }
162
184
  /** Of de app uit zichzelf naar een nieuwe versie zoekt en die alvast binnenhaalt. */
163
185
  function autoUpdateEnabled() {
164
186
  return stored.autoUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../electron/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../electron/settings.ts"],"names":[],"mappings":";;AAmEA,8CAGC;AAGD,8CAGC;AAGD,wDAGC;AAMD,oDAaC;AAuCD,kCAyBC;AAGD,8CAUC;AAGD,oCAQC;AAGD,wCA6BC;AAGD,oDAGC;AAGD,gEAGC;AAGD,4CAGC;AAGD,sCAGC;AAGD,0CAIC;AAGD,8CAGC;AAGD,wCAGC;AAvQD,yDAA+E;AAE/E,iCAAkF;AAiClF,MAAM,QAAQ,GAAmB;IAC/B,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,uBAAgB;IAC1B,cAAc,EAAE,0CAAuB;CACxC,CAAC;AAaF,IAAI,IAAI,GAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACvF,IAAI,MAAM,GAAmB,QAAQ,CAAC;AACtC,4FAA4F;AAC5F,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,2FAA2F;AAC3F,MAAM,SAAS,GAAmB,EAAE,CAAC;AAErC,4CAA4C;AAC5C,SAAgB,iBAAiB,CAAC,MAAe;IAE/C,cAAc,GAAG,MAAM,CAAC;AAC1B,CAAC;AAED,qFAAqF;AACrF,SAAgB,iBAAiB,CAAC,QAAoB;IAEpD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED,4DAA4D;AAC5D,SAAgB,sBAAsB;IAEpC,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED,mGAAmG;AACnG,IAAI,eAAe,GAAmB,IAAI,CAAC;AAE3C,sEAAsE;AACtE,SAAgB,oBAAoB,CAAC,IAAmB;IAEtD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA+B,CAAC;QAE3D,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IAEd,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAE5H,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB;IAEzB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IAElC,IAAI,IAAI,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QACrC,eAAe,GAAG,IAAI,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,IAAI,CAAC,IAAI,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,IAAmB;IAE7C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmD,CAAC;QAE/E,OAAO;YACL,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW;YAC1F,eAAe,EAAE,OAAO,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe;YAC1G,YAAY,EAAE,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY;YAC9F,eAAe,EAAE,OAAO,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe;YAC1G,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU;YACtF,SAAS,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS;YAClF,aAAa,EAAE,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa;YACjG,QAAQ,EAAE,IAAA,iBAAU,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;YACrE,sFAAsF;YACtF,0DAA0D;YAC1D,cAAc,EAAE,IAAA,mCAAgB,EAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc;SACpG,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,SAAgB,iBAAiB,CAAC,IAAkB;IAElD,IAAI,GAAG,IAAI,CAAC;IAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEzB,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAA,kBAAW,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,EAAE,CAAC;AACvB,CAAC;AAED,oEAAoE;AACpE,SAAgB,YAAY;IAE1B,OAAO;QACL,GAAG,MAAM;QACT,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,KAAK;QAC5C,qBAAqB,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI;QAC9C,qBAAqB,EAAE,cAAc;KACtC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAgB,cAAc,CAAC,KAAoB;IAEjD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,YAAY,KAAK,eAAe,CAAC;IAE3H,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,eAAe,GAAG,KAAK,CAAC,YAAY,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,GAAmB;QAC3B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;QACpD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe;QAChE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY;QACvD,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe;QAChE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;QACjD,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;QAC9C,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QAC3C,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc;KAC9D,CAAC;IAEF,IAAI,YAAY,IAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7G,MAAM,GAAG,IAAI,CAAC;QACd,OAAO,EAAE,CAAC;QACV,IAAA,kBAAW,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,YAAY,EAAE,CAAC;AACxB,CAAC;AAED,+CAA+C;AAC/C,SAAgB,oBAAoB,CAAC,IAAgB;IAEnD,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;AACxE,CAAC;AAED,sFAAsF;AACtF,SAAgB,0BAA0B;IAExC,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC;AAED,sDAAsD;AACtD,SAAgB,gBAAgB;IAE9B,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,0EAA0E;AAC1E,SAAgB,aAAa;IAE3B,OAAO,MAAM,CAAC,aAAa,CAAC;AAC9B,CAAC;AAED,4FAA4F;AAC5F,SAAgB,eAAe,CAAC,IAAY;IAE1C,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC5C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,qFAAqF;AACrF,SAAgB,iBAAiB;IAE/B,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,yDAAyD;AACzD,SAAgB,cAAc;IAE5B,OAAO,MAAM,CAAC,cAAc,CAAC;AAC/B,CAAC"}
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.backupFileName = backupFileName;
37
37
  exports.isBackupEntry = isBackupEntry;
38
+ exports.withHelperMounts = withHelperMounts;
38
39
  exports.backupVolume = backupVolume;
39
40
  exports.restoreVolume = restoreVolume;
40
41
  const node_fs_1 = require("node:fs");
@@ -80,9 +81,11 @@ function isBackupEntry(name) {
80
81
  }
81
82
  /** Maakt de hulpcontainer met het volume eraan, doet het werk, en ruimt alles weer op. */
82
83
  async function withHelper(volume, readOnly, work) {
84
+ return withHelperMounts([volume], [`${volume}:${MOUNT}${readOnly ? ':ro' : ''}`], work);
85
+ }
86
+ /** Of een volume bestaat; een container die een onbekend volume koppelt, maakt het stilletjes aan. */
87
+ async function assertVolume(volume) {
83
88
  const { docker } = (0, docker_client_1.getConnection)();
84
- // Eerst kijken of het volume er is: een container die een onbekend volume koppelt, laat Docker
85
- // het stilletjes aanmaken, en dan maak je een lege back-up van een volume dat nooit bestond.
86
89
  try {
87
90
  await docker.getVolume(volume).inspect();
88
91
  }
@@ -98,6 +101,16 @@ async function withHelper(volume, readOnly, work) {
98
101
  }
99
102
  throw err;
100
103
  }
104
+ }
105
+ /**
106
+ * De hulpcontainer met deze koppelingen (`volume:/pad[:ro]`); eerst kijken of de volumes in `check`
107
+ * bestaan. Bij kopiëren (fase 65) hangen er twee volumes aan, bij de back-up één.
108
+ */
109
+ async function withHelperMounts(check, binds, work) {
110
+ const { docker } = (0, docker_client_1.getConnection)();
111
+ for (const volume of check) {
112
+ await assertVolume(volume);
113
+ }
101
114
  const image = `${HELPER_IMAGE}:${HELPER_TAG}`;
102
115
  const imported = (await docker.importImage(emptyTar(), { repo: HELPER_IMAGE, tag: HELPER_TAG }));
103
116
  // Het antwoord van import is een stroom met voortgang; pas als die klaar is, bestaat het image.
@@ -111,7 +124,7 @@ async function withHelper(volume, readOnly, work) {
111
124
  // Wordt nooit gestart, maar zonder Cmd weigert Docker een image zonder eigen opdracht.
112
125
  Cmd: ['niet-starten'],
113
126
  Labels: { 'docker-desktop-mx.helper': 'volume-backup' },
114
- HostConfig: { Binds: [`${volume}:${MOUNT}${readOnly ? ':ro' : ''}`] },
127
+ HostConfig: { Binds: [...binds] },
115
128
  });
116
129
  try {
117
130
  return await work(container);
@@ -1 +1 @@
1
- {"version":3,"file":"volume-backup.js","sourceRoot":"","sources":["../electron/volume-backup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"volume-backup.js","sourceRoot":"","sources":["../electron/volume-backup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.stripRoot = stripRoot;
37
+ exports.listVolumeUsers = listVolumeUsers;
38
+ exports.copyVolume = copyVolume;
39
+ const tar = __importStar(require("tar-stream"));
40
+ const docker_client_1 = require("./docker-client");
41
+ const i18n_1 = require("./i18n");
42
+ const volume_backup_1 = require("./volume-backup");
43
+ /**
44
+ * Een volume kopiëren naar een nieuw volume (fase 65), bijvoorbeeld voordat je een database bijwerkt.
45
+ *
46
+ * Met dezelfde hulpcontainer als de back-up (fase 18), die nooit start: de bron hangt alleen-lezen
47
+ * aan `/from`, het nieuwe volume aan `/to`. De inhoud gaat als tar van de een naar de ander, via de
48
+ * Engine API; `copyUIDGID` houdt eigenaars en rechten heel, zoals `cp -a`.
49
+ *
50
+ * Nooit over een bestaand volume heen: kopiëren in een volume met data is precies wat je niet wilt.
51
+ */
52
+ const FROM = 'from';
53
+ /** Wat Docker als volumenaam toestaat. */
54
+ const VOLUME_NAME = /^[a-zA-Z0-9][a-zA-Z0-9_.-]+$/;
55
+ /** `from/data/x` wordt `data/x`; de map zelf (`from`, `from/`) valt weg, want `/to` bestaat al. */
56
+ function stripRoot(name, root = FROM) {
57
+ const trimmed = name.replace(/^\.?\//, '');
58
+ if (trimmed === root || trimmed === `${root}/`) {
59
+ return null;
60
+ }
61
+ return trimmed.startsWith(`${root}/`) ? trimmed.slice(root.length + 1) : trimmed;
62
+ }
63
+ /** Het archief van `/from`, met de namen zo dat het in `/to` uitgepakt kan worden. */
64
+ function rebase(source) {
65
+ const extract = tar.extract();
66
+ const pack = tar.pack();
67
+ extract.on('entry', (header, stream, next) => {
68
+ const name = stripRoot(header.name);
69
+ if (name === null) {
70
+ stream.on('end', next);
71
+ stream.resume();
72
+ return;
73
+ }
74
+ // Een harde link wijst naar een ander bestand in hetzelfde archief; die naam verschuift mee.
75
+ const linkname = header.type === 'link' && header.linkname !== undefined && header.linkname !== null ? (stripRoot(header.linkname) ?? header.linkname) : header.linkname;
76
+ stream.pipe(pack.entry({ ...header, name, linkname }, next));
77
+ });
78
+ extract.on('finish', () => pack.finalize());
79
+ extract.on('error', (err) => pack.destroy(err));
80
+ source.on('error', (err) => extract.destroy(err));
81
+ source.pipe(extract);
82
+ return pack;
83
+ }
84
+ /** Wie het volume gebruikt, zodat de dialoog kan zeggen wat je beter eerst stopt. */
85
+ async function listVolumeUsers(volume) {
86
+ const listed = await (0, docker_client_1.getConnection)().docker.listContainers({ all: true, filters: { volume: [volume] } });
87
+ return listed
88
+ .map((container) => ({ name: (container.Names[0] ?? container.Id).replace(/^\//, ''), running: container.State === 'running' }))
89
+ .sort((a, b) => a.name.localeCompare(b.name));
90
+ }
91
+ /** Kopieert `source` naar een nieuw volume `target`; mislukt het, dan gaat het halve volume weer weg. */
92
+ async function copyVolume(source, target) {
93
+ const { docker } = (0, docker_client_1.getConnection)();
94
+ if (!VOLUME_NAME.test(target)) {
95
+ return {
96
+ ok: false,
97
+ problem: (0, i18n_1.t)({
98
+ en: 'A volume name starts with a letter or digit, followed by letters, digits, _ . or -.',
99
+ nl: 'Een volumenaam begint met een letter of cijfer, gevolgd door letters, cijfers, _ . of -.',
100
+ de: 'Ein Volume-Name beginnt mit einem Buchstaben oder einer Ziffer, gefolgt von Buchstaben, Ziffern, _ . oder -.',
101
+ fr: 'Un nom de volume commence par une lettre ou un chiffre, suivi de lettres, chiffres, _ . ou -.',
102
+ es: 'Un nombre de volume empieza por una letra o cifra, seguida de letras, cifras, _ . o -.',
103
+ }),
104
+ };
105
+ }
106
+ const exists = await docker
107
+ .getVolume(target)
108
+ .inspect()
109
+ .then(() => true)
110
+ .catch(() => false);
111
+ if (exists) {
112
+ return {
113
+ ok: false,
114
+ problem: (0, i18n_1.t)({
115
+ en: `A volume named ${target} already exists; copying over it could mix the data.`,
116
+ nl: `Er is al een volume ${target}; eroverheen kopiëren zou de gegevens door elkaar halen.`,
117
+ de: `Es gibt bereits ein Volume ${target}; darüber zu kopieren würde die Daten vermischen.`,
118
+ fr: `Un volume ${target} existe déjà ; copier par-dessus mélangerait les données.`,
119
+ es: `Ya existe un volume ${target}; copiar encima mezclaría los datos.`,
120
+ }),
121
+ };
122
+ }
123
+ try {
124
+ await docker.createVolume({ Name: target });
125
+ }
126
+ catch (err) {
127
+ return { ok: false, problem: (0, docker_client_1.readableError)(err, (0, docker_client_1.getConnection)().endpoint).message };
128
+ }
129
+ try {
130
+ await (0, volume_backup_1.withHelperMounts)([source, target], [`${source}:/${FROM}:ro`, `${target}:/to`], async (container) => {
131
+ const archive = (await container.getArchive({ path: `/${FROM}` }));
132
+ await container.putArchive(rebase(archive), { path: '/to', copyUIDGID: '1' });
133
+ });
134
+ return { ok: true };
135
+ }
136
+ catch (err) {
137
+ // Een half gevuld volume ziet eruit als een kopie; dan liever geen.
138
+ await docker
139
+ .getVolume(target)
140
+ .remove()
141
+ .catch(() => undefined);
142
+ return { ok: false, problem: err instanceof Error ? err.message : String(err) };
143
+ }
144
+ }
145
+ //# sourceMappingURL=volume-copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volume-copy.js","sourceRoot":"","sources":["../electron/volume-copy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "docker-client-mx",
3
- "version": "1.40.0",
3
+ "version": "1.42.0",
4
4
  "description": "A desktop client for Docker in WSL, without Docker Desktop: containers, images, volumes, networks, compose and logs.",
5
5
  "keywords": [
6
6
  "docker",
@@ -1 +0,0 @@
1
- import{$n as sk,$t as bg,Bn as ok,Ct as Tg,D as HE,Dn as kc,En as kE,F as Jm,Fn as nS,G as Nc,Gn as pj,Gt as _m,L as Kr,Nn as mg,Nt as W,Pn as mj,Pt as Wm,Q as Oi,Qn as sg,St as Tc,Tn as jc,U as My,Wn as pg,Xn as rf,Xt as bS,Z as Od,_t as Sc,br as yS,bt as TE,cn as f,cr as ve,et as Ot$1,gr as wt$1,ht as SE,jn as lk,l as C,ln as fS,lr as vg,lt as RE,mr as wc,on as eH,or as vS,qt as ag,r as Ac,rn as dk,s as Br,sn as ec,w as Gm,xn as hg,z as Ld}from"./chunk-DEsPgcXV.js";import{n as u,t as f$1}from"./chunk-MpnWAfxv.js";import"./chunk-Ds9stAVj.js";import{i as h,n as N,r as d}from"./chunk-wVwXBw1N.js";import{n as h$1,t as P}from"./chunk-8P32TlCt.js";import{n as o,t as i}from"./chunk-Bn40KMmY.js";import{n as p,t as M}from"./chunk-CC_wIdx2.js";import"./chunk-CHFuuSv8.js";import"./chunk-Bw7Mtap6.js";import{_ as pn,d as dn,f as fn,g as ln,l as an,m as ie,r as Je,u as cn,v as un}from"./chunk-BfC3KqGQ.js";import{n as x,t as u$1}from"./chunk-Doow6WqE.js";import{r as Q,s as fe,u as ra}from"./chunk-CaYY-6hH.js";import{n as P$1,t as K}from"./chunk-lLCuDcp6.js";import{n as W$1,t as J}from"./chunk-DGtAiSbg.js";import{n as V,t as G}from"./chunk-CmtjDUsV.js";import{i as z,n as oe,r as x$1}from"./chunk-D0pCyzqb.js";function Xe(a,e){a&1&&(Oi(0,`p`,13),fS(1),Nc()),a&2&&(ec(),pg(e))}function Ye(a,e){if(a&1&&(Oi(0,`p`,14),fS(1),Nc()),a&2){let t=HE(3);ec(),pg(t.t().empty)}}function et(a,e){if(a&1&&(Oi(0,`span`,20),fS(1),Nc()),a&2){let t=HE(5);ec(),pg(t.t().noSize)}}function tt(a,e){if(a&1){let t=RE();Oi(0,`li`,16)(1,`span`,17),fS(2),Nc(),Oi(3,`button`,18),Jm(`click`,function(){let r=Ld(t).$index;return Od(HE(4).toggle(r))}),Oi(4,`pre`,19),fS(5),Nc(),SE(6,et,2,1,`span`,20),Nc()()}if(a&2){let t=e.$implicit,n=e.$index,r=HE(4);ec(),nS(t.sizeBytes===0?`text-ink-600`:`text-ink-200`),ec(),Ac(` `,t.sizeBytes===0?`—`:r.size(t),` `),ec(),Br(`aria-label`,r.t().expand)(`aria-expanded`,r.isOpen(n)),ec(),ag(`line-clamp-2`,!r.isOpen(n)),ec(),pg(t.instruction),ec(),kE(t.sizeBytes===0?6:-1)}}function nt(a,e){if(a&1&&(Oi(0,`ul`,15),kc(1,tt,7,9,`li`,16,TE),Nc()),a&2){let t=HE(3);ec(),Tc(t.layers())}}function it(a,e){if(a&1&&(Oi(0,`p`,12),fS(1),Nc(),SE(2,Xe,2,1,`p`,13),SE(3,Ye,2,1,`p`,14)(4,nt,3,0,`ul`,15)),a&2){let t,n=HE(2);ec(),pg(n.summary()),ec(),kE((t=n.packed())?2:-1,t),ec(),kE(n.layers().length===0?3:4)}}function at(a,e){if(a&1&&(Oi(0,`p`,7),fS(1),Nc()),a&2){let t=HE(2);ec(),Ac(` `,t.problem(),` `)}}function rt(a,e){if(a&1&&(Oi(0,`p`,8),fS(1),Nc()),a&2){let t=HE(2);ec(),pg(t.t().loading)}}function ot(a,e){if(a&1&&(Gm(0,`div`,2),Oi(1,`div`,3)(2,`div`,4)(3,`h2`,5),fS(4),Nc(),Oi(5,`p`,6),fS(6),Nc(),SE(7,it,5,3)(8,at,2,1,`p`,7)(9,rt,2,1,`p`,8),Oi(10,`div`,9)(11,`button`,10),Gm(12,`app-icon`,11),fS(13),Nc()()()()),a&2){let t,n=HE();ec(4),pg(n.t().title(n.reference())),ec(2),pg(n.t().description),ec(),kE((t=n.result()?.ok)===!0?7:t===!1?8:9),ec(5),Wm(`size`,14),ec(),Ac(` `,n.common().close,` `)}}var ue;var Fe=f(()=>{Kr();Je();lk();h();dk();sk();Kr();ue=class a{open=mj(!1);reference=jc.required();t=Ot$1(()=>ok().images.layers);common=Ot$1(()=>ok().common);result=wt$1(null);expanded=wt$1(new Set);constructor(){rf(()=>{if(!this.open())return;let e=this.reference();Tg(()=>{this.load(e)})})}layers(){let e=this.result();return e?.ok===!0?e.layers:[]}summary(){let e=this.result();return e?.ok===!0?this.t().summary(e.layers.length,d(e.imageBytes)):``}packed(){let e=this.result();return e?.ok!==!0||e.imageBytes===0||e.layersBytes>=e.imageBytes*.95?null:this.t().packed(d(e.layersBytes))}problem(){let e=this.result();return e?.ok===!1?e.problem:``}size(e){return d(e.sizeBytes)}isOpen(e){return this.expanded().has(e)}toggle(e){this.expanded.update(t=>{let n=new Set(t);return n.delete(e)||n.add(e),n})}async load(e){this.result.set(null),this.expanded.set(new Set);try{this.result.set(await window.electron.images.history(e))}catch(t){this.result.set({ok:!1,problem:eH(t)})}}static ɵfac=function(t){return new(t||a)};static ɵcmp=wc({type:a,selectors:[[`app-layers-dialog`]],inputs:{open:[1,`open`],reference:[1,`reference`]},outputs:{open:`openChange`},decls:2,vars:1,consts:[[`rdxDialogRoot`,``,3,`openChange`,`open`],[`rdxDialogPortal`,``],[`rdxDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxDialogPopup`,``,`data-testid`,`layers-dialog`,1,`flex`,`max-h-[85vh]`,`w-full`,`max-w-3xl`,`flex-col`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`p-5`,`shadow-2xl`],[`rdxDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxDialogDescription`,``,1,`mt-1`,`text-[13px]`,`text-ink-400`],[1,`mt-4`,`rounded-md`,`border`,`border-danger/40`,`bg-danger/10`,`px-3`,`py-2`,`text-[13px]`,`text-danger`],[1,`mt-4`,`text-[13px]`,`text-ink-400`],[1,`mt-4`,`flex`,`justify-end`],[`type`,`button`,`rdxDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[`data-testid`,`layers-summary`,1,`mt-3`,`text-[12px]`,`text-ink-500`],[`data-testid`,`layers-packed`,1,`mt-1`,`text-[12px]`,`text-ink-600`],[1,`mt-3`,`text-[13px]`,`text-ink-400`],[`data-testid`,`layer-list`,1,`mt-3`,`min-h-0`,`flex-1`,`divide-y`,`divide-ink-800`,`overflow-auto`],[1,`flex`,`gap-4`,`py-2.5`],[1,`w-24`,`shrink-0`,`text-right`,`text-[12px]`],[`type`,`button`,1,`mx-focus`,`min-w-0`,`flex-1`,`cursor-pointer`,`text-left`,3,`click`],[1,`font-mono`,`text-[12px]`,`leading-relaxed`,`whitespace-pre-wrap`,`text-ink-200`],[1,`mt-0.5`,`block`,`text-[11px]`,`text-ink-600`]],template:function(t,n){t&1&&(Oi(0,`div`,0),vg(`openChange`,function(d){return vS(n.open,d)||(n.open=d),d}),_m(1,ot,14,5,`ng-template`,1),Nc()),t&2&&hg(`open`,n.open)},dependencies:[ie,ln,an,pn,cn,fn,dn,un,My],encapsulation:2})}});function dt(a,e){if(a&1&&(Oi(0,`div`,19)(1,`span`,20),fS(2),Nc(),Oi(3,`span`,21),fS(4),Nc(),Oi(5,`span`,22),Gm(6,`span`,23),Nc(),Oi(7,`span`,24),fS(8),Nc()()),a&2){let t=e.$implicit,n=HE(4);ec(),Wm(`title`,t.id),ec(),pg(t.id),ec(),Wm(`title`,t.status),ec(),pg(t.status),ec(2),sg(`width`,n.percentOf(t),`%`),ec(2),pg(n.sizeOf(t.total))}}function pt(a,e){if(a&1&&(Oi(0,`div`,18),kc(1,dt,9,7,`div`,19,lt),Nc()),a&2){let t=HE();ec(),Tc(t.layers)}}function ct(a,e){if(a&1&&(Oi(0,`p`,17),fS(1),Nc(),SE(2,pt,3,0,`div`,18)),a&2){let t=e;ag(`text-danger`,t.problem)(`text-ink-300`,!t.problem),ec(),Ac(` `,t.problem??t.message,` `),ec(),kE(t.layers.length>0?2:-1)}}function mt(a,e){if(a&1&&(Oi(0,`li`)(1,`span`,7),fS(2),Nc(),Oi(3,`span`,28),fS(4),Nc()()),a&2){let t=e.$implicit,n=HE(3);ec(2),pg(t.services.join(`, `)),ec(2),Ac(` `,n.t().inProject(t.name))}}function ut(a,e){if(a&1&&(Oi(0,`li`)(1,`span`,7),fS(2),Nc(),Oi(3,`span`,28),fS(4),Nc()()),a&2){let t=e.$implicit,n=HE(3);ec(2),pg(t),ec(2),Ac(` — `,n.t().notCompose)}}function gt(a,e){if(a&1&&(Oi(0,`p`,29),fS(1),Nc()),a&2){let t=HE(),n=HE(3);ec(),pg(n.t().renewed(t.renewed.join(`, `)))}}function _t(a,e){if(a&1&&(Oi(0,`p`,30),fS(1),Nc()),a&2){let t=e.$implicit;ec(),pg(t)}}function xt(a,e){if(a&1&&(SE(0,gt,2,1,`p`,29),kc(1,_t,2,1,`p`,30,Sc)),a&2){let t=e;kE(t.renewed.length>0?0:-1),ec(),Tc(t.problems)}}function yt(a,e){if(a&1){let t=RE();Oi(0,`div`,27)(1,`button`,31),Jm(`click`,function(){Ld(t);return Od(HE(3).renew())}),Gm(2,`app-icon`,32),fS(3),Nc(),Oi(4,`span`,33),fS(5),Nc()()}if(a&2){let t=HE(3);ec(),Wm(`disabled`,t.renewing()),ec(),Wm(`size`,14),ec(),Ac(` `,t.renewing()?t.t().renewing:t.t().renew,` `),ec(2),pg(t.t().renewHint)}}function ft(a,e){if(a&1&&(Oi(0,`div`,11)(1,`p`,25),fS(2),Nc(),Oi(3,`ul`,26),kc(4,mt,5,2,`li`,null,st),kc(6,ut,5,2,`li`,null,Sc),Nc(),SE(8,xt,3,1)(9,yt,6,4,`div`,27),Nc()),a&2){let t,n=e,r=HE(2);ec(2),pg(r.t().staleHeading),ec(2),Tc(n.projects),ec(2),Tc(n.loose),ec(2),kE((t=r.renewed())?8:n.projects.length>0?9:-1,t)}}function vt(a,e){if(a&1){let t=RE();Gm(0,`div`,2),Oi(1,`div`,3)(2,`div`,4)(3,`h2`,5),fS(4),Nc(),Oi(5,`p`,6),fS(6),Oi(7,`code`,7),fS(8,`nginx:stable-alpine`),Nc(),fS(9),Oi(10,`code`,7),fS(11,`latest`),Nc(),fS(12),Nc(),Oi(13,`form`,8),Jm(`submit`,function(r){Ld(t);return Od(HE().submit(r))}),Oi(14,`label`,9),fS(15),Nc(),Oi(16,`input`,10),Jm(`input`,function(r){Ld(t);return Od(HE().reference.set(r.target.value))}),Nc()(),SE(17,ct,3,6),SE(18,ft,10,2,`div`,11),Oi(19,`div`,12)(20,`button`,13),Gm(21,`app-icon`,14),fS(22),Nc(),Oi(23,`button`,15),Gm(24,`app-icon`,16),fS(25),Nc()()()()}if(a&2){let t,n,r=HE();ec(4),pg(r.t().title),ec(2),Ac(` `,r.t().nameAndTag,` `),ec(3),Ac(`. `,r.t().withoutTag,` `),ec(3),Ac(` `,r.t().isUsed,` `),ec(3),pg(r.t().inputLabel),ec(),Wm(`value`,r.reference())(`disabled`,r.busy()),ec(),kE((t=r.progress())?17:-1,t),ec(),kE((n=r.staleShown())?18:-1,n),ec(3),Wm(`size`,14),ec(),Ac(` `,r.finished()?r.common().close:r.common().cancel,` `),ec(),Wm(`disabled`,!r.canPull()),ec(),Wm(`size`,14),ec(),Ac(` `,r.t().submit,` `)}}var lt;var st;var we;var ge;var $e=f(()=>{Kr();Je();h();dk();lk();sk();Kr();lt=(a,e)=>e.id,st=(a,e)=>e.name;we=class{constructor(e){this.onProgress=e}onProgress;streamId=null;unsubscribe=null;disposed=!1;async start(e){this.stop(),this.disposed=!1;let t=await window.electron.images.pull(e);return t.ok?this.disposed?(window.electron.images.close(t.streamId),null):(this.streamId=t.streamId,this.unsubscribe=window.electron.images.onPullProgress(t.streamId,this.onProgress),null):t.problem}stop(){this.disposed=!0,this.unsubscribe?.(),this.unsubscribe=null,this.streamId!==null&&(window.electron.images.close(this.streamId),this.streamId=null)}},ge=class a{open=mj(!1);t=Ot$1(()=>ok().images.pullDialog);common=Ot$1(()=>ok().common);preset=jc(null);reference=wt$1(``);progress=wt$1(null);busy=wt$1(!1);finished=Ot$1(()=>this.progress()?.done??!1);stale=wt$1(null);renewing=wt$1(!1);renewed=wt$1(null);staleShown=Ot$1(()=>{let e=this.stale();return e!==null&&(e.projects.length>0||e.loose.length>0)?e:null});pulled=wt$1(``);canPull=Ot$1(()=>{let e=this.reference().trim();if(this.busy()||e===``)return!1;let t=this.progress();return!(t?.done===!0&&t.problem===null&&e===this.pulled())});run=new we(e=>{this.progress.set(e),e.done&&(this.busy.set(!1),e.problem===null&&this.lookForStale(this.pulled()))});constructor(){C(ve).onDestroy(()=>this.run.stop()),rf(()=>{let e=this.preset();this.open()&&Tg(()=>{this.busy()||this.clear(),e!==null&&(this.reference.set(e),this.pull())})})}clear(){this.reference.set(``),this.progress.set(null),this.stale.set(null),this.renewed.set(null),this.pulled.set(``)}submit(e){e.preventDefault(),this.pull()}pull(){let e=this.reference().trim();this.canPull()&&(this.busy.set(!0),this.progress.set(null),this.stale.set(null),this.renewed.set(null),this.pulled.set(e),this.run.start(e).then(t=>{t!==null&&this.fail(e,t)}).catch(t=>this.fail(e,eH(t))))}async lookForStale(e){try{let t=await window.electron.images.staleContainers(e);e===this.pulled()&&this.stale.set(t)}catch{this.stale.set(null)}}renew(){let e=this.pulled();this.renewing.set(!0),window.electron.images.renew(e).then(t=>this.renewed.set(t)).catch(t=>this.renewed.set({renewed:[],problems:[eH(t)]})).finally(()=>this.renewing.set(!1))}fail(e,t){this.busy.set(!1),this.progress.set({reference:e,layers:[],message:``,done:!0,problem:t})}percentOf(e){return/complete|already exists/i.test(e.status)?100:e.total<=0?0:Math.min(100,e.current/e.total*100)}sizeOf(e){return e<=0?``:d(e)}static ɵfac=function(t){return new(t||a)};static ɵcmp=wc({type:a,selectors:[[`app-pull-dialog`]],inputs:{open:[1,`open`],preset:[1,`preset`]},outputs:{open:`openChange`},decls:2,vars:1,consts:[[`rdxDialogRoot`,``,3,`openChange`,`open`],[`rdxDialogPortal`,``],[`rdxDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxDialogPopup`,``,1,`w-full`,`max-w-3xl`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`p-5`,`shadow-2xl`],[`rdxDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxDialogDescription`,``,1,`mt-1`,`text-[13px]`,`text-ink-400`],[1,`font-mono`],[`id`,`pull-form`,1,`mt-4`,3,`submit`],[`for`,`pull-reference`,1,`sr-only`],[`id`,`pull-reference`,`type`,`text`,`placeholder`,`nginx:stable-alpine`,`autocomplete`,`off`,`spellcheck`,`false`,1,`mx-focus`,`w-full`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-800`,`px-3`,`py-1.5`,`text-[13px]`,`text-ink-100`,`placeholder:text-ink-500`,3,`input`,`value`,`disabled`],[`data-stale`,``,1,`mt-4`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-800`,`px-3`,`py-2.5`,`text-[13px]`],[1,`mt-5`,`flex`,`justify-end`,`gap-2`],[`type`,`button`,`rdxDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[`type`,`submit`,`form`,`pull-form`,1,`mx-btn`,`mx-focus`,`border-accent`,`text-accent`,3,`disabled`],[`name`,`download`,3,`size`],[1,`mt-4`,`text-[13px]`],[1,`mt-3`,`max-h-64`,`space-y-1.5`,`overflow-y-auto`,`pr-1`],[1,`flex`,`items-center`,`gap-4`,`text-[12px]`],[1,`w-28`,`shrink-0`,`truncate`,`font-mono`,`text-ink-500`,3,`title`],[1,`w-44`,`shrink-0`,`truncate`,`text-ink-400`,3,`title`],[1,`h-1.5`,`min-w-0`,`flex-1`,`overflow-hidden`,`rounded-full`,`bg-ink-800`],[1,`block`,`h-full`,`rounded-full`,`bg-accent`,`transition-[width]`],[1,`w-20`,`shrink-0`,`text-right`,`tabular-nums`,`text-ink-500`],[1,`text-ink-200`],[1,`mt-1.5`,`space-y-0.5`,`text-ink-300`],[1,`mt-2.5`,`flex`,`items-center`,`gap-3`],[1,`text-ink-500`],[1,`mt-2`,`text-ok`],[1,`mt-2`,`text-danger`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`click`,`disabled`],[`name`,`refresh`,3,`size`],[1,`text-[12px]`,`text-ink-500`]],template:function(t,n){t&1&&(Oi(0,`div`,0),vg(`openChange`,function(d){return vS(n.open,d)||(n.open=d),d}),_m(1,vt,26,14,`ng-template`,1),Nc()),t&2&&hg(`open`,n.open)},dependencies:[ie,ln,an,pn,cn,fn,dn,un,My],encapsulation:2})}});function bt(a,e){if(a&1&&(Oi(0,`option`,22),fS(1),Nc()),a&2){let t=e.$implicit,n=HE(2);Wm(`value`,t.name)(`selected`,n.network()===t.name),ec(),pg(t.name)}}function wt(a,e){if(a&1){let t=RE();Oi(0,`label`,23)(1,`span`,13),fS(2),Nc(),Oi(3,`input`,14),Jm(`input`,function(r){Ld(t);return Od(HE(2).networkAlias.set(r.target.value))}),Nc(),Oi(4,`span`,35),fS(5),Nc()()}if(a&2){let t=HE(2);ec(2),pg(t.t().networkAlias),ec(),nS(t.field+` mt-1.5 w-full`),Wm(`placeholder`,t.t().networkAliasPlaceholder)(`value`,t.networkAlias()),Br(`aria-label`,t.t().networkAlias),ec(2),pg(t.t().networkAliasHint)}}function kt(a,e){if(a&1){let t=RE();Oi(0,`input`,37),Jm(`input`,function(r){let d=Ld(t).$index;return Od(HE(3).setPort(d,{host:r.target.value}))}),Nc(),Oi(1,`span`,38),fS(2,`→`),Nc(),Oi(3,`input`,39),Jm(`input`,function(r){let d=Ld(t).$index;return Od(HE(3).setPort(d,{container:r.target.value}))}),Nc(),Oi(4,`select`,20),Jm(`change`,function(r){let d=Ld(t).$index;return Od(HE(3).setPort(d,{protocol:r.target.value}))}),Oi(5,`option`,40),fS(6,`tcp`),Nc(),Oi(7,`option`,41),fS(8,`udp`),Nc()(),Oi(9,`button`,25),Jm(`click`,function(){let r=Ld(t).$index;return Od(HE(3).removePort(r))}),Gm(10,`app-icon`,42),Nc()}if(a&2){let t=e.$implicit,n=e.$index,r=HE(3);nS(r.field),Wm(`placeholder`,r.t().hostPortPlaceholder)(`value`,t.host),Br(`aria-label`,r.t().hostPort(n+1)),ec(3),nS(r.field),Wm(`value`,t.container),Br(`aria-label`,r.t().containerPort(n+1)),ec(),nS(r.field),Br(`aria-label`,r.t().protocol(n+1)),ec(),Wm(`selected`,t.protocol===`tcp`),ec(2),Wm(`selected`,t.protocol===`udp`),ec(2),nS(r.removeButton),Br(`aria-label`,r.t().removePort(n+1)),ec(),Wm(`size`,14)}}function Ct(a,e){if(a&1&&(Oi(0,`div`,24)(1,`span`,36),fS(2),Nc(),Gm(3,`span`),Oi(4,`span`,36),fS(5),Nc(),Oi(6,`span`,36),fS(7),Nc(),Gm(8,`span`),kc(9,kt,11,18,null,null,TE),Nc()),a&2){let t=HE(2);ec(2),pg(t.t().onThisComputer),ec(3),pg(t.t().inContainer),ec(2),pg(t.t().protocolHeader),ec(2),Tc(t.ports())}}function Dt(a,e){if(a&1){let t=RE();Oi(0,`input`,45),Jm(`input`,function(r){let d=Ld(t).$index;return Od(HE(3).setVolume(d,{source:r.target.value}))}),Nc(),Oi(1,`span`,38),fS(2,`→`),Nc(),Oi(3,`input`,46),Jm(`input`,function(r){let d=Ld(t).$index;return Od(HE(3).setVolume(d,{target:r.target.value}))}),Nc(),Oi(4,`label`,47)(5,`input`,48),Jm(`change`,function(r){let d=Ld(t).$index;return Od(HE(3).setVolume(d,{readOnly:r.target.checked}))}),Nc(),fS(6),Nc(),Oi(7,`button`,25),Jm(`click`,function(){let r=Ld(t).$index;return Od(HE(3).removeVolume(r))}),Gm(8,`app-icon`,42),Nc()}if(a&2){let t=e.$implicit,n=e.$index,r=HE(3);nS(r.field),Wm(`placeholder`,r.t().sourcePlaceholder)(`value`,t.source),Br(`aria-label`,r.t().volumeSource(n+1)),ec(3),nS(r.field),Wm(`placeholder`,r.t().targetPlaceholder)(`value`,t.target),Br(`aria-label`,r.t().volumeTarget(n+1)),ec(),Wm(`title`,r.t().readOnlyHint),ec(),Wm(`checked`,t.readOnly),ec(),Ac(` `,r.t().readOnly,` `),ec(),nS(r.removeButton),Br(`aria-label`,r.t().removeVolume(n+1)),ec(),Wm(`size`,14)}}function It(a,e){if(a&1&&Gm(0,`option`,44),a&2){let t=e.$implicit;Wm(`value`,t)}}function St(a,e){if(a&1&&(Oi(0,`div`,24)(1,`span`,36),fS(2),Nc(),Gm(3,`span`),Oi(4,`span`,36),fS(5),Nc(),Gm(6,`span`)(7,`span`),kc(8,Dt,9,17,null,null,TE),Nc(),Oi(10,`datalist`,43),kc(11,It,1,1,`option`,44,Sc),Nc()),a&2){let t=HE(2);ec(2),pg(t.t().source),ec(3),pg(t.t().inContainer),ec(3),Tc(t.volumes()),ec(3),Tc(t.knownVolumes())}}function Et(a,e){if(a&1){let t=RE();Oi(0,`input`,49),Jm(`input`,function(r){let d=Ld(t).$index;return Od(HE(3).setEnvKey(d,r.target))}),Nc(),Oi(1,`span`,38),fS(2,`=`),Nc(),Oi(3,`input`,50),Jm(`input`,function(r){let d=Ld(t).$index;return Od(HE(3).setEnv(d,{value:r.target.value}))}),Nc(),Oi(4,`button`,25),Jm(`click`,function(){let r=Ld(t).$index;return Od(HE(3).removeEnv(r))}),Gm(5,`app-icon`,42),Nc()}if(a&2){let t=e.$implicit,n=e.$index,r=HE(3);nS(r.field+` font-mono`),Wm(`value`,t.key),Br(`aria-label`,r.t().envName(n+1)),ec(3),nS(r.field+` font-mono`),Wm(`value`,t.value),Br(`aria-label`,r.t().envValue(n+1))(`data-env-value`,n),ec(),nS(r.removeButton),Br(`aria-label`,r.t().removeEnv(n+1)),ec(),Wm(`size`,14)}}function Pt(a,e){if(a&1&&(Oi(0,`div`,27)(1,`span`,36),fS(2),Nc(),Gm(3,`span`),Oi(4,`span`,36),fS(5),Nc(),Gm(6,`span`),kc(7,Et,6,13,null,null,TE),Nc()),a&2){let t=HE(2);ec(2),pg(t.t().envNameHeader),ec(3),pg(t.t().envValueHeader),ec(2),Tc(t.env())}}function Tt(a,e){a&1&&(Oi(0,`p`,29),fS(1),Nc()),a&2&&(ec(),Ac(` `,e,` `))}function Rt(a,e){if(a&1){let t=RE();Gm(0,`div`,2),Oi(1,`div`,3)(2,`div`,4)(3,`div`,5)(4,`h2`,6),fS(5),Nc(),Oi(6,`p`,7)(7,`span`),fS(8),Nc(),Oi(9,`code`,8),fS(10),Nc()()(),Oi(11,`form`,9),Jm(`submit`,function(r){Ld(t);return Od(HE().submit(r))}),Oi(12,`div`,10)(13,`section`,11)(14,`label`,12)(15,`span`,13),fS(16),Nc(),Oi(17,`input`,14),Jm(`input`,function(r){Ld(t);return Od(HE().name.set(r.target.value))}),Nc()(),Oi(18,`label`,15)(19,`input`,16),Jm(`change`,function(r){Ld(t);return Od(HE().autoRestart.set(r.target.checked))}),Nc(),Oi(20,`span`)(21,`span`,17),fS(22),Nc(),Oi(23,`span`,18),fS(24),Nc()()()(),Oi(25,`section`)(26,`h3`,13),fS(27),Nc(),Oi(28,`p`,19),fS(29),Nc(),Oi(30,`select`,20),Jm(`change`,function(r){Ld(t);return Od(HE().setNetwork(r.target.value))}),Oi(31,`option`,21),fS(32),Nc(),kc(33,bt,2,3,`option`,22,ht),Nc(),SE(35,wt,6,7,`label`,23),Nc(),Oi(36,`section`)(37,`h3`,13),fS(38),Nc(),Oi(39,`p`,19),fS(40),Nc(),SE(41,Ct,11,3,`div`,24),Oi(42,`button`,25),Jm(`click`,function(){Ld(t);return Od(HE().addPort())}),Gm(43,`app-icon`,26),fS(44),Nc()(),Oi(45,`section`)(46,`h3`,13),fS(47),Nc(),Oi(48,`p`,19),fS(49),Nc(),SE(50,St,13,2),Oi(51,`button`,25),Jm(`click`,function(){Ld(t);return Od(HE().addVolume())}),Gm(52,`app-icon`,26),fS(53),Nc()(),Oi(54,`section`)(55,`h3`,13),fS(56),Nc(),Oi(57,`p`,19),fS(58),Nc(),SE(59,Pt,9,2,`div`,27),Oi(60,`button`,25),Jm(`click`,function(){Ld(t);return Od(HE().addEnv())}),Gm(61,`app-icon`,26),fS(62),Nc()()(),Oi(63,`div`,28),SE(64,Tt,2,1,`p`,29),Oi(65,`div`,30)(66,`button`,31),Gm(67,`app-icon`,32),fS(68),Nc(),Oi(69,`button`,33),Gm(70,`app-icon`,34),fS(71),Nc()()()()()()}if(a&2){let t,n=HE();ec(5),pg(n.t().title),ec(3),pg(n.t().fromImage),ec(2),pg(n.image()),ec(6),pg(n.t().name),ec(),nS(n.field+` mt-1.5 w-full`),Wm(`placeholder`,n.t().namePlaceholder)(`value`,n.name()),ec(2),Wm(`checked`,n.autoRestart()),ec(3),pg(n.t().autoRestart),ec(2),pg(n.t().autoRestartHint),ec(3),pg(n.t().network),ec(2),pg(n.t().networkHint),ec(),nS(n.field+` mt-3 w-full`),Br(`aria-label`,n.t().network),ec(),Wm(`selected`,n.network()===``),ec(),pg(n.t().networkDefault),ec(),Tc(n.selectableNetworks()),ec(2),kE(n.canAlias()?35:-1),ec(3),pg(n.t().ports),ec(2),pg(n.t().portsHint),ec(),kE(n.ports().length>0?41:-1),ec(),nS(n.addButton),Br(`aria-label`,n.t().addPort),ec(),Wm(`size`,14),ec(),Ac(` `,n.t().addPort,` `),ec(3),pg(n.t().volumes),ec(2),pg(n.t().volumesHint),ec(),kE(n.volumes().length>0?50:-1),ec(),nS(n.addButton),Br(`aria-label`,n.t().addVolume),ec(),Wm(`size`,14),ec(),Ac(` `,n.t().addVolume,` `),ec(3),pg(n.t().env),ec(2),pg(n.t().envHint),ec(),kE(n.env().length>0?59:-1),ec(),nS(n.addButton),Br(`aria-label`,n.t().addEnv),ec(),Wm(`size`,14),ec(),Ac(` `,n.t().addEnv,` `),ec(2),kE((t=n.problem())?64:-1,t),ec(3),Wm(`size`,14),ec(),Ac(` `,n.common().cancel,` `),ec(),Wm(`disabled`,!n.canSubmit()),ec(),Wm(`size`,14),ec(),Ac(` `,n.busy()?n.t().starting:n.t().submit,` `)}}var ht;var Mt;var Nt;var Vt;var _e;var Ue=f(()=>{Kr();Je();P();dk();lk();sk();Kr();ht=(a,e)=>e.id;Mt=`mx-focus min-w-0 rounded-md border border-ink-700 bg-ink-800 px-2.5 py-1.5 text-[13px] text-ink-100 placeholder:text-ink-500`,Nt=`mx-focus mt-2 inline-flex cursor-pointer items-center gap-1.5 rounded-md border border-dashed border-ink-700 px-2.5 py-1 text-[12px] text-ink-300 hover:border-ink-500 hover:text-ink-100`,Vt=`mx-focus grid size-8 cursor-pointer place-items-center rounded text-ink-400 hover:text-danger`,_e=class a{open=mj(!1);image=jc(``);started=pj();store=C(h$1);t=Ot$1(()=>ok().images.runDialog);common=Ot$1(()=>ok().common);field=Mt;addButton=Nt;removeButton=Vt;name=wt$1(``);autoRestart=wt$1(!1);knownVolumes=wt$1([]);knownNetworks=wt$1([]);network=wt$1(``);networkAlias=wt$1(``);ports=wt$1([]);volumes=wt$1([]);env=wt$1([]);problem=wt$1(null);busy=wt$1(!1);canSubmit=Ot$1(()=>!this.busy()&&this.image()!==``);selectableNetworks=Ot$1(()=>this.knownNetworks().filter(e=>e.name!==`bridge`));canAlias=Ot$1(()=>{let e=this.network();return e!==``&&this.knownNetworks().some(t=>t.name===e&&!t.builtIn)});constructor(){rf(()=>{this.open()&&(this.loadVolumes(),this.loadNetworks())})}async loadVolumes(){try{this.knownVolumes.set((await window.electron.volumes.list()).map(e=>e.name))}catch{this.knownVolumes.set([])}}async loadNetworks(){try{this.knownNetworks.set(await window.electron.networks.list())}catch{this.knownNetworks.set([])}}setNetwork(e){this.network.set(e),this.canAlias()||this.networkAlias.set(``)}addPort(){this.ports.update(e=>[...e,{host:``,container:``,protocol:`tcp`}])}addVolume(){this.volumes.update(e=>[...e,{source:``,target:``,readOnly:!1}])}addEnv(){this.env.update(e=>[...e,{key:``,value:``}])}removePort(e){this.ports.update(t=>t.filter((n,r)=>r!==e))}removeVolume(e){this.volumes.update(t=>t.filter((n,r)=>r!==e))}removeEnv(e){this.env.update(t=>t.filter((n,r)=>r!==e))}setPort(e,t){this.ports.update(n=>n.map((r,d)=>d===e?W(W({},r),t):r))}setVolume(e,t){this.volumes.update(n=>n.map((r,d)=>d===e?W(W({},r),t):r))}setEnv(e,t){this.env.update(n=>n.map((r,d)=>d===e?W(W({},r),t):r))}setEnvKey(e,t){let n=t.value,r=n.indexOf(`=`);if(r<=0){this.setEnv(e,{key:n});return}let d=n.slice(0,r),w=n.slice(r+1);this.setEnv(e,w===``?{key:d}:{key:d,value:w}),t.value=d,t.parentElement?.querySelector(`input[data-env-value="${String(e)}"]`)?.focus()}async submit(e){if(e.preventDefault(),!this.canSubmit())return;let t=this.collect();if(typeof t==`string`){this.problem.set(t);return}this.busy.set(!0),this.problem.set(null);try{let n=await window.electron.images.run(t);if(!n.ok){this.problem.set(n.problem);return}this.reset(),this.open.set(!1),this.started.emit(n.id),this.store.refresh()}catch(n){this.problem.set(eH(n))}finally{this.busy.set(!1)}}collect(){let e=this.t(),t=[];for(let P of this.ports()){let T=Number(P.container.trim());if(!Number.isInteger(T)||T<1||T>65535)return e.invalidContainerPort(P.container);let H=P.host.trim(),ae=H===``?null:Number(H);if(ae!==null&&(!Number.isInteger(ae)||ae<1||ae>65535))return e.invalidHostPort(P.host);t.push({hostPort:ae,containerPort:T,protocol:P.protocol})}let n=[];for(let P of this.volumes()){let T=P.source.trim(),H=P.target.trim();if(T===``||H===``)return e.volumeIncomplete;if(!H.startsWith(`/`))return e.notAbsolute(H);n.push({source:T,target:H,readOnly:P.readOnly})}let r=[];for(let P of this.env()){let T=P.key.trim();if(T===``)return e.envNameMissing;if(T.includes(`=`))return e.envNameWithEquals(T);r.push({key:T,value:P.value})}let d=this.name().trim(),w=this.network(),q=this.canAlias()?this.networkAlias().trim():``;return q!==``&&!/^[\w][\w.-]*$/.test(q)?e.invalidAlias(q):{image:this.image(),name:d===``?null:d,ports:t,volumes:n,env:r,network:w===``?null:w,networkAlias:q===``?null:q,restart:this.autoRestart()?`unless-stopped`:`no`}}reset(){this.name.set(``),this.autoRestart.set(!1),this.network.set(``),this.networkAlias.set(``),this.ports.set([]),this.volumes.set([]),this.env.set([]),this.problem.set(null)}static ɵfac=function(t){return new(t||a)};static ɵcmp=wc({type:a,selectors:[[`app-run-dialog`]],inputs:{open:[1,`open`],image:[1,`image`]},outputs:{open:`openChange`,started:`started`},decls:2,vars:1,consts:[[`rdxDialogRoot`,``,3,`openChange`,`open`],[`rdxDialogPortal`,``],[`rdxDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxDialogPopup`,``,1,`flex`,`max-h-[85vh]`,`w-full`,`max-w-2xl`,`flex-col`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`shadow-2xl`],[1,`shrink-0`,`border-b`,`border-ink-800`,`px-5`,`pt-5`,`pb-4`],[`rdxDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxDialogDescription`,``,1,`mt-1.5`,`flex`,`items-center`,`gap-1.5`,`text-[13px]`,`text-ink-400`],[1,`rounded`,`bg-ink-800`,`px-1.5`,`py-0.5`,`font-mono`,`text-[12px]`,`text-ink-200`],[1,`flex`,`min-h-0`,`flex-1`,`flex-col`,3,`submit`],[1,`min-h-0`,`flex-1`,`space-y-6`,`overflow-y-auto`,`px-5`,`py-5`],[1,`space-y-3`],[1,`block`],[1,`text-[13px]`,`font-medium`,`text-ink-200`],[`type`,`text`,`autocomplete`,`off`,`spellcheck`,`false`,3,`input`,`placeholder`,`value`],[1,`flex`,`cursor-pointer`,`items-start`,`gap-2.5`],[`type`,`checkbox`,1,`mx-focus`,`mt-0.5`,`accent-accent`,3,`change`,`checked`],[1,`block`,`text-[13px]`,`text-ink-100`],[1,`block`,`text-[12px]`,`text-ink-500`],[1,`mt-0.5`,`text-[12px]`,`text-ink-500`],[3,`change`],[`value`,``,3,`selected`],[3,`value`,`selected`],[1,`mt-3`,`block`],[1,`mt-3`,`grid`,`grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)_7rem_2rem]`,`items-center`,`gap-x-2`,`gap-y-2`],[`type`,`button`,3,`click`],[`name`,`plus`,3,`size`],[1,`mt-3`,`grid`,`grid-cols-[minmax(0,2fr)_auto_minmax(0,3fr)_2rem]`,`items-center`,`gap-x-2`,`gap-y-2`],[1,`shrink-0`,`border-t`,`border-ink-800`,`px-5`,`py-3`],[`role`,`alert`,1,`mb-3`,`rounded-md`,`border`,`border-danger/40`,`bg-danger/10`,`px-3`,`py-2`,`text-[13px]`,`text-danger`],[1,`flex`,`justify-end`,`gap-2`],[`type`,`button`,`rdxDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[`type`,`submit`,1,`mx-btn`,`mx-focus`,`border-accent`,`text-accent`,3,`disabled`],[`name`,`play`,3,`size`],[1,`mt-1`,`block`,`text-[12px]`,`text-ink-500`],[1,`text-[11px]`,`tracking-wide`,`text-ink-500`,`uppercase`],[`type`,`text`,`inputmode`,`numeric`,3,`input`,`placeholder`,`value`],[1,`text-ink-500`],[`type`,`text`,`placeholder`,`80`,`inputmode`,`numeric`,3,`input`,`value`],[`value`,`tcp`,3,`selected`],[`value`,`udp`,3,`selected`],[`name`,`trash`,3,`size`],[`id`,`run-dialog-volumes`],[3,`value`],[`type`,`text`,`spellcheck`,`false`,`autocomplete`,`off`,`list`,`run-dialog-volumes`,3,`input`,`placeholder`,`value`],[`type`,`text`,`spellcheck`,`false`,`autocomplete`,`off`,3,`input`,`placeholder`,`value`],[1,`flex`,`cursor-pointer`,`items-center`,`gap-1.5`,`whitespace-nowrap`,`text-[12px]`,`text-ink-400`,3,`title`],[`type`,`checkbox`,1,`mx-focus`,`accent-accent`,3,`change`,`checked`],[`type`,`text`,`placeholder`,`TZ`,`spellcheck`,`false`,`autocomplete`,`off`,3,`input`,`value`],[`type`,`text`,`placeholder`,`Europe/Amsterdam`,`spellcheck`,`false`,`autocomplete`,`off`,3,`input`,`value`]],template:function(t,n){t&1&&(Oi(0,`div`,0),vg(`openChange`,function(d){return vS(n.open,d)||(n.open=d),d}),_m(1,Rt,72,49,`ng-template`,1),Nc()),t&2&&hg(`open`,n.open)},dependencies:[ie,ln,an,pn,cn,fn,dn,un,My],encapsulation:2})}});function zt(a,e){if(a&1&&(Oi(0,`span`,36),fS(1),Nc()),a&2){let t=HE(),n=HE();ec(),mg(``,n.sizeOf(t.done),` / `,n.sizeOf(t.total))}}function Ot(a,e){if(a&1&&(Oi(0,`span`,36),fS(1),Nc()),a&2){let t=HE(),n=HE();ec(),pg(n.sizeOf(t.done))}}function Lt(a,e){if(a&1&&(Oi(0,`div`,9)(1,`div`,34)(2,`span`,35),fS(3),Nc(),SE(4,zt,2,2,`span`,36)(5,Ot,2,1,`span`,36),Nc(),Oi(6,`div`,37),Gm(7,`div`,38),Nc()()),a&2){let t=e,n=HE();ec(3),pg(t.label),ec(),kE(t.total>0?4:t.done>0?5:-1),ec(3),sg(`width`,t.total===0?100:n.transferPercent(),`%`),ag(`animate-pulse`,t.total===0)}}function Bt(a,e){if(a&1&&(Oi(0,`span`,17),fS(1),Nc()),a&2){let t=HE();ec(),pg(t.t().refreshing)}}function Ft(a,e){if(a&1&&(Oi(0,`p`,19),fS(1),Nc()),a&2){let t=HE();ec(),pg(t.t().updatesHint)}}function $t(a,e){if(a&1){let t=RE();Oi(0,`div`,20)(1,`span`,39),fS(2),Nc(),Oi(3,`button`,40),Jm(`click`,function(){Ld(t);return Od(HE().askRemoveSelected())}),Gm(4,`app-icon`,41),fS(5),Nc()()}if(a&2){let t=HE();ec(2),pg(t.t().selected(t.selected().size)),ec(2),Wm(`size`,14),ec(),Ac(` `,t.common().remove,` `)}}function Ut(a,e){if(a&1&&(Oi(0,`span`,42),fS(1),Nc()),a&2){let t=e.$implicit;ag(`text-ink-500`,t.dangling)(`text-ink-100`,!t.dangling),Wm(`title`,t.repository),ec(),Ac(` `,t.repository,` `)}}function At(a,e){if(a&1&&(Oi(0,`span`,45),Gm(1,`app-icon`,48),fS(2),Nc()),a&2){let t=HE(2);ec(),Wm(`size`,12),ec(),Ac(` `,t.t().badge.newer,` `)}}function Wt(a,e){if(a&1&&(Oi(0,`span`,46),fS(1),Nc()),a&2){HE();let t=bS(0),n=HE();Wm(`title`,t?.problem??``),ec(),pg(n.t().badge.notInRegistry)}}function jt(a,e){if(a&1&&(Oi(0,`span`,47),Gm(1,`app-icon`,49),fS(2),Nc()),a&2){HE();let t=bS(0),n=HE();Wm(`title`,t?.problem??``),ec(),Wm(`size`,12),ec(),Ac(` `,n.t().badge.uncheckable,` `)}}function Ht(a,e){if(a&1&&(bg(0),Oi(1,`span`,43)(2,`span`,44),fS(3),Nc(),SE(4,At,3,2,`span`,45)(5,Wt,2,2,`span`,46)(6,jt,3,3,`span`,47),Nc()),a&2){let t=e.$implicit,n=yS(HE().updateOf(t));ec(2),Wm(`title`,t.tag),ec(),pg(t.tag),ec(),kE(n?.state===`update`?4:n?.state===`unknown`?5:n?.state===`error`?6:-1)}}function Kt(a,e){if(a&1&&(Oi(0,`span`,50),fS(1),Nc()),a&2){let t=e.$implicit;ec(),pg(t.shortId)}}function qt(a,e){if(a&1&&(Oi(0,`span`,51),fS(1),Nc()),a&2){let t=HE().$implicit,n=HE();ec(),pg(n.t().containerCount(t.inUseBy))}}function Qt(a,e){a&1&&(Oi(0,`span`,52),fS(1,`—`),Nc())}function Zt(a,e){if(a&1&&SE(0,qt,2,1,`span`,51)(1,Qt,2,0,`span`,52),a&2){let t=e.$implicit;kE(t.inUseBy>0?0:1)}}function Gt(a,e){if(a&1&&(Oi(0,`span`,53),fS(1),Nc()),a&2){let t=e.$implicit,n=HE();ec(),pg(n.ageOf(t.createdAt))}}function Jt(a,e){if(a&1&&(Oi(0,`span`,54),fS(1),Nc()),a&2){let t=e.$implicit,n=HE();ec(),pg(n.sizeOf(t.sizeBytes))}}function Xt(a,e){if(a&1){let t=RE();Oi(0,`div`,55)(1,`app-action-menu`,56),Jm(`picked`,function(r){let d=Ld(t).$implicit;return Od(HE().onRowMenu(r,d))}),Nc()()}if(a&2){let t=e.$implicit,n=HE();ec(),Wm(`label`,n.t().rowMenu(t.reference))(`items`,n.rowMenu(t))}}var Ae;f(()=>{Kr();ra();o();P();M();h();G();Fe();J();oe();K();dk();x();$e();Ue();sk();lk();f$1();Kr();Ae=class a{store=C(h$1);toast=C(u);router=C(fe);route=C(Q);preferences=C(p);t=Ot$1(()=>ok().images);common=Ot$1(()=>ok().common);columns=Ot$1(()=>{let e=this.t().columns;return[{key:`repository`,label:e.repository},{key:`tag`,label:e.tag,width:`230px`},{key:`shortId`,label:e.imageId,width:`120px`},{key:`inUse`,label:e.inUse,width:`110px`},{key:`created`,label:e.created,width:`150px`},{key:`size`,label:e.size,width:`100px`,align:`right`},{key:`actions`,label:e.actions,width:`84px`,align:`right`}]});loading=this.store.loading;problem=this.store.problem;pending=this.store.pending;unusedCount=this.store.unusedCount;search=wt$1(``);zoek=jc(void 0);starten=jc(void 0);lagen=jc(void 0);ophalen=jc(void 0);verwijder=jc(void 0);controleren=jc(void 0);onlyUnused=this.preferences.flag(`images.onlyUnused`);selected=wt$1(new Set);removal=wt$1(null);confirmOpen=wt$1(!1);pullOpen=wt$1(!1);pullPreset=wt$1(null);updates=this.store.updates;checkingUpdates=this.store.checkingUpdates;hasUpdates=Ot$1(()=>[...this.updates()?.values()??[]].some(e=>e.state===`update`));runOpen=wt$1(!1);runImage=wt$1(``);layersOpen=wt$1(!1);layersImage=wt$1(``);rows=Ot$1(()=>{let e=this.search().trim().toLowerCase(),t=this.onlyUnused();return this.store.images().filter(n=>t&&n.inUseBy>0?!1:e===``?!0:`${n.repository}:${n.tag} ${n.shortId}`.toLowerCase().includes(e))});totalSize=Ot$1(()=>d(this.store.totalBytes()));selectedRefs=Ot$1(()=>[...this.selected()]);trackKey=e=>e.reference;transfer=wt$1(null);transferPercent(){let e=this.transfer();return e===null||e.total===0?0:Math.min(100,e.done/e.total*100)}async saveToFile(e){this.transfer.set({label:this.t().file.saving(e),done:0,total:0});try{let t=await window.electron.images.saveToFile(e);t.ok?this.toast.success(this.t().file.saved(t.path,d(t.bytes))):t.canceled||this.toast.error(t.problem)}catch(t){this.toast.error(eH(t))}finally{this.transfer.set(null)}}async loadFromFile(){this.transfer.set({label:this.t().file.loading,done:0,total:0});try{let e=await window.electron.images.loadFromFile();e.ok?(this.toast.success(e.loaded.length===0?this.t().file.loadedNothing:this.t().file.loaded(e.loaded.join(`, `))),this.store.refresh()):e.canceled||this.toast.error(e.problem)}catch(e){this.toast.error(eH(e))}finally{this.transfer.set(null)}}constructor(){C(ve).onDestroy(window.electron.images.onFileProgress(e=>this.transfer.update(t=>t===null?null:W(W({},t),e)))),rf(()=>{let e=this.zoek();e!==void 0&&Tg(()=>this.search.set(e))}),this.fromRoute(this.starten,`starten`,e=>{this.runImage.set(e),this.runOpen.set(!0)}),this.fromRoute(this.lagen,`lagen`,e=>{this.layersImage.set(e),this.layersOpen.set(!0)}),this.fromRoute(this.ophalen,`ophalen`,e=>this.openPull(e)),this.fromRoute(this.controleren,`controleren`,()=>this.checkUpdates()),rf(()=>{let e=this.verwijder(),t=this.store.images().find(n=>n.reference===e);e!==void 0&&t!==void 0&&Tg(()=>{this.askRemove(t),i(this.router,this.route,`verwijder`)})}),this.store.refresh()}fromRoute(e,t,n){rf(()=>{let r=e();r!==void 0&&Tg(()=>{n(r),i(this.router,this.route,t)})})}menuItems=Ot$1(()=>{let e=this.t().menu;return[{id:`pull`,label:e.pull,icon:`download`},{id:`check`,label:this.checkingUpdates()?e.checking:e.check,icon:`refresh`,disabled:this.checkingUpdates()},{id:`prune-dangling`,label:e.pruneDangling,icon:`broom`,separated:!0},{id:`prune-unused`,label:e.pruneUnused,icon:`broom`},{id:`load`,label:e.load,icon:`upload`,disabled:this.transfer()!==null,separated:!0}]});onMenu(e){switch(e){case`pull`:this.openPull(null);break;case`check`:this.checkUpdates();break;case`prune-dangling`:this.askPrune(!1);break;case`prune-unused`:this.askPrune(!0);break;case`load`:this.loadFromFile();break}}checkUpdates(){this.store.checkUpdates()}openPull(e){this.pullPreset.set(e),this.pullOpen.set(!0)}pullClosed(e){this.pullOpen.set(e),e||(this.pullPreset.set(null),this.store.recheckIfChecked())}updateOf(e){return this.updates()?.get(e.reference)??null}sizeOf(e){return d(e)}ageOf(e){return N(e)}rowMenu(e){let t=this.pending().has(e.reference),n=this.t(),r=[];return this.updateOf(e)?.state===`update`&&r.push({id:`update`,label:n.rowUpdate,icon:`download`,disabled:t,hint:n.updateTitle(e.reference)}),r.push({id:`run`,label:n.rowRun,icon:`play`,disabled:t,hint:this.runLabelOf(e)},{id:`layers`,label:n.rowLayers,icon:`images`},{id:`save`,label:n.rowSave,icon:`download`,disabled:this.transfer()!==null},{id:`remove`,label:this.common().remove,icon:`trash`,disabled:t,danger:!0,separated:!0}),r}onRowMenu(e,t){e===`save`?this.saveToFile(t.reference):e===`update`?this.openPull(t.reference):e===`run`?this.askRun(t):e===`layers`?(this.layersImage.set(t.reference),this.layersOpen.set(!0)):this.askRemove(t)}askRun(e){this.runImage.set(e.reference),this.runOpen.set(!0)}goToContainer(e){this.router.navigate([`/containers`,e]).catch(()=>{})}runLabelOf(e){return e.dangling?this.t().runLabelDangling:this.t().runLabel(e.reference)}askRemove(e){let t=e.inUseBy>0,n=this.t().remove;this.removal.set({references:[e.reference],title:t?n.forceTitle:n.title,description:t?n.forceDescription(e.reference,e.inUseBy):n.description(e.reference),confirmLabel:t?n.forceConfirm:this.common().remove,force:t}),this.confirmOpen.set(!0)}askRemoveSelected(){let e=this.selectedRefs(),t=this.t().remove;this.removal.set({references:e,title:t.manyTitle,description:t.manyDescription(e.length),confirmLabel:this.common().remove,force:!1}),this.confirmOpen.set(!0)}askPrune(e){let t=this.t().prune;this.removal.set({references:[],title:e?t.allTitle:t.danglingTitle,description:e?t.allDescription:t.danglingDescription,confirmLabel:t.confirm,force:e}),this.confirmOpen.set(!0)}confirm(){let e=this.removal();e!==null&&(e.references.length===0?this.store.prune(e.force):(this.store.removeMany(e.references,e.force),this.selected.set(new Set)),this.removal.set(null))}removalTitle(){return this.removal()?.title??``}removalDescription(){return this.removal()?.description??``}removalConfirmLabel(){return this.removal()?.confirmLabel??this.common().remove}removalConfirmIcon(){return this.removal()?.references.length===0?`broom`:`trash`}static ɵfac=function(t){return new(t||a)};static ɵcmp=wc({type:a,selectors:[[`app-images-page`]],inputs:{zoek:[1,`zoek`],starten:[1,`starten`],lagen:[1,`lagen`],ophalen:[1,`ophalen`],verwijder:[1,`verwijder`],controleren:[1,`controleren`]},decls:45,vars:34,consts:[[1,`flex`,`h-full`,`flex-col`],[1,`shrink-0`,`px-6`,`pt-5`,`pb-3`],[1,`flex`,`flex-wrap`,`items-start`,`gap-4`],[1,`text-xl`,`font-semibold`,`tracking-tight`,`text-ink-100`],[1,`mt-3`,`flex`,`flex-wrap`,`gap-x-10`,`gap-y-2`],[1,`text-[12px]`,`text-ink-400`],[1,`text-[15px]`,`font-medium`,`text-ink-100`],[1,`ml-auto`],[3,`picked`,`label`,`items`],[`role`,`status`,`data-testid`,`image-transfer`,1,`mt-3`,`max-w-md`],[1,`mt-4`,`flex`,`flex-wrap`,`items-center`,`gap-4`],[1,`relative`,`flex`,`items-center`],[1,`pointer-events-none`,`absolute`,`left-2.5`,`text-ink-500`],[`name`,`search`,3,`size`],[1,`sr-only`],[`type`,`search`,1,`mx-focus`,`w-72`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`py-1.5`,`pr-3`,`pl-8`,`text-[13px]`,`text-ink-100`,`placeholder:text-ink-500`,3,`input`,`placeholder`,`value`],[3,`onChange`,`label`,`on`],[1,`text-[12px]`,`text-ink-500`],[3,`problem`],[1,`mt-2`,`text-[12px]`,`text-ink-400`],[1,`mt-3`,`flex`,`items-center`,`gap-2`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`px-3`,`py-2`],[1,`min-h-0`,`flex-1`,`overflow-y-auto`,`px-6`,`pb-6`],[3,`selectedChange`,`columns`,`rows`,`trackKey`,`selected`,`emptyMessage`],[`appCell`,`repository`],[`appCell`,`tag`],[`appCell`,`shortId`],[`appCell`,`inUse`],[`appCell`,`created`],[`appCell`,`size`],[`appCell`,`actions`],[3,`openChange`,`confirmed`,`open`,`title`,`description`,`confirmLabel`,`confirmIcon`],[3,`openChange`,`open`,`preset`],[3,`openChange`,`started`,`open`,`image`],[3,`openChange`,`open`,`reference`],[1,`flex`,`items-baseline`,`justify-between`,`text-[12px]`],[1,`text-ink-300`],[1,`text-ink-500`,`tabular-nums`],[1,`mt-1`,`h-1.5`,`w-full`,`overflow-hidden`,`rounded-full`,`bg-ink-800`],[1,`h-full`,`rounded-full`,`bg-accent`,`transition-[width]`],[1,`text-[13px]`,`text-ink-200`],[`type`,`button`,1,`mx-btn`,`mx-focus`,`ml-auto`,`text-danger`,`hover:text-danger`,3,`click`],[`name`,`trash`,3,`size`],[1,`block`,`truncate`,3,`title`],[1,`flex`,`min-w-0`,`items-center`,`gap-2`],[1,`truncate`,`text-ink-300`,3,`title`],[`data-testid`,`update-badge`,1,`flex`,`shrink-0`,`items-center`,`gap-1`,`text-[11px]`,`text-warn`],[1,`shrink-0`,`text-[11px]`,`text-ink-500`,3,`title`],[1,`flex`,`shrink-0`,`items-center`,`gap-1`,`text-[11px]`,`text-ink-500`,3,`title`],[`name`,`arrow-up`,3,`size`],[`name`,`warning`,3,`size`],[1,`font-mono`,`text-[12px]`,`text-ink-400`],[1,`text-ink-200`],[1,`text-ink-600`],[1,`text-ink-400`],[1,`tabular-nums`,`text-ink-200`],[1,`flex`,`items-center`,`justify-end`],[`compact`,``,3,`picked`,`label`,`items`]],template:function(t,n){if(t&1&&(Oi(0,`section`,0)(1,`div`,1)(2,`div`,2)(3,`div`)(4,`h1`,3),fS(5),Nc(),Oi(6,`div`,4)(7,`div`)(8,`div`,5),fS(9),Nc(),Oi(10,`div`,6),fS(11),Nc()(),Oi(12,`div`)(13,`div`,5),fS(14),Nc(),Oi(15,`div`,6),fS(16),Nc()()()(),Oi(17,`div`,7)(18,`app-action-menu`,8),Jm(`picked`,function(d){return n.onMenu(d)}),Nc()()(),SE(19,Lt,8,6,`div`,9),Oi(20,`div`,10)(21,`label`,11)(22,`span`,12),Gm(23,`app-icon`,13),Nc(),Oi(24,`span`,14),fS(25),Nc(),Oi(26,`input`,15),Jm(`input`,function(d){return n.search.set(d.target.value)}),Nc()(),Oi(27,`app-filter-switch`,16),vg(`onChange`,function(d){return vS(n.onlyUnused,d)||(n.onlyUnused=d),d}),Nc(),SE(28,Bt,2,1,`span`,17),Nc(),Gm(29,`app-page-messages`,18),SE(30,Ft,2,1,`p`,19),SE(31,$t,6,3,`div`,20),Nc(),Oi(32,`div`,21)(33,`app-data-table`,22),vg(`selectedChange`,function(d){return vS(n.selected,d)||(n.selected=d),d}),_m(34,Ut,2,6,`ng-template`,23)(35,Ht,7,4,`ng-template`,24)(36,Kt,2,1,`ng-template`,25)(37,Zt,2,1,`ng-template`,26)(38,Gt,2,1,`ng-template`,27)(39,Jt,2,1,`ng-template`,28)(40,Xt,2,2,`ng-template`,29),Nc()()(),Oi(41,`app-confirm-dialog`,30),vg(`openChange`,function(d){return vS(n.confirmOpen,d)||(n.confirmOpen=d),d}),Jm(`confirmed`,function(){return n.confirm()}),Nc(),Oi(42,`app-pull-dialog`,31),Jm(`openChange`,function(d){return n.pullClosed(d)}),Nc(),Oi(43,`app-run-dialog`,32),vg(`openChange`,function(d){return vS(n.runOpen,d)||(n.runOpen=d),d}),Jm(`started`,function(d){return n.goToContainer(d)}),Nc(),Oi(44,`app-layers-dialog`,33),vg(`openChange`,function(d){return vS(n.layersOpen,d)||(n.layersOpen=d),d}),Nc()),t&2){let r;ec(5),pg(n.t().title),ec(4),pg(n.t().diskSpace),ec(2),pg(n.totalSize()),ec(3),pg(n.t().unused),ec(2),pg(n.unusedCount()),ec(2),Wm(`label`,n.t().menuLabel)(`items`,n.menuItems()),ec(),kE((r=n.transfer())?19:-1,r),ec(4),Wm(`size`,15),ec(2),pg(n.t().searchLabel),ec(),Wm(`placeholder`,n.t().searchLabel)(`value`,n.search()),ec(),Wm(`label`,n.t().onlyUnused),hg(`on`,n.onlyUnused),ec(),kE(n.loading()?28:-1),ec(),Wm(`problem`,n.problem()),ec(),kE(n.hasUpdates()?30:-1),ec(),kE(n.selected().size>0?31:-1),ec(2),Wm(`columns`,n.columns())(`rows`,n.rows())(`trackKey`,n.trackKey),hg(`selected`,n.selected),Wm(`emptyMessage`,n.t().empty),ec(8),hg(`open`,n.confirmOpen),Wm(`title`,n.removalTitle())(`description`,n.removalDescription())(`confirmLabel`,n.removalConfirmLabel())(`confirmIcon`,n.removalConfirmIcon()),ec(),Wm(`open`,n.pullOpen())(`preset`,n.pullPreset()),ec(),hg(`open`,n.runOpen),Wm(`image`,n.runImage()),ec(),hg(`open`,n.layersOpen),Wm(`reference`,n.layersImage())}},dependencies:[z,x$1,My,W$1,u$1,ge,_e,ue,P$1,V],encapsulation:2})}})();export{Ae as ImagesPage};
@@ -1 +0,0 @@
1
- import{$n as sk,Bn as ok,Ct as Tg,D as HE,Dn as kc,En as kE,F as Jm,Fn as nS,G as Nc,Gn as pj,Gt as _m,L as Kr,Nn as mg,Pn as mj,Pt as Wm,Q as Oi,Rt as X,St as Tc,Tn as jc,U as My,Wn as pg,Xn as rf,Z as Od,_ as ES,_t as Sc,cn as f,cr as ve,et as Ot,gr as wt,gt as SS,ht as SE,l as C,ln as fS,lr as vg,lt as RE,mr as wc,or as vS,pt as Rp,r as Ac,rn as dk,s as Br,sn as ec,w as Gm,xn as hg,z as Ld}from"./chunk-DEsPgcXV.js";import"./chunk-MpnWAfxv.js";import"./chunk-Ds9stAVj.js";import{i as h,r as d}from"./chunk-wVwXBw1N.js";import{n as p,t as M}from"./chunk-CC_wIdx2.js";import"./chunk-CHFuuSv8.js";import"./chunk-Bw7Mtap6.js";import{_ as pn,d as dn,f as fn,g as ln,l as an,m as ie,r as Je$1,u as cn,v as un}from"./chunk-BfC3KqGQ.js";import{n as v,t as u}from"./chunk-D4dQfTTc.js";import{a as Yt,u as ra}from"./chunk-CaYY-6hH.js";import{n as P,t as K}from"./chunk-lLCuDcp6.js";import{n as W,t as J}from"./chunk-DGtAiSbg.js";import{n as u$1,t as c}from"./chunk-DKNRYU3y.js";import{n as V,t as G$1}from"./chunk-CmtjDUsV.js";import{i as z,n as oe,r as x,t as h$1}from"./chunk-D0pCyzqb.js";var je;var q;var Se=f(()=>{Kr();M();Kr();je=`containers.groups`,q=class i{assignments=C(p).entries(je);names=Ot(()=>[...new Set(this.assignments().values())].sort((e,n)=>e.localeCompare(n)));groupOf(t){return this.assignments().get(t)??null}assign(t,e){let n=e.trim();if(n===``)return;let o=new Map(this.assignments());for(let a of t)o.set(a,n);this.assignments.set(o)}release(t){let e=new Map(this.assignments());for(let n of t)e.delete(n);this.assignments.set(e)}rename(t,e){let n=e.trim();if(n===``||n===t)return;let o=new Map(this.assignments());for(let[a,m]of o)m===t&&o.set(a,n);this.assignments.set(o)}dissolve(t){let e=new Map([...this.assignments()].filter(([,n])=>n!==t));this.assignments.set(e)}static ɵfac=function(e){return new(e||i)};static ɵprov=X({token:i,factory:i.ɵfac,providedIn:`root`})}});function Fe(i,t){if(i&1){let e=RE();Oi(0,`button`,20),Jm(`click`,function(){let o=Ld(e).$implicit;return Od(HE(3).onInput(o))}),fS(1),Nc()}if(i&2){let e=t.$implicit;ec(),Ac(` `,e,` `)}}function Le(i,t){if(i&1&&(Oi(0,`div`)(1,`span`,9),fS(2),Nc(),Oi(3,`div`,18),kc(4,Fe,2,1,`button`,19,Sc),Nc()()),i&2){let e=HE(2);ec(2),pg(e.t().existing),ec(2),Tc(e.others())}}function Be(i,t){i&1&&(Oi(0,`p`,12),fS(1),Nc()),i&2&&(ec(),pg(t))}function $e(i,t){if(i&1){let e=RE();Gm(0,`div`,2),Oi(1,`div`,3)(2,`div`,4)(3,`h2`,5),fS(4),Nc(),Oi(5,`p`,6),fS(6),Nc(),Oi(7,`form`,7),Jm(`submit`,function(o){Ld(e);return Od(HE().submit(o))}),Oi(8,`label`,8)(9,`span`,9),fS(10),Nc(),Oi(11,`input`,10),Jm(`input`,function(o){Ld(e);return Od(HE().onInput(o.target.value))}),Nc()(),SE(12,Le,6,1,`div`),Oi(13,`p`,11),fS(14),Nc(),SE(15,Be,2,1,`p`,12),Oi(16,`div`,13)(17,`button`,14),Gm(18,`app-icon`,15),fS(19),Nc(),Oi(20,`button`,16),Gm(21,`app-icon`,17),fS(22),Nc()()()()()}if(i&2){let e,n=HE();ec(4),pg(n.title()),ec(2),pg(n.description()),ec(4),pg(n.t().nameLabel),ec(),nS(n.field),Wm(`placeholder`,n.t().namePlaceholder)(`value`,n.name()),ec(),kE(n.others().length>0?12:-1),ec(2),pg(n.t().hint),ec(),kE((e=n.problem())?15:-1,e),ec(3),Wm(`size`,14),ec(),Ac(` `,n.common().cancel,` `),ec(),Wm(`disabled`,!n.canSubmit()),ec(),Wm(`size`,14),ec(),Ac(` `,n.t().submit,` `)}}var We;var U;var De=f(()=>{Kr();Je$1();dk();sk();Kr();We=`mx-focus mt-1 w-full rounded-md border border-ink-700 bg-ink-800 px-3 py-1.5 text-[13px] text-ink-100 placeholder:text-ink-500`,U=class i{open=mj(!1);title=jc.required();description=jc.required();initial=jc(``);suggestions=jc([]);reserved=jc([]);submitted=pj();t=Ot(()=>ok().containers.page.groupDialog);common=Ot(()=>ok().common);field=We;name=wt(``);touched=wt(!1);others=Ot(()=>this.suggestions().filter(t=>t!==this.initial()));canSubmit=Ot(()=>{let t=this.name().trim();return t!==``&&!this.reserved().includes(t)});problem=Ot(()=>{let t=this.name().trim();return this.touched()?t===``?this.t().empty:this.reserved().includes(t)?this.t().reserved(t):null:null});constructor(){rf(()=>{this.open()&&Tg(()=>{this.name.set(this.initial()),this.touched.set(!1)})})}onInput(t){this.name.set(t),this.touched.set(!0)}submit(t){if(t.preventDefault(),!this.canSubmit()){this.touched.set(!0);return}this.open.set(!1),this.submitted.emit(this.name().trim())}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-group-name-dialog`]],inputs:{open:[1,`open`],title:[1,`title`],description:[1,`description`],initial:[1,`initial`],suggestions:[1,`suggestions`],reserved:[1,`reserved`]},outputs:{open:`openChange`,submitted:`submitted`},decls:2,vars:1,consts:[[`rdxDialogRoot`,``,3,`openChange`,`open`],[`rdxDialogPortal`,``],[`rdxDialogBackdrop`,``,1,`fixed`,`inset-0`,`z-40`,`bg-black/50`],[`rdxDialogViewport`,``,1,`fixed`,`inset-0`,`z-50`,`grid`,`place-items-center`,`p-4`],[`rdxDialogPopup`,``,1,`w-full`,`max-w-md`,`rounded-lg`,`border`,`border-ink-700`,`bg-ink-850`,`p-5`,`shadow-2xl`],[`rdxDialogTitle`,``,1,`text-[15px]`,`font-semibold`,`text-ink-100`],[`rdxDialogDescription`,``,1,`mt-1`,`text-[13px]`,`text-ink-400`],[1,`mt-4`,`space-y-3`,3,`submit`],[1,`block`],[1,`text-[12px]`,`text-ink-400`],[`type`,`text`,`autocomplete`,`off`,`spellcheck`,`false`,`data-testid`,`groepsnaam`,3,`input`,`placeholder`,`value`],[1,`text-[12px]`,`text-ink-500`],[`role`,`alert`,1,`text-[13px]`,`text-danger`],[1,`flex`,`justify-end`,`gap-2`,`pt-2`],[`type`,`button`,`rdxDialogClose`,``,1,`mx-btn`,`mx-focus`],[`name`,`close`,3,`size`],[`type`,`submit`,1,`mx-btn`,`mx-focus`,3,`disabled`],[`name`,`check`,3,`size`],[1,`mt-1`,`flex`,`flex-wrap`,`gap-1.5`],[`type`,`button`,1,`mx-focus`,`cursor-pointer`,`rounded-full`,`border`,`border-ink-700`,`px-2.5`,`py-0.5`,`text-[12px]`,`text-ink-300`,`transition-colors`,`hover:border-accent`,`hover:text-ink-100`],[`type`,`button`,1,`mx-focus`,`cursor-pointer`,`rounded-full`,`border`,`border-ink-700`,`px-2.5`,`py-0.5`,`text-[12px]`,`text-ink-300`,`transition-colors`,`hover:border-accent`,`hover:text-ink-100`,3,`click`]],template:function(e,n){e&1&&(Oi(0,`div`,0),vg(`openChange`,function(a){return vS(n.open,a)||(n.open=a),a}),_m(1,$e,23,15,`ng-template`,1),Nc()),e&2&&hg(`open`,n.open)},dependencies:[ie,ln,an,pn,cn,fn,dn,un,My],encapsulation:2})}});function Ue(i,t){i&1&&(Oi(0,`p`,13),fS(1),Nc()),i&2&&(ec(),Ac(` `,t,` `))}function He(i,t){if(i&1){let e=RE();Oi(0,`button`,31),Jm(`click`,function(){Ld(e);return Od(HE(2).askGroupSelected())}),Gm(1,`app-icon`,37),fS(2),Nc()}if(i&2){let e=HE(2);ec(),Wm(`size`,14),ec(),Ac(` `,e.t().group.addToGroup,` `)}}function Ye(i,t){if(i&1){let e=RE();Oi(0,`div`,14)(1,`span`,28),fS(2),Nc(),Oi(3,`button`,29),Jm(`click`,function(){Ld(e);return Od(HE().runSelected(`start`))}),Gm(4,`app-icon`,30),fS(5),Nc(),Oi(6,`button`,31),Jm(`click`,function(){Ld(e);return Od(HE().runSelected(`stop`))}),Gm(7,`app-icon`,32),fS(8),Nc(),Oi(9,`button`,31),Jm(`click`,function(){Ld(e);return Od(HE().runSelected(`restart`))}),Gm(10,`app-icon`,33),fS(11),Nc(),SE(12,He,3,2,`button`,34),Oi(13,`button`,35),Jm(`click`,function(){Ld(e);return Od(HE().askRemoveSelected())}),Gm(14,`app-icon`,36),fS(15),Nc()()}if(i&2){let e=HE();ec(2),pg(e.t().selected(e.selected().size)),ec(2),Wm(`size`,14),ec(),Ac(` `,e.common().start,` `),ec(2),Wm(`size`,14),ec(),Ac(` `,e.common().stop,` `),ec(2),Wm(`size`,14),ec(),Ac(` `,e.common().restart,` `),ec(),kE(e.groupableSelection().length>0?12:-1),ec(2),Wm(`size`,14),ec(),Ac(` `,e.common().remove,` `)}}function Je(i,t){if(i&1&&(Oi(0,`span`,42),fS(1),Nc()),i&2){let e=HE(2);ec(),Ac(` `,e.t().group.manual,` `)}}function Qe(i,t){if(i&1){let e=RE();Oi(0,`div`,38)(1,`button`,39),Jm(`click`,function(){let o=Ld(e).$implicit;return Od(HE().toggleGroup(o.key))}),Gm(2,`app-icon`,40),Oi(3,`span`,41),fS(4),Nc()(),SE(5,Je,2,1,`span`,42),Oi(6,`span`,43),fS(7),Nc(),Oi(8,`div`,44)(9,`span`,45),fS(10),Nc(),Oi(11,`span`,46),fS(12),Nc(),Oi(13,`div`,47)(14,`app-action-menu`,48),Jm(`picked`,function(o){let a=Ld(e).$implicit;return Od(HE().onGroupMenu(o,a))}),Nc()()()()}if(i&2){let e=t.$implicit,n=HE(),o=n.groupBusy(e);ec(),Br(`aria-expanded`,!e.collapsed)(`aria-label`,e.collapsed?n.t().group.expand(e.label):n.t().group.collapse(e.label)),ec(),Wm(`name`,e.collapsed?`chevronRight`:`chevronDown`)(`size`,14),ec(2),pg(e.label),ec(),kE(e.manual?5:-1),ec(2),mg(` `,n.groupCount(e),` · `,n.groupRunning(e),` `),ec(3),pg(n.groupCpu(e)),ec(2),pg(n.groupMemory(e)),ec(2),Wm(`label`,n.t().group.menu(e.label))(`items`,n.groupMenu(e,o))}}function Xe(i,t){if(i&1&&Gm(0,`app-state-dot`,49),i&2){let e=t.$implicit;Wm(`state`,e.state)(`title`,e.status),Br(`aria-label`,e.status)}}function Ze(i,t){if(i&1&&(Oi(0,`a`,52),Gm(1,`app-icon`,54),Nc()),i&2){let e=t,n=HE().$implicit,o=HE();Wm(`routerLink`,SS(4,Y,n.id))(`title`,o.t().row.missingNetwork(e)),Br(`aria-label`,o.t().row.missingNetwork(e)),ec(),Wm(`size`,13)}}function et(i,t){if(i&1&&(Oi(0,`a`,53),Gm(1,`app-icon`,55),Nc()),i&2){let e=HE().$implicit,n=HE();Wm(`routerLink`,SS(5,Y,e.id))(`queryParams`,ES(7,Ke))(`title`,n.actions().copyDiagnosis),Br(`aria-label`,n.t().row.diagnosisOf(e.name)),ec(),Wm(`size`,13)}}function tt(i,t){if(i&1&&(Oi(0,`div`,50)(1,`a`,51),fS(2),Nc(),SE(3,Ze,2,6,`a`,52),SE(4,et,2,8,`a`,53),Nc()),i&2){let e,n=t.$implicit,o=HE();ec(),Wm(`routerLink`,SS(5,Y,n.id))(`title`,n.name),ec(),pg(n.name),ec(),kE((e=n.missingNetwork)?3:-1,e),ec(),kE(o.inTrouble(n)?4:-1)}}function nt(i,t){if(i&1&&(Oi(0,`span`,56),fS(1),Nc()),i&2){let e=t.$implicit;ec(),pg(e.shortId)}}function it(i,t){if(i&1&&(Oi(0,`span`,57),fS(1),Nc()),i&2){let e=t.$implicit;Wm(`title`,e.image),ec(),pg(e.image)}}function ot(i,t){if(i&1&&(Oi(0,`a`,60),fS(1),Gm(2,`app-icon`,62),Nc()),i&2){let e=HE().$implicit;Wm(`href`,`http://localhost:`+e.hostPort,Rp),ec(),mg(` `,e.hostPort,`:`,e.containerPort,` `),ec(),Wm(`size`,11)}}function rt(i,t){if(i&1&&(Oi(0,`span`,61),fS(1),Nc()),i&2){let e=HE().$implicit;ec(),mg(``,e.containerPort,`/`,e.protocol)}}function at(i,t){if(i&1&&SE(0,ot,3,4,`a`,60)(1,rt,2,2,`span`,61),i&2){let e=t.$implicit;kE(e.hostPort?0:1)}}function st(i,t){if(i&1&&(Oi(0,`span`,58),fS(1),Nc()),i&2){let e=HE().$implicit;ec(),Ac(`+`,e.ports.length-2)}}function lt(i,t){i&1&&(Oi(0,`span`,59),fS(1,`—`),Nc())}function pt(i,t){if(i&1&&(kc(0,at,2,1,null,null,qe),SE(2,st,2,1,`span`,58),SE(3,lt,2,0,`span`,59)),i&2){let e=t.$implicit;Tc(e.ports.slice(0,2)),ec(2),kE(e.ports.length>2?2:-1),ec(),kE(e.ports.length===0?3:-1)}}function dt(i,t){if(i&1&&(Oi(0,`span`,63),fS(1),Nc()),i&2){let e=t.$implicit,n=HE();ec(),pg(n.cpuOf(e.id))}}function ct(i,t){if(i&1&&(Oi(0,`span`,63),fS(1),Nc()),i&2){let e=t.$implicit,n=HE();ec(),pg(n.memoryOf(e.id))}}function mt(i,t){if(i&1){let e=RE();Oi(0,`div`,64)(1,`app-action-menu`,48),Jm(`picked`,function(o){let a=Ld(e).$implicit;return Od(HE().onRowMenu(o,a))}),Nc()()}if(i&2){let e=t.$implicit,n=HE(),o=n.pending().has(e.id);ec(),Wm(`label`,n.t().row.menu(e.name))(`items`,n.rowMenu(e,o))}}var Y;var Ke;var qe;var G;var Pe;f(()=>{Kr();ra();v();h();Se();M();G$1();J();oe();K();dk();u$1();sk();De();Kr();Y=i=>[`/containers`,i],Ke=()=>({diagnose:1}),qe=(i,t)=>t.containerPort;G=``,Pe=class i{store=C(u);preferences=C(p);ownGroups=C(q);t=Ot(()=>ok().containers.page);actions=Ot(()=>ok().containers.actions);common=Ot(()=>ok().common);columns=Ot(()=>{let t=this.t().columns;return[{key:`state`,label:``,width:`28px`},{key:`name`,label:t.name},{key:`shortId`,label:t.id,width:`120px`},{key:`image`,label:t.image},{key:`ports`,label:t.ports,width:`170px`},{key:`cpu`,label:t.cpu,width:`80px`,align:`right`},{key:`memory`,label:t.memory,width:`110px`,align:`right`},{key:`actions`,label:t.actions,width:`84px`,align:`right`}]});loading=this.store.loading;problem=this.store.problem;stats=this.store.stats;pending=this.store.pending;search=wt(``);zoek=jc(void 0);onlyRunning=this.preferences.flag(`containers.onlyRunning`);collapsed=this.preferences.names(`containers.collapsedGroups`);selected=wt(new Set);removal=wt(null);confirmOpen=wt(!1);groupEdit=wt(null);groupDialogOpen=wt(!1);ownGroupNames=this.ownGroups.names;composeProjects=Ot(()=>{let t=new Set;for(let e of this.store.containers())e.composeProject!==null&&t.add(e.composeProject);return[...t]});groupableSelection=Ot(()=>{let t=this.selected();return this.store.containers().filter(e=>t.has(e.id)&&e.composeProject===null)});rows=Ot(()=>{let t=this.search().trim().toLowerCase(),e=this.onlyRunning();return this.store.containers().filter(n=>e&&n.state!==`running`?!1:t===``?!0:`${n.name} ${n.image} ${n.shortId}`.toLowerCase().includes(t))});groups=Ot(()=>{let t=this.rows(),e=new Map;for(let m of t){let k=this.groupKeyOf(m),N=e.get(k);N===void 0?e.set(k,[m]):N.push(m)}if(!this.store.containers().some(m=>this.groupKeyOf(m)!==G))return null;let n=this.collapsed(),o=this.composeProjects(),a=[...e.keys()].filter(m=>m!==G).sort((m,k)=>m.localeCompare(k));return e.has(G)&&a.push(G),a.map(m=>{let k=e.get(m)??[],N=n.has(m);return{key:m,label:m===G?this.t().group.loose:m,manual:m!==G&&!o.includes(m),rows:N?[]:k,all:k,running:k.filter(Ee=>Ee.state===`running`).length,collapsed:N}})});visibleRows=Ot(()=>{let t=this.groups();return t===null?this.rows():t.flatMap(e=>e.rows)});totals=Ot(()=>{let t=0,e=0;for(let n of this.store.runningIds()){let o=this.stats().get(n);t+=o?.cpuPercent??0,e+=o?.memoryBytes??0}return{cpu:t,memory:d(e)}});selectedIds=Ot(()=>[...this.selected()]);trackKey=t=>t.id;constructor(){rf(()=>{let t=this.zoek();t!==void 0&&Tg(()=>this.search.set(t))}),rf(()=>this.store.watchStats(this.store.runningIds())),C(ve).onDestroy(()=>this.store.watchStats([])),this.store.refresh()}groupKeyOf(t){return t.composeProject??this.ownGroups.groupOf(t.name)??G}inTrouble(t){return(t.state===`exited`||t.state===`dead`)&&t.exitCode!==null&&t.exitCode!==0&&t.exitCode!==143||t.state===`restarting`||t.status.includes(`(unhealthy)`)}cpuOf(t){let e=this.stats().get(t);return e===void 0?`—`:`${e.cpuPercent.toFixed(2)}%`}memoryOf(t){let e=this.stats().get(t);return e===void 0?`—`:d(e.memoryBytes)}primaryAction(t){let e=this.common();return t.state===`running`||t.state===`restarting`?{action:`stop`,icon:`stop`,label:e.stop}:t.state===`paused`?{action:`unpause`,icon:`play`,label:this.actions().resume}:{action:`start`,icon:`play`,label:e.start}}toggleGroup(t){let e=new Set(this.collapsed());if(!e.delete(t)){e.add(t);let n=new Set((this.groups()??[]).find(a=>a.key===t)?.all.map(a=>a.id)),o=new Set([...this.selected()].filter(a=>!n.has(a)));this.selected.set(o)}this.collapsed.set(e)}groupCount(t){return this.t().group.count(t.all.length)}groupRunning(t){return this.t().group.running(t.running)}groupCpu(t){let e=t.all.map(n=>this.stats().get(n.id)).filter(n=>n!==void 0);return e.length===0?`—`:`${e.reduce((n,o)=>n+o.cpuPercent,0).toFixed(2)}%`}groupMemory(t){let e=t.all.map(n=>this.stats().get(n.id)).filter(n=>n!==void 0);return e.length===0?`—`:d(e.reduce((n,o)=>n+o.memoryBytes,0))}groupBusy(t){return t.all.some(e=>this.pending().has(e.id))}rowMenu(t,e){let n=this.primaryAction(t),o=t.state===`running`,a=this.t().group,m=[{id:n.action,label:n.label,icon:n.icon,disabled:e},{id:`restart`,label:this.common().restart,icon:`refresh`,disabled:e||!o},{id:`pause`,label:this.actions().pause,icon:`pause`,disabled:e||!o}];return t.composeProject===null&&(m.push({id:`group`,label:a.addToGroup,icon:`folder`,separated:!0}),this.ownGroups.groupOf(t.name)!==null&&m.push({id:`ungroup`,label:a.removeFromGroup,icon:`close`})),m.push({id:`remove`,label:this.common().remove,icon:`trash`,disabled:e,danger:!0,separated:!0}),m}onRowMenu(t,e){switch(t){case`remove`:this.askRemove(e);break;case`group`:this.askGroup([e.name]);break;case`ungroup`:this.ownGroups.release([e.name]);break;default:this.run(t,e.id)}}groupMenu(t,e){let n=this.t().group,o=t.running===0,a=[{id:`start`,label:n.startAll,icon:`play`,disabled:e},{id:`stop`,label:n.stopAll,icon:`stop`,disabled:e||o},{id:`restart`,label:n.restartAll,icon:`refresh`,disabled:e||o}];return t.manual&&a.push({id:`rename`,label:n.rename,icon:`pencil`,separated:!0},{id:`dissolve`,label:n.dissolve,icon:`eraser`}),a.push({id:`remove`,label:n.removeAll,icon:`trash`,disabled:e,danger:!0,separated:!0}),a}onGroupMenu(t,e){switch(t){case`remove`:this.askRemoveGroup(e);break;case`rename`:this.askRenameGroup(e.key);break;case`dissolve`:this.ownGroups.dissolve(e.key);break;default:this.runGroup(t,e)}}runGroup(t,e){this.store.runMany(t,e.all.map(n=>n.id))}askRemoveGroup(t){this.removal.set({kind:`group`,ids:t.all.map(e=>e.id),project:t.label}),this.confirmOpen.set(!0)}run(t,e){this.store.run(t,e)}runSelected(t){this.store.runMany(t,this.selectedIds())}askRemove(t){this.removal.set({kind:`one`,ids:[t.id],name:t.name}),this.confirmOpen.set(!0)}askRemoveSelected(){let t=this.selectedIds();this.removal.set({kind:`many`,ids:t}),this.confirmOpen.set(!0)}askGroup(t){t.length!==0&&(this.groupEdit.set({kind:`assign`,names:t}),this.groupDialogOpen.set(!0))}askGroupSelected(){this.askGroup(this.groupableSelection().map(t=>t.name))}askRenameGroup(t){this.groupEdit.set({kind:`rename`,group:t}),this.groupDialogOpen.set(!0)}groupDialogTitle(){let t=this.t().groupDialog;return this.groupEdit()?.kind===`rename`?t.renameTitle:t.assignTitle}groupDialogDescription(){let t=this.groupEdit(),e=this.t().groupDialog;return t===null?``:t.kind===`rename`?e.renameDescription(t.group):t.names.length===1?e.assignOne(t.names[0]):e.assignMany(t.names.length)}groupDialogInitial(){let t=this.groupEdit();if(t===null)return``;if(t.kind===`rename`)return t.group;let e=new Set(t.names.map(o=>this.ownGroups.groupOf(o))),[n]=e;return e.size===1&&n!==void 0&&n!==null?n:``}onGroupName(t){let e=this.groupEdit();e!==null&&(e.kind===`assign`?this.ownGroups.assign(e.names,t):this.renameGroup(e.group,t),this.groupEdit.set(null))}renameGroup(t,e){this.ownGroups.rename(t,e);let n=this.collapsed();if(n.has(t)){let o=new Set(n);o.delete(t),o.add(e),this.collapsed.set(o)}}confirmRemove(){let t=this.removal();t!==null&&(this.store.runMany(`remove`,t.ids),this.selected.set(new Set),this.removal.set(null))}removalDescription(){let t=this.removal();if(t===null)return``;let e=this.t().confirm;switch(t.kind){case`one`:return e.one(t.name);case`many`:return e.many(t.ids.length);case`group`:return e.group(t.ids.length,t.project)}}static ɵfac=function(e){return new(e||i)};static ɵcmp=wc({type:i,selectors:[[`app-containers-page`]],inputs:{zoek:[1,`zoek`]},decls:38,vars:28,consts:[[1,`flex`,`h-full`,`flex-col`],[1,`shrink-0`,`px-6`,`pt-5`,`pb-3`],[1,`text-xl`,`font-semibold`,`tracking-tight`,`text-ink-100`],[1,`mt-3`,`flex`,`flex-wrap`,`gap-x-10`,`gap-y-2`],[1,`text-[12px]`,`text-ink-400`],[1,`text-[15px]`,`font-medium`,`text-ink-100`],[1,`mt-4`,`flex`,`flex-wrap`,`items-center`,`gap-4`],[1,`relative`,`flex`,`items-center`],[1,`pointer-events-none`,`absolute`,`left-2.5`,`text-ink-500`],[`name`,`search`,3,`size`],[1,`sr-only`],[`type`,`search`,1,`mx-focus`,`w-72`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`py-1.5`,`pr-3`,`pl-8`,`text-[13px]`,`text-ink-100`,`placeholder:text-ink-500`,3,`input`,`placeholder`,`value`],[3,`onChange`,`label`,`on`],[1,`mt-3`,`rounded-md`,`border`,`border-danger/40`,`bg-danger/10`,`px-3`,`py-2`,`text-[13px]`,`text-danger`],[1,`mt-3`,`flex`,`items-center`,`gap-2`,`rounded-md`,`border`,`border-ink-700`,`bg-ink-850`,`px-3`,`py-2`],[1,`min-h-0`,`flex-1`,`overflow-y-auto`,`px-6`,`pb-6`],[3,`selectedChange`,`columns`,`rows`,`groups`,`trackKey`,`selected`,`emptyMessage`],[`appGroupHeader`,``],[`appCell`,`state`],[`appCell`,`name`],[`appCell`,`shortId`],[`appCell`,`image`],[`appCell`,`ports`],[`appCell`,`cpu`],[`appCell`,`memory`],[`appCell`,`actions`],[3,`openChange`,`confirmed`,`open`,`title`,`description`],[3,`openChange`,`submitted`,`open`,`title`,`description`,`initial`,`suggestions`,`reserved`],[1,`text-[13px]`,`text-ink-200`],[`type`,`button`,1,`mx-btn`,`mx-focus`,`ml-auto`,3,`click`],[`name`,`play`,3,`size`],[`type`,`button`,1,`mx-btn`,`mx-focus`,3,`click`],[`name`,`stop`,3,`size`],[`name`,`refresh`,3,`size`],[`type`,`button`,1,`mx-btn`,`mx-focus`],[`type`,`button`,1,`mx-btn`,`mx-focus`,`text-danger`,`hover:text-danger`,3,`click`],[`name`,`trash`,3,`size`],[`name`,`folder`,3,`size`],[1,`flex`,`items-center`,`gap-3`],[`type`,`button`,1,`mx-focus`,`flex`,`min-w-0`,`cursor-pointer`,`items-center`,`gap-2`,`text-left`,3,`click`],[1,`shrink-0`,`text-ink-500`,3,`name`,`size`],[1,`truncate`,`font-medium`,`text-ink-100`],[1,`shrink-0`,`rounded`,`border`,`border-ink-700`,`px-1.5`,`py-0.5`,`text-[11px]`,`text-ink-400`],[1,`shrink-0`,`text-[12px]`,`text-ink-400`],[1,`ml-auto`,`flex`,`shrink-0`,`items-center`],[`data-testid`,`groep-cpu`,1,`w-20`,`shrink-0`,`text-right`,`tabular-nums`,`text-[12px]`,`text-ink-400`],[`data-testid`,`groep-geheugen`,1,`w-[110px]`,`shrink-0`,`text-right`,`tabular-nums`,`text-[12px]`,`text-ink-400`],[1,`flex`,`w-[84px]`,`shrink-0`,`items-center`,`justify-end`],[`compact`,``,3,`picked`,`label`,`items`],[3,`state`,`title`],[1,`flex`,`min-w-0`,`items-center`,`gap-1.5`],[1,`mx-focus`,`block`,`truncate`,`text-ink-100`,`hover:text-accent`,`hover:underline`,3,`routerLink`,`title`],[`data-testid`,`row-missing-network`,1,`mx-focus`,`shrink-0`,`rounded`,`text-danger`,`hover:text-ink-100`,3,`routerLink`,`title`],[`data-testid`,`row-diagnose`,1,`mx-focus`,`shrink-0`,`rounded`,`text-warn`,`hover:text-ink-100`,3,`routerLink`,`queryParams`,`title`],[`name`,`networks`,3,`size`],[`name`,`warning`,3,`size`],[1,`font-mono`,`text-[12px]`,`text-ink-400`],[1,`block`,`truncate`,`text-ink-300`,3,`title`],[1,`text-[11px]`,`text-ink-500`],[1,`text-ink-600`],[`target`,`_blank`,`rel`,`noreferrer`,1,`mx-focus`,`mr-2`,`inline-flex`,`items-center`,`gap-1`,`text-accent`,`hover:underline`,3,`href`],[1,`mr-2`,`text-ink-500`],[`name`,`external`,3,`size`],[1,`tabular-nums`,`text-ink-200`],[1,`flex`,`items-center`,`justify-end`]],template:function(e,n){if(e&1&&(Oi(0,`section`,0)(1,`div`,1)(2,`h1`,2),fS(3),Nc(),Oi(4,`div`,3)(5,`div`)(6,`div`,4),fS(7),Nc(),Oi(8,`div`,5),fS(9),Nc()(),Oi(10,`div`)(11,`div`,4),fS(12),Nc(),Oi(13,`div`,5),fS(14),Nc()()(),Oi(15,`div`,6)(16,`label`,7)(17,`span`,8),Gm(18,`app-icon`,9),Nc(),Oi(19,`span`,10),fS(20),Nc(),Oi(21,`input`,11),Jm(`input`,function(a){return n.search.set(a.target.value)}),Nc()(),Oi(22,`app-filter-switch`,12),vg(`onChange`,function(a){return vS(n.onlyRunning,a)||(n.onlyRunning=a),a}),Nc()(),SE(23,Ue,2,1,`p`,13),SE(24,Ye,16,10,`div`,14),Nc(),Oi(25,`div`,15)(26,`app-data-table`,16),vg(`selectedChange`,function(a){return vS(n.selected,a)||(n.selected=a),a}),_m(27,Qe,15,12,`ng-template`,17)(28,Xe,1,3,`ng-template`,18)(29,tt,5,7,`ng-template`,19)(30,nt,2,1,`ng-template`,20)(31,it,2,2,`ng-template`,21)(32,pt,4,2,`ng-template`,22)(33,dt,2,1,`ng-template`,23)(34,ct,2,1,`ng-template`,24)(35,mt,2,2,`ng-template`,25),Nc()()(),Oi(36,`app-confirm-dialog`,26),vg(`openChange`,function(a){return vS(n.confirmOpen,a)||(n.confirmOpen=a),a}),Jm(`confirmed`,function(){return n.confirmRemove()}),Nc(),Oi(37,`app-group-name-dialog`,27),vg(`openChange`,function(a){return vS(n.groupDialogOpen,a)||(n.groupDialogOpen=a),a}),Jm(`submitted`,function(a){return n.onGroupName(a)}),Nc()),e&2){let o;ec(3),pg(n.t().title),ec(4),pg(n.t().cpuUsage),ec(2),Ac(``,n.totals().cpu.toFixed(2),`%`),ec(3),pg(n.t().memoryUsage),ec(2),pg(n.totals().memory),ec(4),Wm(`size`,15),ec(2),pg(n.t().search),ec(),Wm(`placeholder`,n.t().search)(`value`,n.search()),ec(),Wm(`label`,n.t().onlyRunning),hg(`on`,n.onlyRunning),ec(),kE((o=n.problem())?23:-1,o),ec(),kE(n.selected().size>0?24:-1),ec(2),Wm(`columns`,n.columns())(`rows`,n.visibleRows())(`groups`,n.groups())(`trackKey`,n.trackKey),hg(`selected`,n.selected),Wm(`emptyMessage`,n.t().empty),ec(10),hg(`open`,n.confirmOpen),Wm(`title`,n.t().confirm.title)(`description`,n.removalDescription()),ec(),hg(`open`,n.groupDialogOpen),Wm(`title`,n.groupDialogTitle())(`description`,n.groupDialogDescription())(`initial`,n.groupDialogInitial())(`suggestions`,n.ownGroupNames())(`reserved`,n.composeProjects())}},dependencies:[z,x,h$1,My,W,Yt,P,c,V,U],encapsulation:2})}})();export{Pe as ContainersPage};