From 45972f4546860107520f50f33c96469570fb050d Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 09:20:19 -0700 Subject: [PATCH 01/49] feat: Initial add of AFC integration files Signed-off-by: Jim Madill --- src/components/widgets/afc/.i18nignore | 8 + src/components/widgets/afc/AfcCard.vue | 68 ++++ src/components/widgets/afc/AfcCardButtons.vue | 303 ++++++++++++++++++ src/components/widgets/afc/AfcCardBypass.vue | 23 ++ .../widgets/afc/AfcCardExtruder.vue | 212 ++++++++++++ src/components/widgets/afc/AfcCardMessage.vue | 68 ++++ .../widgets/afc/AfcCardSettings.vue | 142 ++++++++ .../widgets/afc/AfcCardSettingsExtruder.vue | 71 ++++ .../widgets/afc/AfcCardSettingsUnit.vue | 74 +++++ src/components/widgets/afc/AfcCardUnit.vue | 106 ++++++ src/components/widgets/afc/AfcCardUnitHub.vue | 58 ++++ .../widgets/afc/AfcCardUnitLane.vue | 78 +++++ .../widgets/afc/AfcCardUnitLaneActions.vue | 152 +++++++++ .../widgets/afc/AfcCardUnitLaneBody.vue | 255 +++++++++++++++ .../widgets/afc/AfcCardUnitLaneEmpty.vue | 71 ++++ .../widgets/afc/AfcCardUnitLaneHeader.vue | 46 +++ .../widgets/afc/AfcFilamentReel.vue | 110 +++++++ .../widgets/afc/dialogs/AfcSettingsDialog.vue | 71 ++++ .../afc/dialogs/AfcSettingsDialogExtruder.vue | 231 +++++++++++++ .../afc/dialogs/AfcSettingsDialogHub.vue | 72 +++++ .../afc/dialogs/AfcSettingsDialogLane.vue | 98 ++++++ .../afc/dialogs/AfcUnitLaneFilamentDialog.vue | 151 +++++++++ .../afc/dialogs/AfcUnitLaneInfiniteDialog.vue | 83 +++++ .../dialogs/AfcUnitLaneMappingToolDialog.vue | 63 ++++ src/mixins/afc.ts | 153 +++++++++ src/plugins/afcIcons.ts | 12 + src/store/afc/actions.ts | 12 + src/store/afc/getters.ts | 6 + src/store/afc/index.ts | 17 + src/store/afc/mutations.ts | 16 + src/store/afc/state.ts | 11 + src/store/afc/types.ts | 8 + 32 files changed, 2849 insertions(+) create mode 100644 src/components/widgets/afc/.i18nignore create mode 100644 src/components/widgets/afc/AfcCard.vue create mode 100644 src/components/widgets/afc/AfcCardButtons.vue create mode 100644 src/components/widgets/afc/AfcCardBypass.vue create mode 100644 src/components/widgets/afc/AfcCardExtruder.vue create mode 100644 src/components/widgets/afc/AfcCardMessage.vue create mode 100644 src/components/widgets/afc/AfcCardSettings.vue create mode 100644 src/components/widgets/afc/AfcCardSettingsExtruder.vue create mode 100644 src/components/widgets/afc/AfcCardSettingsUnit.vue create mode 100644 src/components/widgets/afc/AfcCardUnit.vue create mode 100644 src/components/widgets/afc/AfcCardUnitHub.vue create mode 100644 src/components/widgets/afc/AfcCardUnitLane.vue create mode 100644 src/components/widgets/afc/AfcCardUnitLaneActions.vue create mode 100644 src/components/widgets/afc/AfcCardUnitLaneBody.vue create mode 100644 src/components/widgets/afc/AfcCardUnitLaneEmpty.vue create mode 100644 src/components/widgets/afc/AfcCardUnitLaneHeader.vue create mode 100644 src/components/widgets/afc/AfcFilamentReel.vue create mode 100644 src/components/widgets/afc/dialogs/AfcSettingsDialog.vue create mode 100644 src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue create mode 100644 src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue create mode 100644 src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue create mode 100644 src/components/widgets/afc/dialogs/AfcUnitLaneFilamentDialog.vue create mode 100644 src/components/widgets/afc/dialogs/AfcUnitLaneInfiniteDialog.vue create mode 100644 src/components/widgets/afc/dialogs/AfcUnitLaneMappingToolDialog.vue create mode 100644 src/mixins/afc.ts create mode 100644 src/plugins/afcIcons.ts create mode 100644 src/store/afc/actions.ts create mode 100644 src/store/afc/getters.ts create mode 100644 src/store/afc/index.ts create mode 100644 src/store/afc/mutations.ts create mode 100644 src/store/afc/state.ts create mode 100644 src/store/afc/types.ts diff --git a/src/components/widgets/afc/.i18nignore b/src/components/widgets/afc/.i18nignore new file mode 100644 index 0000000000..7a2f373f3c --- /dev/null +++ b/src/components/widgets/afc/.i18nignore @@ -0,0 +1,8 @@ +$t('app.afc.Initialized') +$t('app.afc.Idle') +$t('app.afc.Error') +$t('app.afc.Loading') +$t('app.afc.Unloading') +$t('app.afc.Ejecting') +$t('app.afc.Moving') +$t('app.afc.Restoring') \ No newline at end of file diff --git a/src/components/widgets/afc/AfcCard.vue b/src/components/widgets/afc/AfcCard.vue new file mode 100644 index 0000000000..1bcdbb558b --- /dev/null +++ b/src/components/widgets/afc/AfcCard.vue @@ -0,0 +1,68 @@ + + diff --git a/src/components/widgets/afc/AfcCardButtons.vue b/src/components/widgets/afc/AfcCardButtons.vue new file mode 100644 index 0000000000..00b45e434f --- /dev/null +++ b/src/components/widgets/afc/AfcCardButtons.vue @@ -0,0 +1,303 @@ + + diff --git a/src/components/widgets/afc/AfcCardBypass.vue b/src/components/widgets/afc/AfcCardBypass.vue new file mode 100644 index 0000000000..1644269f74 --- /dev/null +++ b/src/components/widgets/afc/AfcCardBypass.vue @@ -0,0 +1,23 @@ + + diff --git a/src/components/widgets/afc/AfcCardExtruder.vue b/src/components/widgets/afc/AfcCardExtruder.vue new file mode 100644 index 0000000000..a4a69b3791 --- /dev/null +++ b/src/components/widgets/afc/AfcCardExtruder.vue @@ -0,0 +1,212 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardMessage.vue b/src/components/widgets/afc/AfcCardMessage.vue new file mode 100644 index 0000000000..9a82751c03 --- /dev/null +++ b/src/components/widgets/afc/AfcCardMessage.vue @@ -0,0 +1,68 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardSettings.vue b/src/components/widgets/afc/AfcCardSettings.vue new file mode 100644 index 0000000000..7b69c0126f --- /dev/null +++ b/src/components/widgets/afc/AfcCardSettings.vue @@ -0,0 +1,142 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardSettingsExtruder.vue b/src/components/widgets/afc/AfcCardSettingsExtruder.vue new file mode 100644 index 0000000000..0f9b3999c3 --- /dev/null +++ b/src/components/widgets/afc/AfcCardSettingsExtruder.vue @@ -0,0 +1,71 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardSettingsUnit.vue b/src/components/widgets/afc/AfcCardSettingsUnit.vue new file mode 100644 index 0000000000..8ca2ec17da --- /dev/null +++ b/src/components/widgets/afc/AfcCardSettingsUnit.vue @@ -0,0 +1,74 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardUnit.vue b/src/components/widgets/afc/AfcCardUnit.vue new file mode 100644 index 0000000000..9f4b68ed8d --- /dev/null +++ b/src/components/widgets/afc/AfcCardUnit.vue @@ -0,0 +1,106 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardUnitHub.vue b/src/components/widgets/afc/AfcCardUnitHub.vue new file mode 100644 index 0000000000..926b88a42a --- /dev/null +++ b/src/components/widgets/afc/AfcCardUnitHub.vue @@ -0,0 +1,58 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardUnitLane.vue b/src/components/widgets/afc/AfcCardUnitLane.vue new file mode 100644 index 0000000000..3e8cd7bda8 --- /dev/null +++ b/src/components/widgets/afc/AfcCardUnitLane.vue @@ -0,0 +1,78 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardUnitLaneActions.vue b/src/components/widgets/afc/AfcCardUnitLaneActions.vue new file mode 100644 index 0000000000..59d35b76f7 --- /dev/null +++ b/src/components/widgets/afc/AfcCardUnitLaneActions.vue @@ -0,0 +1,152 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardUnitLaneBody.vue b/src/components/widgets/afc/AfcCardUnitLaneBody.vue new file mode 100644 index 0000000000..5be07b5f62 --- /dev/null +++ b/src/components/widgets/afc/AfcCardUnitLaneBody.vue @@ -0,0 +1,255 @@ + + + + diff --git a/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue b/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue new file mode 100644 index 0000000000..40086c4971 --- /dev/null +++ b/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue @@ -0,0 +1,71 @@ + + diff --git a/src/components/widgets/afc/AfcCardUnitLaneHeader.vue b/src/components/widgets/afc/AfcCardUnitLaneHeader.vue new file mode 100644 index 0000000000..c1bc55113d --- /dev/null +++ b/src/components/widgets/afc/AfcCardUnitLaneHeader.vue @@ -0,0 +1,46 @@ + + diff --git a/src/components/widgets/afc/AfcFilamentReel.vue b/src/components/widgets/afc/AfcFilamentReel.vue new file mode 100644 index 0000000000..9bb4f85dcc --- /dev/null +++ b/src/components/widgets/afc/AfcFilamentReel.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialog.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialog.vue new file mode 100644 index 0000000000..ceffdc2f97 --- /dev/null +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialog.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue new file mode 100644 index 0000000000..fa5cf13602 --- /dev/null +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue @@ -0,0 +1,231 @@ + + + diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue new file mode 100644 index 0000000000..a104d907c7 --- /dev/null +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue new file mode 100644 index 0000000000..3272be9920 --- /dev/null +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/components/widgets/afc/dialogs/AfcUnitLaneFilamentDialog.vue b/src/components/widgets/afc/dialogs/AfcUnitLaneFilamentDialog.vue new file mode 100644 index 0000000000..415a59ea49 --- /dev/null +++ b/src/components/widgets/afc/dialogs/AfcUnitLaneFilamentDialog.vue @@ -0,0 +1,151 @@ + + + diff --git a/src/components/widgets/afc/dialogs/AfcUnitLaneInfiniteDialog.vue b/src/components/widgets/afc/dialogs/AfcUnitLaneInfiniteDialog.vue new file mode 100644 index 0000000000..f8733ad739 --- /dev/null +++ b/src/components/widgets/afc/dialogs/AfcUnitLaneInfiniteDialog.vue @@ -0,0 +1,83 @@ + + + diff --git a/src/components/widgets/afc/dialogs/AfcUnitLaneMappingToolDialog.vue b/src/components/widgets/afc/dialogs/AfcUnitLaneMappingToolDialog.vue new file mode 100644 index 0000000000..486b957866 --- /dev/null +++ b/src/components/widgets/afc/dialogs/AfcUnitLaneMappingToolDialog.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/mixins/afc.ts b/src/mixins/afc.ts new file mode 100644 index 0000000000..5e5572a390 --- /dev/null +++ b/src/mixins/afc.ts @@ -0,0 +1,153 @@ +import Vue from 'vue' +import Component from 'vue-class-component' + +@Component +export default class AfcMixin extends Vue { + get afc () { + return this.$typedState.printer.printer.AFC ?? {} + } + + get afcEnabled () { + return this.$typedGetters['server/componentSupport']('afc') + } + + get afcExtruders (): string[] { + return this.afc.extruders ?? [] + } + + get afcHubs (): string[] { + return this.afc.hubs ?? [] + } + + get afcUnits (): string[] { + return this.afc.units ?? [] + } + + get afcLanes (): string[] { + return this.afc.lanes ?? [] + } + + get afcLoadedSpools () { + if (this.afcLanes.length === 0) return [] + + const spoolIds: { lane: string; spoolId: number }[] = [] + this.afcLanes.forEach((name) => { + const lane = this.getAfcLaneObject(name) + if (!lane || !lane.spool_id) return + + spoolIds.push({ + lane: name, + spoolId: lane.spool_id, + }) + }) + + return spoolIds + } + + get afcErrorState () { + return this.afc.error_state ?? false + } + + get afcCurrentLane () { + const current = this.afc.current_load ?? this.afc.current_lane ?? null + if (current === null) return null + + return this.getAfcLaneObject(current) + } + + get afcCurrentBuffer () { + const name = this.afcCurrentLane?.buffer ?? null + if (name === null) return null + + return this.getAfcBufferObject(name) + } + + get afcCurrentState () { + return this.afc.current_state ?? '' + } + + get afcMapList (): string[] { + const lanes = this.afc.lanes ?? [] + + const mapList = [] + for (const laneName of lanes) { + const lane = this.getAfcLaneObject(laneName) + if (lane === null) continue + + mapList.push(lane.map) + } + + return mapList.sort() + } + + get afcExistsSpoolman () { + return this.$typedGetters['server/componentSupport']('spoolman') + } + + get afcShowFilamentName (): boolean { + return this.$typedState.config.uiSettings.afc?.showFilamentName ?? false + } + + get afcShowLaneInfinite (): boolean { + return this.$typedState.config.uiSettings.afc?.showLaneInfinite ?? true + } + + get afcShowUnitIcons (): boolean { + return this.$typedState.config.uiSettings.afc?.showUnitIcons ?? true + } + + get afcShowTd1Color (): boolean { + return this.$typedState.config.uiSettings.afc?.showTd1Color ?? true + } + + get afcHiddenExtruders (): string[] { + return this.$typedState.config.uiSettings.afc?.hiddenExtruders ?? [] + } + + get afcHiddenUnits (): string[] { + return this.$typedState.config.uiSettings.afc?.hiddenUnits ?? [] + } + + getPrinterObject (key: string) { + const printer = this.$typedState.printer.printer ?? {} + return printer[key] ?? null + } + + getPrinterSettings (key: string) { + const settings = this.$typedState.printer.printer.configfile?.settings ?? {} + + return settings[key.toLowerCase()] ?? null + } + + getAfcLaneObject (lane: string) { + const key_stepper = `AFC_stepper ${lane}` + const key_lane = `AFC_lane ${lane}` + return this.getPrinterObject(key_stepper) ?? this.getPrinterObject(key_lane) ?? {} + } + + getAfcLaneSettings (lane: string) { + const key_stepper = `AFC_stepper ${lane}` + const key_lane = `AFC_lane ${lane}` + return this.getPrinterSettings(key_stepper) ?? this.getPrinterSettings(key_lane) ?? {} + } + + getAfcExtruderObject (extruder: string) { + const key_extruder = `AFC_extruder ${extruder}` + return this.getPrinterObject(key_extruder) ?? {} + } + + getAfcExtruderSettings (extruder: string) { + const key = `AFC_extruder ${extruder}` + return this.getPrinterSettings(key) ?? {} + } + + getAfcBufferObject (buffer: string) { + const key_buffer = `AFC_buffer ${buffer}` + return this.getPrinterObject(key_buffer) + } + + getAfcHubObject (hub: string) { + const key = `AFC_hub ${hub}` + return this.getPrinterObject(key) ?? {} + } +} diff --git a/src/plugins/afcIcons.ts b/src/plugins/afcIcons.ts new file mode 100644 index 0000000000..b23eecdae7 --- /dev/null +++ b/src/plugins/afcIcons.ts @@ -0,0 +1,12 @@ +export const afcIconBoxTurtle = + 'M6.404,9.271c0.118,-0.657 0.3,-1.286 0.569,-1.895c-0.43,-0.337 -0.853,-0.669 -1.284,-1.006c-0.609,0.732 -1.046,1.534 -1.332,2.44c0.672,0.221 1.342,0.348 2.047,0.461Zm17.538,5.591c0.15,0.294 0.007,0.689 -0.402,0.769c-0.447,0.089 -0.891,0.19 -1.336,0.286c-0.063,0.014 -0.127,0.028 -0.21,0.047l0,0.192c0,0.869 -0.001,1.738 -0.001,2.607c-0,0.048 0.001,0.095 -0.001,0.143c-0.013,0.296 -0.131,0.452 -0.421,0.513c-0.422,0.091 -0.848,0.169 -1.273,0.249c-0.425,0.079 -0.851,0.153 -1.276,0.229c-0.578,0.103 -1.155,0.206 -1.733,0.308c-0.583,0.103 -1.166,0.206 -1.75,0.308c-0.635,0.112 -1.272,0.223 -1.907,0.336c-0.432,0.076 -0.863,0.156 -1.295,0.231c-0.246,0.042 -0.491,0.096 -0.739,0.111c-0.168,0.009 -0.341,-0.032 -0.509,-0.066c-1.244,-0.252 -2.486,-0.51 -3.729,-0.764c-1.195,-0.245 -2.391,-0.487 -3.587,-0.731c-0.463,-0.095 -0.927,-0.191 -1.391,-0.289c-0.205,-0.042 -0.346,-0.154 -0.373,-0.375c-0.011,-0.094 -0.022,-0.188 -0.022,-0.283c0.001,-0.982 0.005,-1.965 0.008,-2.947c-0,-0.017 -0.006,-0.034 -0.012,-0.065l0.001,-0l-0.001,-0.001l0,0.001c-0.181,-0.036 -0.365,-0.073 -0.549,-0.109c-0.332,-0.062 -0.663,-0.124 -0.995,-0.185c-0.233,-0.042 -0.394,-0.165 -0.434,-0.407c-0.012,-0.072 -0.003,-0.156 0.023,-0.224c0.073,-0.187 0.158,-0.371 0.243,-0.554c0.544,-1.187 1.09,-2.375 1.635,-3.562c0.02,-0.043 0.041,-0.085 0.062,-0.128c0.094,-0.189 0.244,-0.297 0.454,-0.331c0.274,-0.045 0.547,-0.098 0.824,-0.149c0.039,-0.22 0.076,-0.429 0.114,-0.638c0.137,-0.767 0.414,-1.485 0.776,-2.17c0.5,-0.947 1.163,-1.76 1.996,-2.439c1.104,-0.9 2.363,-1.467 3.743,-1.772c0.757,-0.168 1.527,-0.22 2.301,-0.185c0.23,0.011 0.46,0.043 0.689,0.074c0.545,0.072 1.081,0.203 1.599,0.389c0.487,0.174 0.961,0.376 1.407,0.639c0.08,0.046 0.157,0.07 0.251,0.071c0.778,0.003 1.513,0.185 2.204,0.545c0.662,0.344 1.202,0.825 1.618,1.443c0.301,0.447 0.526,0.93 0.636,1.46c0.083,0.396 0.12,0.795 0.07,1.203c-0.038,0.314 -0.101,0.619 -0.199,0.918c-0.011,0.034 -0.01,0.082 0.006,0.114c0.057,0.117 0.123,0.229 0.187,0.344c0.307,0.05 0.61,0.102 0.914,0.147c0.236,0.034 0.382,0.174 0.474,0.383c0.181,0.406 0.364,0.813 0.544,1.22c0.363,0.819 0.725,1.639 1.086,2.459c0.093,0.212 0.175,0.43 0.28,0.635Zm-0.905,0.022c-0.038,-0.094 -0.065,-0.165 -0.096,-0.236c-0.359,-0.815 -0.719,-1.631 -1.079,-2.445c-0.161,-0.364 -0.33,-0.725 -0.487,-1.091c-0.053,-0.122 -0.13,-0.175 -0.26,-0.16c-0.04,0.005 -0.081,0.004 -0.132,0.007c0.011,0.109 0.023,0.208 0.032,0.306c0.03,0.328 -0.017,0.639 -0.195,0.922c-0.343,0.543 -1.009,0.687 -1.535,0.319c-0.129,-0.09 -0.247,-0.206 -0.344,-0.331c-0.127,-0.162 -0.229,-0.345 -0.34,-0.518l0,0.002c-0.865,0.364 -1.781,0.414 -2.659,0.533c-0.017,0.251 -0.009,0.497 -0.055,0.732c-0.12,0.61 -0.625,1.035 -1.212,1.032c-0.426,-0.003 -0.78,-0.183 -1.074,-0.486c-0.259,-0.267 -0.453,-0.581 -0.63,-0.905c-0.048,-0.087 -0.102,-0.17 -0.145,-0.24c-0.16,0.023 -0.296,0.038 -0.429,0.061c-0.131,0.022 -0.26,0.052 -0.41,0.082c0.621,1.451 1.236,2.876 1.866,4.31c1.55,-0.317 3.077,-0.625 4.603,-0.942c1.524,-0.318 3.052,-0.617 4.581,-0.952Zm-2.784,-3.314c0.048,-0.176 0.027,-0.356 -0.004,-0.53c-0.041,-0.226 -0.095,-0.45 -0.219,-0.645c-0.244,0.275 -0.485,0.544 -0.745,0.837l-0.001,-0c0.085,0.147 0.175,0.32 0.286,0.478c0.052,0.073 0.141,0.126 0.224,0.169c0.138,0.071 0.303,0.021 0.385,-0.112c0.036,-0.059 0.055,-0.129 0.074,-0.197Zm-0.468,-2.68c0.092,-0.393 0.1,-0.787 0.014,-1.182c-0.131,-0.598 -0.395,-1.129 -0.801,-1.588c-0.676,-0.765 -1.532,-1.181 -2.535,-1.309c-0.379,-0.048 -0.758,-0.028 -1.135,0.03c-0.586,0.09 -1.14,0.276 -1.651,0.575c-1.013,0.594 -1.729,1.453 -2.193,2.525c-0.231,0.534 -0.396,1.091 -0.484,1.667c-0.051,0.328 -0.104,0.657 -0.125,0.987c-0.022,0.343 -0.005,0.688 -0.005,1.071l0.001,0c0.513,-0.005 1.007,0.045 1.507,-0.073c-0.048,-0.071 -0.092,-0.127 -0.127,-0.188c-0.086,-0.153 -0.078,-0.288 0.018,-0.397c0.094,-0.107 0.261,-0.151 0.404,-0.083c0.106,0.049 0.208,0.115 0.295,0.193c0.259,0.234 0.427,0.536 0.597,0.837c0.148,0.264 0.3,0.526 0.465,0.779c0.119,0.183 0.294,0.308 0.504,0.38c0.297,0.102 0.534,-0.026 0.616,-0.328c0.044,-0.163 0.043,-0.327 0.015,-0.494c-0.05,-0.288 -0.179,-0.539 -0.334,-0.78c-0.042,-0.065 -0.088,-0.128 -0.12,-0.198c-0.108,-0.231 0.032,-0.438 0.287,-0.431c0.142,0.004 0.246,0.085 0.336,0.179c0.094,0.098 0.173,0.21 0.261,0.318c0.075,0 0.152,0.007 0.229,-0.001c0.412,-0.045 0.825,-0.087 1.236,-0.141c0.365,-0.049 0.726,-0.129 1.057,-0.292c0.87,-0.426 1.442,-1.103 1.668,-2.056Zm-5.299,-4.699c-0.022,-0.02 -0.03,-0.032 -0.04,-0.035c-0.378,-0.115 -0.756,-0.232 -1.136,-0.341c-0.043,-0.012 -0.109,0.006 -0.145,0.034c-0.317,0.247 -0.63,0.5 -0.958,0.762c0.102,0.077 0.188,0.14 0.272,0.204c0.089,0.069 0.177,0.139 0.28,0.221c0.513,-0.407 1.105,-0.647 1.727,-0.845Zm-2.177,-0.515c-0.004,-0.012 -0.009,-0.023 -0.013,-0.035c-0.841,-0.043 -1.674,-0.007 -2.502,0.226c0.065,0.197 0.135,0.38 0.225,0.542c0.156,-0.025 0.291,-0.044 0.424,-0.07c0.334,-0.066 0.669,-0.073 1.002,-0.004c0.067,0.014 0.11,0.003 0.159,-0.041c0.091,-0.084 0.19,-0.16 0.284,-0.242c0.141,-0.124 0.281,-0.25 0.421,-0.376l0,0l0,-0Zm-0.139,1.868c-0.011,-0.019 -0.014,-0.032 -0.022,-0.04c-0.043,-0.04 -0.089,-0.078 -0.132,-0.12c-0.286,-0.279 -0.632,-0.42 -1.027,-0.423c-0.603,-0.003 -1.156,0.165 -1.657,0.506c-0.655,0.445 -1.126,1.048 -1.5,1.735c-0.027,0.051 -0.042,0.107 -0.071,0.18c0.078,0 0.137,0.001 0.195,0c0.504,-0.017 1.006,-0.055 1.504,-0.134c0.527,-0.085 1.04,-0.218 1.543,-0.397c0.101,-0.036 0.171,-0.089 0.229,-0.18c0.25,-0.393 0.537,-0.755 0.887,-1.065c0.021,-0.018 0.036,-0.043 0.051,-0.062Zm-1.959,3.718c0.172,-0.547 0.335,-1.064 0.501,-1.592c-1.068,0.305 -2.154,0.441 -3.254,0.377c-0.161,0.438 -0.302,0.854 -0.351,1.32c1.065,0.051 2.104,0.052 3.104,-0.105Zm-0.087,0.714l-0,-0.001c-2.029,0.28 -4.018,0.11 -5.983,-0.517c-0.054,0.351 -0.107,0.679 -0.095,1.02c1.016,0.173 2.01,0.353 3.008,0.51c0.996,0.157 1.988,0.351 2.992,0.475c0.026,-0.501 0.051,-0.979 0.078,-1.487Zm-0.969,6.244c0.564,-1.249 1.12,-2.48 1.687,-3.735c-2.741,-0.496 -5.474,-0.936 -8.214,-1.435c-0.546,1.187 -1.085,2.36 -1.638,3.56l0.001,-0c1.386,0.275 2.74,0.545 4.095,0.812c1.353,0.267 2.707,0.531 4.069,0.798Zm0.169,-11.541c-0.093,-0.192 -0.18,-0.371 -0.264,-0.545c-0.827,0.187 -2.471,1.19 -2.851,1.743c0.357,0.278 0.715,0.557 1.091,0.851c0.5,-0.876 1.134,-1.576 2.024,-2.049ZM18.664,7.16c0.42,0.016 0.724,0.361 0.714,0.784c-0.01,0.458 -0.32,0.757 -0.788,0.77c-0.398,-0.009 -0.725,-0.355 -0.715,-0.758c0.011,-0.487 0.33,-0.813 0.789,-0.796ZM17.348,8.573c0.015,0.061 0.014,0.132 0.002,0.194c-0.065,0.307 -0.367,0.544 -0.684,0.544l-0.001,-0c-0.409,0.023 -0.743,-0.404 -0.701,-0.695c0.022,-0.147 0.1,-0.222 0.236,-0.191c0.046,0.011 0.092,0.05 0.122,0.089c0.043,0.055 0.068,0.123 0.105,0.184c0.12,0.203 0.367,0.198 0.481,-0.01c0.028,-0.052 0.047,-0.109 0.073,-0.161c0.041,-0.08 0.097,-0.132 0.198,-0.116c0.094,0.016 0.148,0.079 0.169,0.162ZM14.35,7.168c0.484,-0.013 0.767,0.442 0.726,0.847c-0.031,0.307 -0.287,0.718 -0.82,0.7c-0.413,-0.015 -0.721,-0.408 -0.705,-0.775c0.021,-0.47 0.365,-0.797 0.799,-0.772ZM1.984,15.671l-0.001,-0l0,-0.001l0.001,0.001Z' +export const afcIconHtlf = + 'M 14.40625 23.980469 C 14.332031 23.988281 14.226562 23.996094 14.175781 24 L 13.863281 24 C 13.824219 24 13.722656 23.988281 13.644531 23.980469 C 13.175781 23.914062 12.722656 23.785156 12.363281 23.464844 C 12.214844 23.339844 12.183594 23.21875 11.976562 23.160156 C 11.628906 23.0625 11.148438 23.046875 10.777344 22.988281 C 10.285156 22.90625 9.753906 22.800781 9.285156 22.625 C 9.066406 22.546875 8.863281 22.425781 8.640625 22.347656 C 8.582031 22.34375 8.519531 22.386719 8.464844 22.414062 C 8.078125 22.613281 7.746094 22.898438 7.332031 23.066406 C 6.214844 23.527344 4.496094 23.636719 3.8125 22.429688 C 3.34375 21.601562 3.742188 20.429688 4.09375 19.621094 L 4.402344 19.039062 C 3.992188 19 3.570312 18.640625 3.382812 18.28125 C 3.3125 18.144531 3.285156 17.984375 3.207031 17.851562 C 2.992188 17.777344 2.792969 17.761719 2.589844 17.65625 C 1.875 17.285156 1.507812 16.359375 1.5625 15.582031 C 1.566406 15.492188 1.613281 15.402344 1.597656 15.308594 C 1.222656 15.054688 1.050781 14.585938 1.003906 14.152344 C 1 14.089844 1.015625 14.015625 0.96875 13.960938 L 0.96875 13.769531 C 1.019531 13.71875 1 13.640625 1.003906 13.578125 C 1.058594 12.960938 1.402344 12.1875 1.945312 11.855469 C 2.066406 11.777344 2.394531 11.6875 2.460938 11.625 C 2.546875 11.550781 2.660156 11.246094 2.757812 11.125 C 2.816406 11.050781 3.078125 10.855469 3.09375 10.820312 C 3.136719 10.726562 2.980469 10.347656 2.96875 10.203125 C 2.886719 9.371094 3.480469 8.441406 4.328125 8.292969 C 4.378906 8.285156 4.578125 8.304688 4.59375 8.226562 C 4.597656 8.207031 4.457031 7.90625 4.4375 7.847656 C 2.875 3.402344 6.917969 -0.160156 11.175781 0.00390625 C 14.621094 0.136719 17.738281 2.53125 17.96875 6.109375 C 19.976562 7.246094 21.511719 9.199219 22.34375 11.335938 C 23.476562 14.253906 23.234375 17.746094 21.40625 20.328125 C 21.359375 20.394531 21.046875 20.769531 21.046875 20.796875 C 21.035156 20.925781 21.582031 21.289062 21.6875 21.402344 C 21.890625 21.621094 21.949219 22.015625 21.722656 22.234375 C 21.320312 22.628906 19.996094 22.933594 19.492188 22.714844 C 19.425781 22.6875 19.34375 22.617188 19.277344 22.601562 C 19.113281 22.558594 18.90625 22.671875 18.742188 22.707031 C 18.480469 22.769531 18.167969 22.832031 17.898438 22.867188 C 17.5625 22.910156 17.097656 22.871094 16.816406 23.035156 C 16.636719 23.140625 16.476562 23.285156 16.289062 23.390625 C 15.730469 23.710938 15.042969 23.90625 14.40625 23.980469 Z M 9.035156 9.363281 C 9.296875 9.378906 9.574219 9.3125 9.835938 9.335938 C 10.53125 9.394531 11.28125 9.957031 11.535156 10.601562 C 11.585938 10.738281 11.597656 11.054688 11.765625 11.082031 C 12.066406 11.128906 12.761719 10.96875 13.070312 10.882812 C 16.175781 10.007812 18.105469 7.1875 16.460938 4.078125 C 14.808594 0.949219 10.6875 0.078125 7.664062 1.730469 C 5.480469 2.921875 4.398438 5.328125 5.347656 7.71875 C 5.460938 8 5.605469 8.214844 5.765625 8.464844 L 5.871094 8.347656 C 6.117188 8.234375 6.375 8.066406 6.640625 8.003906 C 7.578125 7.789062 8.769531 8.417969 9.035156 9.363281 Z M 20.164062 9.417969 C 20.0625 9.300781 20.023438 9.128906 19.9375 9.011719 C 19.660156 8.628906 19 8.015625 18.628906 7.703125 C 18.429688 7.535156 18.242188 7.375 17.996094 7.285156 C 17.984375 7.414062 17.875 7.722656 17.929688 7.832031 C 18.007812 7.980469 18.375 8.175781 18.523438 8.292969 C 18.902344 8.585938 19.253906 8.925781 19.65625 9.191406 C 19.730469 9.242188 20.089844 9.472656 20.164062 9.417969 Z M 10.820312 12.867188 C 10.882812 13.058594 10.753906 13.511719 10.53125 13.542969 C 10.253906 13.582031 9.78125 13.011719 9.601562 13.460938 C 9.496094 13.730469 9.523438 13.972656 9.277344 14.195312 C 9.214844 14.25 8.941406 14.421875 8.867188 14.425781 C 8.71875 14.4375 8.527344 14.242188 8.515625 14.101562 C 8.496094 13.816406 8.800781 13.847656 8.914062 13.644531 C 9.125 13.257812 8.949219 12.699219 9.617188 12.644531 C 9.800781 12.628906 9.980469 12.6875 10.160156 12.6875 C 10.265625 12.484375 10.300781 12.261719 10.480469 12.105469 C 10.621094 11.984375 10.683594 12 10.761719 11.796875 C 11.113281 10.90625 10.34375 10.03125 9.425781 10.113281 C 9.011719 10.148438 9.1875 10.632812 8.945312 10.847656 C 8.632812 11.125 7.90625 11.136719 7.71875 10.6875 C 7.550781 10.296875 7.902344 10.128906 8.214844 10.316406 C 8.300781 10.371094 8.390625 10.597656 8.4375 10.335938 C 8.464844 10.164062 8.375 9.753906 8.300781 9.585938 C 8.144531 9.207031 7.65625 8.808594 7.238281 8.777344 C 6.765625 8.742188 6.101562 9.03125 5.890625 9.476562 C 5.757812 9.761719 5.75 10.332031 5.296875 10.265625 C 5.023438 10.226562 5.007812 9.8125 5.03125 9.601562 C 5.046875 9.425781 5.28125 9.171875 5.03125 9.113281 C 4.226562 8.925781 3.589844 9.726562 3.886719 10.480469 C 4.019531 10.816406 4.242188 10.734375 4.519531 10.851562 C 4.761719 10.953125 4.980469 11.199219 4.976562 11.472656 C 4.976562 11.570312 4.90625 11.699219 4.949219 11.792969 C 4.980469 11.859375 5.222656 11.910156 5.304688 11.957031 C 5.875 12.289062 5.242188 12.964844 5.667969 13.378906 C 5.785156 13.492188 6.039062 13.554688 6.066406 13.726562 C 6.121094 14.0625 5.738281 14.160156 5.492188 14.023438 C 5.222656 13.882812 4.929688 13.414062 4.894531 13.113281 C 4.871094 12.910156 4.925781 12.703125 4.90625 12.5 C 4.640625 12.351562 4.253906 12.328125 4.230469 11.9375 C 4.222656 11.730469 4.390625 11.523438 4.09375 11.4375 C 3.734375 11.335938 3.433594 11.632812 3.285156 11.929688 C 3.078125 12.347656 3.128906 12.855469 3.316406 13.273438 C 3.585938 13.886719 3.886719 13.625 4.316406 13.898438 C 4.535156 14.042969 4.570312 14.234375 4.679688 14.453125 C 4.96875 14.449219 5.203125 14.476562 5.460938 14.609375 C 5.773438 14.769531 6.175781 15.152344 6.34375 15.460938 C 6.371094 15.511719 6.433594 15.773438 6.484375 15.597656 C 6.648438 15.054688 6.582031 13.964844 6.457031 13.40625 C 6.238281 12.445312 5.890625 12.09375 5.386719 11.320312 C 5.273438 11.140625 5.019531 10.746094 5.335938 10.617188 C 5.59375 10.515625 5.757812 10.71875 5.902344 10.890625 C 6.414062 11.484375 6.78125 12.257812 7.046875 12.988281 C 7.066406 13.046875 7.074219 13.195312 7.136719 13.210938 C 7.21875 13.230469 7.21875 13.085938 7.25 13.035156 C 7.3125 12.929688 7.546875 12.8125 7.65625 12.726562 C 7.90625 12.535156 8.613281 11.839844 8.875 11.796875 C 9.003906 11.773438 9.097656 11.808594 9.179688 11.914062 C 9.382812 12.167969 9.105469 12.34375 8.917969 12.484375 C 8.5625 12.742188 8.191406 12.921875 7.890625 13.257812 C 7.460938 13.738281 7.203125 14.394531 7.265625 15.042969 L 7.304688 15.082031 C 7.464844 15.011719 7.601562 14.898438 7.761719 14.828125 C 8.144531 14.660156 8.597656 14.679688 8.976562 14.515625 C 9.15625 14.4375 9.296875 14.285156 9.511719 14.371094 C 9.703125 14.445312 9.652344 14.707031 9.5625 14.839844 C 9.28125 15.242188 8.210938 15.289062 7.738281 15.550781 C 6.984375 15.96875 6.875 16.761719 6.796875 17.546875 C 6.898438 17.523438 6.984375 17.464844 7.09375 17.433594 C 7.597656 17.28125 8.15625 17.433594 8.648438 17.222656 C 8.882812 17.117188 9.136719 16.8125 9.363281 17.121094 C 9.449219 17.238281 9.433594 17.34375 9.34375 17.453125 C 9.097656 17.761719 8.496094 18.003906 8.105469 18.03125 C 7.777344 18.054688 7.414062 17.953125 7.113281 18.117188 C 6.835938 18.265625 6.6875 18.601562 6.589844 18.890625 C 6.601562 18.914062 6.636719 18.890625 6.652344 18.886719 C 6.878906 18.796875 6.992188 18.660156 7.285156 18.597656 C 7.46875 18.558594 7.496094 18.59375 7.65625 18.605469 C 7.855469 18.617188 7.828125 18.480469 7.960938 18.40625 C 8.007812 18.378906 8.070312 18.375 8.125 18.378906 C 8.300781 18.398438 8.695312 18.882812 8.90625 19 C 9.640625 19.410156 10.78125 18.945312 10.984375 18.117188 C 11.078125 17.734375 10.863281 17.742188 10.664062 17.503906 C 10.53125 17.339844 10.339844 17 10.273438 16.800781 C 10.21875 16.636719 10.207031 16.355469 10.078125 16.25 C 9.894531 16.09375 9.664062 16.015625 9.421875 16.003906 C 9.003906 15.984375 9.078125 16.191406 8.90625 16.460938 C 8.789062 16.652344 8.421875 16.917969 8.191406 16.941406 C 7.980469 16.964844 7.714844 16.863281 7.699219 16.621094 C 7.667969 16.167969 8.101562 16.382812 8.296875 16.195312 C 8.402344 16.097656 8.449219 15.863281 8.511719 15.734375 C 8.808594 15.101562 9.699219 15.324219 10.230469 15.460938 C 10.441406 14.667969 11.097656 14.113281 11.738281 13.65625 C 11.746094 13.628906 11.730469 13.621094 11.722656 13.605469 C 11.683594 13.535156 11.539062 13.359375 11.476562 13.292969 C 11.300781 13.09375 11.097656 12.894531 10.820312 12.867188 Z M 17.996094 13.386719 L 21.800781 13.386719 C 22.007812 13.375 21.910156 13.152344 21.882812 13.011719 C 21.742188 12.382812 21.488281 11.695312 21.21875 11.109375 C 21.113281 10.890625 20.917969 10.453125 20.761719 10.285156 C 20.621094 10.136719 20.625 10.21875 20.464844 10.234375 C 20.277344 10.246094 20.0625 10.210938 19.882812 10.160156 C 19.097656 9.945312 18.539062 9.308594 17.890625 8.863281 C 17.785156 10.042969 17.765625 11.246094 17.875 12.425781 C 17.902344 12.746094 17.949219 13.066406 17.996094 13.386719 Z M 20.527344 21.761719 C 20.523438 21.695312 20.441406 21.703125 20.386719 21.664062 C 20.191406 21.527344 19.859375 21.109375 19.707031 20.910156 C 18.707031 19.605469 18.050781 17.835938 17.632812 16.253906 C 17.097656 14.230469 16.84375 12.214844 16.9375 10.121094 C 16.949219 9.886719 16.953125 9.652344 16.964844 9.417969 C 16.792969 9.570312 16.667969 9.789062 16.511719 9.957031 C 16.441406 10.035156 16.316406 10.105469 16.273438 10.183594 C 16.199219 10.320312 16.1875 10.667969 16.191406 10.832031 C 16.25 11.652344 16.230469 12.457031 16.3125 13.273438 C 16.554688 15.609375 17.148438 18.082031 18.320312 20.125 C 18.589844 20.59375 19.148438 21.492188 19.628906 21.730469 C 19.925781 21.875 20.21875 21.738281 20.527344 21.761719 Z M 15.183594 10.949219 C 15.078125 10.96875 14.855469 11.148438 14.746094 11.207031 C 14.164062 11.53125 12.964844 11.90625 12.300781 11.949219 C 12.121094 11.960938 11.738281 11.914062 11.59375 11.96875 C 11.535156 11.996094 11.445312 12.136719 11.460938 12.195312 C 11.476562 12.242188 11.921875 12.53125 11.996094 12.597656 C 12.085938 12.675781 12.460938 13.164062 12.523438 13.160156 L 15.273438 11.871094 L 15.289062 10.988281 L 15.261719 10.945312 C 15.234375 10.941406 15.207031 10.941406 15.179688 10.949219 Z M 1.890625 13.5625 L 2.160156 13.5625 C 2.171875 13.5625 2.28125 13.617188 2.296875 13.628906 C 2.40625 13.71875 2.382812 13.871094 2.359375 13.996094 C 2.386719 14.023438 2.652344 13.871094 2.683594 13.832031 C 2.6875 13.796875 2.539062 13.589844 2.511719 13.539062 C 2.382812 13.285156 2.328125 12.976562 2.308594 12.695312 C 2.050781 12.902344 1.933594 13.238281 1.890625 13.5625 Z M 15.84375 16.417969 C 15.890625 16.335938 15.671875 15.394531 15.644531 15.226562 C 15.507812 14.4375 15.417969 13.632812 15.363281 12.832031 C 14.542969 13.167969 13.710938 13.480469 12.933594 13.898438 C 12.34375 14.21875 11.625 14.671875 11.257812 15.238281 C 11.203125 15.316406 11.015625 15.609375 11.085938 15.6875 C 11.226562 15.746094 11.355469 15.644531 11.507812 15.722656 C 11.730469 15.84375 11.671875 16.167969 11.449219 16.261719 C 11.207031 16.367188 10.910156 16.167969 11.09375 16.589844 C 11.117188 16.648438 11.289062 16.949219 11.332031 16.957031 C 11.398438 16.96875 11.609375 16.671875 11.738281 16.636719 C 11.859375 16.605469 12.027344 16.628906 12.089844 16.757812 C 12.210938 17.003906 11.898438 17.171875 11.859375 17.390625 C 12.558594 17.644531 13.296875 17.542969 13.988281 17.328125 C 14.65625 17.121094 15.257812 16.785156 15.84375 16.417969 Z M 18.167969 14.238281 C 18.242188 14.824219 18.375 15.402344 18.546875 15.964844 C 18.570312 16.046875 18.679688 16.4375 18.722656 16.464844 C 18.789062 16.503906 19.015625 16.507812 19.109375 16.53125 C 19.441406 16.609375 19.914062 17 20.238281 17.167969 C 20.285156 17.191406 20.421875 17.273438 20.464844 17.269531 C 20.53125 17.265625 20.828125 17.082031 20.90625 17.035156 C 21.109375 16.910156 21.296875 16.761719 21.5 16.636719 C 21.601562 16.574219 21.851562 16.480469 21.898438 16.398438 C 22.023438 16.183594 22.023438 15.515625 22.035156 15.25 C 22.042969 14.984375 22.085938 14.597656 22.054688 14.332031 C 22.050781 14.3125 22.054688 14.292969 22.035156 14.277344 L 18.167969 14.234375 Z M 4.855469 15.105469 C 4.828125 15.136719 4.972656 15.355469 4.992188 15.410156 C 5.0625 15.597656 5.066406 15.996094 4.8125 16.039062 C 4.714844 16.054688 4.546875 16.027344 4.488281 15.949219 C 4.390625 15.8125 4.40625 15.714844 4.382812 15.566406 C 4.351562 15.355469 4.15625 15.398438 3.996094 15.292969 C 3.824219 15.179688 3.789062 15.03125 3.851562 14.839844 C 3.902344 14.691406 4.042969 14.558594 3.800781 14.5 C 2.546875 14.203125 1.855469 16.125 2.925781 16.851562 C 3.214844 17.046875 3.480469 16.984375 3.773438 17.097656 C 4.097656 17.222656 3.984375 17.578125 4.113281 17.847656 C 4.359375 18.363281 4.886719 18.25 5.359375 18.25 C 5.511719 18.28125 5.601562 18.449219 5.722656 18.535156 C 5.71875 18.097656 5.511719 17.714844 5.164062 17.453125 C 4.84375 17.214844 4.414062 17.148438 4.09375 16.914062 C 3.851562 16.734375 3.335938 16.238281 3.726562 15.960938 C 3.980469 15.78125 4.183594 16.210938 4.359375 16.316406 C 4.824219 16.601562 5.535156 16.789062 5.894531 17.191406 C 5.925781 17.226562 6.074219 17.476562 6.121094 17.425781 C 6.214844 16.515625 5.839844 15.34375 4.855469 15.105469 Z M 16.105469 17.324219 C 15.710938 17.535156 15.324219 17.761719 14.910156 17.9375 C 13.945312 18.347656 12.875 18.570312 11.835938 18.328125 C 11.816406 18.335938 11.710938 18.640625 11.683594 18.699219 C 11.140625 19.835938 9.625 20.34375 8.511719 19.722656 C 8.324219 19.617188 8.179688 19.457031 7.980469 19.375 C 7.761719 19.417969 7.535156 19.394531 7.316406 19.445312 C 7.097656 19.496094 6.863281 19.652344 6.660156 19.757812 C 7.945312 21.21875 9.832031 22.121094 11.789062 22.191406 C 11.824219 20.492188 13.078125 18.792969 14.703125 18.285156 C 15.226562 18.121094 15.78125 18.058594 16.332031 18.066406 Z M 19.179688 17.628906 L 19.15625 17.601562 L 19.574219 18.628906 L 19.660156 18.65625 L 19.832031 18.011719 Z M 20.421875 19.976562 C 20.695312 19.582031 20.976562 19.183594 21.183594 18.75 C 21.28125 18.542969 21.40625 18.265625 21.46875 18.046875 C 21.492188 17.957031 21.574219 17.769531 21.4375 17.773438 C 21.316406 17.777344 20.828125 18.046875 20.726562 18.136719 C 20.605469 18.246094 20.625 18.460938 20.585938 18.617188 C 20.488281 18.972656 20.308594 19.304688 20.199219 19.65625 C 20.1875 19.726562 20.230469 19.789062 20.269531 19.839844 C 20.289062 19.867188 20.398438 19.992188 20.421875 19.976562 Z M 18.308594 21.878906 C 18.3125 21.863281 18.304688 21.847656 18.296875 21.828125 C 18.257812 21.726562 18.019531 21.457031 17.941406 21.339844 C 17.582031 20.808594 17.242188 20.183594 16.976562 19.597656 C 16.886719 19.402344 16.859375 19.105469 16.621094 19.035156 C 16.105469 18.875 15.246094 18.984375 14.753906 19.203125 C 13.742188 19.65625 12.570312 21.136719 12.671875 22.289062 C 12.691406 22.507812 12.773438 22.617188 12.933594 22.757812 C 13.035156 22.84375 13.304688 23.054688 13.4375 23 C 13.605469 22.925781 13.53125 22.375 13.84375 22.367188 C 13.878906 22.363281 14.042969 22.386719 14.066406 22.402344 C 14.125 22.441406 14.132812 22.679688 14.125 22.753906 C 14.109375 22.878906 13.976562 23.074219 14.179688 23.121094 C 14.699219 23.246094 15.824219 22.652344 16.269531 22.367188 C 16.484375 22.230469 16.765625 22.039062 16.9375 21.855469 C 17.105469 21.675781 17.054688 21.609375 17.363281 21.636719 C 17.621094 21.660156 17.542969 21.824219 17.667969 21.953125 C 17.789062 22.085938 18.164062 21.945312 18.308594 21.878906 Z M 5.078125 22.363281 C 5.148438 22.246094 5.132812 21.914062 5.253906 21.855469 C 5.46875 21.75 5.679688 21.792969 5.683594 22.066406 C 5.6875 22.335938 5.453125 22.566406 5.9375 22.539062 C 6.535156 22.507812 7.039062 22.253906 7.535156 21.953125 C 7.566406 21.9375 7.625 21.910156 7.628906 21.871094 C 7.632812 21.828125 7.597656 21.804688 7.566406 21.777344 C 7.429688 21.648438 7.210938 21.542969 7.050781 21.425781 C 6.613281 21.105469 6.125 20.585938 5.800781 20.144531 C 5.730469 20.050781 5.308594 19.394531 5.261719 19.386719 C 5.238281 19.378906 5.234375 19.398438 5.222656 19.414062 C 5.070312 19.71875 4.875 20.011719 4.757812 20.332031 C 4.566406 20.855469 4.222656 21.925781 4.828125 22.28125 C 4.871094 22.308594 5.035156 22.390625 5.078125 22.363281 Z M 5.078125 22.363281M 10.085938 6.09375 C 10.222656 6.0625 10.402344 6.203125 10.421875 6.339844 C 10.507812 7.085938 9.582031 7.625 8.9375 7.390625 C 8.605469 7.269531 8.246094 6.914062 8.191406 6.558594 C 8.152344 6.304688 8.238281 6.066406 8.539062 6.109375 C 8.742188 6.136719 8.761719 6.375 8.851562 6.523438 C 9.054688 6.859375 9.507812 6.839844 9.742188 6.546875 C 9.828125 6.4375 9.953125 6.121094 10.085938 6.09375 Z M 10.085938 6.09375M 12.496094 5.175781 C 13.367188 5.078125 13.476562 6.375 12.679688 6.46875 C 11.765625 6.578125 11.675781 5.269531 12.496094 5.175781 Z M 12.496094 5.175781M 6.359375 5.191406 C 7.328125 5.082031 7.339844 6.605469 6.324219 6.464844 C 5.640625 6.375 5.628906 5.277344 6.359375 5.191406 Z M 6.359375 5.191406' +export const afcIconLogo = + 'M11.946,23.702l-10.14,-5.854l0,-11.706l10.14,-5.854l10.139,5.854l0,11.708l-10.139,5.852Zm-9.554,-6.192l9.554,5.516l9.553,-5.516l0,-11.03l-9.553,-5.516l-9.554,5.516l-0,11.03ZM11.946,1.904l-8.741,5.045l-0,10.092l2.036,1.175l-0,-10.092l6.705,-3.87l6.703,3.87l-0,10.092l2.035,-1.175l0,-10.092l-8.738,-5.045ZM15.8,7.42l-3.854,2.226l-3.856,-2.226l-2.036,1.175l4.873,2.813l-0,10.092l1.019,0.586l1.017,-0.586l-0,-10.092l4.872,-2.813l-2.035,-1.175Z' +export const afcIconNightOwl = + 'M23.981,4.616c-0.001,-0.052 -0.018,-0.06 -0.066,-0.041c-0.016,0.006 -0.031,0.015 -0.045,0.025c-0.166,0.105 -0.329,0.216 -0.498,0.316c-0.378,0.224 -0.757,0.443 -1.137,0.662c-0.254,0.147 -0.509,0.291 -0.766,0.433c-0.331,0.183 -0.656,0.378 -1.006,0.527c-0.169,0.072 -0.333,0.154 -0.5,0.233c-0.215,0.102 -0.416,0.231 -0.602,0.378c-0.148,0.118 -0.286,0.251 -0.419,0.388c-0.101,0.104 -0.191,0.219 -0.234,0.364c-0.005,0.018 -0.034,0.037 -0.055,0.04c-0.125,0.017 -0.25,0.032 -0.376,0.043c-0.304,0.026 -0.609,0.05 -0.914,0.075c-0.047,0.004 -0.072,-0.017 -0.098,-0.055c-0.068,-0.099 -0.14,-0.195 -0.214,-0.288c-0.026,-0.032 -0.037,-0.056 -0.007,-0.088c0.016,-0.018 0.029,-0.038 0.043,-0.057c0.146,-0.199 0.302,-0.394 0.437,-0.601c0.205,-0.313 0.365,-0.649 0.467,-1.01c0.099,-0.347 0.16,-0.698 0.139,-1.063c-0.019,-0.352 -0.09,-0.692 -0.217,-1.018c-0.071,-0.183 -0.16,-0.36 -0.253,-0.533c-0.061,-0.115 -0.137,-0.223 -0.257,-0.289c-0.109,-0.06 -0.253,-0.043 -0.347,0.038c-0.076,0.065 -0.109,0.151 -0.132,0.243c-0.022,0.089 -0.039,0.18 -0.068,0.267c-0.1,0.302 -0.234,0.587 -0.407,0.856c-0.229,0.355 -0.494,0.675 -0.827,0.94c-0.224,0.178 -0.465,0.327 -0.736,0.409c-0.356,0.107 -0.719,0.196 -1.082,0.276c-0.442,0.098 -0.88,0.204 -1.293,0.394c-0.203,0.093 -0.401,0.194 -0.544,0.374c-0.008,0.01 -0.013,0.023 -0.017,0.031c-0.081,-0.066 -0.147,-0.126 -0.219,-0.178c-0.227,-0.166 -0.482,-0.275 -0.741,-0.38c-0.286,-0.116 -0.587,-0.171 -0.886,-0.234c-0.15,-0.032 -0.304,-0.049 -0.455,-0.081c-0.138,-0.029 -0.275,-0.064 -0.41,-0.103c-0.166,-0.048 -0.335,-0.094 -0.495,-0.157c-0.302,-0.12 -0.551,-0.318 -0.777,-0.547c-0.236,-0.241 -0.432,-0.513 -0.609,-0.8c-0.151,-0.244 -0.258,-0.506 -0.331,-0.783c-0.035,-0.13 -0.069,-0.261 -0.113,-0.388c-0.073,-0.211 -0.309,-0.279 -0.476,-0.132c-0.086,0.076 -0.155,0.172 -0.219,0.267c-0.157,0.235 -0.27,0.491 -0.354,0.76c-0.039,0.126 -0.073,0.256 -0.091,0.387c-0.035,0.263 -0.04,0.528 -0.02,0.794c0.026,0.362 0.1,0.712 0.252,1.042c0.16,0.349 0.358,0.677 0.596,0.979c0.089,0.113 0.179,0.223 0.271,0.337c-0.104,0.104 -0.176,0.225 -0.24,0.352c-0.017,0.036 -0.046,0.04 -0.08,0.039c-0.12,-0.005 -0.24,-0.007 -0.359,-0.014c-0.307,-0.021 -0.615,-0.044 -0.922,-0.065c-0.045,-0.003 -0.067,-0.031 -0.089,-0.064c-0.058,-0.088 -0.115,-0.176 -0.179,-0.259c-0.161,-0.213 -0.353,-0.395 -0.566,-0.556c-0.204,-0.154 -0.419,-0.288 -0.654,-0.392c-0.248,-0.11 -0.498,-0.217 -0.74,-0.34c-0.245,-0.126 -0.482,-0.269 -0.721,-0.407c-0.346,-0.201 -0.691,-0.403 -1.036,-0.607c-0.237,-0.141 -0.475,-0.282 -0.709,-0.428c-0.165,-0.103 -0.324,-0.215 -0.487,-0.322c-0.016,-0.011 -0.043,-0.021 -0.057,-0.015c-0.013,0.007 -0.021,0.035 -0.022,0.054c-0.016,0.263 -0.02,0.527 0.015,0.789c0.031,0.229 0.079,0.455 0.16,0.672c0.14,0.372 0.359,0.695 0.627,0.985c0.113,0.123 0.233,0.239 0.354,0.355c0.038,0.037 0.053,0.068 0.016,0.114c-0.019,0.025 -0.039,0.053 -0.049,0.083c-0.041,0.13 -0.083,0.26 -0.115,0.392c-0.033,0.136 -0.038,0.277 -0.013,0.415c0.066,0.367 0.209,0.695 0.493,0.95c0.191,0.172 0.381,0.345 0.627,0.439c0.038,0.014 0.045,0.036 0.03,0.075c-0.057,0.152 -0.139,0.283 -0.289,0.361c-0.072,0.037 -0.092,0.1 -0.087,0.178c0.017,0.259 0.131,0.478 0.285,0.676c0.193,0.248 0.419,0.464 0.692,0.625c0.152,0.09 0.312,0.167 0.473,0.241c0.084,0.039 0.177,0.058 0.275,0.089c-0.025,0.017 -0.042,0.029 -0.06,0.04c-0.154,0.087 -0.309,0.174 -0.464,0.259c-0.09,0.049 -0.099,0.06 -0.059,0.156c0.029,0.068 0.062,0.137 0.106,0.197c0.095,0.132 0.189,0.266 0.301,0.383c0.127,0.135 0.268,0.258 0.411,0.375c0.116,0.095 0.242,0.177 0.367,0.259c0.235,0.153 0.467,0.31 0.709,0.451c0.286,0.167 0.599,0.275 0.913,0.373c0.249,0.078 0.505,0.131 0.766,0.158c0.023,0.003 0.052,0.022 0.064,0.041c0.043,0.072 0.075,0.15 0.12,0.219c0.124,0.19 0.245,0.383 0.381,0.563c0.152,0.202 0.328,0.384 0.512,0.557c0.31,0.294 0.635,0.567 1.01,0.776c0.033,0.018 0.076,0.035 0.092,0.065c0.011,0.02 -0.015,0.061 -0.024,0.093c-0.001,0.006 -0.003,0.013 -0.003,0.019c-0.009,0.115 -0.023,0.229 -0.025,0.344c-0.004,0.182 -0,0.365 0.123,0.532l-0,0c-0.032,0.005 -0.048,0.009 -0.064,0.01c-0.122,0.009 -0.244,0.012 -0.365,0.026c-0.142,0.017 -0.283,0.036 -0.404,0.128c-0.186,0.142 -0.303,0.328 -0.363,0.551c-0.008,0.029 -0.007,0.061 -0.02,0.087c-0.01,0.022 -0.032,0.047 -0.053,0.053c-0.125,0.038 -0.252,0.07 -0.377,0.105c-0.157,0.043 -0.315,0.082 -0.47,0.13c-0.157,0.049 -0.259,0.159 -0.274,0.323c-0.016,0.164 0.012,0.33 0.11,0.466c0.018,0.026 0.036,0.049 0.054,0.069c0.013,0.001 0.022,0.004 0.027,0.007c-0.003,0.002 -0.008,0.004 -0.013,0.007c-0.005,-0.005 -0.009,-0.009 -0.014,-0.014c-0.037,-0.004 -0.103,0.001 -0.166,0.022c-0.051,0.011 -0.134,0.058 -0.183,0.073c-0.097,0.029 -0.152,0.096 -0.171,0.196c-0.032,0.165 -0.023,0.329 -0.003,0.493c0.014,0.11 0.08,0.185 0.187,0.223c0.129,0.045 0.259,0.029 0.388,0.009c0.293,-0.044 0.577,-0.122 0.857,-0.218c0.127,-0.044 0.256,-0.084 0.384,-0.126c0.038,-0.013 0.061,-0.006 0.081,0.035c0.049,0.101 0.134,0.156 0.245,0.16c0.242,0.007 0.484,0.009 0.724,-0.031c0.049,-0.008 0.084,0.003 0.123,0.035c0.054,0.044 0.11,0.092 0.174,0.118c0.342,0.139 0.676,0.135 0.995,-0.069c0.073,-0.048 0.087,-0.045 0.155,0.004c0.238,0.168 0.496,0.208 0.774,0.114c0.137,-0.046 0.245,-0.138 0.359,-0.22c0.031,-0.023 0.073,-0.041 0.11,-0.042c0.255,-0.006 0.51,-0.008 0.764,-0.01c0.028,0 0.057,0.002 0.083,0.01c0.025,0.009 0.054,0.022 0.068,0.042c0.109,0.155 0.267,0.223 0.444,0.255c0.186,0.034 0.367,-0.001 0.543,-0.058c0.064,-0.02 0.126,-0.055 0.181,-0.094c0.045,-0.032 0.077,-0.029 0.121,-0.003c0.074,0.043 0.149,0.087 0.228,0.117c0.233,0.09 0.465,0.049 0.689,-0.035c0.081,-0.031 0.15,-0.096 0.226,-0.142c0.023,-0.015 0.054,-0.026 0.08,-0.025c0.203,0.008 0.406,0.023 0.609,0.03c0.179,0.006 0.344,-0.032 0.475,-0.168c0.012,-0.011 0.044,-0.013 0.063,-0.006c0.089,0.03 0.176,0.065 0.264,0.097c0.283,0.099 0.571,0.182 0.867,0.234c0.144,0.025 0.29,0.034 0.432,-0.012c0.128,-0.041 0.203,-0.152 0.206,-0.285c0.003,-0.105 -0.027,-0.203 -0.059,-0.3c-0.053,-0.161 -0.119,-0.311 -0.309,-0.358c0.009,-0.017 0.014,-0.028 0.021,-0.038c0.072,-0.098 0.116,-0.203 0.12,-0.326c0.009,-0.267 -0.063,-0.447 -0.335,-0.527c-0.145,-0.043 -0.293,-0.079 -0.438,-0.124c-0.126,-0.04 -0.251,-0.086 -0.375,-0.132c-0.065,-0.024 -0.103,-0.068 -0.123,-0.142c-0.026,-0.1 -0.066,-0.199 -0.117,-0.29c-0.132,-0.236 -0.336,-0.375 -0.606,-0.4c-0.151,-0.014 -0.304,-0.009 -0.456,-0.013c-0.022,-0.001 -0.044,-0.002 -0.073,-0.004c0.032,-0.059 0.061,-0.109 0.086,-0.16c0.07,-0.149 0.058,-0.305 0.034,-0.46c-0.021,-0.135 -0.05,-0.268 -0.075,-0.398c0.093,-0.049 0.19,-0.087 0.272,-0.147c0.204,-0.148 0.409,-0.297 0.599,-0.463c0.247,-0.215 0.47,-0.454 0.676,-0.71c0.216,-0.268 0.412,-0.547 0.562,-0.856c0.016,-0.032 0.036,-0.046 0.071,-0.041c0.015,0.002 0.03,0.003 0.045,0.003c0.247,-0.015 0.487,-0.072 0.723,-0.14c0.234,-0.067 0.462,-0.154 0.689,-0.243c0.234,-0.091 0.454,-0.212 0.663,-0.351c0.142,-0.094 0.281,-0.196 0.428,-0.283c0.28,-0.165 0.548,-0.345 0.758,-0.596c0.133,-0.158 0.258,-0.325 0.37,-0.499c0.082,-0.128 0.065,-0.143 -0.069,-0.212c-0.162,-0.082 -0.321,-0.169 -0.482,-0.254c-0.025,-0.013 -0.05,-0.025 -0.075,-0.038c0.023,-0.018 0.043,-0.023 0.063,-0.028c0.08,-0.022 0.163,-0.038 0.241,-0.067c0.244,-0.089 0.472,-0.211 0.685,-0.361c0.303,-0.213 0.548,-0.482 0.744,-0.796c0.063,-0.101 0.117,-0.205 0.135,-0.324c0.031,-0.198 0.011,-0.229 -0.167,-0.324c-0.133,-0.071 -0.239,-0.172 -0.296,-0.316c-0.017,-0.041 -0.009,-0.065 0.031,-0.089c0.092,-0.053 0.186,-0.106 0.269,-0.172c0.136,-0.108 0.269,-0.22 0.394,-0.339c0.218,-0.209 0.363,-0.466 0.445,-0.755c0.035,-0.124 0.054,-0.258 0.049,-0.386c-0.009,-0.23 -0.059,-0.454 -0.182,-0.655c-0.007,-0.012 -0.002,-0.043 0.008,-0.053c0.075,-0.073 0.154,-0.143 0.23,-0.214c0.241,-0.228 0.459,-0.475 0.612,-0.771c0.183,-0.353 0.298,-0.73 0.315,-1.128c0.01,-0.239 -0.008,-0.479 -0.016,-0.718Zm-5.455,3.74c-0.113,0.159 -0.16,0.349 -0.219,0.537c-0.044,0.141 -0.105,0.279 -0.164,0.415c-0.053,0.123 -0.127,0.232 -0.221,0.328c-0.007,0.007 -0.015,0.014 -0.036,0.032c-0.07,-0.41 -0.171,-0.8 -0.331,-1.165c0.323,-0.049 0.649,-0.098 0.971,-0.147Zm-1.685,1.931c-0.042,0.281 -0.128,0.545 -0.256,0.797c-0.087,0.172 -0.198,0.328 -0.323,0.476c-0.222,0.261 -0.482,0.475 -0.783,0.636c-0.269,0.145 -0.555,0.242 -0.859,0.29c-0.206,0.033 -0.412,0.052 -0.62,0.052c-0.188,-0.001 -0.369,-0.041 -0.547,-0.097c-0.217,-0.069 -0.428,-0.152 -0.625,-0.267c-0.017,-0.009 -0.028,-0.028 -0.042,-0.043c0.013,-0.012 0.028,-0.023 0.041,-0.036c0.046,-0.046 0.098,-0.089 0.138,-0.141c0.116,-0.15 0.199,-0.318 0.249,-0.503c0.02,-0.074 0.032,-0.079 0.093,-0.03c0.136,0.109 0.279,0.204 0.44,0.275c0.149,0.066 0.306,0.097 0.466,0.11c0.619,0.054 1.13,-0.168 1.548,-0.619c0.184,-0.198 0.295,-0.433 0.368,-0.69c0.071,-0.248 0.075,-0.503 0.029,-0.751c-0.068,-0.363 -0.24,-0.68 -0.52,-0.93c-0.078,-0.07 -0.16,-0.135 -0.242,-0.202c-0.016,-0.013 -0.035,-0.023 -0.053,-0.034c0.004,-0.008 0.008,-0.017 0.012,-0.025l0,0c0.016,-0.009 0.032,-0.021 0.049,-0.026c0.19,-0.056 0.342,-0.175 0.491,-0.297c0.039,-0.032 0.068,-0.035 0.1,-0.005c0.121,0.115 0.25,0.223 0.357,0.35c0.192,0.228 0.326,0.493 0.412,0.778c0.092,0.303 0.124,0.613 0.077,0.932Zm-4.845,2.823c-0.006,0.013 -0.012,0.025 -0.018,0.038c-0.015,0.032 -0.033,0.063 -0.057,0.108c-0.025,-0.038 -0.047,-0.061 -0.059,-0.089c-0.006,-0.014 -0.013,-0.028 -0.019,-0.042c-0.109,-0.246 -0.22,-0.491 -0.323,-0.739c-0.075,-0.181 -0.144,-0.366 -0.203,-0.554c-0.05,-0.16 -0.082,-0.327 -0.122,-0.491c-0.006,-0.025 -0.011,-0.051 -0.023,-0.073c-0.023,-0.045 -0.015,-0.085 0.005,-0.128c0.057,-0.12 0.113,-0.241 0.163,-0.363c0.034,-0.085 0.059,-0.174 0.086,-0.262c0.018,-0.058 0.037,-0.067 0.083,-0.023c0.117,0.116 0.231,0.235 0.347,0.351c0.028,0.028 0.061,0.05 0.092,0.074l0.037,0.004c0.002,-0.026 0.014,-0.047 0.033,-0.067c0.095,-0.1 0.189,-0.199 0.282,-0.299c0.024,-0.025 0.043,-0.053 0.067,-0.078c0.011,-0.011 0.026,-0.019 0.039,-0.029c0.01,0.015 0.023,0.028 0.029,0.044c0.052,0.143 0.096,0.288 0.156,0.427c0.04,0.094 0.104,0.176 0.154,0.266c0.011,0.019 0.018,0.048 0.012,0.068c-0.03,0.098 -0.069,0.193 -0.097,0.292c-0.131,0.454 -0.318,0.885 -0.538,1.302c-0.046,0.086 -0.085,0.175 -0.126,0.263Zm-2.426,-0.582c-0.134,-0.012 -0.269,-0.024 -0.402,-0.045c-0.197,-0.032 -0.385,-0.098 -0.567,-0.18c-0.23,-0.103 -0.441,-0.237 -0.637,-0.393c-0.196,-0.156 -0.356,-0.345 -0.501,-0.548c-0.243,-0.338 -0.386,-0.714 -0.43,-1.126c-0.032,-0.291 -0.003,-0.576 0.08,-0.857c0.059,-0.196 0.132,-0.385 0.237,-0.56c0.104,-0.174 0.234,-0.327 0.385,-0.462c0.049,-0.045 0.101,-0.086 0.152,-0.128c0.022,-0.017 0.043,-0.026 0.068,-0.001c0.143,0.147 0.325,0.225 0.514,0.291c0.027,0.009 0.053,0.02 0.078,0.03c0.006,0.002 0.011,0.007 0.027,0.017l-0,0.001c-0.084,0.06 -0.158,0.114 -0.232,0.167c-0.266,0.194 -0.459,0.445 -0.564,0.755c-0.091,0.266 -0.116,0.543 -0.07,0.823c0.071,0.427 0.275,0.777 0.604,1.059c0.198,0.17 0.42,0.295 0.668,0.372c0.297,0.091 0.599,0.087 0.901,0.018c0.261,-0.059 0.493,-0.18 0.709,-0.334c0.028,-0.02 0.053,-0.043 0.087,-0.071c0.01,0.028 0.02,0.05 0.025,0.073c0.04,0.2 0.114,0.386 0.25,0.542c0.037,0.043 0.079,0.082 0.123,0.119c0.034,0.028 0.025,0.042 -0.007,0.06c-0.228,0.125 -0.466,0.228 -0.717,0.296c-0.255,0.068 -0.516,0.104 -0.781,0.082Zm-2.877,-6.213c0.026,0.01 0.054,0.016 0.075,0.032c0.242,0.175 0.51,0.307 0.775,0.441c0.423,0.215 0.85,0.424 1.277,0.632c0.271,0.133 0.544,0.262 0.816,0.391c0.087,0.041 0.177,0.077 0.263,0.119c0.221,0.108 0.443,0.216 0.661,0.329c0.3,0.157 0.566,0.361 0.802,0.604c0.2,0.206 0.368,0.439 0.521,0.682c0.01,0.018 0.023,0.034 0.038,0.055c0.085,-0.117 0.16,-0.232 0.247,-0.337c0.134,-0.16 0.27,-0.32 0.416,-0.469c0.196,-0.2 0.421,-0.363 0.666,-0.496c0.143,-0.078 0.284,-0.161 0.429,-0.233c0.274,-0.135 0.552,-0.263 0.827,-0.396c0.323,-0.157 0.646,-0.315 0.968,-0.474c0.368,-0.183 0.735,-0.367 1.101,-0.553c0.193,-0.098 0.382,-0.2 0.585,-0.294c-0.018,0.024 -0.034,0.053 -0.056,0.073c-0.323,0.306 -0.675,0.573 -1.063,0.791c-0.314,0.176 -0.621,0.363 -0.939,0.53c-0.426,0.224 -0.859,0.434 -1.29,0.649c-0.38,0.191 -0.743,0.406 -1.051,0.704c-0.198,0.192 -0.364,0.41 -0.524,0.632c-0.102,0.143 -0.198,0.29 -0.297,0.435c-0.028,0.042 -0.048,0.038 -0.079,-0.009c-0.161,-0.244 -0.314,-0.494 -0.488,-0.729c-0.281,-0.381 -0.633,-0.684 -1.058,-0.897c-0.293,-0.147 -0.591,-0.282 -0.882,-0.43c-0.33,-0.168 -0.659,-0.338 -0.982,-0.517c-0.271,-0.151 -0.536,-0.313 -0.798,-0.477c-0.142,-0.088 -0.277,-0.188 -0.408,-0.291c-0.179,-0.142 -0.351,-0.292 -0.526,-0.439c-0.014,-0.011 -0.024,-0.027 -0.036,-0.041c0.004,-0.006 0.007,-0.011 0.01,-0.017Zm6.633,3.85c0.002,0.184 0.075,0.345 0.169,0.499c0.18,0.294 0.443,0.474 0.78,0.534c0.218,0.038 0.427,-0.007 0.63,-0.101c0.356,-0.164 0.563,-0.442 0.638,-0.816c0.066,-0.333 -0.021,-0.641 -0.22,-0.914c-0.048,-0.065 -0.108,-0.124 -0.171,-0.173c-0.133,-0.102 -0.266,-0.204 -0.431,-0.25c-0.024,-0.007 -0.046,-0.021 -0.069,-0.033c-0.004,-0.001 -0.006,-0.006 -0.013,-0.016c0.044,-0.021 0.087,-0.043 0.13,-0.064c0.052,-0.024 0.105,-0.047 0.157,-0.073c0.073,-0.037 0.147,-0.041 0.223,-0.01c0.192,0.078 0.356,0.198 0.493,0.35c0.138,0.152 0.245,0.325 0.305,0.523c0.072,0.233 0.095,0.468 0.042,0.709c-0.097,0.445 -0.338,0.787 -0.714,1.041c-0.277,0.186 -0.579,0.284 -0.912,0.276c-0.265,-0.007 -0.51,-0.084 -0.736,-0.232c-0.241,-0.157 -0.414,-0.369 -0.51,-0.634c-0.097,-0.269 -0.073,-0.531 0.127,-0.757c0.033,-0.038 0.053,-0.085 0.081,-0.131c0,0.095 -0.001,0.184 0.001,0.272Zm0.556,-0.464c0.002,-0.237 0.248,-0.478 0.488,-0.472c0.271,0.007 0.487,0.231 0.48,0.499c-0.006,0.277 -0.223,0.497 -0.494,0.494c-0.266,-0.004 -0.477,-0.235 -0.474,-0.521Zm-3.903,0.027c0.017,0.235 -0.225,0.494 -0.478,0.491c-0.271,-0.003 -0.483,-0.216 -0.488,-0.53c-0.004,-0.23 0.225,-0.45 0.469,-0.457c0.316,-0.008 0.511,0.279 0.497,0.496l0,-0Zm-1.065,-0.679c-0.327,0.177 -0.528,0.452 -0.598,0.815c-0.039,0.203 -0.008,0.404 0.066,0.599c0.116,0.308 0.338,0.515 0.631,0.649c0.266,0.121 0.535,0.133 0.809,0.019c0.139,-0.057 0.266,-0.126 0.376,-0.228c0.144,-0.134 0.252,-0.292 0.315,-0.477c0.038,-0.111 0.06,-0.227 0.085,-0.342c0.006,-0.027 -0.005,-0.058 -0.011,-0.087c-0.004,-0.02 -0.012,-0.039 -0.019,-0.06c0.013,-0.001 0.019,-0.003 0.02,-0.002c0.087,0.127 0.185,0.249 0.216,0.404c0.013,0.065 0.014,0.136 0.005,0.203c-0.044,0.335 -0.209,0.598 -0.479,0.803c-0.233,0.177 -0.496,0.268 -0.782,0.296c-0.088,0.009 -0.18,0 -0.269,-0.01c-0.304,-0.036 -0.563,-0.17 -0.801,-0.362c-0.223,-0.181 -0.393,-0.4 -0.506,-0.661c-0.138,-0.32 -0.156,-0.648 -0.046,-0.983c0.132,-0.402 0.401,-0.679 0.767,-0.875c0.093,-0.049 0.175,-0.049 0.262,0.011c0.073,0.051 0.152,0.093 0.24,0.146c-0.103,0.052 -0.193,0.094 -0.281,0.142Zm-3.495,-0.644c0.314,0.03 0.633,0.061 0.947,0.092c-0.176,0.386 -0.3,0.789 -0.308,1.224l-0.022,0.005c-0.049,-0.065 -0.101,-0.128 -0.147,-0.195c-0.199,-0.287 -0.333,-0.601 -0.402,-0.943c-0.013,-0.063 -0.045,-0.122 -0.068,-0.183l0,-0l0,-0ZM6.547,19.898c-0.003,0.002 -0.008,0.004 -0.013,0.007c-0.005,-0.005 -0.009,-0.009 -0.014,-0.014c0.013,0.001 0.022,0.004 0.027,0.007Z' +export const afcIconQuattroBox = + 'M 9.207031 21.351562 C 9.035156 21.316406 8.875 21.289062 8.71875 21.242188 C 8.40625 21.152344 8.128906 20.984375 7.871094 20.78125 C 7.554688 20.53125 7.324219 20.214844 7.152344 19.851562 C 7.027344 19.582031 6.953125 19.300781 6.953125 19 C 6.953125 16.449219 6.953125 13.894531 6.953125 11.339844 L 6.953125 11.179688 L 9.957031 11.179688 C 9.957031 11.25 9.960938 11.320312 9.957031 11.394531 C 9.949219 11.609375 9.933594 11.820312 9.933594 12.035156 C 9.929688 13.503906 9.929688 14.972656 9.933594 16.4375 C 9.933594 17.078125 9.941406 17.71875 9.960938 18.359375 C 9.972656 18.707031 10.335938 19.082031 10.714844 19.082031 C 12.871094 19.082031 15.023438 19.082031 17.175781 19.082031 C 18.160156 19.082031 19.144531 19.082031 20.128906 19.082031 C 20.476562 19.082031 20.835938 18.78125 20.867188 18.445312 C 20.90625 17.992188 20.890625 17.539062 20.871094 17.085938 C 20.855469 16.800781 20.523438 16.488281 20.242188 16.445312 C 20.125 16.429688 20.007812 16.417969 19.890625 16.417969 C 17.035156 16.417969 14.179688 16.417969 11.320312 16.417969 L 11.164062 16.417969 L 11.164062 14.28125 L 11.34375 14.28125 C 14.734375 14.28125 18.121094 14.28125 21.507812 14.285156 C 21.976562 14.285156 22.398438 14.453125 22.777344 14.722656 C 23.304688 15.097656 23.65625 15.59375 23.804688 16.226562 C 23.808594 16.246094 23.828125 16.261719 23.847656 16.28125 C 23.855469 17.289062 23.855469 18.292969 23.847656 19.3125 C 23.820312 19.382812 23.796875 19.4375 23.78125 19.492188 C 23.679688 19.863281 23.496094 20.183594 23.246094 20.472656 C 22.960938 20.808594 22.617188 21.050781 22.207031 21.195312 C 22.015625 21.261719 21.8125 21.300781 21.613281 21.351562 Z M 9.207031 21.351562M 14.878906 2.707031 C 15.066406 2.765625 15.25 2.816406 15.425781 2.882812 C 15.867188 3.054688 16.214844 3.351562 16.496094 3.726562 C 16.828125 4.175781 16.976562 4.683594 16.976562 5.25 C 16.96875 7.726562 16.972656 10.207031 16.972656 12.683594 L 16.972656 12.847656 L 13.964844 12.847656 L 13.964844 12.691406 C 13.964844 10.382812 13.964844 8.074219 13.96875 5.769531 C 13.96875 5.320312 13.554688 4.941406 13.144531 4.945312 C 10.042969 4.949219 6.941406 4.949219 3.835938 4.945312 C 3.402344 4.945312 3.019531 5.328125 3.023438 5.761719 C 3.023438 6.09375 3.027344 6.429688 3.019531 6.761719 C 3.011719 7.234375 3.421875 7.613281 3.871094 7.613281 C 6.765625 7.609375 9.664062 7.609375 12.558594 7.609375 L 12.742188 7.609375 L 12.742188 9.746094 L 12.605469 9.746094 C 9.167969 9.746094 5.730469 9.75 2.292969 9.742188 C 1.953125 9.742188 1.640625 9.617188 1.347656 9.449219 C 0.863281 9.167969 0.492188 8.773438 0.261719 8.257812 C 0.191406 8.101562 0.144531 7.9375 0.078125 7.773438 C 0.0703125 6.738281 0.0703125 5.710938 0.078125 4.664062 C 0.0976562 4.632812 0.113281 4.613281 0.121094 4.59375 C 0.316406 3.875 0.738281 3.332031 1.394531 2.984375 C 1.632812 2.859375 1.898438 2.796875 2.152344 2.707031 C 6.390625 2.707031 10.628906 2.707031 14.878906 2.707031 Z M 14.878906 2.707031' +export const afcIconInfintiy = + 'M 17.445312 4.941406 C 13.820312 4.941406 10.875 8.089844 10.875 11.953125 C 10.875 14.492188 8.9375 16.558594 6.554688 16.558594 C 4.175781 16.558594 2.238281 14.492188 2.238281 11.953125 C 2.238281 9.414062 4.171875 7.347656 6.554688 7.347656 C 7.414062 7.347656 8.246094 7.613281 8.957031 8.121094 C 9.191406 8.292969 9.414062 8.488281 9.613281 8.703125 C 10.039062 9.15625 10.78125 9.160156 11.207031 8.707031 C 11.648438 8.238281 11.648438 7.476562 11.210938 7.003906 C 10.90625 6.679688 10.570312 6.382812 10.210938 6.128906 C 9.125 5.351562 7.863281 4.945312 6.554688 4.945312 C 2.933594 4.941406 -0.015625 8.089844 -0.015625 11.953125 C -0.015625 15.816406 2.933594 18.960938 6.554688 18.960938 C 10.179688 18.960938 13.125 15.816406 13.125 11.953125 C 13.125 9.414062 15.0625 7.347656 17.445312 7.347656 C 19.828125 7.347656 21.765625 9.414062 21.765625 11.953125 C 21.765625 14.492188 19.828125 16.558594 17.445312 16.558594 C 16.292969 16.558594 15.207031 16.082031 14.390625 15.210938 C 13.96875 14.757812 13.226562 14.757812 12.800781 15.210938 C 12.585938 15.4375 12.46875 15.738281 12.46875 16.0625 C 12.46875 16.382812 12.585938 16.683594 12.800781 16.910156 C 14.039062 18.234375 15.691406 18.960938 17.445312 18.960938 C 21.070312 18.960938 24.015625 15.816406 24.015625 11.953125 C 24.015625 8.089844 21.070312 4.941406 17.445312 4.941406 Z M 17.445312 4.941406' diff --git a/src/store/afc/actions.ts b/src/store/afc/actions.ts new file mode 100644 index 0000000000..3e8e77bb42 --- /dev/null +++ b/src/store/afc/actions.ts @@ -0,0 +1,12 @@ +import type { ActionTree } from 'vuex' +import type { RootState } from '../types' +import type { AfcState } from './types' + +export const actions = { + /** + * Reset our store + */ + async reset ({ commit }) { + commit('setReset') + } +} satisfies ActionTree diff --git a/src/store/afc/getters.ts b/src/store/afc/getters.ts new file mode 100644 index 0000000000..b69711d707 --- /dev/null +++ b/src/store/afc/getters.ts @@ -0,0 +1,6 @@ +import type { GetterTree } from 'vuex' +import type { AfcState } from './types' +import type { RootState } from '../types' + +export const getters = { +} satisfies GetterTree diff --git a/src/store/afc/index.ts b/src/store/afc/index.ts new file mode 100644 index 0000000000..c8cce5f40d --- /dev/null +++ b/src/store/afc/index.ts @@ -0,0 +1,17 @@ +import type { Module } from 'vuex' +import { state } from './state' +import { getters } from './getters' +import { actions } from './actions' +import { mutations } from './mutations' +import type { AfcState } from './types' +import type { RootState } from '../types' + +const namespaced = true + +export const afc = { + namespaced, + state, + getters, + actions, + mutations +} satisfies Module diff --git a/src/store/afc/mutations.ts b/src/store/afc/mutations.ts new file mode 100644 index 0000000000..577c4c5eae --- /dev/null +++ b/src/store/afc/mutations.ts @@ -0,0 +1,16 @@ +import type { MutationTree } from 'vuex' +import type { AfcDialogState, AfcState } from './types' +import { defaultState } from './state' + +export const mutations = { + /** + * Reset state + */ + setReset (state) { + Object.assign(state, defaultState()) + }, + + setDialogState (state, payload: AfcDialogState) { + state.dialog = payload + }, +} satisfies MutationTree diff --git a/src/store/afc/state.ts b/src/store/afc/state.ts new file mode 100644 index 0000000000..206731c651 --- /dev/null +++ b/src/store/afc/state.ts @@ -0,0 +1,11 @@ +import type { AfcState } from './types' + +export const defaultState = (): AfcState => { + return { + dialog: { + show: false + } + } +} + +export const state = defaultState() diff --git a/src/store/afc/types.ts b/src/store/afc/types.ts new file mode 100644 index 0000000000..895d4752ec --- /dev/null +++ b/src/store/afc/types.ts @@ -0,0 +1,8 @@ +export interface AfcState { + dialog: AfcDialogState; +} + +export interface AfcDialogState { + show: boolean; + filename?: string; +} From b840f2052fb421246af7fa70a55f498a1b31fbb8 Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 09:38:40 -0700 Subject: [PATCH 02/49] feat: Adding AppNumberInput Signed-off-by: Jim Madill --- components.d.ts | 1 + src/components/ui/AppNumberInput.vue | 193 +++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 src/components/ui/AppNumberInput.vue diff --git a/components.d.ts b/components.d.ts index b0ea7f817e..d392e8deb5 100644 --- a/components.d.ts +++ b/components.d.ts @@ -44,6 +44,7 @@ declare module 'vue' { AppNavDrawer: typeof import('./src/components/layout/AppNavDrawer.vue')['default'] AppNavItem: typeof import('./src/components/ui/AppNavItem.vue')['default'] AppNotificationMenu: typeof import('./src/components/layout/AppNotificationMenu.vue')['default'] + AppNumberInput: typeof import('./src/components/ui/AppNumberInput.vue')['default'] AppObservedColumn: typeof import('./src/components/layout/AppObservedColumn.vue')['default'] AppQrCode: typeof import('./src/components/ui/AppQrCode.vue')['default'] AppSaveConfigAndRestartBtn: typeof import('./src/components/layout/AppSaveConfigAndRestartBtn.vue')['default'] diff --git a/src/components/ui/AppNumberInput.vue b/src/components/ui/AppNumberInput.vue new file mode 100644 index 0000000000..1870e1576e --- /dev/null +++ b/src/components/ui/AppNumberInput.vue @@ -0,0 +1,193 @@ + + + + + + From 0311d631ac75db682bcf78da3acd8ae8ca3af8fb Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 10:04:22 -0700 Subject: [PATCH 03/49] feat: Adding AFC Card to Dashboard Signed-off-by: Jim Madill --- src/views/Dashboard.vue | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/views/Dashboard.vue b/src/views/Dashboard.vue index 4060a665b8..038fe33973 100644 --- a/src/views/Dashboard.vue +++ b/src/views/Dashboard.vue @@ -57,6 +57,7 @@ import MmuCard from '@/components/widgets/mmu/MmuCard.vue' import SensorsCard from '@/components/widgets/sensors/SensorsCard.vue' import RunoutSensorsCard from '@/components/widgets/runout-sensors/RunoutSensorsCard.vue' import BeaconCard from '@/components/widgets/beacon/BeaconCard.vue' +import AfcCard from '@/components/widgets/afc/AfcCard.vue' import type { KlipperPrinterSettings } from '@/store/printer/types' @Component({ @@ -78,7 +79,8 @@ import type { KlipperPrinterSettings } from '@/store/printer/types' MmuCard, SensorsCard, RunoutSensorsCard, - BeaconCard + BeaconCard, + AfcCard } }) export default class Dashboard extends Mixins(StateMixin) { @@ -151,6 +153,10 @@ export default class Dashboard extends Mixins(StateMixin) { return this.$typedState.printer.printer.mmu != null } + get supportsAfc (): boolean { + return this.$typedGetters['printer/getSupportsAfc'] + } + get hasMacros (): boolean { return this.$typedGetters['macros/getVisibleMacros'].length > 0 } @@ -226,6 +232,7 @@ export default class Dashboard extends Mixins(StateMixin) { if (item.id === 'mmu-card' && !this.supportsMmu) return true if (item.id === 'sensors-card' && !this.hasSensors) return true if (item.id === 'temperature-card' && !this.hasHeatersOrTemperatureSensors) return true + if (item.id === 'afc-card' && !this.supportsAfc) return true // Otherwise return the opposite of whatever the enabled state is. return !item.enabled From 8ab95f4af16231e25c684adc838170e31132ff48 Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 10:04:51 -0700 Subject: [PATCH 04/49] feat: Adding AFC locales Signed-off-by: Jim Madill --- src/locales/en.yaml | 127 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 103 insertions(+), 24 deletions(-) diff --git a/src/locales/en.yaml b/src/locales/en.yaml index 5d563167c4..63aabff2fc 100644 --- a/src/locales/en.yaml +++ b/src/locales/en.yaml @@ -1,4 +1,82 @@ app: + afc: + AfcSettings: "AFC-Settings" + BrushNozzle: "Brush Nozzle" + BufferDisabled: "Buffer Not Active" + BypassActive: "Filament loaded in bypass tool changes are deactivated!" + Calibrate: "Calibrate" + Cancel: "Cancel" + DebugJson: "Debug JSON" + Detected: "Detected" + EjectFilament: "Eject Filament" + Ejecting: "Ejecting" + Empty: "Empty" + Error: "Error" + FilamentForLane: "Filament for {name}" + Functions: "Functions" + Headline: "AFC" + Hub: "Hub" + HubLoad: "Hub Load" + Idle: "Idle" + InfiniteSpoolDescription: "Next lane to load if {name} runs out" + InfiniteSpoolHeadline: "Infinite Spool" + LaneControls: "Lane Controls" + LaneLoaded: "Lane Loaded" + LaneLoadedNone: "NONE" + LaneMapping: "Lane Mapping" + LaneMappingToCommand: "Remap {name} to tool command" + LedOff: "LEDs Off" + LedOn: "LEDs On" + LoadedInLane: "Loaded in {lane}" + Loading: "Loading" + LoadLane: "Load Lane" + Material: "Material" + MaterialSubtitle: "For example ABS PETG PLA etc." + Moving: "Moving" + ParkNozzle: "Park Nozzle" + PostExtruderSensor: "Post-Extruder Sensor" + PreExtruderSensor: "Pre-Extruder Sensor" + PrepDetected: "Filament detected but not loaded" + Printing: "Printing" + RammingSensor: "Ramming Sensor" + Restoring: "Restoring" + SetSpool: "Set Spool" + Settings: "Settings" + SettingsDialog: + BowdenLength: "Bowden Length" + BowdenLengthDescription: "This is the Length of the Bowden tube between the Hub and the Toolhead." + DistHub: "Distance to Hub" + DistHubDescription: "Distance from the lane extruder gears to the hub in mm." + Help: "Help" + Length: "Length" + LoadUnloadLane: "Load / Unload Lane" + LoadUnloadLaneDescription: "Click on the buttons to load or unload the filament from the lane to the extruder." + SaveExtruderValues: "Save Extruder Values" + SaveExtruderValuesDescription: "This will write the current extruder values to the configuration file of the current extruder." + SaveHubDist: "Save Lane Values" + SaveHubDistDescription: "Save the values from the specific lane to the configuration file." + SensorAfterExtruder: "Sensor after Extruder" + SettingsForTitle: "Settings for {name}" + ToolSensorAfterExtruder: "Tool Sensor after Extruder" + ToolSensorAfterExtruderDescription: "Distance from the extruder gears to the tool_end sensor in mm. This is used to unload the filament from the extruder gears after the tool_end sensor isn't triggered anymore." + ToolStn: "Tool load length" + ToolStnDescriptionWithEndSensor: "Distance from the tool_end sensor to the begin of the melt zone in mm." + ToolStnDescriptionWithoutEndSensor: "Distance from the tool_start sensor to the begin of the melt zone in mm." + ToolStnDescriptionWithRamming: "Distance from the extruder gears to the begin of the melt zone in mm." + ToolStnUnload: "Tool unload length" + ToolStnUnloadDescription: "Distance to retract the filament to unload the filament from the tool in mm." + WriteToFile: "Write to File" + SettingsForLane: "Settings for {lane}" + ShowFilamentName: "Show Filament Name" + ShowLaneInfinite: "Show Infinite Button" + ShowTool: "Show Tool \"{name}\"" + ShowUnit: "Show Unit \"{name}\"" + ShowUnitIcons: "Show Unit Icons" + ShowTd1Color: "Show TD-1 Color" + Unloading: "Unloading" + UnloadLane: "Unload Lane" + Weight: "Weight" + WeightSubtitle: "The weight of the filament in grams (without spool)." bedmesh: label: active: active @@ -13,12 +91,12 @@ app: wireframe: Wireframe msg: hint: >- - If saving as something other than %{name}, you can choose to also remove + If saving as something other than %{name} you can choose to also remove the %{name} profile not_found: No existing bed meshes found. not_loaded: No mesh loaded tooltip: - calibrate: Begins a new calibration, saving as profile 'default' + calibrate: Begins a new calibration saving as profile 'default' delete: Delete Profile load: Load Profile save: Commits calibrated profile to printer.cfg @@ -51,7 +129,7 @@ app: endpoint: error: cant_connect: >- - Something went wrong, and fluidd can't reach the destination. Are you + Something went wrong and fluidd can't reach the destination. Are you sure this is the correct address? cors_error: blocked by CORS policy cors_note: >- @@ -59,7 +137,7 @@ app: see the documentation on multi printer setups here hint: - add_printer: E.g., http://fluidd.local + add_printer: E.g. http://fluidd.local msg: trouble: >- Having trouble? See here for more @@ -67,7 +145,7 @@ app: tooltip: endpoint_examples: >- Enter your API URL.
Some examples might be;
fluidd.local, https://192.168.1.150
+ />
fluidd.local https://192.168.1.150
endstop: states: label: @@ -146,7 +224,7 @@ app: parsing_file: Parsing file msg: confirm: >- - The file "%{filename}" is %{size}, this might be resource intensive for + The file "%{filename}" is %{size} this might be resource intensive for your system. Are you sure? overlay: drag_file_load: Drag a gcode file here to load @@ -243,11 +321,11 @@ app: Moonraker plugin configuration can be found here. failed_components: >- - Moonraker has failed plugins, please check your logs, update your + Moonraker has failed plugins please check your logs update your configuration and restart moonraker. printer_powered_off: >- The printer is currently powered off.

- To power on the printer, please click the button on the left. + To power on the printer please click the button on the left. label: accel_to_decel: Accel to Decel acceleration: Acceleration @@ -341,6 +419,7 @@ app: synced_extruder: Synced Extruder thumbnail_size: Thumbnail Size time_in_days: Time in days + toolchange: Toolchange total: Total total_filament: Total filament used total_filament_avg: Avg per print @@ -375,13 +454,13 @@ app: %{name} Driver msg: password_changed: Password changed - wrong_password: Oops, something went wrong. Is your password correct? + wrong_password: Oops something went wrong. Is your password correct? bed_screws_adjust: >- - Click Adjusted if a significant adjustment is necessary on the current screw; otherwise, click Accept to continue. + Click Adjusted if a significant adjustment is necessary on the current screw; otherwise click Accept to continue. welcome_back: >- Welcome back.
Sign in below to stay in touch with your printer. offline_ready: Fluidd is now ready to work offline. - needs_refresh: New content available, please click the Reload button to update. + needs_refresh: New content available please click the Reload button to update. pending_configuration_sections_deleted: The following sections are marked for deletion rolledover_logs: >- The following application logs have been rolled over: %{applications} @@ -526,7 +605,7 @@ app: Copy files and folders to the Configuration Files by dragging them from here and dropping them there history: msg: - confirm: Are you sure? This will clear all history, and printer statistics + confirm: Are you sure? This will clear all history and printer statistics confirm_jobs: Are you sure? This will clear all jobs. confirm_stats: Are you sure? This will clear all stats. job_queue: @@ -736,7 +815,7 @@ app: tool: Tool warnings: Warnings tooltip: - average_calculation: If more than one option is select, an average will be calculated + average_calculation: If more than one option is select an average will be calculated diagnostics_performance: '[BETA] Logging diagnostics info may impact performance' gcode_coords: Use GCode position instead of toolhead position on dashboard keyboard_shortcuts: >- @@ -747,9 +826,9 @@ app: theme_disclaimer: >- These themes feature brand names and logos that are the intellectual property of their respective owners.
The inclusion of these names and logos is done with permission from the brands.
- However, please note that these themes are not officially maintained by the respective brands.
+ However please note that these themes are not officially maintained by the respective brands.
Any issues or inquiries related to the themes should be directed to the Fluidd team.
- The use of brand names and logos is for decorative and aesthetic purposes only, and no official association with or endorsement by the brands is implied. + The use of brand names and logos is for decorative and aesthetic purposes only and no official association with or endorsement by the brands is implied. warn_on_cpu_throttled: CPU throttling can cause prints to fail warn_on_stepper_driver_overheating: Trinamic drivers only socket: @@ -813,7 +892,7 @@ app: screws_tilt_adjust: Screws Tilt Adjust tooltip: absolute_positioning: Absolute Positioning - extruder_disabled: extruder disabled, below min_extrude_temp (%{min}°C) + extruder_disabled: extruder disabled below min_extrude_temp (%{min}°C) home_xy: Home XY home_z: Home Z manual_probe: Manual Probe @@ -828,17 +907,17 @@ app: and %{nozzleDiameter} mm nozzle stats_volumetric_flow: >- - Extruding at %{extrudeSpeed} mm/s, + Extruding at %{extrudeSpeed} mm/s the extruder should be able to provide an estimated volumetric flow of %{estimatedVolumetricFlow} mm³/s stats_extruded_length: >- Extruding %{extrudeLength} mm of filament at - %{extrudeFactor} % flow, + %{extrudeFactor} % flow will provide an estimated output length of %{estimatedExtrudedLength} mm stats_max_speed: >- Assuming a - %{layerHeight} mm layer height, + %{layerHeight} mm layer height the estimated maximum print speed is %{estimatedMaxSpeed} mm/s version: btn: @@ -867,7 +946,7 @@ app: title: Software Updates tooltip: commit_history: Commit history - dirty: indicates a detached head, not on master or an invalid origin + dirty: indicates a detached head not on master or an invalid origin invalid: indicates local changes to the repo packages: Packages release_notes: Release notes @@ -978,7 +1057,7 @@ app: Are you sure you want to continue? tracking_inactive: >- Filament tracking is inactive. - To get started, please select a spool. + To get started please select a spool. not_connected: Spoolman server not available. info: howto: >- @@ -1116,13 +1195,13 @@ app: single_color: This looks like a single color print but you don't have the bypass selected on your MMU. You may want to check the chosen tool map_slicer_tools: Map slicer tools to MMU gates for print map_tools: Map tools to MMU gates - tool_not_used: Tool %{tool} not used in this print, choose default mapping + tool_not_used: Tool %{tool} not used in this print choose default mapping mismatch: Possible filament mismatch color: Color material: Material temperature: Temperature no_gate_data: No gate data - no_slicer_info: No slicer information, choose default mapping for %{tool} + no_slicer_info: No slicer information choose default mapping for %{tool} select_tool: Select Tool to map then choose gate from list setting: large_filament_status: Large Filament Status @@ -1155,7 +1234,7 @@ app: remove_model: Remove %{name} model msg: hint: >- - If saving as something other than %{name}, you can choose to also remove + If saving as something other than %{name} you can choose to also remove the %{name} model not_found: No existing beacon models found. tooltip: From 92d7718b6a1f39fb60f0dc3d1876fd76ee9e8024 Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 10:07:56 -0700 Subject: [PATCH 05/49] feat: Adding AFC to store Signed-off-by: Jim Madill --- src/store/config/state.ts | 8 ++++++++ src/store/config/types.ts | 10 ++++++++++ src/store/index.ts | 4 +++- src/store/layout/state.ts | 3 ++- src/store/printer/getters.ts | 5 +++++ src/store/types.ts | 4 +++- 6 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/store/config/state.ts b/src/store/config/state.ts index d938bfc6e4..ff677be8f9 100644 --- a/src/store/config/state.ts +++ b/src/store/config/state.ts @@ -155,6 +155,14 @@ export const defaultState = (): ConfigState => { showName: true, showLogos: false, showUnavailableSpoolColor: false + }, + afc: { + hiddenExtruders: [], + hiddenUnits: [], + showFilamentName: false, + showLaneInfinite: true, + showUnitIcons: true, + showTd1Color: true, } } } diff --git a/src/store/config/types.ts b/src/store/config/types.ts index bb00b8dddf..ecf26d5596 100644 --- a/src/store/config/types.ts +++ b/src/store/config/types.ts @@ -26,6 +26,7 @@ export interface UiSettings { spoolman: SpoolmanConfig; history: HistoryConfig; mmu: MmuConfig; + afc: AfcConfig; } export interface WarningsConfig { @@ -70,6 +71,15 @@ export interface MmuConfig { showUnavailableSpoolColor: boolean; } +export interface AfcConfig { + hiddenExtruders: string[]; + hiddenUnits: string[]; + showFilamentName: boolean; + showLaneInfinite: boolean; + showUnitIcons: boolean; + showTd1Color: boolean; +} + export interface HostConfig { endpoints: string[]; blacklist: string[]; diff --git a/src/store/index.ts b/src/store/index.ts index 60d3ddf147..6f167b22d9 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -31,6 +31,7 @@ import { mmu } from './mmu' import { sensors } from './sensors' import { database } from './database' import { analysis } from './analysis' +import { afc } from './afc' Vue.use(Vuex) @@ -62,7 +63,8 @@ export const storeOptions = { mmu, sensors, database, - analysis + analysis, + afc } satisfies RootModules, mutations: {}, actions: { diff --git a/src/store/layout/state.ts b/src/store/layout/state.ts index 5de1d0687c..2a1276a16a 100644 --- a/src/store/layout/state.ts +++ b/src/store/layout/state.ts @@ -33,7 +33,8 @@ export const defaultState = (): LayoutState => { { id: 'job-queue-card', enabled: false, collapsed: false }, { id: 'gcode-preview-card', enabled: true, collapsed: false }, { id: 'bed-mesh-card', enabled: false, collapsed: false }, - { id: 'beacon-card', enabled: false, collapsed: false } + { id: 'beacon-card', enabled: false, collapsed: false }, + { id: 'afc-card', enabled: true, collapsed: false } ] }, diagnostics: { diff --git a/src/store/printer/getters.ts b/src/store/printer/getters.ts index 42aa6b57d4..2510a07761 100644 --- a/src/store/printer/getters.ts +++ b/src/store/printer/getters.ts @@ -1176,5 +1176,10 @@ export const getters = { exclude_object != null && exclude_object.objects.length > 0 ) + }, + + getSupportsAfc: (state): boolean => { + return state.printer.AFC != null } + } satisfies GetterTree diff --git a/src/store/types.ts b/src/store/types.ts index ae1a517e3a..2f3924695f 100644 --- a/src/store/types.ts +++ b/src/store/types.ts @@ -25,6 +25,7 @@ import type { mmu } from './mmu' import type { sensors } from './sensors' import type { database } from './database' import type { analysis } from './analysis' +import type { afc } from './afc' import type { storeOptions } from '.' type RootModulesType = { @@ -53,7 +54,8 @@ type RootModulesType = { mmu: typeof mmu, sensors: typeof sensors, database: typeof database, - analysis: typeof analysis + analysis: typeof analysis, + afc: typeof afc } type RootStateType = { From 7d86acbb43d32a564621b8c168be26a5655f7d77 Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 10:08:28 -0700 Subject: [PATCH 06/49] feat: Adding AFC icons to globals Signed-off-by: Jim Madill --- src/globals.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/globals.ts b/src/globals.ts index bd0e027118..d782cd1bf4 100644 --- a/src/globals.ts +++ b/src/globals.ts @@ -192,13 +192,14 @@ import { mdiSwapHorizontal } from '@mdi/js' +import { afcIconLogo } from '@/plugins/afcIcons' + const mdiFilament = 'M12 2a10 10 0 0 0-2.148.26 10 10 0 0 0-1.315.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732 10 10 0 0 0-1.57 3.016 10 10 0 0 0-.315 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12q0 .378.031.756l.002.012a10 10 0 0 0 .426 2.222 10 10 0 0 0 .38 1.014l.007.014.008.013q.218.497.488.967l.002.002a10 10 0 0 0 2.265 2.69 10 10 0 0 0 2.06 1.322h.003a10 10 0 0 0 2.15.746h.002q.514.114 1.035.174l.079.01q.529.057 1.062.058a10 10 0 0 0 2.148-.26 10 10 0 0 0 1.315-.386 10 10 0 0 0 .865-.354h.002a10 10 0 0 0 1.295-.752 10 10 0 0 0 .754-.564 10 10 0 0 0 .98-.938 10 10 0 0 0 .598-.732 10 10 0 0 0 1.57-3.016 10 10 0 0 0 .315-1.314 10 10 0 0 0 .105-.932v-.008q.04-.37.053-.744 0-.378-.031-.756l-.002-.012a10 10 0 0 0-.426-2.222 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-2.265-2.69 10 10 0 0 0-2.06-1.322h-.003a10 10 0 0 0-2.15-.746h-.002a10 10 0 0 0-1.114-.183A10 10 0 0 0 12 2m-1.299 2.25.256.148.11.063.066.039.433.25v1l-.433.25-.258.148v.002l-.174.1-.433-.25-.432-.25v-1l.268-.154zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm-4.46.426.13.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902m6.321 0a8 8 0 0 1 1.602.902v.172l-.658.38-.208.12-.865-.5v-1zM6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7zm2.597 0 .866.5v1l-.127.074-.307.176-.432.25-.431-.25L8.537 8V7l.432-.25zM12 6.5l.865.5v1l-.12.07h-.003A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7l.761-.44zm2.598 0 .431.25.434.25v1l-.865.5-.432-.25-.434-.25V7l.434-.25zm2.597 0 .104.06.762.44v1l-.762.44-.104.06-.865-.5V7zM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.56-.322-.306-.178v-1zm7.792 0 .866.5v1l-.434.25-.432.25-.12-.07a4 4 0 0 0-.657-1.174q-.043-.057-.088-.113V9.25l.432-.25zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922zm2.598 0 .431.25.434.25v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .104.06.762.44v1l-.762.44-.104.06-.431-.25-.434-.25v-1zm2.598 0 .135.078q.063.46.072.922a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1zM5.506 13.25l.207.12.658.38v1l-.865.5-.865-.5v-1zm2.598 0 .12.07c.15.427.375.822.657 1.174q.043.057.088.113v.143l-.432.25-.433.25-.866-.5v-1l.434-.25zm7.792 0 .56.322.306.178v1l-.866.5-.865-.5v-.14a4 4 0 0 0 .621-1.008 4 4 0 0 0 .112-.276zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zM6.804 15.5l.866.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.598 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002zm5.196 0 .431.25.434.25v1l-.432.25-.433.25-.866-.5v-1l.127-.074.307-.176zm2.597 0 .104.06.762.44v1l-.866.5-.865-.5v-1zm-4.463.424.133.076v1l-.761.44-.104.06-.865-.5v-1l.12-.07h.003A4 4 0 0 0 12 16a4 4 0 0 0 .732-.076M8.104 17.75l.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172l.657-.38zm2.597 0 .865.5v1l-.865.5-.865-.5v-1zm2.598 0 .433.25.432.25v1l-.268.154-.597.346-.256-.148-.176-.102-.433-.25v-1l.433-.25.258-.148v-.002zm2.597 0 .866.5v.172a8 8 0 0 1-1.602.902l-.129-.074v-1l.432-.25z' const mdiFilamentDown = 'M12 2a10 10 0 0 0-1.129.08 10 10 0 0 0-1.02.18 10 10 0 0 0-1.314.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732l-.125.168a10 10 0 0 0-.541.826l-.035.065a10 10 0 0 0-.87 1.957 10 10 0 0 0-.314 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12a10 10 0 0 0 .053.742v.006a10 10 0 0 0 .105.936 10 10 0 0 0 .315 1.314 10 10 0 0 0 .869 1.957l.035.065a10 10 0 0 0 .541.826l.125.168a10 10 0 0 0 .598.732 10 10 0 0 0 .98.938 10 10 0 0 0 .754.564A10 10 0 0 0 7.67 21h.002a10 10 0 0 0 .865.354 10 10 0 0 0 1.315.386 10 10 0 0 0 1.02.18A10 10 0 0 0 12 22a10 10 0 0 0 1.129-.08 10 10 0 0 0 .59-.104 6 6 0 0 1-.676-2.214l-.61-.352v-1l.434-.25.258-.148a6 6 0 0 1 .607-1.692V16l.127-.074a6 6 0 0 1 1.342-1.559 4 4 0 0 0 .563-1.04l.132-.077.56.322A6 6 0 0 1 19 13a6 6 0 0 1 2.834.713l.008-.03a10 10 0 0 0 .105-.931v-.008A10 10 0 0 0 22 12a10 10 0 0 0-.031-.756l-.002-.012a10 10 0 0 0-.113-.921 10 10 0 0 0-.313-1.301 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-.6-.92 10 10 0 0 0-.697-.848 10 10 0 0 0-.968-.921 10 10 0 0 0-.752-.567 10 10 0 0 0-1.309-.756h-.002a10 10 0 0 0-.865-.367 10 10 0 0 0-1.285-.379h-.002a10 10 0 0 0-1.035-.174l-.079-.01A10 10 0 0 0 12 2m-1.299 2.25.432.25.433.25v1l-.865.5-.433-.25-.432-.25v-1l.268-.154zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm1.883.414a8 8 0 0 1 1.58.91v.176l-.658.38-.208.12-.865-.5v-1zm-6.342.012.129.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902M6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7zm2.597 0 .866.5v1l-.434.25-.432.25-.431-.25L8.537 8V7l.432-.25zM12 6.5l.865.5v1l-.12.07A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7zm2.598 0 .865.5v1l-.865.5-.866-.5V7zm2.597 0 .866.5v1l-.866.5-.865-.5V7zM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.866-.5v-1zm7.792 0 .866.5v1l-.866.5-.12-.07a4 4 0 0 0-.745-1.287V9.25zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922zm2.598 0 .865.5v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .866.5v1l-.866.5-.431-.25-.434-.25v-1zm2.598 0 .154.09A8 8 0 0 1 20 12a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1zM5.506 13.25l.865.5v1l-.865.5-.865-.5v-1zm2.598 0 .132.076a4 4 0 0 0 .733 1.283v.141l-.432.25-.433.25-.866-.5v-1l.434-.25zm-1.3 2.25.866.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.598 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002zm1.866.424A4 4 0 0 0 12 16a4 4 0 0 0 .732-.076l.133.076v1l-.761.44-.104.06-.865-.5v-1zM18 16v4h-2l3 3 3-3h-2v-4zm-9.896 1.75.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172zm2.597 0 .865.5v1l-.865.5-.865-.5v-1z' const mdiFilamentUp = 'M12 2a10 10 0 0 0-1.129.08 10 10 0 0 0-1.02.18 10 10 0 0 0-1.314.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732l-.125.168a10 10 0 0 0-.541.826l-.035.065a10 10 0 0 0-.87 1.957 10 10 0 0 0-.314 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12a10 10 0 0 0 .053.742v.006a10 10 0 0 0 .105.936 10 10 0 0 0 .315 1.314 10 10 0 0 0 .869 1.957l.035.065a10 10 0 0 0 .541.826l.125.168a10 10 0 0 0 .598.732 10 10 0 0 0 .98.938 10 10 0 0 0 .754.564A10 10 0 0 0 7.67 21h.002a10 10 0 0 0 .865.354 10 10 0 0 0 1.315.386 10 10 0 0 0 1.02.18A10 10 0 0 0 12 22a10 10 0 0 0 1.129-.08 10 10 0 0 0 .59-.104 6 6 0 0 1-.676-2.214l-.61-.352v-1l.434-.25.258-.148a6 6 0 0 1 .607-1.692V16l.127-.074a6 6 0 0 1 1.342-1.559 4 4 0 0 0 .563-1.04l.132-.077.56.322A6 6 0 0 1 19 13a6 6 0 0 1 2.834.713l.008-.03a10 10 0 0 0 .105-.931v-.008A10 10 0 0 0 22 12a10 10 0 0 0-.031-.756l-.002-.012a10 10 0 0 0-.113-.921 10 10 0 0 0-.313-1.301 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-.6-.92 10 10 0 0 0-.697-.848 10 10 0 0 0-.968-.921 10 10 0 0 0-.752-.567 10 10 0 0 0-1.309-.756h-.002a10 10 0 0 0-.865-.367 10 10 0 0 0-1.285-.379h-.002a10 10 0 0 0-1.035-.174l-.079-.01A10 10 0 0 0 12 2m-1.299 2.25.432.25.433.25v1l-.865.5-.433-.25-.432-.25v-1l.268-.154zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm1.883.414a8 8 0 0 1 1.58.91v.176l-.658.38-.208.12-.865-.5v-1zm-6.342.012.129.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902M6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7zm2.597 0 .866.5v1l-.434.25-.432.25-.431-.25L8.537 8V7l.432-.25zM12 6.5l.865.5v1l-.12.07A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7zm2.598 0 .865.5v1l-.865.5-.866-.5V7zm2.597 0 .866.5v1l-.866.5-.865-.5V7zM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.866-.5v-1zm7.792 0 .866.5v1l-.866.5-.12-.07a4 4 0 0 0-.745-1.287V9.25zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922zm2.598 0 .865.5v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .866.5v1l-.866.5-.431-.25-.434-.25v-1zm2.598 0 .154.09A8 8 0 0 1 20 12a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1zM5.506 13.25l.865.5v1l-.865.5-.865-.5v-1zm2.598 0 .132.076a4 4 0 0 0 .733 1.283v.141l-.432.25-.433.25-.866-.5v-1l.434-.25zM19 15l-3 3h2v4h2v-4h2zm-12.195.5.865.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.597 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002zm1.866.424A4 4 0 0 0 12 16a4 4 0 0 0 .732-.076l.133.076v1l-.761.44-.104.06-.865-.5v-1zM8.104 17.75l.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172zm2.597 0 .865.5v1l-.865.5-.865-.5v-1z' const mdiFilamentChange = 'm23.5 18.5-3-3v2h-4v2h4v2zm-9 0 3 3v-2h4v-2h-4v-2zM12 2a10 10 0 0 0-1.129.08 10 10 0 0 0-1.02.18 10 10 0 0 0-1.314.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732 10 10 0 0 0-1.57 3.016 10 10 0 0 0-.315 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12q.012.372.053.742v.006a10 10 0 0 0 .105.936 10 10 0 0 0 .315 1.314 10 10 0 0 0 .904 2.022 10 10 0 0 0 .666.994 10 10 0 0 0 .598.732 10 10 0 0 0 .98.938q.364.3.754.564A10 10 0 0 0 7.67 21h.002a10 10 0 0 0 .865.354 10 10 0 0 0 1.315.386 10 10 0 0 0 1.02.18A10 10 0 0 0 12 22a10 10 0 0 0 1.129-.08 10 10 0 0 0 .59-.104 6 6 0 0 1-.676-2.214l-.61-.352v-1l.434-.25.258-.148a6 6 0 0 1 .607-1.692V16l.127-.074a6 6 0 0 1 1.342-1.559 4 4 0 0 0 .563-1.04l.132-.077.56.322A6 6 0 0 1 19 13a6 6 0 0 1 2.834.713l.008-.03a10 10 0 0 0 .105-.931v-.008A10 10 0 0 0 22 12q0-.378-.031-.756l-.002-.012a10 10 0 0 0-.426-2.222 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-2.265-2.69 10 10 0 0 0-2.06-1.322h-.003a10 10 0 0 0-2.15-.746h-.002a10 10 0 0 0-1.114-.183A10 10 0 0 0 12 2m-1.299 2.25.432.25.433.25v1l-.865.5-.433-.25-.432-.25v-1l.268-.154Zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm1.883.414a8 8 0 0 1 1.58.91v.176l-.658.38-.208.12-.865-.5v-1zm-6.342.012.129.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902M6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7Zm2.597 0 .866.5v1l-.434.25-.432.25-.431-.25L8.537 8V7l.432-.25ZM12 6.5l.865.5v1l-.12.07A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7Zm2.598 0 .865.5v1l-.865.5-.866-.5V7Zm2.597 0 .866.5v1l-.866.5-.865-.5V7ZM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.866-.5v-1zm7.792 0 .866.5v1l-.866.5-.12-.07a4 4 0 0 0-.745-1.287V9.25Zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922Zm2.598 0 .865.5v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .866.5v1l-.866.5-.431-.25-.434-.25v-1zm2.598 0 .154.09A8 8 0 0 1 20 12a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1ZM5.506 13.25l.865.5v1l-.865.5-.865-.5v-1zm2.598 0 .132.076a4 4 0 0 0 .733 1.283v.141l-.432.25-.433.25-.866-.5v-1l.434-.25Zm-1.3 2.25.866.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.598 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002Zm1.866.424A4 4 0 0 0 12 16q.37-.004.732-.076l.133.076v1l-.761.44-.104.06-.865-.5v-1ZM8.104 17.75l.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172Zm2.597 0 .865.5v1l-.865.5-.865-.5v-1z' const mdiFileImageLock = 'M6 2c-1.11 0-2 .89-2 2v16a2 2 0 0 0 2 2h6v-2H6l6-6 1.21 1.21C13.377 12.674 15.688 11 18 11c.7 0 1.4.2 2 .4V8l-6-6zm7 1.5L18.5 9H13zM8 9a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m10 4c-1.4 0-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3v-1.5c0-1.4-1.4-2.5-2.8-2.5m0 1.2c.8 0 1.5.5 1.5 1.3V17h-3v-1.5c0-.8.7-1.3 1.5-1.3' const mdiFileDocumentLock = 'M12 21.7V18H6v-2h6.9l.3-.3v-.2q0-.75.3-1.5H6v-2h9.1c.8-.6 1.8-1 2.9-1 .7 0 1.4.2 2 .4V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h6zm1-18.2L18.5 9H13ZM20.8 17v-1.5c0-1.4-1.4-2.5-2.8-2.5s-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3m-1.3 0h-3v-1.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3z' - /** * Global, static constants. */ @@ -525,7 +526,8 @@ export const Icons = Object.freeze({ mmuMove: mdiArrowLeftRight, mmuUpdateLeds: mdiContentSaveSettingsOutline, mmuError: mdiInformationOutline, - mmuSelectGate: mdiSwapHorizontal + mmuSelectGate: mdiSwapHorizontal, + afcIcon: afcIconLogo }) export const Waits = Object.freeze({ From d026d414fd7f01caae587b81b1122bdd023694c1 Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 10:10:25 -0700 Subject: [PATCH 07/49] refactor: Updating spoolman to show which spools are loaded in each lane, support AFC integration Signed-off-by: Jim Madill --- .../widgets/spoolman/SpoolSelectionDialog.vue | 48 +++++++++++++++++-- src/store/spoolman/types.ts | 4 ++ 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/src/components/widgets/spoolman/SpoolSelectionDialog.vue b/src/components/widgets/spoolman/SpoolSelectionDialog.vue index 50a5a36bcb..0c821e0dbc 100644 --- a/src/components/widgets/spoolman/SpoolSelectionDialog.vue +++ b/src/components/widgets/spoolman/SpoolSelectionDialog.vue @@ -139,7 +139,6 @@ {{ item.id === selectedSpoolId ? '$markedCircle' : '$filament' }} -
{{ item.filament_name }} @@ -158,6 +157,17 @@
+ + @@ -272,6 +282,7 @@ diff --git a/src/store/spoolman/types.ts b/src/store/spoolman/types.ts index c3c3543a12..09189b425c 100644 --- a/src/store/spoolman/types.ts +++ b/src/store/spoolman/types.ts @@ -39,6 +39,8 @@ export interface SpoolmanSpool { comment?: string; archived: boolean; extra?: Record; + + loaded?: string; } export interface SpoolmanFilament { @@ -62,6 +64,8 @@ export interface SpoolmanFilament { multi_color_direction?: string; external_id?: string; extra?: Record; + + loaded?: string; } export interface SpoolmanVendor { From 1db00c07a2c8bf0c0ae7d2c1075db5bbb12874bd Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 10:12:11 -0700 Subject: [PATCH 08/49] refactor: Adding css to have pointer and width class for AFC integration Signed-off-by: Jim Madill --- src/scss/misc.scss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/scss/misc.scss b/src/scss/misc.scss index f5154c80cd..507783c840 100644 --- a/src/scss/misc.scss +++ b/src/scss/misc.scss @@ -87,3 +87,11 @@ textarea.clipboard-copy { z-index: 100000; opacity: 0; } + +.w-100 { + width: 100% !important; +} + +.cursor-pointer { + cursor: pointer !important; +} From bffe18b17c50378b1b193ef6efa7822ae7f53494 Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 10:13:08 -0700 Subject: [PATCH 09/49] refactor: Adding ability to have smaller text and change color for MacroBtn Signed-off-by: Jim Madill --- src/components/widgets/macros/MacroBtn.vue | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/components/widgets/macros/MacroBtn.vue b/src/components/widgets/macros/MacroBtn.vue index da97e9668d..cca30e0bb9 100644 --- a/src/components/widgets/macros/MacroBtn.vue +++ b/src/components/widgets/macros/MacroBtn.vue @@ -3,6 +3,9 @@ @@ -21,6 +24,8 @@ min-width="24" class="px-0" :disabled="(macro.disabledWhilePrinting && printerPrinting) || !klippyReady" + :small="small" + :color="color" v-on="on" > = {} get hasParams () { From d8504d1b829c9d6c56f92d16878120ee07e1048e Mon Sep 17 00:00:00 2001 From: jimmyjon711 Date: Thu, 27 Nov 2025 10:13:42 -0700 Subject: [PATCH 10/49] refactor: Adding ability to specify icon for AppDialog Signed-off-by: Jim Madill --- src/components/ui/AppDialog.vue | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/components/ui/AppDialog.vue b/src/components/ui/AppDialog.vue index 8a7505f44a..76b4d6a940 100644 --- a/src/components/ui/AppDialog.vue +++ b/src/components/ui/AppDialog.vue @@ -28,6 +28,12 @@ > + + {{ icon }} + {{ title }} + + + {{ helpIcon }} + + {{ helpText }} + + Date: Thu, 27 Nov 2025 10:14:36 -0700 Subject: [PATCH 11/49] refactor: Adding check to MMUCard so that it does not show up in Dashboard selection if MMU software is not installed Signed-off-by: Jim Madill --- src/components/widgets/mmu/MmuCard.vue | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/widgets/mmu/MmuCard.vue b/src/components/widgets/mmu/MmuCard.vue index 63f985bfaa..f5fb0ec02a 100644 --- a/src/components/widgets/mmu/MmuCard.vue +++ b/src/components/widgets/mmu/MmuCard.vue @@ -1,5 +1,6 @@ @@ -57,7 +57,7 @@ @click="ejectLane" > - {{ mdiEject }} + $afcEjectFilament @@ -74,14 +74,9 @@ import { Component, Mixins, Prop } from 'vue-property-decorator' import StateMixin from '@/mixins/state' import AfcMixin from '@/mixins/afc' import ToolheadMixIn from '@/mixins/toolhead' -import { mdiArrowDownBold, mdiArrowUpBold, mdiEject } from '@mdi/js' @Component({}) export default class AfcCardUnitLaneActions extends Mixins(StateMixin, AfcMixin, ToolheadMixIn) { - mdiArrowUpBold = mdiArrowUpBold - mdiArrowDownBold = mdiArrowDownBold - mdiEject = mdiEject - @Prop({ type: String, required: true }) readonly name!: string get lane () { diff --git a/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue b/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue index 40086c4971..ab5f952d09 100644 --- a/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue +++ b/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue @@ -24,7 +24,7 @@ @click="ejectLane" > - {{ mdiEject }} + $afcEjectFilament @@ -40,12 +40,9 @@ import { Component, Mixins, Prop } from 'vue-property-decorator' import StateMixin from '@/mixins/state' import AfcMixin from '@/mixins/afc' -import { mdiEject } from '@mdi/js' @Component export default class AfcCardUnitLaneEmpty extends Mixins(StateMixin, AfcMixin) { - mdiEject = mdiEject - @Prop({ type: String, required: true }) readonly name!: string get lane () { diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialog.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialog.vue index ceffdc2f97..98b7925c9f 100644 --- a/src/components/widgets/afc/dialogs/AfcSettingsDialog.vue +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialog.vue @@ -5,7 +5,7 @@ card-class="afc-settings-dialog" :title="$t('app.afc.AfcSettings')" icon="$afcIcon" - :help-icon="mdiLifebuoy" + help-icon="$afcHelp" :help-text="$t('app.afc.SettingsDialog.Help')" :help-href="helpLink" scrollable @@ -34,7 +34,6 @@ diff --git a/src/components/widgets/afc/AfcCardUnitLaneActions.vue b/src/components/widgets/afc/AfcCardUnitLaneActions.vue index 447a21e8fe..544497b657 100644 --- a/src/components/widgets/afc/AfcCardUnitLaneActions.vue +++ b/src/components/widgets/afc/AfcCardUnitLaneActions.vue @@ -74,6 +74,7 @@ import { Component, Mixins, Prop } from 'vue-property-decorator' import StateMixin from '@/mixins/state' import AfcMixin from '@/mixins/afc' import ToolheadMixIn from '@/mixins/toolhead' +import { encodeGcodeParamValue } from '@/util/gcode-helpers' @Component({}) export default class AfcCardUnitLaneActions extends Mixins(StateMixin, AfcMixin, ToolheadMixIn) { @@ -98,15 +99,15 @@ export default class AfcCardUnitLaneActions extends Mixins(StateMixin, AfcMixin, } loadLane () { - this.sendGcode(`CHANGE_TOOL LANE=${this.name}`) + this.sendGcode(`CHANGE_TOOL LANE=${encodeGcodeParamValue(this.name)}`) } unloadLane () { - this.sendGcode(`TOOL_UNLOAD LANE=${this.name}`) + this.sendGcode(`TOOL_UNLOAD LANE=${encodeGcodeParamValue(this.name)}`) } ejectLane () { - this.sendGcode(`LANE_UNLOAD LANE=${this.name}`) + this.sendGcode(`LANE_UNLOAD LANE=${encodeGcodeParamValue(this.name)}`) } } diff --git a/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue b/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue index ab5f952d09..383d721ebe 100644 --- a/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue +++ b/src/components/widgets/afc/AfcCardUnitLaneEmpty.vue @@ -40,6 +40,7 @@ import { Component, Mixins, Prop } from 'vue-property-decorator' import StateMixin from '@/mixins/state' import AfcMixin from '@/mixins/afc' +import { encodeGcodeParamValue } from '@/util/gcode-helpers' @Component export default class AfcCardUnitLaneEmpty extends Mixins(StateMixin, AfcMixin) { @@ -60,9 +61,7 @@ export default class AfcCardUnitLaneEmpty extends Mixins(StateMixin, AfcMixin) { } ejectLane () { - const gcode = `LANE_UNLOAD LANE=${this.name}` - - this.sendGcode(gcode) + this.sendGcode(`LANE_UNLOAD LANE=${encodeGcodeParamValue(this.name)}`) } } diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue index fa5cf13602..8e4ef42127 100644 --- a/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue @@ -1,108 +1,91 @@ + + + + - {{ $t('app.afc.SettingsDialog.WriteToFile') }} - - -
+ + {{ $t('app.afc.SettingsDialog.WriteToFile') }} + + + + diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue index a104d907c7..2474b3440e 100644 --- a/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue @@ -1,30 +1,21 @@ diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue index 3272be9920..3da371100d 100644 --- a/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue @@ -1,43 +1,41 @@ diff --git a/src/components/widgets/afc/dialogs/AfcUnitLaneFilamentDialog.vue b/src/components/widgets/afc/dialogs/AfcUnitLaneFilamentDialog.vue index 2e7297dff1..00f6a437d6 100644 --- a/src/components/widgets/afc/dialogs/AfcUnitLaneFilamentDialog.vue +++ b/src/components/widgets/afc/dialogs/AfcUnitLaneFilamentDialog.vue @@ -69,6 +69,7 @@ import { Component, Mixins, Prop, Watch, VModel } from 'vue-property-decorator' import StateMixin from '@/mixins/state' import AfcMixin from '@/mixins/afc' import { Debounce } from 'vue-debounce-decorator' +import { encodeGcodeParamValue } from '@/util/gcode-helpers' @Component({}) export default class AfcUnitLaneFilamentDialog extends Mixins(StateMixin, AfcMixin) { @@ -112,23 +113,19 @@ export default class AfcUnitLaneFilamentDialog extends Mixins(StateMixin, AfcMix if (this.color !== this.currentColor) { const cleanedColor = this.color.replace('#', '') - gcode.push(`SET_COLOR LANE=${this.name} COLOR=${cleanedColor}`) + gcode.push(`SET_COLOR LANE=${encodeGcodeParamValue(this.name)} COLOR=${encodeGcodeParamValue(cleanedColor)}`) } if (this.material !== this.currentMaterial) { - gcode.push(`SET_MATERIAL LANE=${this.name} MATERIAL=${this.material}`) + gcode.push(`SET_MATERIAL LANE=${encodeGcodeParamValue(this.name)} MATERIAL=${encodeGcodeParamValue(this.material)}`) } if (this.weight !== this.currentWeight) { - gcode.push(`SET_WEIGHT LANE=${this.name} WEIGHT=${this.weight}`) + gcode.push(`SET_WEIGHT LANE=${encodeGcodeParamValue(this.name)} WEIGHT=${this.weight}`) } this.sendGcode(gcode.join('\n')) this.closeDialog() } - doSend (gcode: string) { - this.sendGcode(gcode) - } - closeDialog () { this.$emit('close') } diff --git a/src/components/widgets/afc/dialogs/AfcUnitLaneInfiniteDialog.vue b/src/components/widgets/afc/dialogs/AfcUnitLaneInfiniteDialog.vue index 08211fb7d9..15dfd16d00 100644 --- a/src/components/widgets/afc/dialogs/AfcUnitLaneInfiniteDialog.vue +++ b/src/components/widgets/afc/dialogs/AfcUnitLaneInfiniteDialog.vue @@ -33,6 +33,7 @@ import { Component, Mixins, Prop, VModel } from 'vue-property-decorator' import StateMixin from '@/mixins/state' import AfcMixin from '@/mixins/afc' +import { encodeGcodeParamValue } from '@/util/gcode-helpers' @Component({}) export default class AfcUnitLaneInfiniteDialog extends Mixins(StateMixin, AfcMixin) { @@ -68,7 +69,7 @@ export default class AfcUnitLaneInfiniteDialog extends Mixins(StateMixin, AfcMix } setRunout (newLane: string) { - this.sendGcode(`SET_RUNOUT LANE=${this.name} RUNOUT=${newLane}`) + this.sendGcode(`SET_RUNOUT LANE=${encodeGcodeParamValue(this.name)} RUNOUT=${encodeGcodeParamValue(newLane)}`) this.closeDialog() } diff --git a/src/components/widgets/afc/dialogs/AfcUnitLaneMappingToolDialog.vue b/src/components/widgets/afc/dialogs/AfcUnitLaneMappingToolDialog.vue index 36ced54fe7..57d4db3ebc 100644 --- a/src/components/widgets/afc/dialogs/AfcUnitLaneMappingToolDialog.vue +++ b/src/components/widgets/afc/dialogs/AfcUnitLaneMappingToolDialog.vue @@ -33,6 +33,7 @@ import { Component, Mixins, Prop, VModel } from 'vue-property-decorator' import StateMixin from '@/mixins/state' import AfcMixin from '@/mixins/afc' +import { encodeGcodeParamValue } from '@/util/gcode-helpers' @Component({}) export default class AfcUnitLaneMappingToolDialog extends Mixins(StateMixin, AfcMixin) { @@ -48,7 +49,7 @@ export default class AfcUnitLaneMappingToolDialog extends Mixins(StateMixin, Afc } mapTool (newTool: string) { - this.sendGcode(`SET_MAP LANE=${this.name} MAP=${newTool}`) + this.sendGcode(`SET_MAP LANE=${encodeGcodeParamValue(this.name)} MAP=${encodeGcodeParamValue(newTool)}`) this.closeDialog() } From b00a24d1b6d142296e77bc66318a55a689a42454 Mon Sep 17 00:00:00 2001 From: Pedro Lamas Date: Fri, 5 Dec 2025 00:44:52 +0000 Subject: [PATCH 22/49] fix: settings controls Signed-off-by: Pedro Lamas --- components.d.ts | 1 - src/components/ui/AppNumberInput.vue | 189 ------------------ .../afc/dialogs/AfcSettingsDialogExtruder.vue | 6 +- .../afc/dialogs/AfcSettingsDialogHub.vue | 3 +- .../afc/dialogs/AfcSettingsDialogLane.vue | 7 +- 5 files changed, 7 insertions(+), 199 deletions(-) delete mode 100644 src/components/ui/AppNumberInput.vue diff --git a/components.d.ts b/components.d.ts index d392e8deb5..b0ea7f817e 100644 --- a/components.d.ts +++ b/components.d.ts @@ -44,7 +44,6 @@ declare module 'vue' { AppNavDrawer: typeof import('./src/components/layout/AppNavDrawer.vue')['default'] AppNavItem: typeof import('./src/components/ui/AppNavItem.vue')['default'] AppNotificationMenu: typeof import('./src/components/layout/AppNotificationMenu.vue')['default'] - AppNumberInput: typeof import('./src/components/ui/AppNumberInput.vue')['default'] AppObservedColumn: typeof import('./src/components/layout/AppObservedColumn.vue')['default'] AppQrCode: typeof import('./src/components/ui/AppQrCode.vue')['default'] AppSaveConfigAndRestartBtn: typeof import('./src/components/layout/AppSaveConfigAndRestartBtn.vue')['default'] diff --git a/src/components/ui/AppNumberInput.vue b/src/components/ui/AppNumberInput.vue deleted file mode 100644 index 7cfb8512e1..0000000000 --- a/src/components/ui/AppNumberInput.vue +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue index 8e4ef42127..d47aa4c2d9 100644 --- a/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogExtruder.vue @@ -31,7 +31,7 @@ :value="currentToolStn" :reset-value="settingsToolStn" suffix="mm" - submit-on-blur + submit-on-change @submit="updateToolheadSensors('TOOL_STN', $event)" /> @@ -47,7 +47,7 @@ :value="currentToolStnUnload" :reset-value="settingsToolStnUnload" suffix="mm" - submit-on-blur + submit-on-change @submit="updateToolheadSensors('TOOL_STN_UNLOAD', $event)" /> @@ -64,7 +64,7 @@ :value="currentToolSensorAfterExtruder" :reset-value="settingsToolSensorAfterExtruder" suffix="mm" - submit-on-blur + submit-on-change @submit="updateToolheadSensors('TOOL_AFTER_EXTRUDER', $event)" /> diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue index 2474b3440e..b7cf6190b1 100644 --- a/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogHub.vue @@ -11,7 +11,8 @@ :reset-value="settingsLength" type="number" suffix="mm" - @change="setBowdenLength" + submit-on-change + @submit="setBowdenLength" /> diff --git a/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue b/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue index 3da371100d..a5f1b059bf 100644 --- a/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue +++ b/src/components/widgets/afc/dialogs/AfcSettingsDialogLane.vue @@ -7,15 +7,12 @@ :title="$t('app.afc.SettingsDialog.DistHub')" :sub-title="$t('app.afc.SettingsDialog.DistHubDescription')" > - From d4a26c1b053143368fc654d5fb7f28e286e63b09 Mon Sep 17 00:00:00 2001 From: Pedro Lamas Date: Fri, 5 Dec 2025 10:02:02 +0000 Subject: [PATCH 23/49] revert: MMU support already checked on Dashboard Signed-off-by: Pedro Lamas --- src/components/widgets/mmu/MmuCard.vue | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/components/widgets/mmu/MmuCard.vue b/src/components/widgets/mmu/MmuCard.vue index f5fb0ec02a..63f985bfaa 100644 --- a/src/components/widgets/mmu/MmuCard.vue +++ b/src/components/widgets/mmu/MmuCard.vue @@ -1,6 +1,5 @@