obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
68 lines (64 loc) • 5.94 kB
JavaScript
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
(function initEsm() {
if (globalThis.process) {
return;
}
const browserProcess = {
browser: true,
cwd() {
return '/';
},
env: {},
platform: 'android'
};
globalThis.process = browserProcess;
})();
import { moment as moment_ } from "obsidian";
import { CssClass } from "../../../CssClass.mjs";
import { extractDefaultExportInterop } from "../../../ObjectUtils.mjs";
import { TypedRangeTextComponent } from "./TypedRangeTextComponent.mjs";
const moment = extractDefaultExportInterop(moment_);
const DATE_FORMAT = "YYYY-MM";
class MonthComponent extends TypedRangeTextComponent {
/**
* Creates a new month component.
*
* @param containerEl - The container element of the component.
*/
constructor(containerEl) {
super(containerEl, "month", CssClass.MonthComponent);
}
/**
* Converts a string to a month.
*
* @param str - The string to convert.
* @returns The month.
*/
valueFromString(str) {
const parsed = moment(str, DATE_FORMAT);
if (!parsed.isValid()) {
throw new Error("Invalid month");
}
return {
month: parsed.month() + 1,
year: parsed.year()
};
}
/**
* Converts a month to a string.
*
* @param value - The month to convert.
* @returns The string.
*/
valueToString(value) {
const date = moment().year(value.year).month(value.month - 1);
return date.format(DATE_FORMAT);
}
}
export {
MonthComponent
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvTW9udGhDb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgYSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhbmQgZWRpdHMgYSBtb250aC5cbiAqL1xuXG5pbXBvcnQgeyBtb21lbnQgYXMgbW9tZW50XyB9IGZyb20gJ29ic2lkaWFuJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgaW5pdFBsdWdpbkNvbnRleHRgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBpbml0UGx1Z2luQ29udGV4dCB9IGZyb20gJy4uLy4uL1BsdWdpbi9QbHVnaW5Db250ZXh0LnRzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gV2UgbmVlZCB0byBpbXBvcnQgYFNldHRpbmdFeGAgdG8gdXNlIGl0IGluIHRoZSB0c2RvY3MuXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uLy4uL1NldHRpbmdFeC50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vLi4vQ3NzQ2xhc3MudHMnO1xuaW1wb3J0IHsgZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wIH0gZnJvbSAnLi4vLi4vLi4vT2JqZWN0VXRpbHMudHMnO1xuaW1wb3J0IHsgVHlwZWRSYW5nZVRleHRDb21wb25lbnQgfSBmcm9tICcuL1R5cGVkUmFuZ2VUZXh0Q29tcG9uZW50LnRzJztcblxuY29uc3QgbW9tZW50ID0gZXh0cmFjdERlZmF1bHRFeHBvcnRJbnRlcm9wKG1vbWVudF8pO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NJztcblxuLyoqXG4gKiBBbiBJU08gODYwMSBtb250aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJc29Nb250aCB7XG4gIC8qKlxuICAgKiBBIG1vbnRoICgxLTEyKS5cbiAgICovXG4gIG1vbnRoOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgeWVhciAoMS05OTk5KS5cbiAgICovXG4gIHllYXI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIG1vbnRoLlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkTW9udGh9LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vbnRoQ29tcG9uZW50IGV4dGVuZHMgVHlwZWRSYW5nZVRleHRDb21wb25lbnQ8SXNvTW9udGg+IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9udGggY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcihjb250YWluZXJFbCwgJ21vbnRoJywgQ3NzQ2xhc3MuTW9udGhDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGEgbW9udGguXG4gICAqXG4gICAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIFRoZSBtb250aC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZUZyb21TdHJpbmcoc3RyOiBzdHJpbmcpOiBJc29Nb250aCB7XG4gICAgY29uc3QgcGFyc2VkID0gbW9tZW50KHN0ciwgREFURV9GT1JNQVQpO1xuXG4gICAgaWYgKCFwYXJzZWQuaXNWYWxpZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9udGgnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9udGg6IHBhcnNlZC5tb250aCgpICsgMSxcbiAgICAgIHllYXI6IHBhcnNlZC55ZWFyKClcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgbW9udGggdG8gYSBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBtb250aCB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlVG9TdHJpbmcodmFsdWU6IElzb01vbnRoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlID0gbW9tZW50KCkueWVhcih2YWx1ZS55ZWFyKS5tb250aCh2YWx1ZS5tb250aCAtIDEpO1xuICAgIHJldHVybiBkYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsVUFBVSxlQUFlO0FBT2xDLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsbUNBQW1DO0FBQzVDLFNBQVMsK0JBQStCO0FBRXhDLE1BQU0sU0FBUyw0QkFBNEIsT0FBTztBQUVsRCxNQUFNLGNBQWM7QUEwQmIsTUFBTSx1QkFBdUIsd0JBQWtDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTTdELFlBQVksYUFBMEI7QUFDM0MsVUFBTSxhQUFhLFNBQVMsU0FBUyxjQUFjO0FBQUEsRUFDckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixnQkFBZ0IsS0FBdUI7QUFDckQsVUFBTSxTQUFTLE9BQU8sS0FBSyxXQUFXO0FBRXRDLFFBQUksQ0FBQyxPQUFPLFFBQVEsR0FBRztBQUNyQixZQUFNLElBQUksTUFBTSxlQUFlO0FBQUEsSUFDakM7QUFFQSxXQUFPO0FBQUEsTUFDTCxPQUFPLE9BQU8sTUFBTSxJQUFJO0FBQUEsTUFDeEIsTUFBTSxPQUFPLEtBQUs7QUFBQSxJQUNwQjtBQUFBLEVBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixjQUFjLE9BQXlCO0FBQ3JELFVBQU0sT0FBTyxPQUFPLEVBQUUsS0FBSyxNQUFNLElBQUksRUFBRSxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVELFdBQU8sS0FBSyxPQUFPLFdBQVc7QUFBQSxFQUNoQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=