{% set id = (id ?? "time#{random()}") ~ '-time' -%}
{% set name = name ?? null -%}
{% set value = value ?? null -%}
{% do view.registerAssetBundle('craft\\web\\assets\\timepicker\\TimepickerAsset') -%}
{%- include "_includes/forms/text" with {
name: name ? "#{name}[time]" : null,
autocomplete: false,
size: 10,
placeholder: ' ',
value: (value ? value|time('short') : '')
} -%}
{% if name -%}
{{ hiddenInput("#{name}[timezone]", craft.app.getTimeZone()) }}
{%- endif -%}
{% set options = {
minTime: minTime ?? null,
maxTime: maxTime ?? null,
disableTimeRanges: disableTimeRanges ?? null,
step: minuteIncrement ?? null,
forceRoundTime: forceRoundTime ?? false,
}|filter %}
{# include JSON_FORCE_OBJECT in the json_encode options #}
{% set jsonOptions = constant('JSON_HEX_TAG') b-or constant('JSON_HEX_AMP') b-or constant('JSON_HEX_QUOT') b-or constant('JSON_FORCE_OBJECT') %}
{%- js %}
var $timePicker = $('#{{ id|namespaceInputId|e('js') }}');
$timePicker.timepicker($.extend({{ options|json_encode(jsonOptions)|raw }}, Craft.timepickerOptions));
{% if value and value.format is defined %}
$timePicker.timepicker('setTime', {{ value.format('G') }}*3600 + {{ value.format('i') }}*60 + {{ value.format('s') }});
{% endif %}
{%- endjs %}