field-time-new
Version:
A Blockly date picker field that uses the browser's date picker.
3 lines • 2.98 kB
JavaScript
/*! For license information please see index.js.LICENSE.txt */
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("blockly/core"));else if("function"==typeof define&&define.amd)define(["blockly/core"],e);else{var r="object"==typeof exports?e(require("blockly/core")):e(t.Blockly);for(var o in r)("object"==typeof exports?exports:t)[o]=r[o]}}(this,(t=>(()=>{"use strict";var e={370:e=>{e.exports=t}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}o.d=(t,e)=>{for(var r in e)o.o(e,r)&&!o.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};o.r(n),o.d(n,{FieldTime:()=>l,isISOFormat:()=>u,toLocalISOString:()=>s});var i=o(370);class l extends i.FieldTextInput{constructor(t,e,r){super(t,e,r),this.SERIALIZABLE=!0,this.CURSOR="text"}static fromJson(t){const{date:e}=t;return new this(e,void 0,function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(t);n<o.length;n++)e.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(t,o[n])&&(r[o[n]]=t[o[n]])}return r}(t,["date"]))}doClassValidation_(t){if(!t)return null;const e="string"==typeof t?new Date(`1970-01-01T${t}`):null;return!e||isNaN(e.getTime())?null:u(t)?t:s(e)}getText_(){const t=this.getValue();return t?function(t){const e=function(t){const[e,r,o]=t.split(":").map(Number);return new Date(2024,7,9,e,r,o)}(t);return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(e)}(t):null}render_(){super.render_()}showEditor_(t){var e,r;super.showEditor_(t,!0),null===(e=this.htmlInput_)||void 0===e||e.focus({preventScroll:!0}),null===(r=this.htmlInput_)||void 0===r||r.select(),this.showDropdown()}updateSize_(t){super.updateSize_((null!=t?t:0)+20)}showDropdown(){this.htmlInput_&&(i.utils.dom.addClass(this.htmlInput_,"blocklyDateInput"),this.htmlInput_.showPicker())}widgetCreate_(){const t=super.widgetCreate_();return t.type="time",t}}function u(t){const e=t.match(/\d\d:\d\d:\d\d/);return null!==e&&e[0]===e.input}function s(t){return new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(t)}return i.utils.userAgent.MAC&&i.Css.register("\ninput.blocklyDateInput::-webkit-datetime-edit,\ninput.blocklyDateInput::-webkit-datetime-edit-hour-field,\ninput.blocklyDateInput::-webkit-datetime-edit-minute-field,\ninput.blocklyDateInput::-webkit-datetime-edit-second-field {\n padding: 0;\n}\n"),i.fieldRegistry.register("field_time",l),l.prototype.DEFAULT_VALUE=s(new Date),n})()));
//# sourceMappingURL=index.js.map