{"version":3,"sources":["js\\ewdatetimepicker.js"],"names":["tempusDominus","Namespace","css","toggleMeridiem","ew","dateTimePickerOptions","keepInvalid","localization","dayViewHeaderFormat","month","year","createDateTimePicker","formid","id","options","includes","$","jQuery","el","getElement","sv","$input","namespace","NAME","dataKey","data","parent","deepAssign","inputGroup","isBoolean","args","form","enabled","document","trigger","$textbox","isInvalid","hasClass","attr","$btn","on","removeClass","addClass","wrap","after","tooltip","e","date","val","td","addEventListener","updateOptions","display","theme","detail"],"mappings":";;;;AAKAA,cAAcC,UAAUC,IAAIC,eAAiB,iCAG7CC,GAAGC,sBAAwB,CACvBC,aAAa,EACbC,aAAc,CACVC,oBAAqB,CAAEC,MAAO,OAAQC,KAAM,aAKpDN,GAAGO,qBAAuB,SAASC,EAAQC,EAAIC,GAC3C,GAAID,EAAGE,SAAS,cACZ,OACJ,IAAIC,EAAIC,OACJC,EAAKd,GAAGe,WAAWN,EAAID,GACvBQ,EAAKhB,GAAGe,WAAW,MAAQN,EAAID,GAC/BS,EAASL,EAAEI,GAAMF,GACjBI,EAAYtB,cAAcC,UAAUsB,KACpCC,EAAUxB,cAAcC,UAAUuB,QACtC,IAAKN,GAAMG,EAAOI,KAAKD,IAAYH,EAAOK,SAASD,KAAKD,GACpD,OACJV,EAAUV,GAAGuB,WAAW,GAAIvB,GAAGC,sBAAuBS,GACtD,IAAIc,GAAaZ,EAAEa,UAAUf,EAAQc,aAAcd,EAAQc,kBACpDd,EAAkB,WAEzB,IAAIgB,EAAO,CAACjB,GAAMA,EAAIkB,KAAQnB,EAAQoB,SAAW,EAAMJ,WAAcA,EAAYd,QAAWA,GAE5F,GADAE,EAAEiB,UAAUC,QAAQ,iBAAkB,CAACJ,KAClCA,EAAKE,QACN,OACJ,IAAwB,IAApBF,EAAKF,WAAsB,CAK3B,IAAIO,EAAWd,EACXe,EAAYf,EAAOgB,SAAS,cAC5BxB,EAAK,kBAAoBD,EAAS,IAAMS,EAAOiB,KAAK,MACpDC,KAAOvB,EAAE,iGACJwB,GAAG,SAAWhB,GAAS,WACpBW,EAASM,YAAY,iBAEjCpB,EAAOqB,SAASpB,EAAY,UAAUgB,KAAK,cAAe,IAAMzB,GAC3D8B,KAAK,0BAA0BP,EAAY,cAAgB,WAAWvB,yEACtE+B,MAAML,KAAKD,KAAK,cAAe,IAAMzB,GAAIyB,KAAK,iBAAkB,mBAChEE,GAAG,SAAWhB,GAAS,WACpBW,EAASU,QAAQ,QAAQA,QAAQ,cAClCL,GAAG,QAAUhB,GAAS,WACrBW,EAASU,QAAQ,aAEzBxB,EAASA,EAAOK,SAASc,GAAG,UAAYhB,GAAS,SAASsB,GAClDA,EAAEC,MACFZ,EAASD,QAAQ,kBAIzBb,EAAOqB,SAASlB,EAAU,UAAUc,KAAK,iBAAkB,kBAAkBA,KAAK,cAAe,IAAMjB,EAAOiB,KAAK,OAC9GE,GAAG,UAAYhB,GAAS,SAASsB,GAC1BA,EAAEC,MAAQ1B,EAAO,KAAOH,GACxBF,EAAEE,GAAI8B,IAAI3B,EAAO2B,OAAOd,QAAQ,aACrCM,GAAG,SAAWhB,GAAS,WACtBH,EAAOwB,QAAQ,QAAQA,QAAQ,cAChCL,GAAG,QAAUhB,GAAS,WACrBH,EAAOwB,QAAQ,aAG3BxB,EAAOrB,cAAc8B,EAAKhB,SAC1B,MAAMmC,EAAK5B,EAAOI,KAAKD,GAEvB,OADAS,SAASiB,iBAAiB,eAAeJ,GAAKG,EAAGE,cAAc,CAAEC,QAAS,CAAEC,MAAOP,EAAEQ,YAC9EL","sourcesContent":["/**\r\n * Create Date/Time Picker (for PHPMaker 2024)\r\n * @license Copyright (c) e.World Technology Limited. All rights reserved.\r\n */\r\n\r\ntempusDominus.Namespace.css.toggleMeridiem = \"toggleMeridiem,btn,btn-primary\";\r\n\r\n// Global options\r\new.dateTimePickerOptions = {\r\n    keepInvalid: true,\r\n    localization: {\r\n        dayViewHeaderFormat: { month: \"long\", year: \"numeric\" }\r\n    }\r\n};\r\n\r\n// Create date/time picker\r\new.createDateTimePicker = function(formid, id, options) {\r\n    if (id.includes(\"$rowindex$\"))\r\n        return;\r\n    let $ = jQuery,\r\n        el = ew.getElement(id, formid),\r\n        sv = ew.getElement(\"sv_\" + id, formid), // AutoSuggest\r\n        $input = $(sv || el),\r\n        namespace = tempusDominus.Namespace.NAME,\r\n        dataKey = tempusDominus.Namespace.dataKey;\r\n    if (!el || $input.data(dataKey) || $input.parent().data(dataKey))\r\n        return;\r\n    options = ew.deepAssign({}, ew.dateTimePickerOptions, options);\r\n    let inputGroup = $.isBoolean(options.inputGroup) ? options.inputGroup : true;\r\n    delete(options.inputGroup);\r\n    // options.debug = options.debug || ew.DEBUG;\r\n    let args = {\"id\": id, \"form\": formid, \"enabled\": true, \"inputGroup\": inputGroup, \"options\": options};\r\n    $(document).trigger(\"datetimepicker\", [args]);\r\n    if (!args.enabled)\r\n        return;\r\n    if (args.inputGroup !== false) {\r\n        // <div class=\"input-group date\" id=\"{id}\" data-td-target-input=\"nearest\" data-td-target-toggle=\"nearest\">\r\n        // \t<input type=\"text\" class=\"form-control td-input\" data-target=\"#{id}\"/>\r\n        // \t<button class=\"btn btn-default\" type=\"button\" data-target=\"#{id}\" data-td-toggle=\"datetimepicker\"><i class=\"fa-regular fa-calendar\"></i></button>\r\n        // </div>\r\n        let $textbox = $input,\r\n            isInvalid = $input.hasClass(\"is-invalid\"),\r\n            id = \"datetimepicker_\" + formid + \"_\" + $input.attr(\"id\");\r\n            $btn = $('<button class=\"btn btn-default\" type=\"button\"><i class=\"fa-regular fa-calendar\"></i></button>')\r\n                .on(\"click.\" + dataKey, function() {\r\n                    $textbox.removeClass(\"is-invalid\");\r\n                });\r\n        $input.addClass(namespace + \"-input\").attr(\"data-target\", \"#\" + id)\r\n            .wrap(`<div class=\"input-group${isInvalid ? \" is-invalid\" : \"\"}\" id=\"${id}\" data-target-input=\"nearest\" data-td-target-toggle=\"nearest\"></div>`)\r\n            .after($btn.attr(\"data-target\", \"#\" + id).attr(`data-td-toggle`, \"datetimepicker\"))\r\n            .on(\"focus.\" + dataKey, function() {\r\n                $textbox.tooltip(\"hide\").tooltip(\"disable\");\r\n            }).on(\"blur.\" + dataKey, function() {\r\n                $textbox.tooltip(\"enable\");\r\n            });\r\n        $input = $input.parent().on(\"change.\" + dataKey, function(e) {\r\n            if (e.date)\r\n                $textbox.trigger(\"change\");\r\n        });\r\n    } else {\r\n        // <input type=\"text\" class=\"form-control td-input\" id=\"{id}\" data-td-toggle=\"datetimepicker\" data-target=\"#{id}\"/>\r\n        $input.addClass(dataKey + \"-input\").attr(`data-td-toggle`, \"datetimepicker\").attr(\"data-target\", \"#\" + $input.attr(\"id\"))\r\n            .on(\"change.\" + dataKey, function(e) {\r\n                if (e.date && $input[0] !== el)\r\n                    $(el).val($input.val()).trigger(\"change\");\r\n            }).on(\"focus.\" + dataKey, function() {\r\n                $input.tooltip(\"hide\").tooltip(\"disable\");\r\n            }).on(\"blur.\" + dataKey, function() {\r\n                $input.tooltip(\"enable\");\r\n            });\r\n    }\r\n    $input.tempusDominus(args.options);\r\n    const td = $input.data(dataKey);\r\n    document.addEventListener(\"changetheme\", e => td.updateOptions({ display: { theme: e.detail } }));\r\n    return td;\r\n}\r\n"]}