Last Sync: 2026-06-05 03:26 (Mobile)
This commit is contained in:
1 parent
7583b9e7d6
commit
97b79b8de6
27 files changed
+7728
-6659
No files matched your search
Binary file not shown.
Binary file not shown.
+93
-46
@@ -27,7 +27,7 @@ __export(main_exports, {
|
||||
default: () => AdvancedCanvasPlugin
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian19 = require("obsidian");
|
||||
var import_obsidian20 = require("obsidian");
|
||||
|
||||
// src/utils/icons-helper.ts
|
||||
var import_obsidian = require("obsidian");
|
||||
@@ -1661,6 +1661,7 @@ var DEFAULT_SETTINGS_VALUES = {
|
||||
disableFontSizeRelativeToZoom: false,
|
||||
canvasMetadataCompatibilityEnabled: true,
|
||||
enableSingleNodeLinks: true,
|
||||
enableSingleNodePopupReferenceCopy: false,
|
||||
combineCustomStylesInDropdown: false,
|
||||
nodeStylingFeatureEnabled: true,
|
||||
customNodeStyleAttributes: [],
|
||||
@@ -1814,7 +1815,12 @@ var SETTINGS = {
|
||||
children: {
|
||||
enableSingleNodeLinks: {
|
||||
label: "Enable support for linking to a node using a [[wikilink]]",
|
||||
description: "When enabled, you can link and embed a node using [[canvas-file#node-id]].",
|
||||
description: 'When enabled, you can link and embed a node using [[canvas-file#node-id]] (Use the "Copy wikilink to node" command to get an id).',
|
||||
type: "boolean"
|
||||
},
|
||||
enableSingleNodePopupReferenceCopy: {
|
||||
label: "Show button to copy node [[wikilink]]",
|
||||
description: "When enabled, the node popup will show a button to copy the [[wikilink]] of the node for easy reference in other notes.",
|
||||
type: "boolean"
|
||||
}
|
||||
}
|
||||
@@ -2205,6 +2211,7 @@ var AdvancedCanvasPluginSettingTab = class extends import_obsidian4.PluginSettin
|
||||
display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
containerEl.classList.add("ac-settings");
|
||||
this.createKofiBanner(containerEl);
|
||||
for (const [headingId, heading] of Object.entries(SETTINGS)) {
|
||||
this.createFeatureHeading(
|
||||
@@ -2249,7 +2256,7 @@ var AdvancedCanvasPluginSettingTab = class extends import_obsidian4.PluginSettin
|
||||
const setting = new import_obsidian4.Setting(containerEl).setHeading().setClass("ac-settings-heading").setName(label).setDesc(description);
|
||||
if (infoSection !== void 0) {
|
||||
setting.addExtraButton(
|
||||
(button) => button.setTooltip("Open github documentation").setIcon("info").onClick(async () => {
|
||||
(button) => button.setTooltip("Open GitHub documentation").setIcon("info").onClick(async () => {
|
||||
const anchor = activeDocument.createElement("a");
|
||||
anchor.href = `${README_URL}#${infoSection}`;
|
||||
anchor.target = "_blank";
|
||||
@@ -3059,9 +3066,15 @@ var AdvancedCanvasEmbed = class extends import_obsidian7.Component {
|
||||
if (canvasNode.type === "text") nodeContent = canvasNode.text;
|
||||
else if (canvasNode.type === "group") nodeContent = `**Group Node:** ${canvasNode.label}`;
|
||||
else if (canvasNode.type === "file") nodeContent = `**File Node:** ${canvasNode.file}`;
|
||||
this.context.containerEl.classList.add("markdown-embed");
|
||||
this.context.containerEl.empty();
|
||||
await import_obsidian7.MarkdownRenderer.render(this.context.app, nodeContent, this.context.containerEl, this.file.path, this);
|
||||
this.context.containerEl.classList.add("ac-card-embed");
|
||||
if (canvasNode.color !== void 0) {
|
||||
this.context.containerEl.classList.add("is-themed");
|
||||
this.context.containerEl.classList.add(`mod-canvas-color-${canvasNode.color}`);
|
||||
}
|
||||
const markdownContainer = this.context.containerEl.createSpan();
|
||||
markdownContainer.classList.add("markdown-content");
|
||||
await import_obsidian7.MarkdownRenderer.render(this.context.app, nodeContent, markdownContainer, this.file.path, this);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4483,7 +4496,45 @@ var EncapsulateCanvasExtension = class extends CanvasExtension {
|
||||
};
|
||||
|
||||
// src/canvas-extensions/commands-canvas-extension.ts
|
||||
var import_obsidian15 = require("obsidian");
|
||||
|
||||
// src/canvas-extensions/copy-node-reference-canvas-extension.ts
|
||||
var import_obsidian14 = require("obsidian");
|
||||
var CopyNodeReferenceCanvasExtension = class _CopyNodeReferenceCanvasExtension extends CanvasExtension {
|
||||
isEnabled() {
|
||||
return "enableSingleNodePopupReferenceCopy";
|
||||
}
|
||||
init() {
|
||||
this.plugin.registerEvent(this.plugin.app.workspace.on(
|
||||
"advanced-canvas:popup-menu-created",
|
||||
(canvas) => this.onPopupMenuCreated(canvas)
|
||||
));
|
||||
}
|
||||
onPopupMenuCreated(canvas) {
|
||||
var _a;
|
||||
const popupMenuEl = (_a = canvas == null ? void 0 : canvas.menu) == null ? void 0 : _a.menuEl;
|
||||
if (!popupMenuEl) return;
|
||||
const selectionData = canvas.getSelectionData();
|
||||
if (selectionData.nodes.length !== 1 && selectionData.edges.length === 0) return;
|
||||
const menuOption = {
|
||||
id: "node-popup-menu-option-copy-reference",
|
||||
label: "Copy wikilink to node",
|
||||
icon: "link",
|
||||
callback: () => _CopyNodeReferenceCanvasExtension.copyWikilinkToNode(canvas.view.file, selectionData.nodes[0])
|
||||
};
|
||||
const popupMenuOption = CanvasHelper.createPopupMenuOption(menuOption);
|
||||
CanvasHelper.addPopupMenuOption(canvas, popupMenuOption);
|
||||
}
|
||||
static copyWikilinkToNode(file, nodeData) {
|
||||
const nodeTypeString = TextHelper.toTitleCase(nodeData.type);
|
||||
const wikilink = `[[${file.path}#${nodeData.id}|${file.name} (${nodeTypeString} node)]]`;
|
||||
navigator.clipboard.writeText(wikilink).then(
|
||||
() => new import_obsidian14.Notice("Copied wikilink to node to clipboard.", 2e3)
|
||||
).catch(() => new import_obsidian14.Notice("Failed to copy wikilink to node to clipboard.", 2e3));
|
||||
}
|
||||
};
|
||||
|
||||
// src/canvas-extensions/commands-canvas-extension.ts
|
||||
var DIRECTIONS = ["up", "down", "left", "right"];
|
||||
var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
isEnabled() {
|
||||
@@ -4655,10 +4706,7 @@ var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
if (!file) return;
|
||||
const nodeData = canvas.getSelectionData().nodes[0];
|
||||
if (!nodeData) return;
|
||||
const wikilink = `[[${file.path}#${nodeData.id}|${file.name} (${TextHelper.toTitleCase(nodeData.type)} node)]]`;
|
||||
navigator.clipboard.writeText(wikilink).then(
|
||||
() => new import_obsidian14.Notice("Copied wikilink to node to clipboard.", 2e3)
|
||||
).catch(() => new import_obsidian14.Notice("Failed to copy wikilink to node to clipboard.", 2e3));
|
||||
CopyNodeReferenceCanvasExtension.copyWikilinkToNode(file, nodeData);
|
||||
}
|
||||
)
|
||||
});
|
||||
@@ -4690,7 +4738,7 @@ var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
if (!nodeOutgoingLinks) continue;
|
||||
for (const nodeOutgoingLink of nodeOutgoingLinks) {
|
||||
const resolvedLink = this.plugin.app.metadataCache.getFirstLinkpathDest(nodeOutgoingLink.link, relativeFile.path);
|
||||
if (!(resolvedLink instanceof import_obsidian14.TFile)) continue;
|
||||
if (!(resolvedLink instanceof import_obsidian15.TFile)) continue;
|
||||
outgoingLinks.add(resolvedLink);
|
||||
}
|
||||
}
|
||||
@@ -4726,7 +4774,7 @@ var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
if (!nodeBacklinks) continue;
|
||||
for (const nodeBacklink of nodeBacklinks.data.keys()) {
|
||||
const resolvedLink = this.plugin.app.metadataCache.getFirstLinkpathDest(nodeBacklink, file.path);
|
||||
if (!(resolvedLink instanceof import_obsidian14.TFile)) continue;
|
||||
if (!(resolvedLink instanceof import_obsidian15.TFile)) continue;
|
||||
backlinks.add(resolvedLink);
|
||||
}
|
||||
}
|
||||
@@ -4735,7 +4783,7 @@ var CommandsCanvasExtension = class extends CanvasExtension {
|
||||
if (!canvasBacklinks) return;
|
||||
for (const canvasBacklink of canvasBacklinks.data.keys()) {
|
||||
const resolvedLink = this.plugin.app.metadataCache.getFirstLinkpathDest(canvasBacklink, canvasFile.path);
|
||||
if (!(resolvedLink instanceof import_obsidian14.TFile)) continue;
|
||||
if (!(resolvedLink instanceof import_obsidian15.TFile)) continue;
|
||||
backlinks.add(resolvedLink);
|
||||
}
|
||||
}
|
||||
@@ -5011,7 +5059,7 @@ var AutoResizeNodeCanvasExtension = class extends CanvasExtension {
|
||||
};
|
||||
|
||||
// src/canvas-extensions/portals-canvas-extension.ts
|
||||
var import_obsidian15 = require("obsidian");
|
||||
var import_obsidian16 = require("obsidian");
|
||||
var PORTAL_ID_DELIMITER = "||";
|
||||
var PORTAL_ID_PREFIX = `acportal${PORTAL_ID_DELIMITER}`;
|
||||
var PORTAL_PADDING = 50;
|
||||
@@ -5073,7 +5121,7 @@ var PortalsCanvasExtension = class _PortalsCanvasExtension extends CanvasExtensi
|
||||
setData(newData);
|
||||
}).catch((error) => {
|
||||
console.error("Error loading portal data:", error);
|
||||
new import_obsidian15.Notice("An error occurred while loading portal data. Please check console for details.");
|
||||
new import_obsidian16.Notice("An error occurred while loading portal data. Please check console for details.");
|
||||
});
|
||||
}
|
||||
));
|
||||
@@ -5153,13 +5201,13 @@ var PortalsCanvasExtension = class _PortalsCanvasExtension extends CanvasExtensi
|
||||
onEdgeConnectionTryDraggingBefore(_canvas, edge, _event, cancelRef) {
|
||||
if (!_PortalsCanvasExtension.isPortalElement(edge.id)) return;
|
||||
cancelRef.value = true;
|
||||
new import_obsidian15.Notice("Updating edges from portals is not supported yet.");
|
||||
new import_obsidian16.Notice("Updating edges from portals is not supported yet.");
|
||||
}
|
||||
onEdgeConnectionDraggingAfter(canvas, edge, _event, _newEdge, _side, _previousEnds) {
|
||||
if (_PortalsCanvasExtension.isPortalElement(edge.id)) return;
|
||||
if (!_PortalsCanvasExtension.isPortalElement(edge.from.node.id) || !_PortalsCanvasExtension.isPortalElement(edge.to.node.id)) return;
|
||||
canvas.removeEdge(edge);
|
||||
new import_obsidian15.Notice("Creating edges with both ends in portals are not supported yet.");
|
||||
new import_obsidian16.Notice("Creating edges with both ends in portals are not supported yet.");
|
||||
}
|
||||
onPopupMenu(canvas) {
|
||||
if (canvas.readonly) return;
|
||||
@@ -5246,7 +5294,7 @@ var PortalsCanvasExtension = class _PortalsCanvasExtension extends CanvasExtensi
|
||||
if (nestedPortalFiles.has(portalNodeData.file)) return addedData;
|
||||
nestedPortalFiles.add(portalNodeData.file);
|
||||
const portalFile = this.plugin.app.vault.getAbstractFileByPath(portalNodeData.file);
|
||||
if (!(portalFile instanceof import_obsidian15.TFile) || portalFile.extension !== "canvas") return addedData;
|
||||
if (!(portalFile instanceof import_obsidian16.TFile) || portalFile.extension !== "canvas") return addedData;
|
||||
const portalFileDataString = await this.plugin.app.vault.cachedRead(portalFile);
|
||||
if (portalFileDataString === "") return addedData;
|
||||
const portalFileData = JSON.parse(portalFileDataString);
|
||||
@@ -5337,7 +5385,7 @@ var PortalsCanvasExtension = class _PortalsCanvasExtension extends CanvasExtensi
|
||||
};
|
||||
|
||||
// src/canvas-extensions/frontmatter-control-button-canvas-extension.ts
|
||||
var import_obsidian16 = require("obsidian");
|
||||
var import_obsidian17 = require("obsidian");
|
||||
var FrontmatterControlButtonCanvasExtension = class extends CanvasExtension {
|
||||
isEnabled() {
|
||||
return "canvasMetadataCompatibilityEnabled";
|
||||
@@ -5363,7 +5411,7 @@ var FrontmatterControlButtonCanvasExtension = class extends CanvasExtension {
|
||||
var _a2;
|
||||
const propertiesPlugin = this.plugin.app.internalPlugins.plugins["properties"];
|
||||
if (!(propertiesPlugin == null ? void 0 : propertiesPlugin._loaded)) {
|
||||
new import_obsidian16.Notice(`Core plugin "Properties view" was not found or isn't enabled. Enable it and restart Obsidian.`);
|
||||
new import_obsidian17.Notice(`Core plugin "Properties view" was not found or isn't enabled. Enable it and restart Obsidian.`);
|
||||
return;
|
||||
}
|
||||
let propertiesLeaf = (_a2 = this.plugin.app.workspace.getLeavesOfType("file-properties").first()) != null ? _a2 : null;
|
||||
@@ -5610,7 +5658,7 @@ var ColorPaletteCanvasExtension = class extends CanvasExtension {
|
||||
};
|
||||
|
||||
// src/canvas-extensions/collapsible-groups-canvas-extension.ts
|
||||
var import_obsidian17 = require("obsidian");
|
||||
var import_obsidian18 = require("obsidian");
|
||||
var CollapsibleGroupsCanvasExtension = class extends CanvasExtension {
|
||||
isEnabled() {
|
||||
return "collapsibleGroupsFeatureEnabled";
|
||||
@@ -5658,7 +5706,7 @@ var CollapsibleGroupsCanvasExtension = class extends CanvasExtension {
|
||||
(_a = groupNode.collapseEl) == null ? void 0 : _a.remove();
|
||||
const collapseEl = activeDocument.createElement("div");
|
||||
collapseEl.className = "collapse-button";
|
||||
(0, import_obsidian17.setIcon)(collapseEl, groupNodeData.collapsed ? "plus-circle" : "minus-circle");
|
||||
(0, import_obsidian18.setIcon)(collapseEl, groupNodeData.collapsed ? "plus-circle" : "minus-circle");
|
||||
collapseEl.onclick = () => this.toggleCollapseGroup(canvas, groupNode);
|
||||
groupNode.collapseEl = collapseEl;
|
||||
(_b = groupNode.labelEl) == null ? void 0 : _b.insertAdjacentElement("afterend", collapseEl);
|
||||
@@ -6746,7 +6794,7 @@ async function toPng(node, options = {}) {
|
||||
}
|
||||
|
||||
// src/canvas-extensions/export-canvas-extension.ts
|
||||
var import_obsidian18 = require("obsidian");
|
||||
var import_obsidian19 = require("obsidian");
|
||||
var MAX_ALLOWED_LOADING_TIME = 1e4;
|
||||
var ExportCanvasExtension = class extends CanvasExtension {
|
||||
isEnabled() {
|
||||
@@ -6782,7 +6830,7 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
});
|
||||
}
|
||||
async showExportImageSettingsModal(canvas, nodesToExport) {
|
||||
const modal = new import_obsidian18.Modal(this.plugin.app);
|
||||
const modal = new import_obsidian19.Modal(this.plugin.app);
|
||||
modal.setTitle("Export image settings");
|
||||
let pixelRatioSetting = null;
|
||||
let noFontExportSetting = null;
|
||||
@@ -6800,7 +6848,7 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
}
|
||||
};
|
||||
let svg = false;
|
||||
new import_obsidian18.Setting(modal.contentEl).setName("Export file format").setDesc("Choose the file format to export the canvas as.").addDropdown(
|
||||
new import_obsidian19.Setting(modal.contentEl).setName("Export file format").setDesc("Choose the file format to export the canvas as.").addDropdown(
|
||||
(dropdown) => dropdown.addOptions({
|
||||
png: "PNG",
|
||||
svg: "SVG"
|
||||
@@ -6810,33 +6858,33 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
})
|
||||
);
|
||||
let pixelRatioFactor = 1;
|
||||
pixelRatioSetting = new import_obsidian18.Setting(modal.contentEl).setName("Pixel ratio").setDesc("Higher pixel ratios result in higher resolution images but also larger file sizes.").addSlider(
|
||||
pixelRatioSetting = new import_obsidian19.Setting(modal.contentEl).setName("Pixel ratio").setDesc("Higher pixel ratios result in higher resolution images but also larger file sizes.").addSlider(
|
||||
(slider) => slider.setDynamicTooltip().setLimits(0.2, 5, 0.1).setValue(pixelRatioFactor).onChange((value) => pixelRatioFactor = value)
|
||||
);
|
||||
let noFontExport = true;
|
||||
noFontExportSetting = new import_obsidian18.Setting(modal.contentEl).setName("Skip font export").setDesc("This will not include the fonts in the exported SVG. This will make the SVG file smaller.").addToggle(
|
||||
noFontExportSetting = new import_obsidian19.Setting(modal.contentEl).setName("Skip font export").setDesc("This will not include the fonts in the exported SVG. This will make the SVG file smaller.").addToggle(
|
||||
(toggle) => toggle.setValue(noFontExport).onChange((value) => noFontExport = value)
|
||||
);
|
||||
let theme = activeDocument.body.classList.contains("theme-dark") ? "dark" : "light";
|
||||
new import_obsidian18.Setting(modal.contentEl).setName("Theme").setDesc("The theme used for the export.").addDropdown(
|
||||
new import_obsidian19.Setting(modal.contentEl).setName("Theme").setDesc("The theme used for the export.").addDropdown(
|
||||
(dropdown) => dropdown.addOptions({
|
||||
light: "Light",
|
||||
dark: "Dark"
|
||||
}).setValue(theme).onChange((value) => theme = value)
|
||||
);
|
||||
let watermark = false;
|
||||
new import_obsidian18.Setting(modal.contentEl).setName("Show logo").setDesc("This will add an Obsidian + Advanced Canvas logo to the bottom left.").addToggle(
|
||||
new import_obsidian19.Setting(modal.contentEl).setName("Show logo").setDesc("This will add an Obsidian + Advanced Canvas logo to the bottom left.").addToggle(
|
||||
(toggle) => toggle.setValue(watermark).onChange((value) => watermark = value)
|
||||
);
|
||||
let garbledText = false;
|
||||
new import_obsidian18.Setting(modal.contentEl).setName("Privacy mode").setDesc("This will obscure any text on your canvas.").addToggle(
|
||||
new import_obsidian19.Setting(modal.contentEl).setName("Privacy mode").setDesc("This will obscure any text on your canvas.").addToggle(
|
||||
(toggle) => toggle.setValue(garbledText).onChange((value) => garbledText = value)
|
||||
);
|
||||
let transparentBackground = false;
|
||||
transparentBackgroundSetting = new import_obsidian18.Setting(modal.contentEl).setName("Transparent background").setDesc("This will make the background of the image transparent.").addToggle(
|
||||
transparentBackgroundSetting = new import_obsidian19.Setting(modal.contentEl).setName("Transparent background").setDesc("This will make the background of the image transparent.").addToggle(
|
||||
(toggle) => toggle.setValue(transparentBackground).onChange((value) => transparentBackground = value)
|
||||
);
|
||||
new import_obsidian18.Setting(modal.contentEl).addButton(
|
||||
new import_obsidian19.Setting(modal.contentEl).addButton(
|
||||
(button) => button.setButtonText("Save").setCta().onClick(async () => {
|
||||
modal.close();
|
||||
await this.exportImage(
|
||||
@@ -6870,7 +6918,7 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
return nodesToExportIds.includes(edgeData.fromNode) && nodesToExportIds.includes(edgeData.toNode);
|
||||
});
|
||||
const backgroundColor = transparentBackground ? void 0 : window.getComputedStyle(canvas.canvasEl).getPropertyValue("--canvas-background");
|
||||
new import_obsidian18.Notice("Exporting the canvas. Please wait...");
|
||||
new import_obsidian19.Notice("Exporting the canvas. Please wait...");
|
||||
const interactionBlocker = this.getInteractionBlocker();
|
||||
activeDocument.body.appendChild(interactionBlocker);
|
||||
canvas.screenshotting = true;
|
||||
@@ -6971,7 +7019,7 @@ var ExportCanvasExtension = class extends CanvasExtension {
|
||||
downloadEl.click();
|
||||
} else {
|
||||
const ERROR_MESSAGE = "Export cancelled: Nodes did not finish loading in time";
|
||||
new import_obsidian18.Notice(ERROR_MESSAGE);
|
||||
new import_obsidian19.Notice(ERROR_MESSAGE);
|
||||
console.error(ERROR_MESSAGE);
|
||||
}
|
||||
} finally {
|
||||
@@ -7296,16 +7344,14 @@ var EdgeExposerExtension = class extends CanvasExtension {
|
||||
for (const exposedDataKey of getExposedEdgeData(this.plugin.settings)) {
|
||||
const datasetPairs = edgeData[exposedDataKey] && typeof edgeData[exposedDataKey] === "object" ? Object.entries(edgeData[exposedDataKey]) : [[exposedDataKey, edgeData[exposedDataKey]]];
|
||||
for (const [key, value] of datasetPairs) {
|
||||
const stringifiedKey = JSON.stringify(key);
|
||||
if (!stringifiedKey) continue;
|
||||
if (!value) {
|
||||
delete edge.path.display.dataset[stringifiedKey];
|
||||
if ((_a = edge.fromLineEnd) == null ? void 0 : _a.el) delete edge.fromLineEnd.el.dataset[stringifiedKey];
|
||||
if ((_b = edge.toLineEnd) == null ? void 0 : _b.el) delete edge.toLineEnd.el.dataset[stringifiedKey];
|
||||
delete edge.path.display.dataset[key];
|
||||
if ((_a = edge.fromLineEnd) == null ? void 0 : _a.el) delete edge.fromLineEnd.el.dataset[key];
|
||||
if ((_b = edge.toLineEnd) == null ? void 0 : _b.el) delete edge.toLineEnd.el.dataset[key];
|
||||
} else {
|
||||
edge.path.display.dataset[stringifiedKey] = JSON.stringify(value);
|
||||
if ((_c = edge.fromLineEnd) == null ? void 0 : _c.el) edge.fromLineEnd.el.dataset[stringifiedKey] = JSON.stringify(value);
|
||||
if ((_d = edge.toLineEnd) == null ? void 0 : _d.el) edge.toLineEnd.el.dataset[stringifiedKey] = JSON.stringify(value);
|
||||
edge.path.display.dataset[key] = value;
|
||||
if ((_c = edge.fromLineEnd) == null ? void 0 : _c.el) edge.fromLineEnd.el.dataset[key] = value;
|
||||
if ((_d = edge.toLineEnd) == null ? void 0 : _d.el) edge.toLineEnd.el.dataset[key] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7423,10 +7469,10 @@ var PATCHERS = [
|
||||
FileManagerPatcher,
|
||||
// Direct metadata dependant patchers
|
||||
PropertiesPatcher,
|
||||
!(0, import_obsidian19.requireApiVersion)("1.12.0") && BacklinksPatcher,
|
||||
!(0, import_obsidian20.requireApiVersion)("1.12.0") && BacklinksPatcher,
|
||||
OutgoingLinksPatcher,
|
||||
// Metadata dependant patchers
|
||||
(0, import_obsidian19.requireApiVersion)("1.9.0") && BasesTableViewPatcher,
|
||||
(0, import_obsidian20.requireApiVersion)("1.9.0") && BasesTableViewPatcher,
|
||||
LinkSuggestionsPatcher,
|
||||
EmbedPatcher,
|
||||
SearchPatcher
|
||||
@@ -7462,9 +7508,10 @@ var CANVAS_EXTENSIONS = [
|
||||
ExportCanvasExtension,
|
||||
FocusModeCanvasExtension,
|
||||
EncapsulateCanvasExtension,
|
||||
EdgeSelectionCanvasExtension
|
||||
EdgeSelectionCanvasExtension,
|
||||
CopyNodeReferenceCanvasExtension
|
||||
];
|
||||
var AdvancedCanvasPlugin = class extends import_obsidian19.Plugin {
|
||||
var AdvancedCanvasPlugin = class extends import_obsidian20.Plugin {
|
||||
async onload() {
|
||||
IconsHelper.addIcons();
|
||||
this.settings = new SettingsManager(this);
|
||||
@@ -7496,7 +7543,7 @@ var AdvancedCanvasPlugin = class extends import_obsidian19.Plugin {
|
||||
}).filter((canvas) => canvas);
|
||||
}
|
||||
getCurrentCanvasView() {
|
||||
const canvasView = this.app.workspace.getActiveViewOfType(import_obsidian19.ItemView);
|
||||
const canvasView = this.app.workspace.getActiveViewOfType(import_obsidian20.ItemView);
|
||||
if ((canvasView == null ? void 0 : canvasView.getViewType()) !== "canvas") return null;
|
||||
return canvasView;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "advanced-canvas",
|
||||
"name": "Advanced Canvas",
|
||||
"version": "6.1.6",
|
||||
"version": "6.2.0",
|
||||
"minAppVersion": "1.7.2",
|
||||
"description": "Supercharge your canvas experience! Create presentations, flowcharts and more!",
|
||||
"author": "Developer-Mike",
|
||||
|
||||
+49
-17
@@ -1,55 +1,55 @@
|
||||
/* src/styles.scss */
|
||||
.properties-field > .setting-item-info {
|
||||
.ac-settings .properties-field > .setting-item-info {
|
||||
flex: 0;
|
||||
margin: 0;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
border: var(--input-border-width) solid var(--background-modifier-border);
|
||||
border-radius: var(--input-radius) 0 0 var(--input-radius);
|
||||
}
|
||||
.properties-field > .setting-item-control > input {
|
||||
.ac-settings .properties-field > .setting-item-control > input {
|
||||
width: 100%;
|
||||
border-radius: 0 var(--input-radius) var(--input-radius) 0;
|
||||
}
|
||||
.ac-settings-heading:not(:first-child) {
|
||||
.ac-settings .ac-settings-heading:not(:first-child) {
|
||||
margin-top: var(--size-4-10) !important;
|
||||
}
|
||||
.ac-settings-heading:has(.checkbox-container:not(.is-enabled)) {
|
||||
.ac-settings .ac-settings-heading:has(.checkbox-container:not(.is-enabled)) {
|
||||
border-bottom-color: var(--background-modifier-border-hover);
|
||||
}
|
||||
.ac-settings-heading .setting-item-description {
|
||||
.ac-settings .ac-settings-heading .setting-item-description {
|
||||
margin-inline-end: 20px;
|
||||
}
|
||||
.settings-header-children {
|
||||
.ac-settings .settings-header-children {
|
||||
transform-origin: top center;
|
||||
transform: scaleY(1);
|
||||
transition: transform 0.2s ease-in-out;
|
||||
}
|
||||
.ac-settings-heading:has(.checkbox-container:not(.is-enabled)) + .settings-header-children {
|
||||
.ac-settings .ac-settings-heading:has(.checkbox-container:not(.is-enabled)) + .settings-header-children {
|
||||
opacity: 0.5;
|
||||
pointer-events: none;
|
||||
height: 0;
|
||||
transform: scaleY(0);
|
||||
}
|
||||
.setting-item > .setting-item-control input[type=text] {
|
||||
.ac-settings .setting-item > .setting-item-control input[type=text] {
|
||||
width: 75px;
|
||||
}
|
||||
details.setting-item {
|
||||
.ac-settings details.setting-item {
|
||||
flex-direction: column;
|
||||
align-items: initial;
|
||||
}
|
||||
details.setting-item:not([open]) {
|
||||
.ac-settings details.setting-item:not([open]) {
|
||||
row-gap: 0;
|
||||
}
|
||||
details.setting-item[open] {
|
||||
.ac-settings details.setting-item[open] {
|
||||
padding-bottom: var(--size-4-2);
|
||||
}
|
||||
details.setting-item[open] > summary {
|
||||
.ac-settings details.setting-item[open] > summary {
|
||||
margin-bottom: var(--size-4-2);
|
||||
}
|
||||
details.setting-item > *:not(summary) {
|
||||
.ac-settings details.setting-item > *:not(summary) {
|
||||
border: 1px solid var(--background-primary);
|
||||
}
|
||||
.kofi-banner {
|
||||
.ac-settings .kofi-banner {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
@@ -58,17 +58,17 @@ details.setting-item > *:not(summary) {
|
||||
background-color: var(--background-primary-alt);
|
||||
border-radius: var(--radius-m);
|
||||
}
|
||||
.kofi-banner .ac-kofi-banner-title {
|
||||
.ac-settings .kofi-banner .ac-kofi-banner-title {
|
||||
margin: 0;
|
||||
font-size: var(--font-ui-small);
|
||||
font-weight: 600;
|
||||
}
|
||||
.kofi-banner .ac-kofi-button {
|
||||
.ac-settings .kofi-banner .ac-kofi-button {
|
||||
width: min-content;
|
||||
height: min-content;
|
||||
line-height: 0;
|
||||
}
|
||||
.kofi-banner .ac-kofi-button img {
|
||||
.ac-settings .kofi-banner .ac-kofi-button img {
|
||||
min-width: 75px;
|
||||
width: 25%;
|
||||
max-width: 100px;
|
||||
@@ -491,3 +491,35 @@ details.setting-item > *:not(summary) {
|
||||
.canvas-node-interaction-layer[data-is-from-portal=true] .canvas-node-resizer .canvas-node-connection-point {
|
||||
pointer-events: all;
|
||||
}
|
||||
.ac-card-embed {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
contain: strict;
|
||||
overflow: hidden;
|
||||
background-color: var(--background-primary);
|
||||
border: 1px solid rgb(var(--canvas-color));
|
||||
border-radius: var(--radius-m);
|
||||
box-shadow: var(--shadow-stationary);
|
||||
}
|
||||
.ac-card-embed.is-themed {
|
||||
background-color: rgba(var(--canvas-color), 0.07);
|
||||
border-color: rgba(var(--canvas-color), 0.7);
|
||||
box-shadow: inset 0 0 0 1px rgba(var(--canvas-color), 0.7), var(--shadow-stationary);
|
||||
}
|
||||
.ac-card-embed > .markdown-content {
|
||||
position: relative;
|
||||
overflow-y: auto;
|
||||
overflow-wrap: break-word;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0 var(--size-4-4);
|
||||
font-size: var(--font-text-size);
|
||||
font-family: var(--font-text);
|
||||
line-height: var(--line-height-normal);
|
||||
color: var(--text-normal);
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
scrollbar-gutter: stable;
|
||||
}
|
||||
Vendored
+33
-44
@@ -4,31 +4,21 @@
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "4de6e4e8f2d3eae9",
|
||||
"id": "8c864a1a13e218c8",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "7793305178417da9",
|
||||
"id": "5777e4c663df3488",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "대검 현황.md",
|
||||
"file": "30연대 26년도 예산.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "대검 현황"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "6c10e3bc95a711fa",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "empty",
|
||||
"state": {},
|
||||
"icon": "lucide-file",
|
||||
"title": "새 탭"
|
||||
"title": "30연대 26년도 예산"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -59,7 +49,7 @@
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "File:대검",
|
||||
"query": "Section:임헌",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
@@ -110,7 +100,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a266ae39a6642653",
|
||||
"id": "a6dccc22ecaeacfc",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "file-explorer",
|
||||
@@ -123,7 +113,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "56597f278861a3d6",
|
||||
"id": "beab859baf93e69a",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "mk-path-view",
|
||||
@@ -191,7 +181,7 @@
|
||||
"state": {
|
||||
"type": "file-properties",
|
||||
"state": {
|
||||
"file": "대검 현황.md"
|
||||
"file": "30연대 26년도 예산.md"
|
||||
},
|
||||
"icon": "lucide-info",
|
||||
"title": "파일 속성"
|
||||
@@ -215,35 +205,34 @@
|
||||
"notion-bases:Notion bases": false
|
||||
}
|
||||
},
|
||||
"active": "7793305178417da9",
|
||||
"active": "5777e4c663df3488",
|
||||
"lastOpenFiles": [
|
||||
"물자현황/대검.md",
|
||||
"대검 현황.md",
|
||||
"2026년 월력형 메모형 일정(2월).canvas",
|
||||
"병영생활관 에어컨 교체소요.md",
|
||||
"하계재난대비계획.md",
|
||||
"방독면살균소독장비.md",
|
||||
"은닉초과재산탄약회수활동.md",
|
||||
"inbox/개인장구류 불출 문제발생.md",
|
||||
"inbox/소방.md",
|
||||
"매연측정.md",
|
||||
"지휘관 교체 재물조사.md",
|
||||
"성인지교육.md",
|
||||
"inbox/사이버 보안 진단의 날 시행-1.md",
|
||||
"inbox/보급품 수령 , 분배, 반납.md",
|
||||
"월하약품불출.md",
|
||||
"대형정수기 필터교체 업체방문.md",
|
||||
"월하준비.md",
|
||||
"시설물 정기 자체관리 대상시설 안전점검.md",
|
||||
"대한민국 안전대전환 집중 안전점검.md",
|
||||
"물자유지비 추가배정건의.md",
|
||||
"30연대 26년도 예산.md",
|
||||
"안전활동유공.md",
|
||||
"장비.md",
|
||||
"2026년 월력형 메모형 일정(2월).canvas",
|
||||
"inbox/보급품 수령 , 분배, 반납.md",
|
||||
"inbox/위임보수.md",
|
||||
"총기관리.md",
|
||||
"27~33장비불용결정계획.md",
|
||||
"27저장화생방장비물자신뢰성평가대상품목보유현황.md",
|
||||
"소방시설.md",
|
||||
"혹서기일과.md",
|
||||
"inbox/당직근무간 특이사항.md",
|
||||
"26년 30연대 전술훈련평가 수검자료 정리.md",
|
||||
"전술훈련평가.md",
|
||||
"위생점검.md",
|
||||
"일일결산.md",
|
||||
"k2총기 편제 초과 조정 의견보고.md",
|
||||
"하게 재난대비계획 기간.md",
|
||||
"재해재난대비계획.md",
|
||||
"재난안전통신망.md",
|
||||
"재난관계관.md",
|
||||
"하계재난대비계획.md",
|
||||
"당직근무.md",
|
||||
"대한민국 안전대전환 집중 안전점검.md",
|
||||
"장비탄약 관리실태 현장확인 및 지도.md",
|
||||
"inbox/25년 전투장비지휘검열-1.md",
|
||||
"inbox/25년 전투장비지휘검열.md",
|
||||
"장비정비.md",
|
||||
"방독면살균소독장비.md",
|
||||
"차량 2부제.md",
|
||||
"월단위업무.md",
|
||||
"files/24_result.pdf",
|
||||
"2025년 월력형 메모형 일정.canvas",
|
||||
"1778129959563.jpg",
|
||||
|
||||
Binary file not shown.
+7330
-6539
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,2 @@
|
||||
# 불용대상목록 작성(기능과) 및 작성양식 야전전파 :5월한
|
||||
# 자원관리부대 > 군지사군지여단 통보 :6월한
|
||||
@@ -0,0 +1,3 @@
|
||||
# 보유현황 조사
|
||||
# 로트추가,사진첨부
|
||||
# 소량로트 지정항목
|
||||
+18
-4
@@ -4,7 +4,7 @@
|
||||
2. 2500-2536-301-013-210-01-0103. 생활쓰레기
|
||||
2. 1차 집행, 집행전금액 9758970, 집행액 4869900, 집행후금액 4889070
|
||||
3. 2차 집행, 집행전 금액 4889070 집해액 1623300 집행후금액 3265770
|
||||
4.
|
||||
4. 3차 집행, 집행전금액 3265770 집행액 1623300 집행후금액
|
||||
|
||||
# 위생시설종사자건강진단비
|
||||
1. 2200-2231-301-005-001-000-210-01-000
|
||||
@@ -46,8 +46,21 @@
|
||||
19. 13차 집행, 3교육대, 12중대 에어컨, 집행전금액 13080200 집행액 4774000 집행후금액 8306200
|
||||
20. 근거입력방법: 정비관리>군직정비수행관리>부대야전정비관리(지상)-육군>물자의무장비정비의뢰등록(육군)
|
||||
21. 14차 집행, 1교육대, 집행전금액 8306200 집행액 517000 집행후금액 7789200
|
||||
22. 15차 집행, 대형정수기, 집행전금액 7789200 집행액 900000 집행후금액 6889200
|
||||
23.
|
||||
22. 15차 집행, 교육대전체 대형정수기, 집행전금액 7789200 집행액 900000 집행후금액 6889200
|
||||
23. 16차 집행, 2교육대 제빙기, 집행전금액 6889200 집행액 112000 집행후금액 6777200
|
||||
24. 17차 집행, 취사장 에어커튼, 집행전금액 6777200 집행액 187000 집행후금액 6590200
|
||||
25. 18차 집행, 1교 3중대 에어컨, 집행전금액 6590200 집행액 880000 집행후금액 5710200
|
||||
26. 19차 집행, 11중대 쇼냉장고, 집행전금액 5710200 집행액 110000 집행후금액 5600200
|
||||
27. 20차 집행, 10중대 에어컨정비, 집행전금액 5600200 집행액 585000 집행후금액 5015200
|
||||
28. 21차 집행, 3교(11중대) 에어컨정비, 집행전금액 5015200 집행액 1045000 집행후금액 3970200
|
||||
29. 추가건의,
|
||||
1. 대헝정수기 170만
|
||||
2. 에어컨 정비 4774000,1045000,120만
|
||||
3. 에어컨 청소비 벽걸이 총239,스탠드15
|
||||
1. 벼걸이 239 * 8만 = 19120000
|
||||
2. 스탠드 15* 16만 = 2400000
|
||||
4. 건조기 청소 100×13만 = 13000000
|
||||
5.
|
||||
|
||||
# 보온대
|
||||
1. 2300-2332-302-003-000-000-210-11
|
||||
@@ -105,8 +118,9 @@
|
||||
17. 24차 집행, 지원과(별관식당 가스계량기교체), 집행전금액 14354050 집행액 699600 집행후금액 13654450
|
||||
18. 25차 집행, 지원과(2층리모델링), 집행전금액 13654450 집행액 910500 집행후금액 12743950
|
||||
19. 26차 집행, 지원과(2층리모델링), 집행전금액 12743950 집해액 150000 직행후금액 12593950
|
||||
20.
|
||||
20. 27차 집행, 7중대(강화도어), 집행전금액 12593950 집행액 200000 집행후금액 12393950
|
||||
21.
|
||||
22.
|
||||
|
||||
# 재난 및 안전관리 예산(301-002-210-09,11)
|
||||
1. 재난예방 및 보수비(2300-2337-301-002-000-000-210-11)
|
||||
|
||||
@@ -44,4 +44,25 @@
|
||||
- 화장실용 나프탈렌 없음
|
||||
- 피복 나프탈롄 16,16,16
|
||||
- 본부는 남는거
|
||||
-
|
||||
|
||||
# 26.5.26(화) 대형산풍기 3대수령,37x031236
|
||||
- 민간위탁 식당에 3대 인계(본부중대에 재산전환예정)
|
||||
|
||||
# 26.5.27(수) A4종이 375173441,90박스
|
||||
1. 교육대 25박스씩 75박스, 15박스 본부
|
||||
|
||||
# 26.5.28(목) 표백제,37x192488, 114통(pl)2리터짜리
|
||||
1. 분배 교육대 35개씩, 9개 본부
|
||||
|
||||
# 26.5.28(목) 화생방물자 수령.이승민주무관님, 정비대, 1330
|
||||
1. 11749919, 마크1,22개
|
||||
2. 011188172,보호덧신(소),24개
|
||||
3. 010215978,보호덧신(대),18개
|
||||
- 근거:소군수과-2612(26.5.26)치장화생방물자(mark,보호덧신) 불출지시
|
||||
- 치장창고 보관중
|
||||
|
||||
# 26.5.26(화) 1500, 모기향 160개수령
|
||||
|
||||
# 26.6.4(목)1500, 야전배낭노후교체 보급,75세트
|
||||
|
||||
# 26.6.2 1500 9번창고 예초기 6대수령
|
||||
+4
-1
@@ -5,4 +5,7 @@
|
||||
# 5월, 중대재해대응훈련(취약시설 현장점검(교통/수송연계, 부딪힘(충격사고)))
|
||||
1. 반기단위 민간업체 의견수렴 (안전보건 의견수렴 후 개선조치)
|
||||
2. 3교, 5.11실시
|
||||
3. 2교, 5.6실시
|
||||
3. 2교, 5.6실시
|
||||
|
||||
# 전반기 육직부대 안전진단시 안전보건확보의무이행 분야 중 공무직 근로자 및 병영, 민영식당 종사자 간담회 결과 꼭 반영 해주세요
|
||||
- 부대별 보고 기한 : 6. 11일 한
|
||||
+3
-2
@@ -68,8 +68,9 @@
|
||||
|
||||
# 26.3분기 소요
|
||||
1. 3교 기계실 스팀 메인 증기관 감압변 교체,서원석,3분기위임보수반영필요
|
||||
2. 식당 벗겨짐 공사, 세척장 바닥 코팅
|
||||
3. 2분기 부결
|
||||
2. 1교 목욕탕 압력탱크 마개 누수 보수
|
||||
3. 식당 벗겨짐 공사, 세척장 바닥 코팅
|
||||
4. 2분기 부결
|
||||
1. 교육대 중앙 노후창호
|
||||
2. 노후계단 미크럼방지등
|
||||
3. 중대행정반 화장실보수
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
* 훈련병 교육대별 916명기준
|
||||
# 장비
|
||||
1. 현역 377, 교육 2,781
|
||||
2. 26.5.26 총기재산 용도 변경 교육용>현역용 1정
|
||||
3. 현역 378, 교육 2780
|
||||
4.
|
||||
# 예비
|
||||
1. 현역 5
|
||||
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
휴일 당직 수고들 많습니다.
|
||||
유동병력, 부대활동 특이사항, 순찰 등 보고해주세요.
|
||||
* 시간, 인원수 등 포함해서 보고 바랍니다~
|
||||
---
|
||||
당직사령 8중대장입니다.
|
||||
|
||||
이방 초대된 사람은 오늘 연대를 책임질 사람들이고, 내일 교대까지 현재방에서 지시 하달될 예정이니 참고
|
||||
|
||||
-오늘 연대 회의 : 19:00
|
||||
⭐️ 핸드토키 지참, 번개조 및 타격대 편성표 지참 ⭐️
|
||||
-주요확인 회의파악 사항
|
||||
|
||||
1. 유동병력 (오늘~내일)
|
||||
- 휴가, 외출, 외박 및 기타 퇴원 후 복귀자 등
|
||||
- 입실자, 병역심사대 입소현황
|
||||
2. 기타사항
|
||||
- 상호 협조 및 보고사항
|
||||
- 동문경계 외진 등
|
||||
|
||||
오늘 근무자 아닌사람은 퇴장해주시고
|
||||
변경인원 초대 후 이글을 다시 올려주시고 퇴장해주십시요
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
2020부 ~ 2028 교육사령부 소 사령
|
||||
이상훈 중령님한테 전화왔었습니다.
|
||||
|
||||
1. 금일 당직사관 확인
|
||||
- 30연대 1교육대 당직사관 중사 김주희
|
||||
|
||||
2. 총기 총 몇정인지?, 어떻게 관리하고 있는지
|
||||
- 1교육대 총 1056정, 현재 무기고에 있으며 키는 상황실 통제성 함에 있고 이원화하여 관리중
|
||||
|
||||
3. 26년 전반기 생명존중활동 및 생명보호강조기간 인지상태 확인
|
||||
|
||||
4. 식중독 관련 식당 근무자에 의해 확인 하는지?
|
||||
- 교육기에는 훈지관, 준비기에는 당직사관이 올라가서 같이 확인중
|
||||
|
||||
5. 휴가 출발자, 복귀자 몇명인지 체크리스트 관련하여 하고있는지?
|
||||
- 1교육대 휴가 출발자 1명, 복귀자 없으며, 체크리스트 활용하여 출타자교육 2040 진행 예정
|
||||
|
||||
6. 야간 환자나오면 어떻게하는지? 인근 병원이 어디있는지?
|
||||
- 지구병원 응급실 문의 후 이용
|
||||
|
||||
7. 도움배려현황 있는지?
|
||||
- 1교육대 1명 있으며, 현재 본부중대 파견중 , 훈련병은 오늘 입소하여 신상파악 중으로 파악되면 다시 연락드린다 하였으나, 괜찮다고 하셨습니다
|
||||
|
||||
이상없이 답변하였습니다
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
|
||||
충성! 1교육대 당직근무 투입보고 입니다.
|
||||
|
||||
1.금일근무자
|
||||
- 당직사관 : 상사 이태일
|
||||
- 인원현황(기간병/훈련병)
|
||||
- 총원 77명 열외27명 현재원 50명
|
||||
- 열외내용 휴가6명 교육파견2명 본부중대
|
||||
파견1명 외박18명
|
||||
- 총원 865명 현재원 865명
|
||||
|
||||
2.출타자
|
||||
- 오늘 휴가복귀자 : 없음
|
||||
- 오늘 외박복귀자 : 18명
|
||||
- 내일 휴가출발자 : 1명
|
||||
- 내일 휴가복귀자 : 1명
|
||||
|
||||
3.도움배려현황 : 19명(소대장급)
|
||||
*향정신성 의약품 복용등 신경쓰겠습니다.
|
||||
|
||||
4.오늘 예정사항
|
||||
- 개인정비 여건보장
|
||||
- 주,야간 종교활동 실시예정
|
||||
*종파별 임시전우조 편성, 인솔분대장에 의한
|
||||
인원,환자 파악 철저
|
||||
- 휴대폰 사용 실시예정
|
||||
- 개인화기 CBT 시청 및 사전학습 실시
|
||||
- 석식 전,후 테니스공 투척예정
|
||||
*통제 : 훈육지도관 및 생활지도분대장
|
||||
- 내일 혹서기 일과 실시예정
|
||||
|
||||
이상입니다. 충성!
|
||||
|
||||
---
|
||||
충성
|
||||
본부중대 당직근무자 군수지원부사관
|
||||
최병규상사입니다
|
||||
|
||||
1.인원,장비현황
|
||||
- 총원 16
|
||||
- 열외 3(휴가1,외박1,외출1)
|
||||
- 복귀 2(외박1,외출1)
|
||||
- 종교행사자 2명(천주교)
|
||||
- 총기 15정 이상무
|
||||
2.순회진료 1010-1110
|
||||
3.부대활동 개인정비,체육활동
|
||||
4.도움배려용사 없음
|
||||
이상입니다
|
||||
+3
-1
@@ -3,4 +3,6 @@
|
||||
- 박성현하사가 주임원사님에게는 보고하고, 연대장님께서 현재 미보고상태
|
||||
- 행정보급관 톡방에서 관련 의견을 물어보고 계속 사용할지 판단
|
||||
- 주임원사님은 폐기하라고 했다고함.
|
||||
- 안녕하세요. 그린테크 냉온수기회사입니다. 육군훈련소30연대 5/19(화) 필터교체 방문 안내드립니다.방문자: 1명 /서흥석 /890210 /010.4414.7029 /렉스턴스포츠칸, 89노5703다음주 화요일 방문 드리겠습니다.감사합니다.353-21 그린테크주식회사
|
||||
- 안녕하세요. 그린테크 냉온수기회사입니다. 육군훈련소30연대 5/19(화) 필터교체 방문 안내드립니다.방문자: 1명 /서흥석 /890210 /010.4414.7029 /렉스턴스포츠칸, 89노5703다음주 화요일 방문 드리겠습니다.감사합니다.353-21 그린테크주식회사
|
||||
|
||||
# 연대장님에게 보고, 필터교체시 정수기 배관교체 필요
|
||||
@@ -0,0 +1,41 @@
|
||||
2교육대. 정정
|
||||
ㅇ벽걸이 83
|
||||
ㅇ스탠드 8
|
||||
|
||||
---
|
||||
|
||||
3교육대
|
||||
|
||||
벽걸이 에어컨 (83개)
|
||||
1중대 16개
|
||||
2중대 16개
|
||||
3중대 16개
|
||||
4중대 16개
|
||||
3층 기간병 생활관 10개
|
||||
상황실 1개, 휴게실 1개,
|
||||
행보관실 3개
|
||||
중대장실 4개
|
||||
|
||||
스탠드 에어컨 (행정반 5개)
|
||||
3층 교육대장님실 1개
|
||||
|
||||
|
||||
---
|
||||
1교육대
|
||||
|
||||
벽걸이 에어컨 (73개)
|
||||
1중대 16개
|
||||
2중대 16개
|
||||
3중대 16개
|
||||
4중대 16개
|
||||
3층 기간병 생활관 9개
|
||||
|
||||
스탠드 에어컨 (2개)
|
||||
3층 교육대장님실 1개
|
||||
2층 상황실 1개
|
||||
|
||||
---
|
||||
에어컨 청소
|
||||
건조기 청소
|
||||
세탁기청소
|
||||
대형정수기 유지비
|
||||
@@ -9,4 +9,7 @@
|
||||
![[Resized_20251127_141053.jpeg]]
|
||||
![[Resized_20251127_141040.jpeg]]
|
||||
|
||||
# 26년 점검,6.2(화)
|
||||
# 26년 점검,6.2(화)
|
||||
1. 01040302369,김혜웅소방관리사(업체)
|
||||
2. 09시 점검예정
|
||||
3.
|
||||
@@ -18,4 +18,6 @@
|
||||
살균소독제 40
|
||||
연막 방역용살충제 1
|
||||
화장실 나프탈렌 25
|
||||
피복용 나프탈렌 53
|
||||
피복용 나프탈렌 53
|
||||
|
||||
# 26.5.26(화) 박성현하사 월하약품 추가 수령
|
||||
@@ -9,3 +9,10 @@
|
||||
|
||||
# 26.4. 한서욱 주무관, K-3기관총 관리전환예정,연대급부대
|
||||
|
||||
# 부사관학교, 지원과 백민지 상사(958-1161, 01050807779), 오세열 주무관 01088229555,
|
||||
1. 009304260, 나침반m2, 11개
|
||||
2. 담당주무관님 01063216612
|
||||
3. 내비주소:옥금동길 6 (거리상15분소요)
|
||||
4. 1교육단 본부(위병소 직진500미터 푯말 우회전 작은하연건물)
|
||||
5.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
# 예방정비,장비가동율,화생방장비물자관리,장비보유울
|
||||
@@ -1,4 +1,5 @@
|
||||
# 최용과장, 담당관님~
|
||||
점심 맛있게 드셨나요??
|
||||
4일에 전입 오신 의무과장님 차량
|
||||
121어 8037도 2부제 제외차량 신청가능 할까요??
|
||||
121어 8037도 2부제 제외차량 신청가능 할까요??
|
||||
|
||||
@@ -18,5 +18,7 @@
|
||||
# 재난관계관 소집교육 : 5.29(금) 13:00 김낙중영웅실
|
||||
# 하계 재난대비 추진평가회의 : 6.25(목) 주간 상황평가회의시
|
||||
### 부대별 하계 재난대비결과 추진결과 보고
|
||||
### 메모전파, 일자,대상자(행보관,당직근무자), 보고양식,설치 참고자료 전파, 일주전전파
|
||||
### 훈련실시, 시간(?),장소(3개소), 준비물,차수벽설치,배수로점검청소
|
||||
|
||||
# 부대별 하계 재난 대웅흔련 : 6월한 실시후 결과보고(공문)
|
||||
Reference in new issue
Block a user