field-datetime-new
Version:
A Blockly date picker field that uses the browser's date picker.
3 lines • 3.34 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 i="object"==typeof exports?e(require("blockly/core")):e(t.Blockly);for(var o in i)("object"==typeof exports?exports:t)[o]=i[o]}}(this,(t=>(()=>{"use strict";var e={370:e=>{e.exports=t}},i={};function o(t){var r=i[t];if(void 0!==r)return r.exports;var n=i[t]={exports:{}};return e[t](n,n.exports,o),n.exports}o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},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 r={};o.r(r),o.d(r,{FieldDateTime:()=>d,isISOFormat:()=>l,toLocalISOString:()=>a});var n=o(370);class d extends n.FieldTextInput{constructor(t,e,i){super(t,e,i),this.SERIALIZABLE=!0,this.CURSOR="text"}static fromJson(t){const{date:e}=t;return new this(e,void 0,function(t,e){var i={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(i[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(t);r<o.length;r++)e.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(t,o[r])&&(i[o[r]]=t[o[r]])}return i}(t,["date"]))}doClassValidation_(t){if(!t)return null;const e="string"==typeof t?new Date(t):null;return!e||isNaN(e.getTime())?null:l(t,!0)?t:a(e,!0)}getText_(){const t=this.getValue();return t?function(t){var e;const i=new Date(t),o=null!==(e=navigator.language)&&void 0!==e?e:"en-US";return isNaN(i.getTime())?new Intl.DateTimeFormat(o,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0}).format(new Date):new Intl.DateTimeFormat(o,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0}).format(i)}(t):null}render_(){super.render_()}showEditor_(t){var e,i;super.showEditor_(t,!0),null===(e=this.htmlInput_)||void 0===e||e.focus({preventScroll:!0}),null===(i=this.htmlInput_)||void 0===i||i.select(),this.showDropdown()}updateSize_(t){super.updateSize_((null!=t?t:0)+20)}showDropdown(){this.htmlInput_&&(n.utils.dom.addClass(this.htmlInput_,"blocklyDateInput"),this.htmlInput_.showPicker())}widgetCreate_(){const t=super.widgetCreate_();return t.type="datetime-local",t}}function l(t,e=!1){const i=e?/\d\d\d\d-\d\d-\d\dT\d\d:\d\d/:/\d\d\d\d-\d\d-\d\d/,o=t.match(i);return null!==o&&o[0]===o.input}function a(t,e=!1){const i=t.toLocaleDateString(void 0).replace(/(\d+)\/(\d+)\/(\d+)/,"$3-$1-$2").replace(/-(\d)(?!\d)/g,"-0$1");return e?`${i}T${t.toLocaleTimeString(void 0,{hour12:!0,hour:"2-digit",minute:"2-digit",second:"2-digit"})}`:i}return n.utils.userAgent.MAC&&n.Css.register("\ninput.blocklyDateInput::-webkit-datetime-edit,\ninput.blocklyDateInput::-webkit-datetime-edit-month-field,\ninput.blocklyDateInput::-webkit-datetime-edit-day-field,\ninput.blocklyDateInput::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n"),n.fieldRegistry.register("field_datetime",d),d.prototype.DEFAULT_VALUE=a(new Date,!0),r})()));
//# sourceMappingURL=index.js.map