obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
52 lines (49 loc) • 5.3 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:__name(()=>"/","cwd"),env:{},platform:"android"};globalThis.process=browserProcess})();
import moment from "moment";
import { CssClass } from "../../../CssClass.mjs";
import { TypedRangeTextComponent } from "./TypedRangeTextComponent.mjs";
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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0NvbXBvbmVudHMvU2V0dGluZ0NvbXBvbmVudHMvTW9udGhDb21wb25lbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgYSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhbmQgZWRpdHMgYSBtb250aC5cbiAqL1xuXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmltcG9ydCB0eXBlIHsgaW5pdFBsdWdpbkNvbnRleHQgfSBmcm9tICcuLi8uLi9QbHVnaW4vUGx1Z2luQ29udGV4dC50cyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgdHlwZSB7IFNldHRpbmdFeCB9IGZyb20gJy4uLy4uL1NldHRpbmdFeC50cyc7XG5cbmltcG9ydCB7IENzc0NsYXNzIH0gZnJvbSAnLi4vLi4vLi4vQ3NzQ2xhc3MudHMnO1xuaW1wb3J0IHsgVHlwZWRSYW5nZVRleHRDb21wb25lbnQgfSBmcm9tICcuL1R5cGVkUmFuZ2VUZXh0Q29tcG9uZW50LnRzJztcblxuY29uc3QgREFURV9GT1JNQVQgPSAnWVlZWS1NTSc7XG5cbi8qKlxuICogQW4gSVNPIDg2MDEgbW9udGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXNvTW9udGgge1xuICAvKipcbiAgICogVGhlIG1vbnRoICgxLTEyKS5cbiAgICovXG4gIG1vbnRoOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgeWVhciAoMS05OTk5KS5cbiAgICovXG4gIHllYXI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGFuZCBlZGl0cyBhIG1vbnRoLlxuICpcbiAqIFlvdSBjYW4gYWRkIHRoaXMgY29tcG9uZW50IHVzaW5nIHtAbGluayBTZXR0aW5nRXguYWRkTW9udGh9LlxuICpcbiAqIEluIG9yZGVyIHRvIGFkZCB0aGUgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50LCB1c2Uge0BsaW5rIGluaXRQbHVnaW5Db250ZXh0fSBpbiB5b3VyIHBsdWdpbidzIGBvbmxvYWQoKWAgZnVuY3Rpb24uXG4gKlxuICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBjb3B5IHN0eWxlcyBmcm9tIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXV0aWxzL3JlbGVhc2VzL2xhdGVzdC9kb3dubG9hZC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vbnRoQ29tcG9uZW50IGV4dGVuZHMgVHlwZWRSYW5nZVRleHRDb21wb25lbnQ8SXNvTW9udGg+IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9udGggY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGFpbmVyRWwgLSBUaGUgY29udGFpbmVyIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcbiAgICBzdXBlcihjb250YWluZXJFbCwgJ21vbnRoJywgQ3NzQ2xhc3MuTW9udGhDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIGEgbW9udGguXG4gICAqXG4gICAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIFRoZSBtb250aC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZUZyb21TdHJpbmcoc3RyOiBzdHJpbmcpOiBJc29Nb250aCB7XG4gICAgY29uc3QgcGFyc2VkID0gbW9tZW50KHN0ciwgREFURV9GT1JNQVQpO1xuXG4gICAgaWYgKCFwYXJzZWQuaXNWYWxpZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9udGgnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbW9udGg6IHBhcnNlZC5tb250aCgpICsgMSxcbiAgICAgIHllYXI6IHBhcnNlZC55ZWFyKClcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgbW9udGggdG8gYSBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBtb250aCB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHZhbHVlVG9TdHJpbmcodmFsdWU6IElzb01vbnRoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlID0gbW9tZW50KCkueWVhcih2YWx1ZS55ZWFyKS5tb250aCh2YWx1ZS5tb250aCAtIDEpO1xuICAgIHJldHVybiBkYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFNQSxPQUFPLFlBQVk7QUFPbkIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUywrQkFBK0I7QUFFeEMsTUFBTSxjQUFjO0FBeUJiLE1BQU0sdUJBQXVCLHdCQUFrQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU03RCxZQUFZLGFBQTBCO0FBQzNDLFVBQU0sYUFBYSxTQUFTLFNBQVMsY0FBYztBQUFBLEVBQ3JEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsZ0JBQWdCLEtBQXVCO0FBQ3JELFVBQU0sU0FBUyxPQUFPLEtBQUssV0FBVztBQUV0QyxRQUFJLENBQUMsT0FBTyxRQUFRLEdBQUc7QUFDckIsWUFBTSxJQUFJLE1BQU0sZUFBZTtBQUFBLElBQ2pDO0FBRUEsV0FBTztBQUFBLE1BQ0wsT0FBTyxPQUFPLE1BQU0sSUFBSTtBQUFBLE1BQ3hCLE1BQU0sT0FBTyxLQUFLO0FBQUEsSUFDcEI7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsY0FBYyxPQUF5QjtBQUNyRCxVQUFNLE9BQU8sT0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLEVBQUUsTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1RCxXQUFPLEtBQUssT0FBTyxXQUFXO0FBQUEsRUFDaEM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K