@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines • 22.1 kB
JavaScript
/* @license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.list.min.js`),require(`kendo.textbox.min.js`),require(`kendo.speechtotextbutton.min.js`),require(`kendo.segmentedcontrol.min.js`),require(`kendo.core.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.list.min`,`kendo.textbox.min`,`kendo.speechtotextbutton.min`,`kendo.segmentedcontrol.min`,`kendo.core.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Smartbox={}),e.kendo._globals.List,e.kendo._globals.Textbox,e.kendo._globals.Speechtotextbutton,e.kendo._globals.Segmentedcontrol,e.kendo._globals.Core))})(this,function(e,t,n,r,i,a){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let o=kendo.jQuery;function s({widget:e,wrapper:t,options:n,prefixInsertBefore:r,suffixInsertAfter:i}){var a=n.prefixOptions,s=n.suffixOptions,c=a.template||a.icon,l=s.template||s.icon,i=i||r,u=n.layoutFlow,d=u?u==`vertical`?`horizontal`:`vertical`:`horizontal`,f=`<span class="k-input-separator k-input-separator-${u==`vertical`?`horizontal`:`vertical`}"></span>`,p,m;a&&c&&(p=t.children(`.k-input-prefix`),p[0]||(n._isInInlineAIPrompt&&(d=u||`horizontal`),p=o(`<span class="k-input-prefix k-input-prefix-${d}" />`),r?p.insertBefore(r):p.prependTo(t)),a.icon&&p.html(kendo.html.renderIcon({icon:a.icon,iconClass:a.iconClass})),a.template&&p.html(kendo.template(a.template)({})),a.separator&&o(f).insertAfter(p)),s&&l&&(m=t.children(`.k-input-suffix`),m[0]||(m=o(`<span class="k-input-suffix k-input-suffix-${d}" />`).appendTo(t),i?m.insertAfter(i):m.appendTo(t)),s.icon&&m.html(kendo.html.renderIcon({icon:s.icon,iconClass:s.iconClass})),s.template&&m.html(kendo.template(s.template)({})),s.separator&&o(f).insertBefore(m)),e._prefixContainer=p,e._suffixContainer=m}let c={id:`smartbox`,name:`SmartBox`,category:`web`,description:`The SmartBox is a new AI-powered capability designed to enhance standard search fields across key UI components.`,depends:[`list`,`speechtotextbutton`,`textbox`,`segmentedcontrol`]};(function(e,t){let n=window.kendo,r=n.htmlEncode,i=n.ui,a=n.ui.List,o=n.data.DataSource,c=n.keys,l=`.kendoSmartBox`,u=`k-focus`,d=`k-disabled`,f=`focus`,p=`blur`,m=`open`,h=`click`,g=`aiAssistantPromptRequest`,_=`aiAssistantResponseSuccess`,v=`aiAssistantResponseError`,y=`aiAssistantCancelRequest`,b=`search`,x={search:`Search`,semanticSearch:`SemanticSearch`,aiAssistant:`AIAssistant`},S={[x.search]:`_searchHistory`,[x.semanticSearch]:`_semanticSearchHistory`,[x.aiAssistant]:`_aiAssistantHistory`},C=`value`,w=`_searchModeOptions`,T=(e,t)=>{let n=t.indexOf(x.search)>-1,r=t.indexOf(e)>-1;return t.length>1?e&&r?e:n?x.search:t[0]:r?e:t[0]},E=a.extend({init:function(e,t){var r=this;r.ns=l,a.fn.init.call(r,e,t),t=r.options,r._enabledModes=r._getEnabledModes(),r._activeMode=T(t.activeMode,r._enabledModes),r._input(),r._wrapper(),r._popup(),r._dataSource(),r._initList(),r._setHeaderTemplate(),r._header(),r._aiTransport(),r._addPromptSuggestions(),r._addPrefixSuffix(),!r._enabledModes.length&&r.options.searchSettings?.enabled===!1&&r._textBox.enable(!1),r._bindEvents(),n.notify(r)},options:{name:`SmartBox`,activeMode:`Search`,placeholder:``,size:t,rounded:t,fillMode:t,history:{size:5,timestampFormat:`h:mm`},searchSettings:{delay:300,enabled:!0},semanticSearchSettings:null,aiAssistantSettings:null,suggestionTemplate:null,historyItemTemplate:null,messages:{noPreviousSearches:`No previous searches`,noPreviousPrompts:`No previous prompts`,previousSearches:`Previously Searched`,previousPrompts:`Previously Asked`,suggestedPrompts:`Suggested Prompts`,searchModeLabel:`Search`,searchModeDescription:`Looks for exact word matches across your data`,searchPlaceholder:`Search`,semanticSearchModeLabel:`Semantic Search`,semanticSearchModeDescription:`Understands context to surface the most relevant results.`,semanticSearchPlaceholder:`Semantic Search`,semanticSearchButtonText:`Search`,aiAssistantPlaceholder:`Sort, filter or group with AI`,speechToText:`Speech to text`,speechToTextAriaLabel:`Start speech recognition`,cancel:`Cancel`,send:`Send`,searchButtonText:`Search`,aiAssistantButtonText:`AI Assistant`}},events:[m,`close`,f,p,g,_,v,y,`streamingUpdate`,b,`semanticSearch`],_dataSource:function(){let e=this;e.dataSource&&e._refreshHandler&&(e.dataSource.off(),e.dataSource=null),e.dataSource=o.create({data:[],group:{field:`role`,compare:e._compareGroups}})},_compareGroups:function(e,t){return(e.items?.[0]?._groupOrder??99)-(t.items?.[0]?._groupOrder??99)},_aiTransport:function(){let e=this;e.transport=new n.data.AiTransport({service:e._getAIServiceConfig(),success:e._aiServiceSuccess.bind(e),error:e._aiServiceError.bind(e),requestStart:()=>e._aiRequestStart()})},_addPromptSuggestions:function(){let e=this,t=e.options,n=t.aiAssistantSettings;!n||!n.promptSuggestions||(e._suggestions=n?.promptSuggestions?.map(e=>({value:e,suggestion:e,role:t.messages.suggestedPrompts,groupIcon:`clock-arrow-rotate`,_isSuggestion:!0,_groupOrder:1}))||[])},_aiRequestStart:function(){let e=this;e._isLoading=!0,e._addPrefixSuffix()},_aiServiceSuccess:function(e){let t=this;t._currentRequest=null,t._isLoading=!1,t._addPrefixSuffix();let n={prompt:e.prompt,response:e.response};t.trigger(_,n)||t._pushValueToHistory(e.prompt)},_aiServiceError:function(e){let t=this;if(t._currentRequest=null,e.response&&e.response.statusText===`abort`)return;t._isLoading=!1,t._addPrefixSuffix();let n={output:e.output,prompt:e.prompt,response:e.response};t.trigger(v,n)},cancelAIRequest:function(){let e=this;e._isLoading&&(e._currentRequest&&e._currentRequest.abort&&(e._currentRequest.abort(),e._currentRequest=null),e._isLoading=!1,e._addPrefixSuffix(),e.trigger(y))},sendAIPrompt:function(e,t){let n=this;if(!n.transport)return;t||={};let r=n._aiAssistantHistory||[],i=n._getAIServiceConfig(),a=n.transport.read({prompt:e,history:t.history||r.map(e=>({role:`user`,contents:[{$type:`text`,text:e.value}]})),service:i});n._currentRequest=a,a&&typeof a.always==`function`?a.always(()=>n.value(``)):a&&typeof a.finally==`function`&&a.finally(()=>n.value(``))},startStreaming:function(){let e=this;e._isLoading=!0,e._addPrefixSuffix()},stopStreaming:function(){let e=this;e._isLoading=!1,e._addPrefixSuffix()},_wrapper:function(){this.wrapper=this.element.parent().addClass(`k-smart-box`).removeClass(`k-textbox`),this._focused=this.element},_input:function(){let e=this,t=e.options;e.element.attr({placeholder:e._getPlaceholder(),autocomplete:`off`,"aria-expanded":!1}).css({width:`450px`,minWidth:`350px`}),e._textBox=e.element.kendoTextBox({size:t.size,rounded:t.rounded,fillMode:t.fillMode,clearButton:e._isSearchMode()}).data(`kendoTextBox`),e._textBox._clear&&(e._textBox._clear.off(h),e._textBox._clear.on(h+l,function(t){t.preventDefault(),e._onClearClick()}))},_onClearClick:function(){let e=this;e.value(``),e._executeSearch(``),e._textBox._hideClear(),e.focus()},_addPrefixSuffix:function(){let t=this,n=t._activeMode,r=t._isLoading,i=t._textBox?._clear;i&&i.length&&i.detach(),t.wrapper.find(`.k-input-prefix, .k-input-suffix`).remove(),t._speechToTextButton&&=(t._speechToTextButton.destroy(),null);let a={},o={},c=t._getModeSettings(n).speechToTextButton;if(n===x.search?a={icon:`search`}:n===x.semanticSearch?a={icon:`zoom-sparkle`,iconClass:`k-accent-icon`}:n===x.aiAssistant&&(a={icon:`sparkles`,iconClass:`k-accent-icon`},o={template:()=>t._renderAISuffixTemplate(r,c,t.options.messages)}),s({widget:t,wrapper:t.wrapper,options:{prefixOptions:a,suffixOptions:o},prefixInsertBefore:t.element}),t._isSearchMode()&&i&&i.length){let n=t.wrapper.find(`.k-input-suffix`);n.length||(n=e(`<span class="k-input-suffix"></span>`),t.wrapper.append(n)),n.append(i)}n===x.aiAssistant&&c&&t._initSpeechToTextButton(),t._toggleClearButtonPerMode()},_toggleClearButtonPerMode:function(){let e=this,t=e._activeMode,n=e._isLoading;t===x.aiAssistant?(e._bindSuffixEvents(n),e._textBox&&e._textBox._clear&&e._textBox._clear.hide()):e._textBox&&e._textBox._clear&&(e._textBox._clear.show(),e.value()?e._textBox._showClear():e._textBox._hideClear())},_renderAISuffixTemplate:function(e,t,i){let a=this,o=``;return t&&(o+=`<button title="${r(i.speechToText)}" aria-label="${r(i.speechToTextAriaLabel)}" ref='smartbox-speech-to-text'></button>`),e?o+=n.html.renderButton(`<button class='k-smart-box-send' ref='smartbox-cancel' title='${r(i.cancel)}'></button>`,{icon:`stop-sm`,fillMode:`solid`,themeColor:`base`,size:a.options.size,rounded:`full`}):o+=n.html.renderButton(`<button class='k-smart-box-send${a.value()?``:` ${d}`}' ref='smartbox-send' title='${r(i.send)}'></button>`,{icon:`arrow-up-outline`,fillMode:`solid`,size:a.options.size,themeColor:`base`,rounded:`full`}),o},_initSpeechToTextButton:function(){let t=this,r=t._getModeSettings().speechToTextButton,i=n.ui.SpeechToTextButton;if(!i||!r)return;let a=t.wrapper.find(`[ref='smartbox-speech-to-text']`);a.length&&(t._speechToTextButton=new i(a,e.extend({},{themeColor:`base`,fillMode:`clear`,size:t.options.size,integrationMode:r.integrationMode||`webSpeech`,lang:r.lang||`en-US`,continuous:r.continuous||!1,interimResults:r.interimResults||!1,maxAlternatives:r.maxAlternatives||1,result:function(e){if(e.isFinal&&e.alternatives&&e.alternatives.length>0){let n=t.value()||``,r=n+(n?` `:``)+e.alternatives[0].transcript;t.value(r),t.element.trigger(`input`)}}},r)))},_bindSuffixEvents:function(e){let t=this;t.wrapper.find(`[ref='smartbox-send'], [ref='smartbox-cancel']`).off(l),e?t.wrapper.find(`[ref='smartbox-cancel']`).on(h+l,function(e){e.preventDefault(),t.cancelAIRequest()}):t.wrapper.find(`[ref='smartbox-send']`).on(h+l,function(e){e.preventDefault();let n=t.value();n&&t._triggerAIAssistantRequest(n)})},_getModeSettings:function(e){let t=this,n=t.options,r=e||t._activeMode;return r===x.search?n.searchSettings||{}:r===x.semanticSearch?n.semanticSearchSettings||{}:r===x.aiAssistant&&n.aiAssistantSettings||{}},_getPlaceholder:function(){let e=this,t=e.options,n=e._activeMode,r=t.messages,i=e._getModeSettings(n),a=``;switch(n){case x.search:a=r.searchPlaceholder;break;case x.semanticSearch:a=r.semanticSearchPlaceholder;break;case x.aiAssistant:a=r.aiAssistantPlaceholder;break}return i?.placeholder||t.placeholder||a},_popup:function(){this.options.popup=e.extend(this.options.popup,{copyAnchorStyles:!0}),a.fn._popup.call(this)},value:function(e){var n=this;if(e===t)return n._textBox?n._textBox.value():n.element.val();n._textBox?n._textBox.value(e):n.element.val(e)},enable:function(e){var t=this;t._textBox&&t._textBox.enable(e),t.wrapper.toggleClass(d,e===!1)},readonly:function(e){var t=this;t._textBox&&t._textBox.readonly(e)},focus:function(){var e=this;e._textBox?e._textBox.focus():e.element[0].focus()},_isSearchMode:function(){let e=this._activeMode;return e===x.search||e===x.semanticSearch},_handleItemClick:function(e){let t=this,n=t._activeMode;if(!e)return;let r=e.find(`.k-list-item-text`),i=r.length?r.first().text():e.text();t.value(i),t._oldValue=i,n===x.search&&t._executeSearch(i),t._textBox&&t._isSearchMode()&&t._textBox._showClear();let a=t.wrapper.find(`[ref='smartbox-send']`);n===x.aiAssistant&&a.length&&a.removeClass(d),t.close()},_handleActionItem:function(e){let t=this,n=e.action;if(n&&n.indexOf(`switchMode:`)===0){let e=n.replace(`switchMode:`,``);t._switchMode(e)}},_listBound:function(){let e=this,t=e.dataSource.flatView().length,n=e.dataSource._group?e.dataSource._group.length:0;e._renderNoData(),e._toggleNoData(!t&&e._shouldRenderModeButton()),e._toggleHeader(!!n&&!!t),e._removeSearchModeOptionsGroupHeader(),e._applyListItemTooltips(),e._applyCheckIconClass()},_applyCheckIconClass:function(){let e=this;!e.listView||!e.listView.content||e.listView.content.find(`[data-action^='switchMode:'] .k-list-item-icon-wrapper .k-list-item-icon`).addClass(`k-smart-box-check-icon`)},_applyListItemTooltips:function(){let t=this;t.list&&t.list.find(`.k-list-item:not(.k-list-group-item):not([data-action])`).each(function(){let t=e(this),n=t.find(`.k-list-item-text`),r=n.length?n.text():t.text();t.attr(`title`,r.trim())})},_renderNoData:function(){let e=this,t=e.noData;if(!t)return;let i=e.options.messages,a=e._activeMode===x.aiAssistant?i.noPreviousPrompts:i.noPreviousSearches,o=n.ui.icon({icon:`file-report`,iconClass:`k-icon-xxxl`})+`<span>`+r(a)+`</span>`;t.addClass(`k-smart-box-no-data`).html(o)},_removeSearchModeOptionsGroupHeader:function(){let t=this;!t.listView||!t.listView.content||!t._shouldRenderSearchModeOptions()||!t._isSearchMode()||t.listView.content.find(`.k-list-group-item`).each(function(){let t=e(this);t.text().trim()===``&&t.remove()})},_updateCssClasses:function(){let e=this;e.popup.element.removeClass(`k-list-container`).addClass(`k-smart-box-popup`),e.list.find(`.k-list-content`).removeClass(`k-list-scroller`)},_listOptions:function(t){let n=this;return e.extend({autoBind:!1,selectable:!1,dataSource:n.dataSource,click:function(e){n._handleItemClick(e.item)},action:function(e){n._handleActionItem(e)},dataBound:n._listBound.bind(n),dataValueField:C,dataTextField:C,iconField:`icon`,descriptionField:`description`,actionField:`action`,groupIconField:`groupIcon`,fixedGroupHeader:!1,template:n._getItemTemplate(),groupTemplate:function(e){return e===w?``:r(e)}},t)},_getItemTemplate:function(){let e=this,t=e.options.suggestionTemplate,i=e.options.historyItemTemplate;if(!t&&!i)return null;let a=t?n.template(t):null,o=i?n.template(i):null;return function(e){return e._isSuggestion&&a?a(e):e._isHistoryItem&&o?o(e):r(e.value||``)}},_setHeaderTemplate:function(){let e=this;e._shouldRenderModeButton()&&(e.options.headerTemplate=function(){return`<div ref="modeSwitcher"></div>`})},_initModeButton:function(){let e=this,t=e.options.messages;if(!e._shouldRenderModeButton()||!e.header)return;let n=e.header,r=e._isSearchMode()?x.search:x.aiAssistant,i={value:x.search,text:t.searchButtonText,icon:`search`};e._enabledModes.indexOf(x.search)<0&&(i={value:x.semanticSearch,text:t.semanticSearchButtonText,icon:`zoom-sparkle`,iconClassOnSelection:`k-accent-icon`},r=e._activeMode),e._segmentedControl=n.kendoSegmentedControl({size:`small`,selectedValue:r,layoutMode:`stretch`,items:[i,{value:x.aiAssistant,text:t.aiAssistantButtonText,icon:`sparkles`,iconClassOnSelection:`k-accent-icon`}],change:function(t){e._switchMode(t.value)}}).data(`kendoSegmentedControl`)},_switchMode:function(e){let t=this,n=t._activeMode;t._isSearchMode()&&e===x.aiAssistant&&(t._lastSearchMode=n),e===x.search&&n===x.aiAssistant&&t._lastSearchMode&&(e=t._lastSearchMode),t._activeMode=e,t.element.attr(`placeholder`,t._getPlaceholder()),t.value(``),t._addPrefixSuffix(),t._updateHeaderActiveState(),t._showViewPopup()},_updateHeaderActiveState:function(){let e=this;if(e._segmentedControl)if(e._isSearchMode()){let t=e._segmentedControl._items[0].value;e._segmentedControl.value(t),e._updateSearchModeIcon()}else e._removeSearchModeAccent(),e._segmentedControl.value(x.aiAssistant)},_updateSearchModeIcon:function(){let t=this;if(!t._segmentedControl)return;let r=t._activeMode,i=r===x.semanticSearch?`zoom-sparkle`:`search`,a=t._segmentedControl.element.find(`button[data-value]`).first().find(`.k-icon,.k-svg-icon`).first();if(!a.length)return;let o=a[0].className.split(` `).find(e=>e.indexOf(`k-svg-i-`)===0||e.indexOf(`k-i-`)===0);o&&a.removeClass(o);let s=a.hasClass(`k-svg-icon`);if(a.addClass(s?`k-svg-i-`+i:`k-i-`+i),a.toggleClass(`k-accent-icon`,r===x.semanticSearch),s){let t=e(n.ui.icon({icon:i})).find(`svg`).addBack(`svg`);t.length&&a.find(`svg`).replaceWith(t)}},_removeSearchModeAccent:function(){let e=this;e._segmentedControl&&e._segmentedControl.element.find(`button[data-value]`).first().find(`.k-icon,.k-svg-icon`).first().removeClass(`k-accent-icon`)},_shouldRenderSearchModeOptions:function(){let e=this._enabledModes;return e.includes(x.search)&&e.includes(x.semanticSearch)},_getSearchModeOptions:function(){let e=this,t=e.options.messages,n=e._enabledModes,r=[];if(n.includes(x.search)){let n=e._activeMode===x.search;r.push({value:t.searchModeLabel,description:t.searchModeDescription,icon:n?`check`:null,action:`switchMode:`+x.search,mode:x.search,role:w,_groupOrder:2})}if(n.includes(x.semanticSearch)){let n=e._activeMode===x.semanticSearch;r.push({value:t.semanticSearchModeLabel,description:t.semanticSearchModeDescription,icon:n?`check`:null,action:`switchMode:`+x.semanticSearch,mode:x.semanticSearch,role:w,_groupOrder:2})}return r},_shouldRenderModeButton:function(){let e=this._enabledModes,t=e.includes(x.search)||e.includes(x.semanticSearch),n=e.includes(x.aiAssistant);return t&&n},_shouldRenderNoData:function(){let e=this;return e._shouldRenderModeButton()&&e.dataSource.data().length===0},_getEnabledModes:function(){let e=this.options,t=[];return e.searchSettings&&e.searchSettings.enabled!==!1&&t.push(x.search),e.semanticSearchSettings&&e.semanticSearchSettings.enabled!==!1&&t.push(x.semanticSearch),e.aiAssistantSettings&&e.aiAssistantSettings.enabled!==!1&&t.push(x.aiAssistant),t},_bindEvents:function(){let e=this;e.element.on(`${f}${l}`,()=>e._onFocus()).on(`${p}${l}`,()=>e._onBlur()).on(`keydown${l}`,t=>e._onKeydown(t)).on(`input${l}`,t=>e._onInput(t)),e.wrapper.on(`${h}${l}`,`.k-input-prefix`,()=>{e.popup.visible()&&e.close(),e.element.trigger(f+l)}),e.popup.one(m,()=>{e._updateCssClasses(),e.popup.element.css({"margin-top":`2px`}),e.popup.element.find(`.k-list`).css({"max-height":`320px`}),e._initModeButton()}),e.popup.bind(`activate`,()=>{e.listView&&(e.listView.select([]),e.current(-1)),e._segmentedControl&&e._segmentedControl._calculateThumbPosition()})},_unbindEvents:function(){let e=this;e.element.off(l),e.wrapper.off(l)},_onFocus:function(){let e=this,t=e._activeMode,n=e[S[t]]?.length>0,r=t===x.aiAssistant&&e._suggestions?.length>0,i=e._shouldRenderModeButton(),a=e._shouldRenderSearchModeOptions()&&e._isSearchMode(),o=n||r||i||a;e.wrapper.addClass(u),o&&e._showViewPopup(),e.trigger(f)},_onBlur:function(){this.trigger(p)||(this.wrapper.removeClass(u),this.close())},_onKeydown:function(e){let t=this,n=e.keyCode,r=t._activeMode,i=t.element.val();n===c.ENTER?(i&&(t.close(),r===x.aiAssistant?t._triggerAIAssistantRequest(i):(clearTimeout(t._searchTimeout),t._executeSearch(i))),e.preventDefault()):n===c.ESC&&t.close()},_executeSearch:function(e){let t=this,n=t._activeMode;!e&&e!==``||(n===x.search?t.trigger(b,{searchValue:e})||(t._search(e),t._pushValueToHistory(e)):n===x.semanticSearch&&(t.trigger(`semanticSearch`,{searchValue:e}),t._pushValueToHistory(e)))},_onInput:function(e){let t=this,n=t.options,r=t._activeMode,i=t.element.val(),a=t._oldValue&&i.length<t._oldValue.length;if(t.wrapper.find(`[ref='smartbox-send']`)?.toggleClass(d,!i),a&&i===``?t._showViewPopup():t.close(),t._isSearchMode()){let e;r===x.search&&(e=n.searchSettings?.delay||300),r===x.semanticSearch&&(e=n.semanticSearchSettings?.delay||900),clearTimeout(t._searchTimeout),t._searchTimeout=setTimeout(()=>{t._executeSearch(i)},e)}t.value(i),t._oldValue=i},_showViewPopup:function(){let e=this,t=e._activeMode,n=e._suggestions?.length>0,r=e._shouldRenderModeButton(),i=e._shouldRenderSearchModeOptions(),a=e._isSearchMode(),o=e._getHistorySettings(t).enabled!==!1&&e[S[t]]||[];!(o.length>0)&&!n&&!r&&!(i&&a)||(i&&a&&(o=[...e._getSearchModeOptions(),...o]),t===x.aiAssistant&&n&&(o=[...e._suggestions,...o]),e._setListData(o),e.open())},_setListData:function(e){var t=this;e||=[],e.sort((e,t)=>(e._groupOrder||0)-(t._groupOrder||0)),t.dataSource.data(e)},_getHistorySettings:function(e){let n=this,r=n.options,i=e||n._activeMode,a=n._getModeSettings(i),o=r.history,s=a?.history;if(s===!1||o===!1)return{enabled:!1,size:0,timestampFormat:null};let c=o||{},l=s||{},u,d;return l.size===t?c.size!==t&&(u=c.size):u=l.size,l.timestampFormat===t?c.timestampFormat!==t&&(d=c.timestampFormat):d=l.timestampFormat,{enabled:!0,size:u,timestampFormat:d}},_pushValueToHistory:function(e){let t=this,r=t._activeMode,i=t._getHistorySettings(r);if(!e||i.enabled===!1)return;let a=i.size,o=i.timestampFormat;if(a<=0)return;let s=t[S[r]]||[];s.length>=a&&s.pop();let c=new Date;s.unshift({value:e,role:t._isSearchMode()?t.options.messages.previousSearches:t.options.messages.previousPrompts,groupIcon:`clock`,timestamp:c,timestampFormat:o,description:n.toString(c,o),_groupOrder:3,_isHistoryItem:!0}),t[S[r]]=s,t.close()},_search:function(e){let t=this,n=t.options.searchSettings||{},r=n.dataSource||null;if(!r)return;let i=n.fields||r.options?.search?.fields||null,a={filters:[],logic:`or`};if(t.dataSourceReference.options.endless&&(t.dataSourceReference.options.endless=null,t._endlessPageSize=t.dataSourceReference.options.pageSize),e)for(let n=0;n<i.length;n++)t._pushExpression(a.filters,i[n],e);else a={};r.filter(a)},_getAIServiceConfig:function(){let e=this.options.aiAssistantSettings||{},t=typeof e.service==`string`;if(!e.service)return{};let n=t?e.service:e.service.url;return n?{...t?{}:e.service,url:n}:{}},_triggerAIAssistantRequest:function(e){let t=this;if(!e)return;let n={prompt:e,history:(t._aiAssistantHistory||[]).map(e=>({role:`user`,contents:[{$type:`text`,text:e.value}]})),service:t._getAIServiceConfig()};t.trigger(g,n)||(t.transport&&t.sendAIPrompt(e,n),t.close())},open:function(){this.popup.open()},close:function(){this.popup.close()},activeMode:function(e){if(e===t)return this._activeMode;e!==this._activeMode&&this._getEnabledModes().indexOf(e)>-1&&(this._activeMode=e,this.element.attr(`placeholder`,this._getPlaceholder()))},destroy:function(){let e=this;clearTimeout(e._searchTimeout),e.popup&&e.popup.unbind(),e.transport&&=null,e._speechToTextButton&&=(e._speechToTextButton.destroy(),null),e._textBox&&=(e._textBox.destroy(),null),e._segmentedControl&&=(e._segmentedControl.destroy(),null),e.wrapper.find(`[ref='smartbox-send'], [ref='smartbox-cancel']`).off(l),e.element.off(l),e.wrapper.off(l),a.fn.destroy.call(e)}});i.plugin(E)})(window.kendo.jQuery);var l=kendo;e.__meta__=c,e.default=l});
//# sourceMappingURL=kendo.smartbox.min.js.map