@94ai-plus/nf-date-picker 0.0.0-stage → 1.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["dataComponents","selectors","dataComponents","selectors","dataComponents","selectors","dataComponents","selectors","dataComponents","selectors","dataComponents","selectors","dataComponents","selectors","dataComponents","selectors","_sfc_render","_openBlock","_createBlock","_mergeProps","_withCtx","_createElementVNode","_normalizeClass","_toDisplayString","_createElementBlock","_Fragment","_createCommentVNode","_withModifiers","_withKeys","_renderList","_sfc_main","_sfc_render","_openBlock","_createBlock","_mergeProps","_sfc_main","_sfc_render","_openBlock","_createBlock","_mergeProps","_sfc_main","_openBlock","_createBlock","_mergeProps","_sfc_main","HalfYear","HalfYearRange","WeekRange","View","Fragment","computed","createBlock","createCommentVNode","createElementBlock","createElementVNode","defineComponent","getCurrentInstance","inject","mergeProps","nextTick","normalizeClass","onBeforeUpdate","openBlock","readonly","ref","renderList","shallowReactive","shallowRef","toDisplayString","watch","withCtx","withKeys","withModifiers","ElDatePicker","ElPopover","dayjs","useFormDisabled","useFormItem","useFormSize","useGlobalConfig","en_us_default$1","en_us_default","enUs","zh_cn_default$1","zh_cn_default","zhCn","ja_default$1","ja_default","ja","es_default$1","es_default","es","id_default$1","id_default","id","th_default$1","th_default","th","tl_default$1","tl_default","tl","pt_default$1","pt_default","pt","componentConfigKey","useComponentDefaults","rawProps","name","fallbackName","instance","config","supplied","target","key","receiver","value","kebab","letter","defaults","fallback","localeContextKey","lookup","messages","path","current","segment","interpolate","message","values","_match","createLocale","initial","languages","language","locale","fallbackLocale","useLocale","readDate","format","result","halfYearStart","normalizeWeekRange","weekStartsOn","sorted","a","b","start","end","writeDate","date_picker_vue_vue_type_script_setup_true_lang_default","__props","__expose","__emit","props","emit","inheritedDisabled","disabled","formItem","t","globalLocale","inheritedSize","size","isRange","parsed","visible","draft","hover","year","trigger","panel","weekPicker","years","panelDate","month","date","firstYear","handleClose","label","display","selected","dateDisabled","inRange","ends","times","commit","triggerBlur","event","select","dates","clear","handleOpen","focus","blur","keydown","cellKeydown","delta","next","weekValue","updateWeek","item","weekDisabled","_","index","weekCellClass","__returned__","_plugin_vue_export_helper_default","sfc","val","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_sfc_render$3","_ctx","_cache","$props","$setup","$data","$options","$event","panelYear","date_picker_default","half_year_picker_vue_vue_type_script_setup_true_lang_default","view","_sfc_render$2","half_year_picker_default","half_year_range_picker_vue_vue_type_script_setup_true_lang_default","_sfc_render$1","half_year_range_picker_default","week_range_picker_vue_vue_type_script_setup_true_lang_default","_sfc_render","week_range_picker_default","NfHalfYearPicker","app","NfHalfYearRangePicker","NfWeekRangePicker","NfDatePicker"],"sources":["../../../common-locale/src/selectors/en-us.ts","../../../common-locale/src/data-components/en-us.ts","../../../common-locale/src/lang/en-us.ts","../../../common-locale/src/selectors/zh-cn.ts","../../../common-locale/src/data-components/zh-cn.ts","../../../common-locale/src/lang/zh-cn.ts","../../../common-locale/src/selectors/ja.ts","../../../common-locale/src/data-components/ja.ts","../../../common-locale/src/lang/ja.ts","../../../common-locale/src/selectors/es.ts","../../../common-locale/src/data-components/es.ts","../../../common-locale/src/lang/es.ts","../../../common-locale/src/selectors/id.ts","../../../common-locale/src/data-components/id.ts","../../../common-locale/src/lang/id.ts","../../../common-locale/src/selectors/th.ts","../../../common-locale/src/data-components/th.ts","../../../common-locale/src/lang/th.ts","../../../common-locale/src/selectors/tl.ts","../../../common-locale/src/data-components/tl.ts","../../../common-locale/src/lang/tl.ts","../../../common-locale/src/selectors/pt.ts","../../../common-locale/src/data-components/pt.ts","../../../common-locale/src/lang/pt.ts","../../../common-locale/src/component-config.ts","../../../common-locale/src/index.ts","../../src/model.ts","../../src/date-picker.vue","../../src/date-picker.vue","../../src/half-year-picker.vue","../../src/half-year-picker.vue","../../src/half-year-range-picker.vue","../../src/half-year-range-picker.vue","../../src/week-range-picker.vue","../../src/week-range-picker.vue","../../src/index.ts"],"sourcesContent":["export default {\n \"rules\": {\n \"logicAnd\": \"and\",\n \"numberRequire\": \"Please enter a number\",\n \"commonLenLimit\": \"Total length cannot exceed 2000 Chinese characters\",\n \"prohibitEmpty\": \"Cannot be empty\",\n \"paramsLenLimit\": \"Up to 50 English characters\",\n \"timeRangePlaceholder\": \"Select time range\",\n \"dateRangePlaceholder\": \"Select date range\",\n \"split\": \"Separate multiple entries with #\",\n \"times\": \"times\",\n \"second\": \"s\",\n \"ruleType\": {\n \"intentionTag\": \"Intention tag\",\n \"personalTag\": \"Personal tag\",\n \"replyKeyword\": \"Reply keyword\",\n \"customTag\": \"Custom tag\",\n \"importTime\": \"Import time\",\n \"callTime\": \"Call time period\",\n \"currentTime\": \"Current time\",\n \"callDuration\": \"Call duration\",\n \"dialogueRounds\": \"Dialogue rounds\",\n \"callCount\": \"Call attempts\",\n \"param\": \"Parameter\",\n \"callStatus\": \"Call status\"\n },\n \"operator\": {\n \"isEmpty\": \"Is empty\",\n \"notEmpty\": \"Is not empty\",\n \"contains\": \"Contains\",\n \"notContains\": \"Does not contain\"\n },\n \"calculation\": {\n \"each\": \"Each\",\n \"total\": \"Total\"\n },\n \"dateType\": {\n \"today\": \"Same day\",\n \"notToday\": \"Not same day\"\n },\n \"callStatus\": {\n \"answered\": \"Answered\",\n \"missed\": \"Not answered\",\n \"busy\": \"Busy\",\n \"unreachable\": \"Unreachable\",\n \"callFailed\": \"Call failed (not user-caused)\",\n \"rejected\": \"Rejected\",\n \"emptyNumber\": \"Invalid number\",\n \"poweredOff\": \"Powered off\",\n \"suspended\": \"Suspended\",\n \"arrears\": \"Insufficient balance\",\n \"lineFault\": \"Line fault\",\n \"numberChanged\": \"Number changed\",\n \"dailyLimit\": \"Daily call limit reached\",\n \"blacklist\": \"Blacklisted\"\n }\n },\n \"conditions\": {\n \"condition\": \"Condition\",\n \"add\": \"+ Add condition\",\n \"delete\": \"- Delete condition\",\n \"logicOr\": \"or\"\n },\n \"keywords\": {\n \"placeholder\": \"Enter keywords and press Enter to confirm. Separate multiple keywords with #\",\n \"someLimitDesc\": \"A keyword exceeds the character limit\",\n \"allLimitDesc\": \"Total keyword character limit exceeded\",\n \"matchDesc\": \"Keywords matching this branch\",\n \"priorityRecommendDesc\": \"(Keywords are recommended)\",\n \"copyAllDesc\": \"Copy all\",\n \"delAllDesc\": \"Delete all\",\n \"noKeywordDesc\": \"No keywords\",\n \"copySucessDesc\": \"Copied successfully\",\n \"alreadyExistDesc\": \"Keyword already exists in this branch\",\n \"correctDesc\": \"Please correct it\",\n \"incorrectRegDesc\": \"The keyword contains an invalid regular expression\"\n },\n \"variableSelect\": {\n \"placeholder\": \"Search by variable name\"\n },\n \"transferSelect\": {\n \"all\": \"Select all\",\n \"selected\": \"Selected\"\n },\n \"common\": {\n \"searchContent\": \"Enter search text\",\n \"copy\": \"Copy\",\n \"noData\": \"No data\",\n \"noMatch\": \"No matching data\",\n \"all\": \"All\",\n \"placeholderSelect\": \"Please select\",\n \"placeholderEnter\": \"Please enter\",\n \"startDate\": \"Start date\",\n \"endDate\": \"End date\",\n \"startTime\": \"Start time\",\n \"endTime\": \"End time\",\n \"clear\": \"Clear\",\n \"remove\": \"Remove\"\n }\n}\n","export default {\n \"searchForm\": {\n \"startDate\": \"Start date\",\n \"endDate\": \"End date\",\n \"startTime\": \"Start time\",\n \"endTime\": \"End time\",\n \"query\": \"Search\",\n \"export\": \"Export\",\n \"reset\": \"Reset\",\n \"settings\": \"Configure search fields\",\n \"addFields\": \"Add search fields\",\n \"unsupported\": \"Control {name} is not migrated. Supply a Vue 3 component or slot.\"\n },\n \"table\": {\n \"settings\": \"Configure columns\",\n \"basicField\": \"Basic fields\",\n \"search\": \"Search\",\n \"fixedLeft\": \"Pin left\",\n \"clear\": \"Clear\",\n \"noFixed\": \"Unpin\",\n \"selectEmpty\": \"Select at least one field\",\n \"selected\": \"Selected ({length})\",\n \"all\": \"Select all ({length})\",\n \"moveUp\": \"Move up\",\n \"moveDown\": \"Move down\",\n \"resizeColumn\": \"Resize operation column\"\n }\n}\n\n","import selectors from '../selectors/en-us'\nimport dataComponents from '../data-components/en-us'\nimport type { Language } from '../types'\n\nconst enUs: Language = {\n name: 'en-US',\n messages: {\n datePicker: {\"firstHalf\":\"H1\",\"secondHalf\":\"H2\",\"halfYear\":\"{year} {half}\",\"halfYearPlaceholder\":\"Select half-year\",\"halfYearRangePlaceholder\":\"Select half-year range\",\"startHalfYear\":\"Start half-year\",\"endHalfYear\":\"End half-year\",\"startWeek\":\"Start week\",\"endWeek\":\"End week\",\"previousYear\":\"Previous year\",\"nextYear\":\"Next year\",\"clear\":\"Clear\"},\n searchForm: dataComponents.searchForm,\n table: dataComponents.table,\n rules: selectors.rules,\n conditions: selectors.conditions,\n keywords: selectors.keywords,\n variableSelect: selectors.variableSelect,\n transferSelect: selectors.transferSelect,\n audio: {\n speed: \"Speed\",\n download: \"Download\",\n copyAddress: \"Copy address\",\n openWindow: \"Open in new window\",\n unavailable: \"Audio is not loaded\",\n crossTime: \"End time must be greater than start time\",\n jump: \"Jump\",\n play: \"Play\",\n pause: \"Pause\",\n progress: \"Playback progress\",\n volume: \"Volume\",\n },\n importTemplate: {\n fileTypeError: 'Only {formats} files are supported',\n fileSizeError: 'File size must be less than {size} MiB',\n errorDetails: 'View error details',\n },\n common: {\n ...selectors.common,\n expand: \"Expand\",\n collapse: \"Collapse\",\n more: \"More\",\n copySuccess: \"Copied\",\n close: 'Close',\n confirm: 'Confirm',\n cancel: 'Cancel',\n loading: 'Loading',\n empty: 'No data',\n },\n empty: {\n internet: 'Network connection failed', message: 'No messages', server: 'Server error', loading: 'Loading failed',\n authority: 'No permission', call: 'Call failed, please redial', seat: 'No available seats',\n },\n },\n}\n\nexport default enUs\n\n","export default {\n \"rules\": {\n \"logicAnd\": \"且\",\n \"numberRequire\": \"请输入数字\",\n \"commonLenLimit\": \"总文案长度不超过2000中文字符\",\n \"prohibitEmpty\": \"不能为空\",\n \"paramsLenLimit\": \"最多可输入50个英文字符长度\",\n \"timeRangePlaceholder\": \"选择时间范围\",\n \"dateRangePlaceholder\": \"选择日期范围\",\n \"split\": \"输入多个时,用#分割\",\n \"times\": \"次\",\n \"second\": \"秒\",\n \"ruleType\": {\n \"intentionTag\": \"意向标签\",\n \"personalTag\": \"个性标签\",\n \"replyKeyword\": \"回复关键词\",\n \"customTag\": \"自定义标签\",\n \"importTime\": \"导入时间\",\n \"callTime\": \"外呼时间段\",\n \"currentTime\": \"当前时间\",\n \"callDuration\": \"通话时长\",\n \"dialogueRounds\": \"对话轮次\",\n \"callCount\": \"外呼次数\",\n \"param\": \"参数\",\n \"callStatus\": \"外呼状态\"\n },\n \"operator\": {\n \"isEmpty\": \"为空\",\n \"notEmpty\": \"不为空\",\n \"contains\": \"包含\",\n \"notContains\": \"不包含\"\n },\n \"calculation\": {\n \"each\": \"每个\",\n \"total\": \"累计\"\n },\n \"dateType\": {\n \"today\": \"当天\",\n \"notToday\": \"非当天\"\n },\n \"callStatus\": {\n \"answered\": \"已接听\",\n \"missed\": \"未接\",\n \"busy\": \"占线\",\n \"unreachable\": \"无法接通\",\n \"callFailed\": \"呼叫失败(非用户原因)\",\n \"rejected\": \"拒接\",\n \"emptyNumber\": \"空号\",\n \"poweredOff\": \"关机\",\n \"suspended\": \"停机\",\n \"arrears\": \"用户欠费\",\n \"lineFault\": \"线路故障\",\n \"numberChanged\": \"改号\",\n \"dailyLimit\": \"单日呼叫次数受限\",\n \"blacklist\": \"黑名单\"\n }\n },\n \"conditions\": {\n \"condition\": \"条件\",\n \"add\": \"+ 添加条件\",\n \"delete\": \"- 删除条件\",\n \"logicOr\": \"或\"\n },\n \"keywords\": {\n \"placeholder\": \"请在此输入关键词,回车后确认。多个关键词请用#分隔\",\n \"someLimitDesc\": \"已超过单个关键词字数上限\",\n \"allLimitDesc\": \"已超过全部关键词字数上限\",\n \"matchDesc\": \"匹配到该分支的关键词\",\n \"priorityRecommendDesc\": \"(优先推荐使用关键词)\",\n \"copyAllDesc\": \"复制全部\",\n \"delAllDesc\": \"删除全部\",\n \"noKeywordDesc\": \"暂无关键词\",\n \"copySucessDesc\": \"复制成功\",\n \"alreadyExistDesc\": \"当前分支已经存在关键词\",\n \"correctDesc\": \"请修正\",\n \"incorrectRegDesc\": \"当前添加的关键词有错误的正则\"\n },\n \"variableSelect\": {\n \"placeholder\": \"输入变量名搜索\"\n },\n \"transferSelect\": {\n \"all\": \"全选\",\n \"selected\": \"已选\"\n },\n \"common\": {\n \"searchContent\": \"请输入搜索内容\",\n \"copy\": \"复制\",\n \"noData\": \"无数据\",\n \"noMatch\": \"无匹配数据\",\n \"all\": \"全部\",\n \"placeholderSelect\": \"请选择\",\n \"placeholderEnter\": \"请输入\",\n \"startDate\": \"开始日期\",\n \"endDate\": \"结束日期\",\n \"startTime\": \"开始时间\",\n \"endTime\": \"结束时间\",\n \"clear\": \"清空\",\n \"remove\": \"移除\"\n }\n}\n","export default {\n \"searchForm\": {\n \"startDate\": \"开始日期\",\n \"endDate\": \"结束日期\",\n \"startTime\": \"开始时间\",\n \"endTime\": \"结束时间\",\n \"query\": \"查询\",\n \"export\": \"导出\",\n \"reset\": \"重置\",\n \"settings\": \"设置显示查询框\",\n \"addFields\": \"添加筛选条件\",\n \"unsupported\": \"未迁移控件 {name},请通过 components 或插槽接入 Vue 3 控件\"\n },\n \"table\": {\n \"settings\": \"设置显示字段\",\n \"basicField\": \"基础字段\",\n \"search\": \"搜索\",\n \"fixedLeft\": \"固定在左侧\",\n \"clear\": \"清除\",\n \"noFixed\": \"不固定\",\n \"selectEmpty\": \"请选择至少一个选项\",\n \"selected\": \"已选({length})\",\n \"all\": \"全选({length})\",\n \"moveUp\": \"上移\",\n \"moveDown\": \"下移\",\n \"resizeColumn\": \"调整操作列宽度\"\n }\n}\n\n","import selectors from '../selectors/zh-cn'\nimport dataComponents from '../data-components/zh-cn'\nimport type { Language } from '../types'\n\nconst zhCn: Language = {\n name: 'zh-CN',\n messages: {\n datePicker: {\"firstHalf\":\"上半年\",\"secondHalf\":\"下半年\",\"halfYear\":\"{year}年{half}\",\"halfYearPlaceholder\":\"选择半年\",\"halfYearRangePlaceholder\":\"选择半年区间\",\"startHalfYear\":\"开始半年\",\"endHalfYear\":\"结束半年\",\"startWeek\":\"开始周\",\"endWeek\":\"结束周\",\"previousYear\":\"上一年\",\"nextYear\":\"下一年\",\"clear\":\"清空\"},\n searchForm: dataComponents.searchForm,\n table: dataComponents.table,\n rules: selectors.rules,\n conditions: selectors.conditions,\n keywords: selectors.keywords,\n variableSelect: selectors.variableSelect,\n transferSelect: selectors.transferSelect,\n audio: {\n speed: \"倍速\",\n download: \"下载\",\n copyAddress: \"复制地址\",\n openWindow: \"在新窗口打开\",\n unavailable: \"音频尚未加载\",\n crossTime: \"结束时间必须大于开始时间\",\n jump: \"跳转\",\n play: \"播放\",\n pause: \"暂停\",\n progress: \"播放进度\",\n volume: \"音量\",\n },\n importTemplate: {\n fileTypeError: '只支持{formats}格式的文件',\n fileSizeError: '文件大小不能超过{size}M',\n errorDetails: '查看错误详情',\n },\n common: {\n ...selectors.common,\n expand: \"展开\",\n collapse: \"收起\",\n more: \"更多\",\n copySuccess: \"复制成功\",\n close: '关闭',\n confirm: '确认',\n cancel: '取消',\n loading: '加载中',\n empty: '暂无数据',\n },\n empty: {\n internet: '网络连接失败', message: '暂无消息', server: '服务器异常', loading: '加载失败',\n authority: '暂无权限', call: '呼叫失败,请重呼', seat: '暂无坐席',\n },\n },\n}\n\nexport default zhCn\n\n","export default {\n \"common\": {\n \"searchContent\": \"検索内容を入力\",\n \"copy\": \"コピー\",\n \"noData\": \"データなし\",\n \"noMatch\": \"一致するデータなし\",\n \"all\": \"すべて\",\n \"placeholderSelect\": \"選択してください\",\n \"placeholderEnter\": \"入力してください\",\n \"startDate\": \"開始日\",\n \"endDate\": \"終了日\",\n \"startTime\": \"開始時刻\",\n \"endTime\": \"終了時刻\",\n \"clear\": \"クリア\",\n \"remove\": \"削除\"\n },\n \"rules\": {\n \"logicAnd\": \"かつ\",\n \"numberRequire\": \"数値を入力してください\",\n \"commonLenLimit\": \"文字数は2000文字以内です\",\n \"prohibitEmpty\": \"空にできません\",\n \"paramsLenLimit\": \"半角50文字以内です\",\n \"timeRangePlaceholder\": \"時間範囲を選択\",\n \"dateRangePlaceholder\": \"日付範囲を選択\",\n \"split\": \"複数の項目は # で区切ります\",\n \"times\": \"回\",\n \"second\": \"秒\",\n \"ruleType\": {\n \"intentionTag\": \"意向タグ\",\n \"personalTag\": \"個人タグ\",\n \"replyKeyword\": \"返信キーワード\",\n \"customTag\": \"カスタムタグ\",\n \"importTime\": \"インポート時刻\",\n \"callTime\": \"発信時間帯\",\n \"currentTime\": \"現在時刻\",\n \"callDuration\": \"通話時間\",\n \"dialogueRounds\": \"対話回数\",\n \"callCount\": \"発信回数\",\n \"param\": \"パラメーター\",\n \"callStatus\": \"発信状態\"\n },\n \"operator\": {\n \"isEmpty\": \"空\",\n \"notEmpty\": \"空ではない\",\n \"contains\": \"含む\",\n \"notContains\": \"含まない\"\n },\n \"calculation\": {\n \"each\": \"各\",\n \"total\": \"合計\"\n },\n \"dateType\": {\n \"today\": \"当日\",\n \"notToday\": \"当日以外\"\n },\n \"callStatus\": {\n \"answered\": \"応答済み\",\n \"missed\": \"不応答\",\n \"busy\": \"話し中\",\n \"unreachable\": \"接続不可\",\n \"callFailed\": \"発信失敗\",\n \"rejected\": \"拒否\",\n \"emptyNumber\": \"無効な番号\",\n \"poweredOff\": \"電源オフ\",\n \"suspended\": \"利用停止\",\n \"arrears\": \"残高不足\",\n \"lineFault\": \"回線障害\",\n \"numberChanged\": \"番号変更\",\n \"dailyLimit\": \"1日の発信上限\",\n \"blacklist\": \"ブラックリスト\"\n }\n },\n \"conditions\": {\n \"condition\": \"条件\",\n \"add\": \"+ 条件を追加\",\n \"delete\": \"- 条件を削除\",\n \"logicOr\": \"または\"\n },\n \"keywords\": {\n \"placeholder\": \"キーワードを入力して Enter で確定。複数は # で区切ります\",\n \"someLimitDesc\": \"キーワードが文字数上限を超えています\",\n \"allLimitDesc\": \"合計文字数の上限を超えています\",\n \"matchDesc\": \"この分岐に一致するキーワード\",\n \"priorityRecommendDesc\": \"(キーワードを推奨)\",\n \"copyAllDesc\": \"すべてコピー\",\n \"delAllDesc\": \"すべて削除\",\n \"noKeywordDesc\": \"キーワードなし\",\n \"copySucessDesc\": \"コピーしました\",\n \"alreadyExistDesc\": \"キーワードは既に存在します\",\n \"correctDesc\": \"修正してください\",\n \"incorrectRegDesc\": \"無効な正規表現です\"\n },\n \"variableSelect\": {\n \"placeholder\": \"変数名で検索\"\n },\n \"transferSelect\": {\n \"all\": \"すべて選択\",\n \"selected\": \"選択済み\"\n }\n}\n","export default {\n \"searchForm\": {\n \"startDate\": \"開始日\",\n \"endDate\": \"終了日\",\n \"startTime\": \"開始時刻\",\n \"endTime\": \"終了時刻\",\n \"query\": \"検索\",\n \"export\": \"エクスポート\",\n \"reset\": \"リセット\",\n \"settings\": \"検索項目の設定\",\n \"addFields\": \"検索項目を追加\",\n \"unsupported\": \"{name} は未移行です。Vue 3 コンポーネントまたはスロットを指定してください。\"\n },\n \"table\": {\n \"settings\": \"表示列の設定\",\n \"basicField\": \"基本項目\",\n \"search\": \"検索\",\n \"fixedLeft\": \"左に固定\",\n \"clear\": \"クリア\",\n \"noFixed\": \"固定解除\",\n \"selectEmpty\": \"項目を1つ以上選択してください\",\n \"selected\": \"選択済み({length})\",\n \"all\": \"すべて選択({length})\",\n \"moveUp\": \"上へ\",\n \"moveDown\": \"下へ\",\n \"resizeColumn\": \"操作列の幅を変更\"\n }\n}\n\n","import selectors from '../selectors/ja'\nimport dataComponents from '../data-components/ja'\nimport type { Language } from '../types'\n\nconst ja: Language = {\n name: 'ja',\n messages: {\n datePicker: {\"firstHalf\":\"上半期\",\"secondHalf\":\"下半期\",\"halfYear\":\"{year}年{half}\",\"halfYearPlaceholder\":\"半期を選択\",\"halfYearRangePlaceholder\":\"半期の範囲を選択\",\"startHalfYear\":\"開始半期\",\"endHalfYear\":\"終了半期\",\"startWeek\":\"開始週\",\"endWeek\":\"終了週\",\"previousYear\":\"前年\",\"nextYear\":\"翌年\",\"clear\":\"クリア\"},\n searchForm: dataComponents.searchForm,\n table: dataComponents.table,\n rules: selectors.rules,\n conditions: selectors.conditions,\n keywords: selectors.keywords,\n variableSelect: selectors.variableSelect,\n transferSelect: selectors.transferSelect,\n audio: {\n speed: \"再生速度\",\n download: \"ダウンロード\",\n copyAddress: \"アドレスをコピー\",\n openWindow: \"新しいウィンドウで開く\",\n unavailable: \"音声が読み込まれていません\",\n crossTime: \"終了時刻は開始時刻より後にしてください\",\n jump: \"移動\",\n play: \"再生\",\n pause: \"一時停止\",\n progress: \"再生位置\",\n volume: \"音量\",\n },\n importTemplate: {\n fileTypeError: '{formats} 形式のファイルのみ対応しています',\n fileSizeError: 'ファイルサイズは {size} MiB 未満にしてください',\n errorDetails: 'エラーの詳細を見る',\n },\n common: {\n ...selectors.common,\n expand: \"展開\",\n collapse: \"折りたたむ\",\n more: \"その他\",\n copySuccess: \"コピーしました\",\n close: '閉じる',\n confirm: '確認',\n cancel: 'キャンセル',\n loading: '読み込み中',\n empty: 'データがありません',\n },\n empty: {\n internet: 'ネットワーク接続に失敗しました', message: 'メッセージがありません', server: 'サーバーエラー', loading: '読み込みに失敗しました',\n authority: '権限がありません', call: '通話に失敗しました。もう一度おかけください', seat: '利用可能な席がありません',\n },\n },\n}\n\nexport default ja\n\n","export default {\n \"common\": {\n \"searchContent\": \"Introduzca texto de búsqueda\",\n \"copy\": \"Copiar\",\n \"noData\": \"Sin datos\",\n \"noMatch\": \"Sin coincidencias\",\n \"all\": \"Todos\",\n \"placeholderSelect\": \"Seleccione\",\n \"placeholderEnter\": \"Introduzca un valor\",\n \"startDate\": \"Fecha inicial\",\n \"endDate\": \"Fecha final\",\n \"startTime\": \"Hora inicial\",\n \"endTime\": \"Hora final\",\n \"clear\": \"Limpiar\",\n \"remove\": \"Eliminar\"\n },\n \"rules\": {\n \"logicAnd\": \"y\",\n \"numberRequire\": \"Introduzca un número\",\n \"commonLenLimit\": \"La longitud no puede superar 2000 caracteres\",\n \"prohibitEmpty\": \"No puede estar vacío\",\n \"paramsLenLimit\": \"Hasta 50 caracteres ASCII\",\n \"timeRangePlaceholder\": \"Seleccione un intervalo de tiempo\",\n \"dateRangePlaceholder\": \"Seleccione un intervalo de fechas\",\n \"split\": \"Separe las entradas con #\",\n \"times\": \"veces\",\n \"second\": \"s\",\n \"ruleType\": {\n \"intentionTag\": \"Etiqueta de intención\",\n \"personalTag\": \"Etiqueta personal\",\n \"replyKeyword\": \"Palabra clave de respuesta\",\n \"customTag\": \"Etiqueta personalizada\",\n \"importTime\": \"Hora de importación\",\n \"callTime\": \"Período de llamada\",\n \"currentTime\": \"Hora actual\",\n \"callDuration\": \"Duración de llamada\",\n \"dialogueRounds\": \"Turnos de diálogo\",\n \"callCount\": \"Intentos de llamada\",\n \"param\": \"Parámetro\",\n \"callStatus\": \"Estado de llamada\"\n },\n \"operator\": {\n \"isEmpty\": \"Está vacío\",\n \"notEmpty\": \"No está vacío\",\n \"contains\": \"Contiene\",\n \"notContains\": \"No contiene\"\n },\n \"calculation\": {\n \"each\": \"Cada\",\n \"total\": \"Total\"\n },\n \"dateType\": {\n \"today\": \"Mismo día\",\n \"notToday\": \"Otro día\"\n },\n \"callStatus\": {\n \"answered\": \"Respondida\",\n \"missed\": \"Sin respuesta\",\n \"busy\": \"Ocupado\",\n \"unreachable\": \"No disponible\",\n \"callFailed\": \"Llamada fallida\",\n \"rejected\": \"Rechazada\",\n \"emptyNumber\": \"Número inválido\",\n \"poweredOff\": \"Apagado\",\n \"suspended\": \"Suspendido\",\n \"arrears\": \"Saldo insuficiente\",\n \"lineFault\": \"Fallo de línea\",\n \"numberChanged\": \"Número cambiado\",\n \"dailyLimit\": \"Límite diario alcanzado\",\n \"blacklist\": \"Lista negra\"\n }\n },\n \"conditions\": {\n \"condition\": \"Condición\",\n \"add\": \"+ Añadir condición\",\n \"delete\": \"- Eliminar condición\",\n \"logicOr\": \"o\"\n },\n \"keywords\": {\n \"placeholder\": \"Introduzca palabras clave y pulse Enter. Sepárelas con #\",\n \"someLimitDesc\": \"Una palabra clave supera el límite\",\n \"allLimitDesc\": \"Se superó el límite total de caracteres\",\n \"matchDesc\": \"Palabras clave de esta rama\",\n \"priorityRecommendDesc\": \"(Se recomiendan palabras clave)\",\n \"copyAllDesc\": \"Copiar todo\",\n \"delAllDesc\": \"Eliminar todo\",\n \"noKeywordDesc\": \"Sin palabras clave\",\n \"copySucessDesc\": \"Copiado\",\n \"alreadyExistDesc\": \"La palabra clave ya existe\",\n \"correctDesc\": \"Corríjalo\",\n \"incorrectRegDesc\": \"Expresión regular no válida\"\n },\n \"variableSelect\": {\n \"placeholder\": \"Buscar por nombre de variable\"\n },\n \"transferSelect\": {\n \"all\": \"Seleccionar todos\",\n \"selected\": \"Seleccionados\"\n }\n}\n","export default {\n \"searchForm\": {\n \"startDate\": \"Fecha de inicio\",\n \"endDate\": \"Fecha de fin\",\n \"startTime\": \"Hora de inicio\",\n \"endTime\": \"Hora de fin\",\n \"query\": \"Buscar\",\n \"export\": \"Exportar\",\n \"reset\": \"Restablecer\",\n \"settings\": \"Configurar filtros\",\n \"addFields\": \"Añadir filtros\",\n \"unsupported\": \"El control {name} no está migrado. Proporcione un componente Vue 3 o slot.\"\n },\n \"table\": {\n \"settings\": \"Configurar columnas\",\n \"basicField\": \"Campos básicos\",\n \"search\": \"Buscar\",\n \"fixedLeft\": \"Fijar a la izquierda\",\n \"clear\": \"Limpiar\",\n \"noFixed\": \"Desfijar\",\n \"selectEmpty\": \"Seleccione al menos un campo\",\n \"selected\": \"Seleccionados ({length})\",\n \"all\": \"Seleccionar todo ({length})\",\n \"moveUp\": \"Subir\",\n \"moveDown\": \"Bajar\",\n \"resizeColumn\": \"Cambiar ancho de acciones\"\n }\n}\n\n","import selectors from '../selectors/es'\nimport dataComponents from '../data-components/es'\nimport type { Language } from '../types'\n\nconst es: Language = {\n name: 'es',\n messages: {\n datePicker: {\"firstHalf\":\"Primer semestre\",\"secondHalf\":\"Segundo semestre\",\"halfYear\":\"{half} de {year}\",\"halfYearPlaceholder\":\"Seleccionar semestre\",\"halfYearRangePlaceholder\":\"Seleccionar intervalo semestral\",\"startHalfYear\":\"Semestre inicial\",\"endHalfYear\":\"Semestre final\",\"startWeek\":\"Semana inicial\",\"endWeek\":\"Semana final\",\"previousYear\":\"Año anterior\",\"nextYear\":\"Año siguiente\",\"clear\":\"Borrar\"},\n searchForm: dataComponents.searchForm,\n table: dataComponents.table,\n rules: selectors.rules,\n conditions: selectors.conditions,\n keywords: selectors.keywords,\n variableSelect: selectors.variableSelect,\n transferSelect: selectors.transferSelect,\n audio: {\n speed: \"Velocidad\",\n download: \"Descargar\",\n copyAddress: \"Copiar dirección\",\n openWindow: \"Abrir en ventana nueva\",\n unavailable: \"El audio no se ha cargado\",\n crossTime: \"El final debe ser posterior al inicio\",\n jump: \"Saltar\",\n play: \"Reproducir\",\n pause: \"Pausar\",\n progress: \"Progreso de reproducción\",\n volume: \"Volumen\",\n },\n importTemplate: {\n fileTypeError: 'Solo se admiten archivos {formats}',\n fileSizeError: 'El archivo debe ser menor de {size} MiB',\n errorDetails: 'Ver detalles del error',\n },\n common: {\n ...selectors.common,\n expand: \"Expandir\",\n collapse: \"Contraer\",\n more: \"Más\",\n copySuccess: \"Copiado\",\n close: 'Cerrar',\n confirm: 'Confirmar',\n cancel: 'Cancelar',\n loading: 'Cargando',\n empty: 'Sin datos',\n },\n empty: {\n internet: 'Error de conexión de red', message: 'No hay mensajes', server: 'Error del servidor', loading: 'Error al cargar',\n authority: 'Sin permiso', call: 'La llamada falló, vuelva a llamar', seat: 'No hay puestos disponibles',\n },\n },\n}\n\nexport default es\n\n","export default {\n \"common\": {\n \"searchContent\": \"Masukkan teks pencarian\",\n \"copy\": \"Salin\",\n \"noData\": \"Tidak ada data\",\n \"noMatch\": \"Tidak ada hasil\",\n \"all\": \"Semua\",\n \"placeholderSelect\": \"Silakan pilih\",\n \"placeholderEnter\": \"Silakan masukkan\",\n \"startDate\": \"Tanggal mulai\",\n \"endDate\": \"Tanggal selesai\",\n \"startTime\": \"Waktu mulai\",\n \"endTime\": \"Waktu selesai\",\n \"clear\": \"Bersihkan\",\n \"remove\": \"Hapus\"\n },\n \"rules\": {\n \"logicAnd\": \"dan\",\n \"numberRequire\": \"Masukkan angka\",\n \"commonLenLimit\": \"Panjang tidak boleh melebihi 2000 karakter\",\n \"prohibitEmpty\": \"Tidak boleh kosong\",\n \"paramsLenLimit\": \"Maksimal 50 karakter ASCII\",\n \"timeRangePlaceholder\": \"Pilih rentang waktu\",\n \"dateRangePlaceholder\": \"Pilih rentang tanggal\",\n \"split\": \"Pisahkan entri dengan #\",\n \"times\": \"kali\",\n \"second\": \"d\",\n \"ruleType\": {\n \"intentionTag\": \"Tag minat\",\n \"personalTag\": \"Tag pribadi\",\n \"replyKeyword\": \"Kata kunci balasan\",\n \"customTag\": \"Tag khusus\",\n \"importTime\": \"Waktu impor\",\n \"callTime\": \"Periode panggilan\",\n \"currentTime\": \"Waktu saat ini\",\n \"callDuration\": \"Durasi panggilan\",\n \"dialogueRounds\": \"Putaran dialog\",\n \"callCount\": \"Jumlah panggilan\",\n \"param\": \"Parameter\",\n \"callStatus\": \"Status panggilan\"\n },\n \"operator\": {\n \"isEmpty\": \"Kosong\",\n \"notEmpty\": \"Tidak kosong\",\n \"contains\": \"Mengandung\",\n \"notContains\": \"Tidak mengandung\"\n },\n \"calculation\": {\n \"each\": \"Setiap\",\n \"total\": \"Total\"\n },\n \"dateType\": {\n \"today\": \"Hari yang sama\",\n \"notToday\": \"Hari lain\"\n },\n \"callStatus\": {\n \"answered\": \"Dijawab\",\n \"missed\": \"Tidak dijawab\",\n \"busy\": \"Sibuk\",\n \"unreachable\": \"Tidak dapat dihubungi\",\n \"callFailed\": \"Panggilan gagal\",\n \"rejected\": \"Ditolak\",\n \"emptyNumber\": \"Nomor tidak valid\",\n \"poweredOff\": \"Dimatikan\",\n \"suspended\": \"Ditangguhkan\",\n \"arrears\": \"Saldo tidak cukup\",\n \"lineFault\": \"Gangguan saluran\",\n \"numberChanged\": \"Nomor berubah\",\n \"dailyLimit\": \"Batas harian tercapai\",\n \"blacklist\": \"Daftar hitam\"\n }\n },\n \"conditions\": {\n \"condition\": \"Kondisi\",\n \"add\": \"+ Tambah kondisi\",\n \"delete\": \"- Hapus kondisi\",\n \"logicOr\": \"atau\"\n },\n \"keywords\": {\n \"placeholder\": \"Masukkan kata kunci lalu tekan Enter. Pisahkan dengan #\",\n \"someLimitDesc\": \"Kata kunci melebihi batas karakter\",\n \"allLimitDesc\": \"Batas total karakter terlampaui\",\n \"matchDesc\": \"Kata kunci cabang ini\",\n \"priorityRecommendDesc\": \"(Kata kunci disarankan)\",\n \"copyAllDesc\": \"Salin semua\",\n \"delAllDesc\": \"Hapus semua\",\n \"noKeywordDesc\": \"Tidak ada kata kunci\",\n \"copySucessDesc\": \"Berhasil disalin\",\n \"alreadyExistDesc\": \"Kata kunci sudah ada\",\n \"correctDesc\": \"Silakan perbaiki\",\n \"incorrectRegDesc\": \"Ekspresi reguler tidak valid\"\n },\n \"variableSelect\": {\n \"placeholder\": \"Cari berdasarkan nama variabel\"\n },\n \"transferSelect\": {\n \"all\": \"Pilih semua\",\n \"selected\": \"Dipilih\"\n }\n}\n","export default {\n \"searchForm\": {\n \"startDate\": \"Tanggal mulai\",\n \"endDate\": \"Tanggal akhir\",\n \"startTime\": \"Waktu mulai\",\n \"endTime\": \"Waktu akhir\",\n \"query\": \"Cari\",\n \"export\": \"Ekspor\",\n \"reset\": \"Atur ulang\",\n \"settings\": \"Atur kolom pencarian\",\n \"addFields\": \"Tambah kolom pencarian\",\n \"unsupported\": \"Kontrol {name} belum dimigrasi. Gunakan komponen Vue 3 atau slot.\"\n },\n \"table\": {\n \"settings\": \"Atur kolom\",\n \"basicField\": \"Kolom dasar\",\n \"search\": \"Cari\",\n \"fixedLeft\": \"Sematkan di kiri\",\n \"clear\": \"Hapus\",\n \"noFixed\": \"Lepas sematan\",\n \"selectEmpty\": \"Pilih minimal satu kolom\",\n \"selected\": \"Dipilih ({length})\",\n \"all\": \"Pilih semua ({length})\",\n \"moveUp\": \"Naik\",\n \"moveDown\": \"Turun\",\n \"resizeColumn\": \"Ubah lebar kolom tindakan\"\n }\n}\n\n","import selectors from '../selectors/id'\nimport dataComponents from '../data-components/id'\nimport type { Language } from '../types'\n\nconst id: Language = {\n name: 'id',\n messages: {\n datePicker: {\"firstHalf\":\"Semester I\",\"secondHalf\":\"Semester II\",\"halfYear\":\"{half} {year}\",\"halfYearPlaceholder\":\"Pilih semester\",\"halfYearRangePlaceholder\":\"Pilih rentang semester\",\"startHalfYear\":\"Semester awal\",\"endHalfYear\":\"Semester akhir\",\"startWeek\":\"Minggu awal\",\"endWeek\":\"Minggu akhir\",\"previousYear\":\"Tahun sebelumnya\",\"nextYear\":\"Tahun berikutnya\",\"clear\":\"Hapus\"},\n searchForm: dataComponents.searchForm,\n table: dataComponents.table,\n rules: selectors.rules,\n conditions: selectors.conditions,\n keywords: selectors.keywords,\n variableSelect: selectors.variableSelect,\n transferSelect: selectors.transferSelect,\n audio: {\n speed: \"Kecepatan\",\n download: \"Unduh\",\n copyAddress: \"Salin alamat\",\n openWindow: \"Buka di jendela baru\",\n unavailable: \"Audio belum dimuat\",\n crossTime: \"Waktu akhir harus setelah waktu mulai\",\n jump: \"Lompat\",\n play: \"Putar\",\n pause: \"Jeda\",\n progress: \"Progres pemutaran\",\n volume: \"Volume\",\n },\n importTemplate: {\n fileTypeError: 'Hanya berkas {formats} yang didukung',\n fileSizeError: 'Ukuran berkas harus kurang dari {size} MiB',\n errorDetails: 'Lihat detail kesalahan',\n },\n common: {\n ...selectors.common,\n expand: \"Perluas\",\n collapse: \"Ciutkan\",\n more: \"Lainnya\",\n copySuccess: \"Disalin\",\n close: 'Tutup',\n confirm: 'Konfirmasi',\n cancel: 'Batal',\n loading: 'Memuat',\n empty: 'Tidak ada data',\n },\n empty: {\n internet: 'Koneksi jaringan gagal', message: 'Tidak ada pesan', server: 'Kesalahan server', loading: 'Gagal memuat',\n authority: 'Tidak ada izin', call: 'Panggilan gagal, silakan hubungi kembali', seat: 'Tidak ada kursi yang tersedia',\n },\n },\n}\n\nexport default id\n\n","export default {\n \"common\": {\n \"searchContent\": \"ป้อนข้อความค้นหา\",\n \"copy\": \"คัดลอก\",\n \"noData\": \"ไม่มีข้อมูล\",\n \"noMatch\": \"ไม่พบข้อมูลที่ตรงกัน\",\n \"all\": \"ทั้งหมด\",\n \"placeholderSelect\": \"กรุณาเลือก\",\n \"placeholderEnter\": \"กรุณาป้อน\",\n \"startDate\": \"วันที่เริ่มต้น\",\n \"endDate\": \"วันที่สิ้นสุด\",\n \"startTime\": \"เวลาเริ่มต้น\",\n \"endTime\": \"เวลาสิ้นสุด\",\n \"clear\": \"ล้าง\",\n \"remove\": \"ลบ\"\n },\n \"rules\": {\n \"logicAnd\": \"และ\",\n \"numberRequire\": \"กรุณาป้อนตัวเลข\",\n \"commonLenLimit\": \"ความยาวต้องไม่เกิน 2000 อักขระ\",\n \"prohibitEmpty\": \"ต้องไม่เว้นว่าง\",\n \"paramsLenLimit\": \"ไม่เกิน 50 อักขระ ASCII\",\n \"timeRangePlaceholder\": \"เลือกช่วงเวลา\",\n \"dateRangePlaceholder\": \"เลือกช่วงวันที่\",\n \"split\": \"คั่นรายการด้วย #\",\n \"times\": \"ครั้ง\",\n \"second\": \"วินาที\",\n \"ruleType\": {\n \"intentionTag\": \"แท็กความสนใจ\",\n \"personalTag\": \"แท็กส่วนบุคคล\",\n \"replyKeyword\": \"คำสำคัญตอบกลับ\",\n \"customTag\": \"แท็กกำหนดเอง\",\n \"importTime\": \"เวลานำเข้า\",\n \"callTime\": \"ช่วงเวลาโทร\",\n \"currentTime\": \"เวลาปัจจุบัน\",\n \"callDuration\": \"ระยะเวลาสนทนา\",\n \"dialogueRounds\": \"รอบสนทนา\",\n \"callCount\": \"จำนวนการโทร\",\n \"param\": \"พารามิเตอร์\",\n \"callStatus\": \"สถานะการโทร\"\n },\n \"operator\": {\n \"isEmpty\": \"ว่าง\",\n \"notEmpty\": \"ไม่ว่าง\",\n \"contains\": \"มี\",\n \"notContains\": \"ไม่มี\"\n },\n \"calculation\": {\n \"each\": \"แต่ละ\",\n \"total\": \"รวม\"\n },\n \"dateType\": {\n \"today\": \"วันเดียวกัน\",\n \"notToday\": \"วันอื่น\"\n },\n \"callStatus\": {\n \"answered\": \"รับสายแล้ว\",\n \"missed\": \"ไม่รับสาย\",\n \"busy\": \"สายไม่ว่าง\",\n \"unreachable\": \"ติดต่อไม่ได้\",\n \"callFailed\": \"โทรไม่สำเร็จ\",\n \"rejected\": \"ปฏิเสธ\",\n \"emptyNumber\": \"หมายเลขไม่ถูกต้อง\",\n \"poweredOff\": \"ปิดเครื่อง\",\n \"suspended\": \"ระงับบริการ\",\n \"arrears\": \"ยอดเงินไม่เพียงพอ\",\n \"lineFault\": \"สายขัดข้อง\",\n \"numberChanged\": \"เปลี่ยนหมายเลข\",\n \"dailyLimit\": \"ถึงขีดจำกัดรายวัน\",\n \"blacklist\": \"บัญชีดำ\"\n }\n },\n \"conditions\": {\n \"condition\": \"เงื่อนไข\",\n \"add\": \"+ เพิ่มเงื่อนไข\",\n \"delete\": \"- ลบเงื่อนไข\",\n \"logicOr\": \"หรือ\"\n },\n \"keywords\": {\n \"placeholder\": \"ป้อนคำสำคัญแล้วกด Enter คั่นหลายคำด้วย #\",\n \"someLimitDesc\": \"คำสำคัญเกินจำนวนอักขระ\",\n \"allLimitDesc\": \"จำนวนอักขระรวมเกินขีดจำกัด\",\n \"matchDesc\": \"คำสำคัญของสาขานี้\",\n \"priorityRecommendDesc\": \"(แนะนำคำสำคัญ)\",\n \"copyAllDesc\": \"คัดลอกทั้งหมด\",\n \"delAllDesc\": \"ลบทั้งหมด\",\n \"noKeywordDesc\": \"ไม่มีคำสำคัญ\",\n \"copySucessDesc\": \"คัดลอกแล้ว\",\n \"alreadyExistDesc\": \"มีคำสำคัญนี้แล้ว\",\n \"correctDesc\": \"กรุณาแก้ไข\",\n \"incorrectRegDesc\": \"นิพจน์ทั่วไปไม่ถูกต้อง\"\n },\n \"variableSelect\": {\n \"placeholder\": \"ค้นหาตามชื่อตัวแปร\"\n },\n \"transferSelect\": {\n \"all\": \"เลือกทั้งหมด\",\n \"selected\": \"เลือกแล้ว\"\n }\n}\n","export default {\n \"searchForm\": {\n \"startDate\": \"วันที่เริ่มต้น\",\n \"endDate\": \"วันที่สิ้นสุด\",\n \"startTime\": \"เวลาเริ่มต้น\",\n \"endTime\": \"เวลาสิ้นสุด\",\n \"query\": \"ค้นหา\",\n \"export\": \"ส่งออก\",\n \"reset\": \"รีเซ็ต\",\n \"settings\": \"ตั้งค่าตัวกรอง\",\n \"addFields\": \"เพิ่มตัวกรอง\",\n \"unsupported\": \"ยังไม่ได้ย้าย {name} โปรดใช้คอมโพเนนต์ Vue 3 หรือสล็อต\"\n },\n \"table\": {\n \"settings\": \"ตั้งค่าคอลัมน์\",\n \"basicField\": \"ฟิลด์พื้นฐาน\",\n \"search\": \"ค้นหา\",\n \"fixedLeft\": \"ตรึงด้านซ้าย\",\n \"clear\": \"ล้าง\",\n \"noFixed\": \"เลิกตรึง\",\n \"selectEmpty\": \"เลือกอย่างน้อยหนึ่งฟิลด์\",\n \"selected\": \"เลือกแล้ว ({length})\",\n \"all\": \"เลือกทั้งหมด ({length})\",\n \"moveUp\": \"เลื่อนขึ้น\",\n \"moveDown\": \"เลื่อนลง\",\n \"resizeColumn\": \"ปรับความกว้างคอลัมน์การทำงาน\"\n }\n}\n\n","import selectors from '../selectors/th'\nimport dataComponents from '../data-components/th'\nimport type { Language } from '../types'\n\nconst th: Language = {\n name: 'th',\n messages: {\n datePicker: {\"firstHalf\":\"ครึ่งปีแรก\",\"secondHalf\":\"ครึ่งปีหลัง\",\"halfYear\":\"{half} {year}\",\"halfYearPlaceholder\":\"เลือกครึ่งปี\",\"halfYearRangePlaceholder\":\"เลือกช่วงครึ่งปี\",\"startHalfYear\":\"ครึ่งปีเริ่มต้น\",\"endHalfYear\":\"ครึ่งปีสิ้นสุด\",\"startWeek\":\"สัปดาห์เริ่มต้น\",\"endWeek\":\"สัปดาห์สิ้นสุด\",\"previousYear\":\"ปีก่อนหน้า\",\"nextYear\":\"ปีถัดไป\",\"clear\":\"ล้าง\"},\n searchForm: dataComponents.searchForm,\n table: dataComponents.table,\n rules: selectors.rules,\n conditions: selectors.conditions,\n keywords: selectors.keywords,\n variableSelect: selectors.variableSelect,\n transferSelect: selectors.transferSelect,\n audio: {\n speed: \"ความเร็ว\",\n download: \"ดาวน์โหลด\",\n copyAddress: \"คัดลอกที่อยู่\",\n openWindow: \"เปิดในหน้าต่างใหม่\",\n unavailable: \"ยังไม่ได้โหลดเสียง\",\n crossTime: \"เวลาสิ้นสุดต้องมากกว่าเวลาเริ่มต้น\",\n jump: \"ข้าม\",\n play: \"เล่น\",\n pause: \"หยุดชั่วคราว\",\n progress: \"ความคืบหน้าการเล่น\",\n volume: \"ระดับเสียง\",\n },\n importTemplate: {\n fileTypeError: 'รองรับเฉพาะไฟล์ {formats}',\n fileSizeError: 'ขนาดไฟล์ต้องน้อยกว่า {size} MiB',\n errorDetails: 'ดูรายละเอียดข้อผิดพลาด',\n },\n common: {\n ...selectors.common,\n expand: \"ขยาย\",\n collapse: \"ย่อ\",\n more: \"เพิ่มเติม\",\n copySuccess: \"คัดลอกแล้ว\",\n close: 'ปิด',\n confirm: 'ยืนยัน',\n cancel: 'ยกเลิก',\n loading: 'กำลังโหลด',\n empty: 'ไม่มีข้อมูล',\n },\n empty: {\n internet: 'เชื่อมต่อเครือข่ายไม่สำเร็จ', message: 'ไม่มีข้อความ', server: 'เซิร์ฟเวอร์เกิดข้อผิดพลาด', loading: 'โหลดไม่สำเร็จ',\n authority: 'ไม่มีสิทธิ์', call: 'โทรไม่สำเร็จ กรุณาโทรใหม่', seat: 'ไม่มีที่นั่งว่าง',\n },\n },\n}\n\nexport default th\n\n","export default {\n \"common\": {\n \"searchContent\": \"Ilagay ang teksto sa paghahanap\",\n \"copy\": \"Kopyahin\",\n \"noData\": \"Walang datos\",\n \"noMatch\": \"Walang tugma\",\n \"all\": \"Lahat\",\n \"placeholderSelect\": \"Pumili\",\n \"placeholderEnter\": \"Maglagay ng halaga\",\n \"startDate\": \"Petsa ng simula\",\n \"endDate\": \"Petsa ng pagtatapos\",\n \"startTime\": \"Oras ng simula\",\n \"endTime\": \"Oras ng pagtatapos\",\n \"clear\": \"I-clear\",\n \"remove\": \"Alisin\"\n },\n \"rules\": {\n \"logicAnd\": \"at\",\n \"numberRequire\": \"Maglagay ng numero\",\n \"commonLenLimit\": \"Hindi maaaring lumampas sa 2000 character\",\n \"prohibitEmpty\": \"Hindi maaaring walang laman\",\n \"paramsLenLimit\": \"Hanggang 50 ASCII character\",\n \"timeRangePlaceholder\": \"Pumili ng saklaw ng oras\",\n \"dateRangePlaceholder\": \"Pumili ng saklaw ng petsa\",\n \"split\": \"Paghiwalayin ang mga entry gamit ang #\",\n \"times\": \"beses\",\n \"second\": \"s\",\n \"ruleType\": {\n \"intentionTag\": \"Tag ng interes\",\n \"personalTag\": \"Personal na tag\",\n \"replyKeyword\": \"Keyword ng tugon\",\n \"customTag\": \"Custom na tag\",\n \"importTime\": \"Oras ng pag-import\",\n \"callTime\": \"Panahon ng tawag\",\n \"currentTime\": \"Kasalukuyang oras\",\n \"callDuration\": \"Tagal ng tawag\",\n \"dialogueRounds\": \"Bilang ng usapan\",\n \"callCount\": \"Bilang ng tawag\",\n \"param\": \"Parameter\",\n \"callStatus\": \"Katayuan ng tawag\"\n },\n \"operator\": {\n \"isEmpty\": \"Walang laman\",\n \"notEmpty\": \"May laman\",\n \"contains\": \"Naglalaman\",\n \"notContains\": \"Hindi naglalaman\"\n },\n \"calculation\": {\n \"each\": \"Bawat\",\n \"total\": \"Kabuuan\"\n },\n \"dateType\": {\n \"today\": \"Parehong araw\",\n \"notToday\": \"Ibang araw\"\n },\n \"callStatus\": {\n \"answered\": \"Sinagot\",\n \"missed\": \"Hindi sinagot\",\n \"busy\": \"Abala\",\n \"unreachable\": \"Hindi makontak\",\n \"callFailed\": \"Nabigo ang tawag\",\n \"rejected\": \"Tinanggihan\",\n \"emptyNumber\": \"Hindi wastong numero\",\n \"poweredOff\": \"Naka-off\",\n \"suspended\": \"Suspendido\",\n \"arrears\": \"Kulang ang balanse\",\n \"lineFault\": \"Sira ang linya\",\n \"numberChanged\": \"Nagbago ang numero\",\n \"dailyLimit\": \"Naabot ang arawang limitasyon\",\n \"blacklist\": \"Blacklist\"\n }\n },\n \"conditions\": {\n \"condition\": \"Kondisyon\",\n \"add\": \"+ Magdagdag ng kondisyon\",\n \"delete\": \"- Alisin ang kondisyon\",\n \"logicOr\": \"o\"\n },\n \"keywords\": {\n \"placeholder\": \"Ilagay ang mga keyword at pindutin ang Enter. Paghiwalayin gamit ang #\",\n \"someLimitDesc\": \"Lampas sa limitasyon ang isang keyword\",\n \"allLimitDesc\": \"Lampas sa kabuuang limitasyon ng character\",\n \"matchDesc\": \"Mga keyword ng sangay na ito\",\n \"priorityRecommendDesc\": \"(Inirerekomenda ang mga keyword)\",\n \"copyAllDesc\": \"Kopyahin lahat\",\n \"delAllDesc\": \"Alisin lahat\",\n \"noKeywordDesc\": \"Walang keyword\",\n \"copySucessDesc\": \"Nakopya\",\n \"alreadyExistDesc\": \"Mayroon nang ganitong keyword\",\n \"correctDesc\": \"Pak iwasto\",\n \"incorrectRegDesc\": \"Hindi wastong regular expression\"\n },\n \"variableSelect\": {\n \"placeholder\": \"Hanapin ayon sa pangalan ng variable\"\n },\n \"transferSelect\": {\n \"all\": \"Piliin lahat\",\n \"selected\": \"Napili\"\n }\n}\n","export default {\n \"searchForm\": {\n \"startDate\": \"Petsa ng simula\",\n \"endDate\": \"Petsa ng pagtatapos\",\n \"startTime\": \"Oras ng simula\",\n \"endTime\": \"Oras ng pagtatapos\",\n \"query\": \"Maghanap\",\n \"export\": \"I-export\",\n \"reset\": \"I-reset\",\n \"settings\": \"Ayusin ang mga filter\",\n \"addFields\": \"Magdagdag ng filter\",\n \"unsupported\": \"Hindi pa naililipat ang {name}. Gumamit ng Vue 3 component o slot.\"\n },\n \"table\": {\n \"settings\": \"Ayusin ang mga column\",\n \"basicField\": \"Mga pangunahing field\",\n \"search\": \"Maghanap\",\n \"fixedLeft\": \"I-pin sa kaliwa\",\n \"clear\": \"I-clear\",\n \"noFixed\": \"Alisin ang pin\",\n \"selectEmpty\": \"Pumili ng kahit isang field\",\n \"selected\": \"Napili ({length})\",\n \"all\": \"Piliin lahat ({length})\",\n \"moveUp\": \"Itaas\",\n \"moveDown\": \"Ibaba\",\n \"resizeColumn\": \"Baguhin ang lapad ng aksyon\"\n }\n}\n\n","import selectors from '../selectors/tl'\nimport dataComponents from '../data-components/tl'\nimport type { Language } from '../types'\n\nconst tl: Language = {\n name: 'tl',\n messages: {\n datePicker: {\"firstHalf\":\"Unang kalahati\",\"secondHalf\":\"Ikalawang kalahati\",\"halfYear\":\"{half} ng {year}\",\"halfYearPlaceholder\":\"Pumili ng kalahating taon\",\"halfYearRangePlaceholder\":\"Pumili ng saklaw ng kalahating taon\",\"startHalfYear\":\"Simulang kalahating taon\",\"endHalfYear\":\"Huling kalahating taon\",\"startWeek\":\"Simulang linggo\",\"endWeek\":\"Huling linggo\",\"previousYear\":\"Nakaraang taon\",\"nextYear\":\"Susunod na taon\",\"clear\":\"I-clear\"},\n searchForm: dataComponents.searchForm,\n table: dataComponents.table,\n rules: selectors.rules,\n conditions: selectors.conditions,\n keywords: selectors.keywords,\n variableSelect: selectors.variableSelect,\n transferSelect: selectors.transferSelect,\n audio: {\n speed: \"Bilis\",\n download: \"I-download\",\n copyAddress: \"Kopyahin ang address\",\n openWindow: \"Buksan sa bagong window\",\n unavailable: \"Hindi pa na-load ang audio\",\n crossTime: \"Dapat mas huli ang oras ng pagtatapos kaysa simula\",\n jump: \"Tumalon\",\n play: \"I-play\",\n pause: \"I-pause\",\n progress: \"Progreso ng pag-play\",\n volume: \"Lakas ng tunog\",\n },\n importTemplate: {\n fileTypeError: 'Mga {formats} file lamang ang sinusuportahan',\n fileSizeError: 'Dapat mas maliit sa {size} MiB ang file',\n errorDetails: 'Tingnan ang detalye ng error',\n },\n common: {\n ...selectors.common,\n expand: \"Palawakin\",\n collapse: \"Paliitin\",\n more: \"Higit pa\",\n copySuccess: \"Nakopya\",\n close: 'Isara',\n confirm: 'Kumpirmahin',\n cancel: 'Kanselahin',\n loading: 'Naglo-load',\n empty: 'Walang data',\n },\n empty: {\n internet: 'Nabigo ang koneksyon sa network', message: 'Walang mensahe', server: 'Error sa server', loading: 'Nabigo ang pag-load',\n authority: 'Walang pahintulot', call: 'Nabigo ang tawag, pakitawagan muli', seat: 'Walang available na upuan',\n },\n },\n}\n\nexport default tl\n\n","export default {\n \"common\": {\n \"searchContent\": \"Digite o texto de pesquisa\",\n \"copy\": \"Copiar\",\n \"noData\": \"Sem dados\",\n \"noMatch\": \"Nenhuma correspondência\",\n \"all\": \"Todos\",\n \"placeholderSelect\": \"Selecione\",\n \"placeholderEnter\": \"Digite um valor\",\n \"startDate\": \"Data inicial\",\n \"endDate\": \"Data final\",\n \"startTime\": \"Hora inicial\",\n \"endTime\": \"Hora final\",\n \"clear\": \"Limpar\",\n \"remove\": \"Remover\"\n },\n \"rules\": {\n \"logicAnd\": \"e\",\n \"numberRequire\": \"Digite um número\",\n \"commonLenLimit\": \"O comprimento não pode exceder 2000 caracteres\",\n \"prohibitEmpty\": \"Não pode estar vazio\",\n \"paramsLenLimit\": \"Até 50 caracteres ASCII\",\n \"timeRangePlaceholder\": \"Selecione um intervalo de tempo\",\n \"dateRangePlaceholder\": \"Selecione um intervalo de datas\",\n \"split\": \"Separe as entradas com #\",\n \"times\": \"vezes\",\n \"second\": \"s\",\n \"ruleType\": {\n \"intentionTag\": \"Etiqueta de intenção\",\n \"personalTag\": \"Etiqueta pessoal\",\n \"replyKeyword\": \"Palavra-chave de resposta\",\n \"customTag\": \"Etiqueta personalizada\",\n \"importTime\": \"Hora de importação\",\n \"callTime\": \"Período de chamada\",\n \"currentTime\": \"Hora atual\",\n \"callDuration\": \"Duração da chamada\",\n \"dialogueRounds\": \"Rodadas de diálogo\",\n \"callCount\": \"Tentativas de chamada\",\n \"param\": \"Parâmetro\",\n \"callStatus\": \"Estado da chamada\"\n },\n \"operator\": {\n \"isEmpty\": \"Está vazio\",\n \"notEmpty\": \"Não está vazio\",\n \"contains\": \"Contém\",\n \"notContains\": \"Não contém\"\n },\n \"calculation\": {\n \"each\": \"Cada\",\n \"total\": \"Total\"\n },\n \"dateType\": {\n \"today\": \"Mesmo dia\",\n \"notToday\": \"Outro dia\"\n },\n \"callStatus\": {\n \"answered\": \"Atendida\",\n \"missed\": \"Não atendida\",\n \"busy\": \"Ocupado\",\n \"unreachable\": \"Inacessível\",\n \"callFailed\": \"Falha na chamada\",\n \"rejected\": \"Rejeitada\",\n \"emptyNumber\": \"Número inválido\",\n \"poweredOff\": \"Desligado\",\n \"suspended\": \"Suspenso\",\n \"arrears\": \"Saldo insuficiente\",\n \"lineFault\": \"Falha de linha\",\n \"numberChanged\": \"Número alterado\",\n \"dailyLimit\": \"Limite diário atingido\",\n \"blacklist\": \"Lista de bloqueio\"\n }\n },\n \"conditions\": {\n \"condition\": \"Condição\",\n \"add\": \"+ Adicionar condição\",\n \"delete\": \"- Excluir condição\",\n \"logicOr\": \"ou\"\n },\n \"keywords\": {\n \"placeholder\": \"Digite palavras-chave e pressione Enter. Separe-as com #\",\n \"someLimitDesc\": \"Uma palavra-chave excede o limite\",\n \"allLimitDesc\": \"Limite total de caracteres excedido\",\n \"matchDesc\": \"Palavras-chave deste ramo\",\n \"priorityRecommendDesc\": \"(Palavras-chave recomendadas)\",\n \"copyAllDesc\": \"Copiar tudo\",\n \"delAllDesc\": \"Excluir tudo\",\n \"noKeywordDesc\": \"Sem palavras-chave\",\n \"copySucessDesc\": \"Copiado\",\n \"alreadyExistDesc\": \"A palavra-chave já existe\",\n \"correctDesc\": \"Corrija\",\n \"incorrectRegDesc\": \"Expressão regular inválida\"\n },\n \"variableSelect\": {\n \"placeholder\": \"Pesquisar por nome da variável\"\n },\n \"transferSelect\": {\n \"all\": \"Selecionar todos\",\n \"selected\": \"Selecionados\"\n }\n}\n","export default {\n \"searchForm\": {\n \"startDate\": \"Data inicial\",\n \"endDate\": \"Data final\",\n \"startTime\": \"Hora inicial\",\n \"endTime\": \"Hora final\",\n \"query\": \"Pesquisar\",\n \"export\": \"Exportar\",\n \"reset\": \"Redefinir\",\n \"settings\": \"Configurar filtros\",\n \"addFields\": \"Adicionar filtros\",\n \"unsupported\": \"O controle {name} não foi migrado. Use um componente Vue 3 ou slot.\"\n },\n \"table\": {\n \"settings\": \"Configurar colunas\",\n \"basicField\": \"Campos básicos\",\n \"search\": \"Pesquisar\",\n \"fixedLeft\": \"Fixar à esquerda\",\n \"clear\": \"Limpar\",\n \"noFixed\": \"Desafixar\",\n \"selectEmpty\": \"Selecione pelo menos um campo\",\n \"selected\": \"Selecionados ({length})\",\n \"all\": \"Selecionar tudo ({length})\",\n \"moveUp\": \"Mover para cima\",\n \"moveDown\": \"Mover para baixo\",\n \"resizeColumn\": \"Redimensionar coluna de ações\"\n }\n}\n\n","import selectors from '../selectors/pt'\nimport dataComponents from '../data-components/pt'\nimport type { Language } from '../types'\n\nconst pt: Language = {\n name: 'pt',\n messages: {\n datePicker: {\"firstHalf\":\"Primeiro semestre\",\"secondHalf\":\"Segundo semestre\",\"halfYear\":\"{half} de {year}\",\"halfYearPlaceholder\":\"Selecionar semestre\",\"halfYearRangePlaceholder\":\"Selecionar intervalo semestral\",\"startHalfYear\":\"Semestre inicial\",\"endHalfYear\":\"Semestre final\",\"startWeek\":\"Semana inicial\",\"endWeek\":\"Semana final\",\"previousYear\":\"Ano anterior\",\"nextYear\":\"Próximo ano\",\"clear\":\"Limpar\"},\n searchForm: dataComponents.searchForm,\n table: dataComponents.table,\n rules: selectors.rules,\n conditions: selectors.conditions,\n keywords: selectors.keywords,\n variableSelect: selectors.variableSelect,\n transferSelect: selectors.transferSelect,\n audio: {\n speed: \"Velocidade\",\n download: \"Baixar\",\n copyAddress: \"Copiar endereço\",\n openWindow: \"Abrir em nova janela\",\n unavailable: \"O áudio não foi carregado\",\n crossTime: \"O fim deve ser posterior ao início\",\n jump: \"Saltar\",\n play: \"Reproduzir\",\n pause: \"Pausar\",\n progress: \"Progresso da reprodução\",\n volume: \"Volume\",\n },\n importTemplate: {\n fileTypeError: 'Apenas arquivos {formats} são aceitos',\n fileSizeError: 'O arquivo deve ter menos de {size} MiB',\n errorDetails: 'Ver detalhes do erro',\n },\n common: {\n ...selectors.common,\n expand: \"Expandir\",\n collapse: \"Recolher\",\n more: \"Mais\",\n copySuccess: \"Copiado\",\n close: 'Fechar',\n confirm: 'Confirmar',\n cancel: 'Cancelar',\n loading: 'Carregando',\n empty: 'Sem dados',\n },\n empty: {\n internet: 'Falha na conexão de rede', message: 'Nenhuma mensagem', server: 'Erro no servidor', loading: 'Falha ao carregar',\n authority: 'Sem permissão', call: 'Falha na chamada, ligue novamente', seat: 'Nenhum posto disponível',\n },\n },\n}\n\nexport default pt\n\n","import { computed, getCurrentInstance, inject, onBeforeUpdate, shallowRef, unref, type AppContext, type ComputedRef, type InjectionKey } from 'vue'\n\nexport type ComponentDefaults = Readonly<Record<string, unknown>>\nexport type ComponentConfig = Readonly<Record<string, ComponentDefaults | undefined>>\n\n// Shared by independently bundled components and the full library.\nexport const componentConfigKey = Symbol.for('@94ai-plus/components/config') as InjectionKey<ComputedRef<ComponentConfig>>\n\n/** Undefined inherits. Objects/arrays/functions are values, not deep-merge targets. */\nexport function mergeComponentDefaults<T extends object>(parent: T, local?: Partial<T>): T {\n const result = { ...parent }\n if (local) for (const key of Object.keys(local) as (keyof T)[]) {\n if (local[key] !== undefined) result[key] = local[key] as T[keyof T]\n }\n return result\n}\n\nexport function mergeComponentConfig(parent: ComponentConfig, local: ComponentConfig): ComponentConfig {\n const result = { ...parent }\n for (const key of Object.keys(local)) {\n if (local[key]) result[key] = mergeComponentDefaults(parent[key] ?? {}, local[key])\n }\n return result\n}\n\n/** Resolve Vue defaults only after explicit props and the nearest provider. */\nexport function useComponentDefaults<T extends object>(rawProps: T, name: string, fallbackName?: string): T {\n const instance = getCurrentInstance()\n const config = inject(componentConfigKey, computed<ComponentConfig>(() => ({})))\n const supplied = shallowRef(instance?.vnode.props)\n onBeforeUpdate(() => { supplied.value = instance?.vnode.props })\n return new Proxy(rawProps, {\n get(target, key, receiver) {\n const value = Reflect.get(target, key, receiver)\n if (typeof key !== 'string' || !(key in target)) return value\n const kebab = key.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`)\n if (supplied.value?.[key] !== undefined || supplied.value?.[kebab] !== undefined) return value\n const defaults = config.value[name]\n if (defaults?.[key] !== undefined) return defaults[key]\n const fallback = fallbackName ? config.value[fallbackName] : undefined\n return fallback?.[key] !== undefined ? fallback[key] : value\n },\n })\n}\n\n/** Services resolve defaults in their owning app/provider, never a global singleton. */\nexport function resolveComponentDefaults<T extends object>(context: AppContext | undefined, name: string, options: T): T {\n const config = context?.provides[componentConfigKey as symbol] as ComputedRef<ComponentConfig> | undefined\n return mergeComponentDefaults((unref(config)?.[name] ?? {}) as T, options)\n}\n","import {\n computed,\n inject,\n readonly,\n ref,\n shallowReactive,\n type App,\n type InjectionKey,\n type Ref,\n} from 'vue'\nimport enUs from './lang/en-us'\nimport zhCn from './lang/zh-cn'\nimport ja from './lang/ja'\nimport es from './lang/es'\nimport id from './lang/id'\nimport th from './lang/th'\nimport tl from './lang/tl'\nimport pt from './lang/pt'\nimport type {\n Language,\n LocaleContext,\n LocaleMessage,\n LocaleMessages,\n TranslateOptions,\n VueI18nComposerLike,\n} from './types'\n\nexport * from './types'\nexport * from './languages'\nexport * from './component-config'\nexport { default as enUs } from './lang/en-us'\nexport { default as zhCn } from './lang/zh-cn'\nexport { default as ja } from './lang/ja'\nexport { default as es } from './lang/es'\nexport { default as id } from './lang/id'\nexport { default as th } from './lang/th'\nexport { default as tl } from './lang/tl'\nexport { default as pt } from './lang/pt'\n\nexport const localeContextKey: InjectionKey<LocaleContext> = Symbol.for('@94ai-plus/common-locale/context')\n\nfunction lookup(messages: LocaleMessages, path: string): LocaleMessage | undefined {\n return path.split('.').reduce<LocaleMessage | undefined>((current, segment) => {\n if (typeof current === 'object' && current !== null) return current[segment]\n return undefined\n }, messages)\n}\n\nfunction interpolate(message: string, values: TranslateOptions = {}): string {\n return message.replace(/\\{([^}]+)\\}/g, (_match, key: string) => String(values[key] ?? `{${key}}`))\n}\n\nexport function createLocale(initial: Language = zhCn): LocaleContext {\n const languages = shallowReactive(new Map<string, Language>([\n [zhCn.name, zhCn],\n [enUs.name, enUs],\n ...[ja, es, id, th, tl, pt].map((language) => [language.name, language] as [string, Language]),\n [initial.name, initial],\n ]))\n const locale = ref(initial.name)\n const messages = computed(() => languages.get(locale.value)?.messages ?? initial.messages)\n\n return {\n locale: readonly(locale) as Readonly<Ref<string>>,\n messages,\n registerLanguage(language) {\n languages.set(language.name, language)\n },\n setLocale(name) {\n if (!languages.has(name)) throw new Error(`Locale \"${name}\" has not been registered.`)\n locale.value = name\n },\n t(path, values) {\n const message = lookup(messages.value, path)\n return typeof message === 'string' ? interpolate(message, values) : path\n },\n }\n}\n\nconst fallbackLocale = createLocale()\n\nexport function installLocale(app: App, context: LocaleContext): void {\n app.provide(localeContextKey, context)\n}\n\nexport function useLocale(): LocaleContext {\n return inject(localeContextKey, fallbackLocale)\n}\n\nexport function t(path: string, values?: TranslateOptions): string {\n return fallbackLocale.t(path, values)\n}\n\nexport function createVueI18nAdapter(composer: VueI18nComposerLike): LocaleContext {\n return {\n locale: readonly(computed(() => composer.locale.value)),\n messages: computed(() => ({})),\n registerLanguage() {},\n setLocale(name) {\n composer.locale.value = name\n },\n t: (path, values) => composer.t(path, values),\n }\n}\n\n","import { dayjs } from 'element-plus'\nimport type { DatePickerValue } from './types'\n\nexport function readDate(value: DatePickerValue | null | undefined, format?: string): Date | undefined {\n if (value == null || value === '') return undefined\n const result = typeof value === 'string' && format ? dayjs(value, format) : dayjs(value)\n return result.isValid() ? result.toDate() : undefined\n}\nexport function halfYearStart(value: Date): Date {\n const result = new Date(value.getTime())\n result.setMonth(value.getMonth() < 6 ? 0 : 6, 1)\n result.setHours(0, 0, 0, 0)\n return result\n}\nexport function normalizeWeekRange(values: Date[], locale: string, weekStartsOn?: number): [Date, Date] {\n const sorted = [...values].sort((a, b) => a.getTime() - b.getTime())\n const start = dayjs(sorted[0]).locale(locale).startOf('day')\n const end = dayjs(sorted[sorted.length - 1]).locale(locale).startOf('day')\n if (weekStartsOn == null) return [start.startOf('week').toDate(), end.endOf('week').startOf('day').toDate()]\n return [start.subtract((start.day() - weekStartsOn + 7) % 7, 'day').toDate(), end.add((weekStartsOn + 6 - end.day() + 7) % 7, 'day').toDate()]\n}\nexport function writeDate(value: Date, format?: string): Date | string {\n return format ? dayjs(value).format(format) : new Date(value.getTime())\n}\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { ElDatePicker, ElPopover, dayjs, useGlobalConfig, useFormItem, useFormDisabled, useFormSize, type DatePickerInstance } from 'element-plus'\nimport { useLocale } from '@94ai-plus/common-locale'\nimport { halfYearStart, normalizeWeekRange, readDate, writeDate } from './model'\nimport type { DatePickerModelValue, NfDatePickerEmits, NfDatePickerProps } from './types'\n\ndefineOptions({ name: 'NfDatePicker', inheritAttrs: false })\nconst rawProps = withDefaults(defineProps<NfDatePickerProps>(), { type: 'halfyear', disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfDatePicker')\nconst emit = defineEmits<NfDatePickerEmits>()\nconst inheritedDisabled = useFormDisabled()\nconst disabled = computed(() => props.disabled || inheritedDisabled.value)\nconst { formItem } = useFormItem()\nconst { t } = useLocale()\nconst globalLocale = useGlobalConfig('locale')\nconst inheritedSize = useFormSize()\nconst size = computed(() => props.size || inheritedSize.value || 'default')\nconst isRange = computed(() => props.type !== 'halfyear')\nconst values = computed(() => (Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue]).flatMap(value => {\n const parsed = readDate(value, props.valueFormat)\n return parsed ? [halfYearStart(parsed)] : []\n}))\nconst visible = ref(false), draft = ref<Date>(), hover = ref<Date>(), year = ref(new Date().getFullYear())\nconst trigger = ref<HTMLElement>(), panel = ref<HTMLElement>(), weekPicker = ref<DatePickerInstance>()\nconst years = computed(() => isRange.value ? [year.value, year.value + 1] : [year.value])\nfunction panelDate(year: number, month: number) {\n const date = new Date(year, month, 1)\n // The numeric Date constructor maps years 0–99 to 1900–1999.\n date.setFullYear(year)\n return date\n}\nconst firstYear = () => values.value[0]?.getFullYear() ?? (Array.isArray(props.defaultValue) ? props.defaultValue[0] : props.defaultValue)?.getFullYear() ?? new Date().getFullYear()\nwatch(visible, value => {\n if (value) { year.value = firstYear(); draft.value = undefined; hover.value = undefined }\n emit('visible-change', value)\n})\nwatch(disabled, value => { if (value) handleClose() })\nwatch(() => props.modelValue, () => {\n draft.value = undefined; hover.value = undefined\n if (props.type !== 'weekrange') void formItem?.validate('change').catch(() => undefined)\n}, { flush: 'post' })\nfunction label(date?: Date) { return date ? t('datePicker.halfYear', { year: date.getFullYear(), half: t(date.getMonth() < 6 ? 'datePicker.firstHalf' : 'datePicker.secondHalf') }) : '' }\nconst display = computed(() => values.value.map(value => props.format ? dayjs(value).format(props.format) : label(value)))\nconst selected = (date: Date) => values.value.some(value => value.getTime() === date.getTime())\nconst dateDisabled = (date: Date) => props.disabledDate?.(date) ?? false\nfunction inRange(date: Date) {\n const ends = draft.value ? [draft.value, hover.value ?? draft.value] : values.value\n if (ends.length < 2) return false\n const times = ends.map(value => value.getTime())\n return date.getTime() >= Math.min(...times) && date.getTime() <= Math.max(...times)\n}\nfunction commit(value: DatePickerModelValue) {\n emit('update:modelValue', value); emit('change', value)\n}\nfunction triggerBlur(event: FocusEvent) {\n emit('blur', event)\n void formItem?.validate('blur').catch(() => undefined)\n}\nfunction select(date: Date) {\n if (disabled.value || dateDisabled(date)) return\n if (!isRange.value) commit(writeDate(date, props.valueFormat))\n else if (!draft.value) { draft.value = date; hover.value = date; emit('calendar-change', [date, null]); return }\n else {\n const dates = [draft.value, date].sort((a, b) => a.getTime() - b.getTime())\n emit('calendar-change', dates)\n commit(dates.map(value => writeDate(value, props.valueFormat)))\n }\n visible.value = false\n void nextTick(() => trigger.value?.focus())\n}\nfunction clear() { if (!disabled.value) { draft.value = undefined; commit(null); emit('clear') } }\nfunction handleOpen() { if (!disabled.value) { if (props.type === 'weekrange') weekPicker.value?.handleOpen(); else visible.value = true } }\nfunction handleClose() { visible.value = false; weekPicker.value?.handleClose() }\nfunction focus() { if (props.type === 'weekrange') weekPicker.value?.focus(); else trigger.value?.focus() }\nfunction blur() { if (props.type === 'weekrange') weekPicker.value?.blur(); else trigger.value?.blur() }\nfunction keydown(event: KeyboardEvent) {\n if (event.key === 'Escape') { handleClose(); focus() }\n else if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n event.preventDefault(); handleOpen()\n void nextTick(() => panel.value?.querySelector<HTMLButtonElement>('.nf-date-picker-cell:not(:disabled)')?.focus())\n }\n}\nfunction cellKeydown(event: KeyboardEvent, date: Date) {\n if (event.key === 'Escape') { handleClose(); focus(); return }\n const delta = ({ ArrowLeft: -6, ArrowRight: 6, ArrowUp: -12, ArrowDown: 12 } as Record<string, number>)[event.key]\n if (!delta) return\n event.preventDefault()\n const next = dayjs(date).add(delta, 'month').toDate()\n if (next.getFullYear() < 1 || next.getFullYear() > 9998) return\n if (!years.value.includes(next.getFullYear())) year.value = next.getFullYear()\n void nextTick(() => panel.value?.querySelector<HTMLButtonElement>(`[data-date=\"${dayjs(next).format('YYYY-MM-DD')}\"]`)?.focus())\n}\nconst weekValue = computed(() => Array.isArray(props.modelValue) ? props.modelValue.map(value => readDate(value, props.valueFormat)).filter((value): value is Date => !!value) : [])\nfunction updateWeek(value: DatePickerModelValue | undefined) {\n if (disabled.value) return\n if (!Array.isArray(value)) { commit(null); return }\n if (!value?.length) { commit(null); return }\n const parsed = value.map(item => readDate(item)).filter((item): item is Date => !!item)\n if (parsed.length !== 2 || parsed.some(weekDisabled)) return\n const dates = normalizeWeekRange(parsed, globalLocale.value?.name ?? 'en', props.weekStartsOn)\n commit(dates.map(date => writeDate(date, props.valueFormat)))\n}\nfunction weekDisabled(date: Date) {\n if (!props.disabledDate) return false\n const [start] = normalizeWeekRange([date], globalLocale.value?.name ?? 'en', props.weekStartsOn)\n return Array.from({ length: 7 }, (_, index) => dayjs(start).add(index, 'day').toDate()).some(dateDisabled)\n}\nfunction weekCellClass(date: Date) {\n if (weekValue.value.length !== 2) return ''\n const [start, end] = normalizeWeekRange(weekValue.value, globalLocale.value?.name ?? 'en', props.weekStartsOn)\n return date >= start && date <= end ? 'nf-week-range-selected' : ''\n}\ndefineExpose({ focus, blur, handleOpen, handleClose })\n</script>\n<template>\n <ElDatePicker v-if=\"props.type === 'weekrange'\" ref=\"weekPicker\" v-bind=\"$attrs\" class=\"nf-date-picker nf-week-range-picker\" type=\"daterange\" :model-value=\"weekValue\" :size=\"size\" :disabled=\"disabled\" :clearable=\"props.clearable\" :format=\"props.format\" :default-value=\"props.defaultValue\" :disabled-date=\"weekDisabled\" :teleported=\"props.teleported\" :popper-class=\"['nf-week-range-popper', props.popperClass].filter(Boolean).join(' ')\" :start-placeholder=\"props.startPlaceholder ?? t('datePicker.startWeek')\" :end-placeholder=\"props.endPlaceholder ?? t('datePicker.endWeek')\" :cell-class-name=\"weekCellClass\" @update:model-value=\"updateWeek\" @clear=\"emit('clear')\" @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\" @focus=\"emit('focus', $event)\" @blur=\"triggerBlur\" />\n <ElPopover v-else v-model:visible=\"visible\" trigger=\"click\" placement=\"bottom-start\" :disabled=\"disabled\" :teleported=\"props.teleported\" :popper-class=\"['nf-date-picker-popper', props.popperClass].filter(Boolean).join(' ')\" :width=\"isRange ? 576 : 288\" :show-arrow=\"false\">\n <template #reference>\n <div ref=\"trigger\" v-bind=\"$attrs\" class=\"nf-date-picker nf-date-picker-reference el-input__wrapper\" :class=\"['is-' + size, { 'is-disabled': disabled, 'is-focus': visible, 'is-range': isRange }]\" role=\"combobox\" :aria-expanded=\"visible\" aria-haspopup=\"dialog\" :aria-disabled=\"disabled\" :aria-label=\"props.placeholder ?? t(isRange ? 'datePicker.halfYearRangePlaceholder' : 'datePicker.halfYearPlaceholder')\" :tabindex=\"disabled ? -1 : 0\" @keydown=\"keydown\" @focus=\"emit('focus', $event)\" @blur=\"triggerBlur\">\n <svg class=\"nf-date-picker-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\" /><path d=\"M7 3v4m10-4v4M3 11h18\" /></svg>\n <span class=\"nf-date-picker-value\" :class=\"{ 'is-placeholder': !display[0] }\">{{ display[0] || (isRange ? props.startPlaceholder ?? t('datePicker.startHalfYear') : props.placeholder ?? t('datePicker.halfYearPlaceholder')) }}</span>\n <template v-if=\"isRange\"><span class=\"nf-date-picker-separator\">→</span><span class=\"nf-date-picker-value\" :class=\"{ 'is-placeholder': !display[1] }\">{{ display[1] || props.endPlaceholder || t('datePicker.endHalfYear') }}</span></template>\n <button v-if=\"props.clearable && values.length && !disabled\" class=\"nf-date-picker-clear\" type=\"button\" :aria-label=\"t('datePicker.clear')\" @click.stop=\"clear\" @keydown.stop>×</button>\n </div>\n </template>\n <div ref=\"panel\" class=\"nf-date-picker-panel\" :class=\"{ 'is-range': isRange }\" role=\"dialog\" :aria-label=\"t(isRange ? 'datePicker.halfYearRangePlaceholder' : 'datePicker.halfYearPlaceholder')\" @keydown.esc.stop=\"handleClose(); focus()\">\n <section v-for=\"(panelYear, index) in years\" :key=\"panelYear\" class=\"nf-date-picker-year\">\n <header>\n <button v-if=\"index === 0\" type=\"button\" :disabled=\"year <= 1\" :aria-label=\"t('datePicker.previousYear')\" @click=\"year--\">«</button>\n <span>{{ panelYear }}</span>\n <button v-if=\"index === years.length - 1\" type=\"button\" :disabled=\"year >= 9998\" :aria-label=\"t('datePicker.nextYear')\" @click=\"year++\">»</button>\n </header>\n <div class=\"nf-date-picker-grid\">\n <button v-for=\"month in [0, 6]\" :key=\"month\" type=\"button\" class=\"nf-date-picker-cell\" :data-date=\"dayjs(panelDate(panelYear, month)).format('YYYY-MM-DD')\" :disabled=\"props.disabledDate?.(panelDate(panelYear, month))\" :aria-pressed=\"selected(panelDate(panelYear, month))\" :class=\"{ 'is-selected': selected(panelDate(panelYear, month)), 'is-in-range': inRange(panelDate(panelYear, month)), 'is-range-start': draft?.getTime() === panelDate(panelYear, month).getTime() }\" @mouseenter=\"hover = panelDate(panelYear, month)\" @focus=\"hover = panelDate(panelYear, month)\" @click=\"select(panelDate(panelYear, month))\" @keydown=\"cellKeydown($event, panelDate(panelYear, month))\">{{ t(month === 0 ? 'datePicker.firstHalf' : 'datePicker.secondHalf') }}</button>\n </div>\n </section>\n </div>\n </ElPopover>\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { ElDatePicker, ElPopover, dayjs, useGlobalConfig, useFormItem, useFormDisabled, useFormSize, type DatePickerInstance } from 'element-plus'\nimport { useLocale } from '@94ai-plus/common-locale'\nimport { halfYearStart, normalizeWeekRange, readDate, writeDate } from './model'\nimport type { DatePickerModelValue, NfDatePickerEmits, NfDatePickerProps } from './types'\n\ndefineOptions({ name: 'NfDatePicker', inheritAttrs: false })\nconst rawProps = withDefaults(defineProps<NfDatePickerProps>(), { type: 'halfyear', disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfDatePicker')\nconst emit = defineEmits<NfDatePickerEmits>()\nconst inheritedDisabled = useFormDisabled()\nconst disabled = computed(() => props.disabled || inheritedDisabled.value)\nconst { formItem } = useFormItem()\nconst { t } = useLocale()\nconst globalLocale = useGlobalConfig('locale')\nconst inheritedSize = useFormSize()\nconst size = computed(() => props.size || inheritedSize.value || 'default')\nconst isRange = computed(() => props.type !== 'halfyear')\nconst values = computed(() => (Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue]).flatMap(value => {\n const parsed = readDate(value, props.valueFormat)\n return parsed ? [halfYearStart(parsed)] : []\n}))\nconst visible = ref(false), draft = ref<Date>(), hover = ref<Date>(), year = ref(new Date().getFullYear())\nconst trigger = ref<HTMLElement>(), panel = ref<HTMLElement>(), weekPicker = ref<DatePickerInstance>()\nconst years = computed(() => isRange.value ? [year.value, year.value + 1] : [year.value])\nfunction panelDate(year: number, month: number) {\n const date = new Date(year, month, 1)\n // The numeric Date constructor maps years 0–99 to 1900–1999.\n date.setFullYear(year)\n return date\n}\nconst firstYear = () => values.value[0]?.getFullYear() ?? (Array.isArray(props.defaultValue) ? props.defaultValue[0] : props.defaultValue)?.getFullYear() ?? new Date().getFullYear()\nwatch(visible, value => {\n if (value) { year.value = firstYear(); draft.value = undefined; hover.value = undefined }\n emit('visible-change', value)\n})\nwatch(disabled, value => { if (value) handleClose() })\nwatch(() => props.modelValue, () => {\n draft.value = undefined; hover.value = undefined\n if (props.type !== 'weekrange') void formItem?.validate('change').catch(() => undefined)\n}, { flush: 'post' })\nfunction label(date?: Date) { return date ? t('datePicker.halfYear', { year: date.getFullYear(), half: t(date.getMonth() < 6 ? 'datePicker.firstHalf' : 'datePicker.secondHalf') }) : '' }\nconst display = computed(() => values.value.map(value => props.format ? dayjs(value).format(props.format) : label(value)))\nconst selected = (date: Date) => values.value.some(value => value.getTime() === date.getTime())\nconst dateDisabled = (date: Date) => props.disabledDate?.(date) ?? false\nfunction inRange(date: Date) {\n const ends = draft.value ? [draft.value, hover.value ?? draft.value] : values.value\n if (ends.length < 2) return false\n const times = ends.map(value => value.getTime())\n return date.getTime() >= Math.min(...times) && date.getTime() <= Math.max(...times)\n}\nfunction commit(value: DatePickerModelValue) {\n emit('update:modelValue', value); emit('change', value)\n}\nfunction triggerBlur(event: FocusEvent) {\n emit('blur', event)\n void formItem?.validate('blur').catch(() => undefined)\n}\nfunction select(date: Date) {\n if (disabled.value || dateDisabled(date)) return\n if (!isRange.value) commit(writeDate(date, props.valueFormat))\n else if (!draft.value) { draft.value = date; hover.value = date; emit('calendar-change', [date, null]); return }\n else {\n const dates = [draft.value, date].sort((a, b) => a.getTime() - b.getTime())\n emit('calendar-change', dates)\n commit(dates.map(value => writeDate(value, props.valueFormat)))\n }\n visible.value = false\n void nextTick(() => trigger.value?.focus())\n}\nfunction clear() { if (!disabled.value) { draft.value = undefined; commit(null); emit('clear') } }\nfunction handleOpen() { if (!disabled.value) { if (props.type === 'weekrange') weekPicker.value?.handleOpen(); else visible.value = true } }\nfunction handleClose() { visible.value = false; weekPicker.value?.handleClose() }\nfunction focus() { if (props.type === 'weekrange') weekPicker.value?.focus(); else trigger.value?.focus() }\nfunction blur() { if (props.type === 'weekrange') weekPicker.value?.blur(); else trigger.value?.blur() }\nfunction keydown(event: KeyboardEvent) {\n if (event.key === 'Escape') { handleClose(); focus() }\n else if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n event.preventDefault(); handleOpen()\n void nextTick(() => panel.value?.querySelector<HTMLButtonElement>('.nf-date-picker-cell:not(:disabled)')?.focus())\n }\n}\nfunction cellKeydown(event: KeyboardEvent, date: Date) {\n if (event.key === 'Escape') { handleClose(); focus(); return }\n const delta = ({ ArrowLeft: -6, ArrowRight: 6, ArrowUp: -12, ArrowDown: 12 } as Record<string, number>)[event.key]\n if (!delta) return\n event.preventDefault()\n const next = dayjs(date).add(delta, 'month').toDate()\n if (next.getFullYear() < 1 || next.getFullYear() > 9998) return\n if (!years.value.includes(next.getFullYear())) year.value = next.getFullYear()\n void nextTick(() => panel.value?.querySelector<HTMLButtonElement>(`[data-date=\"${dayjs(next).format('YYYY-MM-DD')}\"]`)?.focus())\n}\nconst weekValue = computed(() => Array.isArray(props.modelValue) ? props.modelValue.map(value => readDate(value, props.valueFormat)).filter((value): value is Date => !!value) : [])\nfunction updateWeek(value: DatePickerModelValue | undefined) {\n if (disabled.value) return\n if (!Array.isArray(value)) { commit(null); return }\n if (!value?.length) { commit(null); return }\n const parsed = value.map(item => readDate(item)).filter((item): item is Date => !!item)\n if (parsed.length !== 2 || parsed.some(weekDisabled)) return\n const dates = normalizeWeekRange(parsed, globalLocale.value?.name ?? 'en', props.weekStartsOn)\n commit(dates.map(date => writeDate(date, props.valueFormat)))\n}\nfunction weekDisabled(date: Date) {\n if (!props.disabledDate) return false\n const [start] = normalizeWeekRange([date], globalLocale.value?.name ?? 'en', props.weekStartsOn)\n return Array.from({ length: 7 }, (_, index) => dayjs(start).add(index, 'day').toDate()).some(dateDisabled)\n}\nfunction weekCellClass(date: Date) {\n if (weekValue.value.length !== 2) return ''\n const [start, end] = normalizeWeekRange(weekValue.value, globalLocale.value?.name ?? 'en', props.weekStartsOn)\n return date >= start && date <= end ? 'nf-week-range-selected' : ''\n}\ndefineExpose({ focus, blur, handleOpen, handleClose })\n</script>\n<template>\n <ElDatePicker v-if=\"props.type === 'weekrange'\" ref=\"weekPicker\" v-bind=\"$attrs\" class=\"nf-date-picker nf-week-range-picker\" type=\"daterange\" :model-value=\"weekValue\" :size=\"size\" :disabled=\"disabled\" :clearable=\"props.clearable\" :format=\"props.format\" :default-value=\"props.defaultValue\" :disabled-date=\"weekDisabled\" :teleported=\"props.teleported\" :popper-class=\"['nf-week-range-popper', props.popperClass].filter(Boolean).join(' ')\" :start-placeholder=\"props.startPlaceholder ?? t('datePicker.startWeek')\" :end-placeholder=\"props.endPlaceholder ?? t('datePicker.endWeek')\" :cell-class-name=\"weekCellClass\" @update:model-value=\"updateWeek\" @clear=\"emit('clear')\" @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\" @focus=\"emit('focus', $event)\" @blur=\"triggerBlur\" />\n <ElPopover v-else v-model:visible=\"visible\" trigger=\"click\" placement=\"bottom-start\" :disabled=\"disabled\" :teleported=\"props.teleported\" :popper-class=\"['nf-date-picker-popper', props.popperClass].filter(Boolean).join(' ')\" :width=\"isRange ? 576 : 288\" :show-arrow=\"false\">\n <template #reference>\n <div ref=\"trigger\" v-bind=\"$attrs\" class=\"nf-date-picker nf-date-picker-reference el-input__wrapper\" :class=\"['is-' + size, { 'is-disabled': disabled, 'is-focus': visible, 'is-range': isRange }]\" role=\"combobox\" :aria-expanded=\"visible\" aria-haspopup=\"dialog\" :aria-disabled=\"disabled\" :aria-label=\"props.placeholder ?? t(isRange ? 'datePicker.halfYearRangePlaceholder' : 'datePicker.halfYearPlaceholder')\" :tabindex=\"disabled ? -1 : 0\" @keydown=\"keydown\" @focus=\"emit('focus', $event)\" @blur=\"triggerBlur\">\n <svg class=\"nf-date-picker-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\" /><path d=\"M7 3v4m10-4v4M3 11h18\" /></svg>\n <span class=\"nf-date-picker-value\" :class=\"{ 'is-placeholder': !display[0] }\">{{ display[0] || (isRange ? props.startPlaceholder ?? t('datePicker.startHalfYear') : props.placeholder ?? t('datePicker.halfYearPlaceholder')) }}</span>\n <template v-if=\"isRange\"><span class=\"nf-date-picker-separator\">→</span><span class=\"nf-date-picker-value\" :class=\"{ 'is-placeholder': !display[1] }\">{{ display[1] || props.endPlaceholder || t('datePicker.endHalfYear') }}</span></template>\n <button v-if=\"props.clearable && values.length && !disabled\" class=\"nf-date-picker-clear\" type=\"button\" :aria-label=\"t('datePicker.clear')\" @click.stop=\"clear\" @keydown.stop>×</button>\n </div>\n </template>\n <div ref=\"panel\" class=\"nf-date-picker-panel\" :class=\"{ 'is-range': isRange }\" role=\"dialog\" :aria-label=\"t(isRange ? 'datePicker.halfYearRangePlaceholder' : 'datePicker.halfYearPlaceholder')\" @keydown.esc.stop=\"handleClose(); focus()\">\n <section v-for=\"(panelYear, index) in years\" :key=\"panelYear\" class=\"nf-date-picker-year\">\n <header>\n <button v-if=\"index === 0\" type=\"button\" :disabled=\"year <= 1\" :aria-label=\"t('datePicker.previousYear')\" @click=\"year--\">«</button>\n <span>{{ panelYear }}</span>\n <button v-if=\"index === years.length - 1\" type=\"button\" :disabled=\"year >= 9998\" :aria-label=\"t('datePicker.nextYear')\" @click=\"year++\">»</button>\n </header>\n <div class=\"nf-date-picker-grid\">\n <button v-for=\"month in [0, 6]\" :key=\"month\" type=\"button\" class=\"nf-date-picker-cell\" :data-date=\"dayjs(panelDate(panelYear, month)).format('YYYY-MM-DD')\" :disabled=\"props.disabledDate?.(panelDate(panelYear, month))\" :aria-pressed=\"selected(panelDate(panelYear, month))\" :class=\"{ 'is-selected': selected(panelDate(panelYear, month)), 'is-in-range': inRange(panelDate(panelYear, month)), 'is-range-start': draft?.getTime() === panelDate(panelYear, month).getTime() }\" @mouseenter=\"hover = panelDate(panelYear, month)\" @focus=\"hover = panelDate(panelYear, month)\" @click=\"select(panelDate(panelYear, month))\" @keydown=\"cellKeydown($event, panelDate(panelYear, month))\">{{ t(month === 0 ? 'datePicker.firstHalf' : 'datePicker.secondHalf') }}</button>\n </div>\n </section>\n </div>\n </ElPopover>\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfHalfYearPicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfHalfYearPicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"halfyear\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfHalfYearPicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfHalfYearPicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"halfyear\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfHalfYearRangePicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfHalfYearRangePicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"halfyearrange\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfHalfYearRangePicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfHalfYearRangePicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"halfyearrange\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfWeekRangePicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfWeekRangePicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"weekrange\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { useComponentDefaults } from '@94ai-plus/common-locale'\nimport { ref } from 'vue'\nimport View from './date-picker.vue'\nimport type { NfDatePickerEmits, NfDatePickerProps } from './types'\ndefineOptions({ name: 'NfWeekRangePicker' })\nconst rawProps = withDefaults(defineProps<Omit<NfDatePickerProps, 'type'>>(), { disabled: undefined, clearable: true, teleported: true })\nconst props = useComponentDefaults(rawProps, 'nfWeekRangePicker', 'nfDatePicker')\nconst view = ref<InstanceType<typeof View>>()\nconst emit = defineEmits<NfDatePickerEmits>()\ndefineExpose({ focus: () => view.value?.focus(), blur: () => view.value?.blur(), handleOpen: () => view.value?.handleOpen(), handleClose: () => view.value?.handleClose() })\n</script>\n<template>\n <View\n ref=\"view\" v-bind=\"props\" type=\"weekrange\"\n @update:model-value=\"emit('update:modelValue', $event)\" @change=\"emit('change', $event)\"\n @calendar-change=\"emit('calendar-change', $event)\" @visible-change=\"emit('visible-change', $event)\"\n @clear=\"emit('clear')\" @focus=\"emit('focus', $event)\" @blur=\"emit('blur', $event)\"\n />\n</template>\n","import type { App } from 'vue'\nimport View from './date-picker.vue'\nimport HalfYear from './half-year-picker.vue'\nimport HalfYearRange from './half-year-range-picker.vue'\nimport WeekRange from './week-range-picker.vue'\nimport './global'\nimport './style/index.scss'\n\nexport const NfHalfYearPicker = Object.assign(HalfYear, { install(app: App) { app.component('NfHalfYearPicker', HalfYear) } })\nexport const NfHalfYearRangePicker = Object.assign(HalfYearRange, { install(app: App) { app.component('NfHalfYearRangePicker', HalfYearRange) } })\nexport const NfWeekRangePicker = Object.assign(WeekRange, { install(app: App) { app.component('NfWeekRangePicker', WeekRange) } })\nexport const NfDatePicker = Object.assign(View, { install(app: App) {\n app.component('NfDatePicker', View)\n app.use(NfHalfYearPicker); app.use(NfHalfYearRangePicker); app.use(NfWeekRangePicker)\n} })\nexport type * from './types'\nexport default NfDatePicker\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ (function(g,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue"),require("element-plus")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus"],a):(g=typeof globalThis<"u"?globalThis:g||self,a(g.NfDatePicker={},g.Vue,g.ElementPlus))})(this,function(g,a,p){Object.defineProperties(g,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var b={rules:{logicAnd:"and",numberRequire:"Please enter a number",commonLenLimit:"Total length cannot exceed 2000 Chinese characters",prohibitEmpty:"Cannot be empty",paramsLenLimit:"Up to 50 English characters",timeRangePlaceholder:"Select time range",dateRangePlaceholder:"Select date range",split:"Separate multiple entries with #",times:"times",second:"s",ruleType:{intentionTag:"Intention tag",personalTag:"Personal tag",replyKeyword:"Reply keyword",customTag:"Custom tag",importTime:"Import time",callTime:"Call time period",currentTime:"Current time",callDuration:"Call duration",dialogueRounds:"Dialogue rounds",callCount:"Call attempts",param:"Parameter",callStatus:"Call status"},operator:{isEmpty:"Is empty",notEmpty:"Is not empty",contains:"Contains",notContains:"Does not contain"},calculation:{each:"Each",total:"Total"},dateType:{today:"Same day",notToday:"Not same day"},callStatus:{answered:"Answered",missed:"Not answered",busy:"Busy",unreachable:"Unreachable",callFailed:"Call failed (not user-caused)",rejected:"Rejected",emptyNumber:"Invalid number",poweredOff:"Powered off",suspended:"Suspended",arrears:"Insufficient balance",lineFault:"Line fault",numberChanged:"Number changed",dailyLimit:"Daily call limit reached",blacklist:"Blacklisted"}},conditions:{condition:"Condition",add:"+ Add condition",delete:"- Delete condition",logicOr:"or"},keywords:{placeholder:"Enter keywords and press Enter to confirm. Separate multiple keywords with #",someLimitDesc:"A keyword exceeds the character limit",allLimitDesc:"Total keyword character limit exceeded",matchDesc:"Keywords matching this branch",priorityRecommendDesc:"(Keywords are recommended)",copyAllDesc:"Copy all",delAllDesc:"Delete all",noKeywordDesc:"No keywords",copySucessDesc:"Copied successfully",alreadyExistDesc:"Keyword already exists in this branch",correctDesc:"Please correct it",incorrectRegDesc:"The keyword contains an invalid regular expression"},variableSelect:{placeholder:"Search by variable name"},transferSelect:{all:"Select all",selected:"Selected"},common:{searchContent:"Enter search text",copy:"Copy",noData:"No data",noMatch:"No matching data",all:"All",placeholderSelect:"Please select",placeholderEnter:"Please enter",startDate:"Start date",endDate:"End date",startTime:"Start time",endTime:"End time",clear:"Clear",remove:"Remove"}},Z={searchForm:{startDate:"Start date",endDate:"End date",startTime:"Start time",endTime:"End time",query:"Search",export:"Export",reset:"Reset",settings:"Configure search fields",addFields:"Add search fields",unsupported:"Control {name} is not migrated. Supply a Vue 3 component or slot."},table:{settings:"Configure columns",basicField:"Basic fields",search:"Search",fixedLeft:"Pin left",clear:"Clear",noFixed:"Unpin",selectEmpty:"Select at least one field",selected:"Selected ({length})",all:"Select all ({length})",moveUp:"Move up",moveDown:"Move down",resizeColumn:"Resize operation column"}},Q={name:"en-US",messages:{datePicker:{firstHalf:"H1",secondHalf:"H2",halfYear:"{year} {half}",halfYearPlaceholder:"Select half-year",halfYearRangePlaceholder:"Select half-year range",startHalfYear:"Start half-year",endHalfYear:"End half-year",startWeek:"Start week",endWeek:"End week",previousYear:"Previous year",nextYear:"Next year",clear:"Clear"},searchForm:Z.searchForm,table:Z.table,rules:b.rules,conditions:b.conditions,keywords:b.keywords,variableSelect:b.variableSelect,transferSelect:b.transferSelect,audio:{speed:"Speed",download:"Download",copyAddress:"Copy address",openWindow:"Open in new window",unavailable:"Audio is not loaded",crossTime:"End time must be greater than start time",jump:"Jump",play:"Play",pause:"Pause",progress:"Playback progress",volume:"Volume"},importTemplate:{fileTypeError:"Only {formats} files are supported",fileSizeError:"File size must be less than {size} MiB",errorDetails:"View error details"},common:{...b.common,expand:"Expand",collapse:"Collapse",more:"More",copySuccess:"Copied",close:"Close",confirm:"Confirm",cancel:"Cancel",loading:"Loading",empty:"No data"},empty:{internet:"Network connection failed",message:"No messages",server:"Server error",loading:"Loading failed",authority:"No permission",call:"Call failed, please redial",seat:"No available seats"}}},v={rules:{logicAnd:"且",numberRequire:"请输入数字",commonLenLimit:"总文案长度不超过2000中文字符",prohibitEmpty:"不能为空",paramsLenLimit:"最多可输入50个英文字符长度",timeRangePlaceholder:"选择时间范围",dateRangePlaceholder:"选择日期范围",split:"输入多个时,用#分割",times:"次",second:"秒",ruleType:{intentionTag:"意向标签",personalTag:"个性标签",replyKeyword:"回复关键词",customTag:"自定义标签",importTime:"导入时间",callTime:"外呼时间段",currentTime:"当前时间",callDuration:"通话时长",dialogueRounds:"对话轮次",callCount:"外呼次数",param:"参数",callStatus:"外呼状态"},operator:{isEmpty:"为空",notEmpty:"不为空",contains:"包含",notContains:"不包含"},calculation:{each:"每个",total:"累计"},dateType:{today:"当天",notToday:"非当天"},callStatus:{answered:"已接听",missed:"未接",busy:"占线",unreachable:"无法接通",callFailed:"呼叫失败(非用户原因)",rejected:"拒接",emptyNumber:"空号",poweredOff:"关机",suspended:"停机",arrears:"用户欠费",lineFault:"线路故障",numberChanged:"改号",dailyLimit:"单日呼叫次数受限",blacklist:"黑名单"}},conditions:{condition:"条件",add:"+ 添加条件",delete:"- 删除条件",logicOr:"或"},keywords:{placeholder:"请在此输入关键词,回车后确认。多个关键词请用#分隔",someLimitDesc:"已超过单个关键词字数上限",allLimitDesc:"已超过全部关键词字数上限",matchDesc:"匹配到该分支的关键词",priorityRecommendDesc:"(优先推荐使用关键词)",copyAllDesc:"复制全部",delAllDesc:"删除全部",noKeywordDesc:"暂无关键词",copySucessDesc:"复制成功",alreadyExistDesc:"当前分支已经存在关键词",correctDesc:"请修正",incorrectRegDesc:"当前添加的关键词有错误的正则"},variableSelect:{placeholder:"输入变量名搜索"},transferSelect:{all:"全选",selected:"已选"},common:{searchContent:"请输入搜索内容",copy:"复制",noData:"无数据",noMatch:"无匹配数据",all:"全部",placeholderSelect:"请选择",placeholderEnter:"请输入",startDate:"开始日期",endDate:"结束日期",startTime:"开始时间",endTime:"结束时间",clear:"清空",remove:"移除"}},X={searchForm:{startDate:"开始日期",endDate:"结束日期",startTime:"开始时间",endTime:"结束时间",query:"查询",export:"导出",reset:"重置",settings:"设置显示查询框",addFields:"添加筛选条件",unsupported:"未迁移控件 {name},请通过 components 或插槽接入 Vue 3 控件"},table:{settings:"设置显示字段",basicField:"基础字段",search:"搜索",fixedLeft:"固定在左侧",clear:"清除",noFixed:"不固定",selectEmpty:"请选择至少一个选项",selected:"已选({length})",all:"全选({length})",moveUp:"上移",moveDown:"下移",resizeColumn:"调整操作列宽度"}},z={name:"zh-CN",messages:{datePicker:{firstHalf:"上半年",secondHalf:"下半年",halfYear:"{year}年{half}",halfYearPlaceholder:"选择半年",halfYearRangePlaceholder:"选择半年区间",startHalfYear:"开始半年",endHalfYear:"结束半年",startWeek:"开始周",endWeek:"结束周",previousYear:"上一年",nextYear:"下一年",clear:"清空"},searchForm:X.searchForm,table:X.table,rules:v.rules,conditions:v.conditions,keywords:v.keywords,variableSelect:v.variableSelect,transferSelect:v.transferSelect,audio:{speed:"倍速",download:"下载",copyAddress:"复制地址",openWindow:"在新窗口打开",unavailable:"音频尚未加载",crossTime:"结束时间必须大于开始时间",jump:"跳转",play:"播放",pause:"暂停",progress:"播放进度",volume:"音量"},importTemplate:{fileTypeError:"只支持{formats}格式的文件",fileSizeError:"文件大小不能超过{size}M",errorDetails:"查看错误详情"},common:{...v.common,expand:"展开",collapse:"收起",more:"更多",copySuccess:"复制成功",close:"关闭",confirm:"确认",cancel:"取消",loading:"加载中",empty:"暂无数据"},empty:{internet:"网络连接失败",message:"暂无消息",server:"服务器异常",loading:"加载失败",authority:"暂无权限",call:"呼叫失败,请重呼",seat:"暂无坐席"}}},S={common:{searchContent:"検索内容を入力",copy:"コピー",noData:"データなし",noMatch:"一致するデータなし",all:"すべて",placeholderSelect:"選択してください",placeholderEnter:"入力してください",startDate:"開始日",endDate:"終了日",startTime:"開始時刻",endTime:"終了時刻",clear:"クリア",remove:"削除"},rules:{logicAnd:"かつ",numberRequire:"数値を入力してください",commonLenLimit:"文字数は2000文字以内です",prohibitEmpty:"空にできません",paramsLenLimit:"半角50文字以内です",timeRangePlaceholder:"時間範囲を選択",dateRangePlaceholder:"日付範囲を選択",split:"複数の項目は # で区切ります",times:"回",second:"秒",ruleType:{intentionTag:"意向タグ",personalTag:"個人タグ",replyKeyword:"返信キーワード",customTag:"カスタムタグ",importTime:"インポート時刻",callTime:"発信時間帯",currentTime:"現在時刻",callDuration:"通話時間",dialogueRounds:"対話回数",callCount:"発信回数",param:"パラメーター",callStatus:"発信状態"},operator:{isEmpty:"空",notEmpty:"空ではない",contains:"含む",notContains:"含まない"},calculation:{each:"各",total:"合計"},dateType:{today:"当日",notToday:"当日以外"},callStatus:{answered:"応答済み",missed:"不応答",busy:"話し中",unreachable:"接続不可",callFailed:"発信失敗",rejected:"拒否",emptyNumber:"無効な番号",poweredOff:"電源オフ",suspended:"利用停止",arrears:"残高不足",lineFault:"回線障害",numberChanged:"番号変更",dailyLimit:"1日の発信上限",blacklist:"ブラックリスト"}},conditions:{condition:"条件",add:"+ 条件を追加",delete:"- 条件を削除",logicOr:"または"},keywords:{placeholder:"キーワードを入力して Enter で確定。複数は # で区切ります",someLimitDesc:"キーワードが文字数上限を超えています",allLimitDesc:"合計文字数の上限を超えています",matchDesc:"この分岐に一致するキーワード",priorityRecommendDesc:"(キーワードを推奨)",copyAllDesc:"すべてコピー",delAllDesc:"すべて削除",noKeywordDesc:"キーワードなし",copySucessDesc:"コピーしました",alreadyExistDesc:"キーワードは既に存在します",correctDesc:"修正してください",incorrectRegDesc:"無効な正規表現です"},variableSelect:{placeholder:"変数名で検索"},transferSelect:{all:"すべて選択",selected:"選択済み"}},$={searchForm:{startDate:"開始日",endDate:"終了日",startTime:"開始時刻",endTime:"終了時刻",query:"検索",export:"エクスポート",reset:"リセット",settings:"検索項目の設定",addFields:"検索項目を追加",unsupported:"{name} は未移行です。Vue 3 コンポーネントまたはスロットを指定してください。"},table:{settings:"表示列の設定",basicField:"基本項目",search:"検索",fixedLeft:"左に固定",clear:"クリア",noFixed:"固定解除",selectEmpty:"項目を1つ以上選択してください",selected:"選択済み({length})",all:"すべて選択({length})",moveUp:"上へ",moveDown:"下へ",resizeColumn:"操作列の幅を変更"}},ke={name:"ja",messages:{datePicker:{firstHalf:"上半期",secondHalf:"下半期",halfYear:"{year}年{half}",halfYearPlaceholder:"半期を選択",halfYearRangePlaceholder:"半期の範囲を選択",startHalfYear:"開始半期",endHalfYear:"終了半期",startWeek:"開始週",endWeek:"終了週",previousYear:"前年",nextYear:"翌年",clear:"クリア"},searchForm:$.searchForm,table:$.table,rules:S.rules,conditions:S.conditions,keywords:S.keywords,variableSelect:S.variableSelect,transferSelect:S.transferSelect,audio:{speed:"再生速度",download:"ダウンロード",copyAddress:"アドレスをコピー",openWindow:"新しいウィンドウで開く",unavailable:"音声が読み込まれていません",crossTime:"終了時刻は開始時刻より後にしてください",jump:"移動",play:"再生",pause:"一時停止",progress:"再生位置",volume:"音量"},importTemplate:{fileTypeError:"{formats} 形式のファイルのみ対応しています",fileSizeError:"ファイルサイズは {size} MiB 未満にしてください",errorDetails:"エラーの詳細を見る"},common:{...S.common,expand:"展開",collapse:"折りたたむ",more:"その他",copySuccess:"コピーしました",close:"閉じる",confirm:"確認",cancel:"キャンセル",loading:"読み込み中",empty:"データがありません"},empty:{internet:"ネットワーク接続に失敗しました",message:"メッセージがありません",server:"サーバーエラー",loading:"読み込みに失敗しました",authority:"権限がありません",call:"通話に失敗しました。もう一度おかけください",seat:"利用可能な席がありません"}}},D={common:{searchContent:"Introduzca texto de búsqueda",copy:"Copiar",noData:"Sin datos",noMatch:"Sin coincidencias",all:"Todos",placeholderSelect:"Seleccione",placeholderEnter:"Introduzca un valor",startDate:"Fecha inicial",endDate:"Fecha final",startTime:"Hora inicial",endTime:"Hora final",clear:"Limpiar",remove:"Eliminar"},rules:{logicAnd:"y",numberRequire:"Introduzca un número",commonLenLimit:"La longitud no puede superar 2000 caracteres",prohibitEmpty:"No puede estar vacío",paramsLenLimit:"Hasta 50 caracteres ASCII",timeRangePlaceholder:"Seleccione un intervalo de tiempo",dateRangePlaceholder:"Seleccione un intervalo de fechas",split:"Separe las entradas con #",times:"veces",second:"s",ruleType:{intentionTag:"Etiqueta de intención",personalTag:"Etiqueta personal",replyKeyword:"Palabra clave de respuesta",customTag:"Etiqueta personalizada",importTime:"Hora de importación",callTime:"Período de llamada",currentTime:"Hora actual",callDuration:"Duración de llamada",dialogueRounds:"Turnos de diálogo",callCount:"Intentos de llamada",param:"Parámetro",callStatus:"Estado de llamada"},operator:{isEmpty:"Está vacío",notEmpty:"No está vacío",contains:"Contiene",notContains:"No contiene"},calculation:{each:"Cada",total:"Total"},dateType:{today:"Mismo día",notToday:"Otro día"},callStatus:{answered:"Respondida",missed:"Sin respuesta",busy:"Ocupado",unreachable:"No disponible",callFailed:"Llamada fallida",rejected:"Rechazada",emptyNumber:"Número inválido",poweredOff:"Apagado",suspended:"Suspendido",arrears:"Saldo insuficiente",lineFault:"Fallo de línea",numberChanged:"Número cambiado",dailyLimit:"Límite diario alcanzado",blacklist:"Lista negra"}},conditions:{condition:"Condición",add:"+ Añadir condición",delete:"- Eliminar condición",logicOr:"o"},keywords:{placeholder:"Introduzca palabras clave y pulse Enter. Sepárelas con #",someLimitDesc:"Una palabra clave supera el límite",allLimitDesc:"Se superó el límite total de caracteres",matchDesc:"Palabras clave de esta rama",priorityRecommendDesc:"(Se recomiendan palabras clave)",copyAllDesc:"Copiar todo",delAllDesc:"Eliminar todo",noKeywordDesc:"Sin palabras clave",copySucessDesc:"Copiado",alreadyExistDesc:"La palabra clave ya existe",correctDesc:"Corríjalo",incorrectRegDesc:"Expresión regular no válida"},variableSelect:{placeholder:"Buscar por nombre de variable"},transferSelect:{all:"Seleccionar todos",selected:"Seleccionados"}},ee={searchForm:{startDate:"Fecha de inicio",endDate:"Fecha de fin",startTime:"Hora de inicio",endTime:"Hora de fin",query:"Buscar",export:"Exportar",reset:"Restablecer",settings:"Configurar filtros",addFields:"Añadir filtros",unsupported:"El control {name} no está migrado. Proporcione un componente Vue 3 o slot."},table:{settings:"Configurar columnas",basicField:"Campos básicos",search:"Buscar",fixedLeft:"Fijar a la izquierda",clear:"Limpiar",noFixed:"Desfijar",selectEmpty:"Seleccione al menos un campo",selected:"Seleccionados ({length})",all:"Seleccionar todo ({length})",moveUp:"Subir",moveDown:"Bajar",resizeColumn:"Cambiar ancho de acciones"}},be={name:"es",messages:{datePicker:{firstHalf:"Primer semestre",secondHalf:"Segundo semestre",halfYear:"{half} de {year}",halfYearPlaceholder:"Seleccionar semestre",halfYearRangePlaceholder:"Seleccionar intervalo semestral",startHalfYear:"Semestre inicial",endHalfYear:"Semestre final",startWeek:"Semana inicial",endWeek:"Semana final",previousYear:"Año anterior",nextYear:"Año siguiente",clear:"Borrar"},searchForm:ee.searchForm,table:ee.table,rules:D.rules,conditions:D.conditions,keywords:D.keywords,variableSelect:D.variableSelect,transferSelect:D.transferSelect,audio:{speed:"Velocidad",download:"Descargar",copyAddress:"Copiar dirección",openWindow:"Abrir en ventana nueva",unavailable:"El audio no se ha cargado",crossTime:"El final debe ser posterior al inicio",jump:"Saltar",play:"Reproducir",pause:"Pausar",progress:"Progreso de reproducción",volume:"Volumen"},importTemplate:{fileTypeError:"Solo se admiten archivos {formats}",fileSizeError:"El archivo debe ser menor de {size} MiB",errorDetails:"Ver detalles del error"},common:{...D.common,expand:"Expandir",collapse:"Contraer",more:"Más",copySuccess:"Copiado",close:"Cerrar",confirm:"Confirmar",cancel:"Cancelar",loading:"Cargando",empty:"Sin datos"},empty:{internet:"Error de conexión de red",message:"No hay mensajes",server:"Error del servidor",loading:"Error al cargar",authority:"Sin permiso",call:"La llamada falló, vuelva a llamar",seat:"No hay puestos disponibles"}}},w={common:{searchContent:"Masukkan teks pencarian",copy:"Salin",noData:"Tidak ada data",noMatch:"Tidak ada hasil",all:"Semua",placeholderSelect:"Silakan pilih",placeholderEnter:"Silakan masukkan",startDate:"Tanggal mulai",endDate:"Tanggal selesai",startTime:"Waktu mulai",endTime:"Waktu selesai",clear:"Bersihkan",remove:"Hapus"},rules:{logicAnd:"dan",numberRequire:"Masukkan angka",commonLenLimit:"Panjang tidak boleh melebihi 2000 karakter",prohibitEmpty:"Tidak boleh kosong",paramsLenLimit:"Maksimal 50 karakter ASCII",timeRangePlaceholder:"Pilih rentang waktu",dateRangePlaceholder:"Pilih rentang tanggal",split:"Pisahkan entri dengan #",times:"kali",second:"d",ruleType:{intentionTag:"Tag minat",personalTag:"Tag pribadi",replyKeyword:"Kata kunci balasan",customTag:"Tag khusus",importTime:"Waktu impor",callTime:"Periode panggilan",currentTime:"Waktu saat ini",callDuration:"Durasi panggilan",dialogueRounds:"Putaran dialog",callCount:"Jumlah panggilan",param:"Parameter",callStatus:"Status panggilan"},operator:{isEmpty:"Kosong",notEmpty:"Tidak kosong",contains:"Mengandung",notContains:"Tidak mengandung"},calculation:{each:"Setiap",total:"Total"},dateType:{today:"Hari yang sama",notToday:"Hari lain"},callStatus:{answered:"Dijawab",missed:"Tidak dijawab",busy:"Sibuk",unreachable:"Tidak dapat dihubungi",callFailed:"Panggilan gagal",rejected:"Ditolak",emptyNumber:"Nomor tidak valid",poweredOff:"Dimatikan",suspended:"Ditangguhkan",arrears:"Saldo tidak cukup",lineFault:"Gangguan saluran",numberChanged:"Nomor berubah",dailyLimit:"Batas harian tercapai",blacklist:"Daftar hitam"}},conditions:{condition:"Kondisi",add:"+ Tambah kondisi",delete:"- Hapus kondisi",logicOr:"atau"},keywords:{placeholder:"Masukkan kata kunci lalu tekan Enter. Pisahkan dengan #",someLimitDesc:"Kata kunci melebihi batas karakter",allLimitDesc:"Batas total karakter terlampaui",matchDesc:"Kata kunci cabang ini",priorityRecommendDesc:"(Kata kunci disarankan)",copyAllDesc:"Salin semua",delAllDesc:"Hapus semua",noKeywordDesc:"Tidak ada kata kunci",copySucessDesc:"Berhasil disalin",alreadyExistDesc:"Kata kunci sudah ada",correctDesc:"Silakan perbaiki",incorrectRegDesc:"Ekspresi reguler tidak valid"},variableSelect:{placeholder:"Cari berdasarkan nama variabel"},transferSelect:{all:"Pilih semua",selected:"Dipilih"}},ae={searchForm:{startDate:"Tanggal mulai",endDate:"Tanggal akhir",startTime:"Waktu mulai",endTime:"Waktu akhir",query:"Cari",export:"Ekspor",reset:"Atur ulang",settings:"Atur kolom pencarian",addFields:"Tambah kolom pencarian",unsupported:"Kontrol {name} belum dimigrasi. Gunakan komponen Vue 3 atau slot."},table:{settings:"Atur kolom",basicField:"Kolom dasar",search:"Cari",fixedLeft:"Sematkan di kiri",clear:"Hapus",noFixed:"Lepas sematan",selectEmpty:"Pilih minimal satu kolom",selected:"Dipilih ({length})",all:"Pilih semua ({length})",moveUp:"Naik",moveDown:"Turun",resizeColumn:"Ubah lebar kolom tindakan"}},ve={name:"id",messages:{datePicker:{firstHalf:"Semester I",secondHalf:"Semester II",halfYear:"{half} {year}",halfYearPlaceholder:"Pilih semester",halfYearRangePlaceholder:"Pilih rentang semester",startHalfYear:"Semester awal",endHalfYear:"Semester akhir",startWeek:"Minggu awal",endWeek:"Minggu akhir",previousYear:"Tahun sebelumnya",nextYear:"Tahun berikutnya",clear:"Hapus"},searchForm:ae.searchForm,table:ae.table,rules:w.rules,conditions:w.conditions,keywords:w.keywords,variableSelect:w.variableSelect,transferSelect:w.transferSelect,audio:{speed:"Kecepatan",download:"Unduh",copyAddress:"Salin alamat",openWindow:"Buka di jendela baru",unavailable:"Audio belum dimuat",crossTime:"Waktu akhir harus setelah waktu mulai",jump:"Lompat",play:"Putar",pause:"Jeda",progress:"Progres pemutaran",volume:"Volume"},importTemplate:{fileTypeError:"Hanya berkas {formats} yang didukung",fileSizeError:"Ukuran berkas harus kurang dari {size} MiB",errorDetails:"Lihat detail kesalahan"},common:{...w.common,expand:"Perluas",collapse:"Ciutkan",more:"Lainnya",copySuccess:"Disalin",close:"Tutup",confirm:"Konfirmasi",cancel:"Batal",loading:"Memuat",empty:"Tidak ada data"},empty:{internet:"Koneksi jaringan gagal",message:"Tidak ada pesan",server:"Kesalahan server",loading:"Gagal memuat",authority:"Tidak ada izin",call:"Panggilan gagal, silakan hubungi kembali",seat:"Tidak ada kursi yang tersedia"}}},P={common:{searchContent:"ป้อนข้อความค้นหา",copy:"คัดลอก",noData:"ไม่มีข้อมูล",noMatch:"ไม่พบข้อมูลที่ตรงกัน",all:"ทั้งหมด",placeholderSelect:"กรุณาเลือก",placeholderEnter:"กรุณาป้อน",startDate:"วันที่เริ่มต้น",endDate:"วันที่สิ้นสุด",startTime:"เวลาเริ่มต้น",endTime:"เวลาสิ้นสุด",clear:"ล้าง",remove:"ลบ"},rules:{logicAnd:"และ",numberRequire:"กรุณาป้อนตัวเลข",commonLenLimit:"ความยาวต้องไม่เกิน 2000 อักขระ",prohibitEmpty:"ต้องไม่เว้นว่าง",paramsLenLimit:"ไม่เกิน 50 อักขระ ASCII",timeRangePlaceholder:"เลือกช่วงเวลา",dateRangePlaceholder:"เลือกช่วงวันที่",split:"คั่นรายการด้วย #",times:"ครั้ง",second:"วินาที",ruleType:{intentionTag:"แท็กความสนใจ",personalTag:"แท็กส่วนบุคคล",replyKeyword:"คำสำคัญตอบกลับ",customTag:"แท็กกำหนดเอง",importTime:"เวลานำเข้า",callTime:"ช่วงเวลาโทร",currentTime:"เวลาปัจจุบัน",callDuration:"ระยะเวลาสนทนา",dialogueRounds:"รอบสนทนา",callCount:"จำนวนการโทร",param:"พารามิเตอร์",callStatus:"สถานะการโทร"},operator:{isEmpty:"ว่าง",notEmpty:"ไม่ว่าง",contains:"มี",notContains:"ไม่มี"},calculation:{each:"แต่ละ",total:"รวม"},dateType:{today:"วันเดียวกัน",notToday:"วันอื่น"},callStatus:{answered:"รับสายแล้ว",missed:"ไม่รับสาย",busy:"สายไม่ว่าง",unreachable:"ติดต่อไม่ได้",callFailed:"โทรไม่สำเร็จ",rejected:"ปฏิเสธ",emptyNumber:"หมายเลขไม่ถูกต้อง",poweredOff:"ปิดเครื่อง",suspended:"ระงับบริการ",arrears:"ยอดเงินไม่เพียงพอ",lineFault:"สายขัดข้อง",numberChanged:"เปลี่ยนหมายเลข",dailyLimit:"ถึงขีดจำกัดรายวัน",blacklist:"บัญชีดำ"}},conditions:{condition:"เงื่อนไข",add:"+ เพิ่มเงื่อนไข",delete:"- ลบเงื่อนไข",logicOr:"หรือ"},keywords:{placeholder:"ป้อนคำสำคัญแล้วกด Enter คั่นหลายคำด้วย #",someLimitDesc:"คำสำคัญเกินจำนวนอักขระ",allLimitDesc:"จำนวนอักขระรวมเกินขีดจำกัด",matchDesc:"คำสำคัญของสาขานี้",priorityRecommendDesc:"(แนะนำคำสำคัญ)",copyAllDesc:"คัดลอกทั้งหมด",delAllDesc:"ลบทั้งหมด",noKeywordDesc:"ไม่มีคำสำคัญ",copySucessDesc:"คัดลอกแล้ว",alreadyExistDesc:"มีคำสำคัญนี้แล้ว",correctDesc:"กรุณาแก้ไข",incorrectRegDesc:"นิพจน์ทั่วไปไม่ถูกต้อง"},variableSelect:{placeholder:"ค้นหาตามชื่อตัวแปร"},transferSelect:{all:"เลือกทั้งหมด",selected:"เลือกแล้ว"}},re={searchForm:{startDate:"วันที่เริ่มต้น",endDate:"วันที่สิ้นสุด",startTime:"เวลาเริ่มต้น",endTime:"เวลาสิ้นสุด",query:"ค้นหา",export:"ส่งออก",reset:"รีเซ็ต",settings:"ตั้งค่าตัวกรอง",addFields:"เพิ่มตัวกรอง",unsupported:"ยังไม่ได้ย้าย {name} โปรดใช้คอมโพเนนต์ Vue 3 หรือสล็อต"},table:{settings:"ตั้งค่าคอลัมน์",basicField:"ฟิลด์พื้นฐาน",search:"ค้นหา",fixedLeft:"ตรึงด้านซ้าย",clear:"ล้าง",noFixed:"เลิกตรึง",selectEmpty:"เลือกอย่างน้อยหนึ่งฟิลด์",selected:"เลือกแล้ว ({length})",all:"เลือกทั้งหมด ({length})",moveUp:"เลื่อนขึ้น",moveDown:"เลื่อนลง",resizeColumn:"ปรับความกว้างคอลัมน์การทำงาน"}},Se={name:"th",messages:{datePicker:{firstHalf:"ครึ่งปีแรก",secondHalf:"ครึ่งปีหลัง",halfYear:"{half} {year}",halfYearPlaceholder:"เลือกครึ่งปี",halfYearRangePlaceholder:"เลือกช่วงครึ่งปี",startHalfYear:"ครึ่งปีเริ่มต้น",endHalfYear:"ครึ่งปีสิ้นสุด",startWeek:"สัปดาห์เริ่มต้น",endWeek:"สัปดาห์สิ้นสุด",previousYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",clear:"ล้าง"},searchForm:re.searchForm,table:re.table,rules:P.rules,conditions:P.conditions,keywords:P.keywords,variableSelect:P.variableSelect,transferSelect:P.transferSelect,audio:{speed:"ความเร็ว",download:"ดาวน์โหลด",copyAddress:"คัดลอกที่อยู่",openWindow:"เปิดในหน้าต่างใหม่",unavailable:"ยังไม่ได้โหลดเสียง",crossTime:"เวลาสิ้นสุดต้องมากกว่าเวลาเริ่มต้น",jump:"ข้าม",play:"เล่น",pause:"หยุดชั่วคราว",progress:"ความคืบหน้าการเล่น",volume:"ระดับเสียง"},importTemplate:{fileTypeError:"รองรับเฉพาะไฟล์ {formats}",fileSizeError:"ขนาดไฟล์ต้องน้อยกว่า {size} MiB",errorDetails:"ดูรายละเอียดข้อผิดพลาด"},common:{...P.common,expand:"ขยาย",collapse:"ย่อ",more:"เพิ่มเติม",copySuccess:"คัดลอกแล้ว",close:"ปิด",confirm:"ยืนยัน",cancel:"ยกเลิก",loading:"กำลังโหลด",empty:"ไม่มีข้อมูล"},empty:{internet:"เชื่อมต่อเครือข่ายไม่สำเร็จ",message:"ไม่มีข้อความ",server:"เซิร์ฟเวอร์เกิดข้อผิดพลาด",loading:"โหลดไม่สำเร็จ",authority:"ไม่มีสิทธิ์",call:"โทรไม่สำเร็จ กรุณาโทรใหม่",seat:"ไม่มีที่นั่งว่าง"}}},T={common:{searchContent:"Ilagay ang teksto sa paghahanap",copy:"Kopyahin",noData:"Walang datos",noMatch:"Walang tugma",all:"Lahat",placeholderSelect:"Pumili",placeholderEnter:"Maglagay ng halaga",startDate:"Petsa ng simula",endDate:"Petsa ng pagtatapos",startTime:"Oras ng simula",endTime:"Oras ng pagtatapos",clear:"I-clear",remove:"Alisin"},rules:{logicAnd:"at",numberRequire:"Maglagay ng numero",commonLenLimit:"Hindi maaaring lumampas sa 2000 character",prohibitEmpty:"Hindi maaaring walang laman",paramsLenLimit:"Hanggang 50 ASCII character",timeRangePlaceholder:"Pumili ng saklaw ng oras",dateRangePlaceholder:"Pumili ng saklaw ng petsa",split:"Paghiwalayin ang mga entry gamit ang #",times:"beses",second:"s",ruleType:{intentionTag:"Tag ng interes",personalTag:"Personal na tag",replyKeyword:"Keyword ng tugon",customTag:"Custom na tag",importTime:"Oras ng pag-import",callTime:"Panahon ng tawag",currentTime:"Kasalukuyang oras",callDuration:"Tagal ng tawag",dialogueRounds:"Bilang ng usapan",callCount:"Bilang ng tawag",param:"Parameter",callStatus:"Katayuan ng tawag"},operator:{isEmpty:"Walang laman",notEmpty:"May laman",contains:"Naglalaman",notContains:"Hindi naglalaman"},calculation:{each:"Bawat",total:"Kabuuan"},dateType:{today:"Parehong araw",notToday:"Ibang araw"},callStatus:{answered:"Sinagot",missed:"Hindi sinagot",busy:"Abala",unreachable:"Hindi makontak",callFailed:"Nabigo ang tawag",rejected:"Tinanggihan",emptyNumber:"Hindi wastong numero",poweredOff:"Naka-off",suspended:"Suspendido",arrears:"Kulang ang balanse",lineFault:"Sira ang linya",numberChanged:"Nagbago ang numero",dailyLimit:"Naabot ang arawang limitasyon",blacklist:"Blacklist"}},conditions:{condition:"Kondisyon",add:"+ Magdagdag ng kondisyon",delete:"- Alisin ang kondisyon",logicOr:"o"},keywords:{placeholder:"Ilagay ang mga keyword at pindutin ang Enter. Paghiwalayin gamit ang #",someLimitDesc:"Lampas sa limitasyon ang isang keyword",allLimitDesc:"Lampas sa kabuuang limitasyon ng character",matchDesc:"Mga keyword ng sangay na ito",priorityRecommendDesc:"(Inirerekomenda ang mga keyword)",copyAllDesc:"Kopyahin lahat",delAllDesc:"Alisin lahat",noKeywordDesc:"Walang keyword",copySucessDesc:"Nakopya",alreadyExistDesc:"Mayroon nang ganitong keyword",correctDesc:"Pak iwasto",incorrectRegDesc:"Hindi wastong regular expression"},variableSelect:{placeholder:"Hanapin ayon sa pangalan ng variable"},transferSelect:{all:"Piliin lahat",selected:"Napili"}},le={searchForm:{startDate:"Petsa ng simula",endDate:"Petsa ng pagtatapos",startTime:"Oras ng simula",endTime:"Oras ng pagtatapos",query:"Maghanap",export:"I-export",reset:"I-reset",settings:"Ayusin ang mga filter",addFields:"Magdagdag ng filter",unsupported:"Hindi pa naililipat ang {name}. Gumamit ng Vue 3 component o slot."},table:{settings:"Ayusin ang mga column",basicField:"Mga pangunahing field",search:"Maghanap",fixedLeft:"I-pin sa kaliwa",clear:"I-clear",noFixed:"Alisin ang pin",selectEmpty:"Pumili ng kahit isang field",selected:"Napili ({length})",all:"Piliin lahat ({length})",moveUp:"Itaas",moveDown:"Ibaba",resizeColumn:"Baguhin ang lapad ng aksyon"}},De={name:"tl",messages:{datePicker:{firstHalf:"Unang kalahati",secondHalf:"Ikalawang kalahati",halfYear:"{half} ng {year}",halfYearPlaceholder:"Pumili ng kalahating taon",halfYearRangePlaceholder:"Pumili ng saklaw ng kalahating taon",startHalfYear:"Simulang kalahating taon",endHalfYear:"Huling kalahating taon",startWeek:"Simulang linggo",endWeek:"Huling linggo",previousYear:"Nakaraang taon",nextYear:"Susunod na taon",clear:"I-clear"},searchForm:le.searchForm,table:le.table,rules:T.rules,conditions:T.conditions,keywords:T.keywords,variableSelect:T.variableSelect,transferSelect:T.transferSelect,audio:{speed:"Bilis",download:"I-download",copyAddress:"Kopyahin ang address",openWindow:"Buksan sa bagong window",unavailable:"Hindi pa na-load ang audio",crossTime:"Dapat mas huli ang oras ng pagtatapos kaysa simula",jump:"Tumalon",play:"I-play",pause:"I-pause",progress:"Progreso ng pag-play",volume:"Lakas ng tunog"},importTemplate:{fileTypeError:"Mga {formats} file lamang ang sinusuportahan",fileSizeError:"Dapat mas maliit sa {size} MiB ang file",errorDetails:"Tingnan ang detalye ng error"},common:{...T.common,expand:"Palawakin",collapse:"Paliitin",more:"Higit pa",copySuccess:"Nakopya",close:"Isara",confirm:"Kumpirmahin",cancel:"Kanselahin",loading:"Naglo-load",empty:"Walang data"},empty:{internet:"Nabigo ang koneksyon sa network",message:"Walang mensahe",server:"Error sa server",loading:"Nabigo ang pag-load",authority:"Walang pahintulot",call:"Nabigo ang tawag, pakitawagan muli",seat:"Walang available na upuan"}}},C={common:{searchContent:"Digite o texto de pesquisa",copy:"Copiar",noData:"Sem dados",noMatch:"Nenhuma correspondência",all:"Todos",placeholderSelect:"Selecione",placeholderEnter:"Digite um valor",startDate:"Data inicial",endDate:"Data final",startTime:"Hora inicial",endTime:"Hora final",clear:"Limpar",remove:"Remover"},rules:{logicAnd:"e",numberRequire:"Digite um número",commonLenLimit:"O comprimento não pode exceder 2000 caracteres",prohibitEmpty:"Não pode estar vazio",paramsLenLimit:"Até 50 caracteres ASCII",timeRangePlaceholder:"Selecione um intervalo de tempo",dateRangePlaceholder:"Selecione um intervalo de datas",split:"Separe as entradas com #",times:"vezes",second:"s",ruleType:{intentionTag:"Etiqueta de intenção",personalTag:"Etiqueta pessoal",replyKeyword:"Palavra-chave de resposta",customTag:"Etiqueta personalizada",importTime:"Hora de importação",callTime:"Período de chamada",currentTime:"Hora atual",callDuration:"Duração da chamada",dialogueRounds:"Rodadas de diálogo",callCount:"Tentativas de chamada",param:"Parâmetro",callStatus:"Estado da chamada"},operator:{isEmpty:"Está vazio",notEmpty:"Não está vazio",contains:"Contém",notContains:"Não contém"},calculation:{each:"Cada",total:"Total"},dateType:{today:"Mesmo dia",notToday:"Outro dia"},callStatus:{answered:"Atendida",missed:"Não atendida",busy:"Ocupado",unreachable:"Inacessível",callFailed:"Falha na chamada",rejected:"Rejeitada",emptyNumber:"Número inválido",poweredOff:"Desligado",suspended:"Suspenso",arrears:"Saldo insuficiente",lineFault:"Falha de linha",numberChanged:"Número alterado",dailyLimit:"Limite diário atingido",blacklist:"Lista de bloqueio"}},conditions:{condition:"Condição",add:"+ Adicionar condição",delete:"- Excluir condição",logicOr:"ou"},keywords:{placeholder:"Digite palavras-chave e pressione Enter. Separe-as com #",someLimitDesc:"Uma palavra-chave excede o limite",allLimitDesc:"Limite total de caracteres excedido",matchDesc:"Palavras-chave deste ramo",priorityRecommendDesc:"(Palavras-chave recomendadas)",copyAllDesc:"Copiar tudo",delAllDesc:"Excluir tudo",noKeywordDesc:"Sem palavras-chave",copySucessDesc:"Copiado",alreadyExistDesc:"A palavra-chave já existe",correctDesc:"Corrija",incorrectRegDesc:"Expressão regular inválida"},variableSelect:{placeholder:"Pesquisar por nome da variável"},transferSelect:{all:"Selecionar todos",selected:"Selecionados"}},te={searchForm:{startDate:"Data inicial",endDate:"Data final",startTime:"Hora inicial",endTime:"Hora final",query:"Pesquisar",export:"Exportar",reset:"Redefinir",settings:"Configurar filtros",addFields:"Adicionar filtros",unsupported:"O controle {name} não foi migrado. Use um componente Vue 3 ou slot."},table:{settings:"Configurar colunas",basicField:"Campos básicos",search:"Pesquisar",fixedLeft:"Fixar à esquerda",clear:"Limpar",noFixed:"Desafixar",selectEmpty:"Selecione pelo menos um campo",selected:"Selecionados ({length})",all:"Selecionar tudo ({length})",moveUp:"Mover para cima",moveDown:"Mover para baixo",resizeColumn:"Redimensionar coluna de ações"}},we={name:"pt",messages:{datePicker:{firstHalf:"Primeiro semestre",secondHalf:"Segundo semestre",halfYear:"{half} de {year}",halfYearPlaceholder:"Selecionar semestre",halfYearRangePlaceholder:"Selecionar intervalo semestral",startHalfYear:"Semestre inicial",endHalfYear:"Semestre final",startWeek:"Semana inicial",endWeek:"Semana final",previousYear:"Ano anterior",nextYear:"Próximo ano",clear:"Limpar"},searchForm:te.searchForm,table:te.table,rules:C.rules,conditions:C.conditions,keywords:C.keywords,variableSelect:C.variableSelect,transferSelect:C.transferSelect,audio:{speed:"Velocidade",download:"Baixar",copyAddress:"Copiar endereço",openWindow:"Abrir em nova janela",unavailable:"O áudio não foi carregado",crossTime:"O fim deve ser posterior ao início",jump:"Saltar",play:"Reproduzir",pause:"Pausar",progress:"Progresso da reprodução",volume:"Volume"},importTemplate:{fileTypeError:"Apenas arquivos {formats} são aceitos",fileSizeError:"O arquivo deve ter menos de {size} MiB",errorDetails:"Ver detalhes do erro"},common:{...C.common,expand:"Expandir",collapse:"Recolher",more:"Mais",copySuccess:"Copiado",close:"Fechar",confirm:"Confirmar",cancel:"Cancelar",loading:"Carregando",empty:"Sem dados"},empty:{internet:"Falha na conexão de rede",message:"Nenhuma mensagem",server:"Erro no servidor",loading:"Falha ao carregar",authority:"Sem permissão",call:"Falha na chamada, ligue novamente",seat:"Nenhum posto disponível"}}},Pe=Symbol.for("@94ai-plus/components/config");function B(o,r,s){const e=(0,a.getCurrentInstance)(),t=(0,a.inject)(Pe,(0,a.computed)(()=>({}))),i=(0,a.shallowRef)(e?.vnode.props);return(0,a.onBeforeUpdate)(()=>{i.value=e?.vnode.props}),new Proxy(o,{get(l,d,u){const f=Reflect.get(l,d,u);if(typeof d!="string"||!(d in l))return f;const E=d.replace(/[A-Z]/g,R=>`-${R.toLowerCase()}`);if(i.value?.[d]!==void 0||i.value?.[E]!==void 0)return f;const L=t.value[r];if(L?.[d]!==void 0)return L[d];const _=s?t.value[s]:void 0;return _?.[d]!==void 0?_[d]:f}})}var Te=Symbol.for("@94ai-plus/common-locale/context");function Ce(o,r){return r.split(".").reduce((s,e)=>{if(typeof s=="object"&&s!==null)return s[e]},o)}function Ee(o,r={}){return o.replace(/\{([^}]+)\}/g,(s,e)=>String(r[e]??`{${e}}`))}function Fe(o=z){const r=(0,a.shallowReactive)(new Map([[z.name,z],[Q.name,Q],...[ke,be,ve,Se,De,we].map(t=>[t.name,t]),[o.name,o]])),s=(0,a.ref)(o.name),e=(0,a.computed)(()=>r.get(s.value)?.messages??o.messages);return{locale:(0,a.readonly)(s),messages:e,registerLanguage(t){r.set(t.name,t)},setLocale(t){if(!r.has(t))throw new Error(`Locale "${t}" has not been registered.`);s.value=t},t(t,i){const l=Ce(e.value,t);return typeof l=="string"?Ee(l,i):t}}}var xe=Fe();function Le(){return(0,a.inject)(Te,xe)}function O(o,r){if(o==null||o==="")return;const s=typeof o=="string"&&r?(0,p.dayjs)(o,r):(0,p.dayjs)(o);return s.isValid()?s.toDate():void 0}function Re(o){const r=new Date(o.getTime());return r.setMonth(o.getMonth()<6?0:6,1),r.setHours(0,0,0,0),r}function K(o,r,s){const e=[...o].sort((l,d)=>l.getTime()-d.getTime()),t=(0,p.dayjs)(e[0]).locale(r).startOf("day"),i=(0,p.dayjs)(e[e.length-1]).locale(r).startOf("day");return s==null?[t.startOf("week").toDate(),i.endOf("week").startOf("day").toDate()]:[t.subtract((t.day()-s+7)%7,"day").toDate(),i.add((s+6-i.day()+7)%7,"day").toDate()]}function W(o,r){return r?(0,p.dayjs)(o).format(r):new Date(o.getTime())}var Ne=(0,a.defineComponent)({name:"NfDatePicker",inheritAttrs:!1,__name:"date-picker",props:{modelValue:{type:[Date,String,Number,Array,null],required:!1},type:{type:String,required:!1,default:"halfyear"},size:{type:String,required:!1},disabled:{type:Boolean,required:!1,default:void 0},clearable:{type:Boolean,required:!1,default:!0},placeholder:{type:String,required:!1},startPlaceholder:{type:String,required:!1},endPlaceholder:{type:String,required:!1},valueFormat:{type:String,required:!1},format:{type:String,required:!1},disabledDate:{type:Function,required:!1},defaultValue:{type:[Date,Array],required:!1},teleported:{type:Boolean,required:!1,default:!0},popperClass:{type:String,required:!1},weekStartsOn:{type:Number,required:!1}},emits:["update:modelValue","change","calendar-change","visible-change","clear","focus","blur"],setup(o,{expose:r,emit:s}){const e=o,t=B(e,"nfDatePicker"),i=s,l=(0,p.useFormDisabled)(),d=(0,a.computed)(()=>t.disabled||l.value),{formItem:u}=(0,p.useFormItem)(),{t:f}=Le(),E=(0,p.useGlobalConfig)("locale"),L=(0,p.useFormSize)(),_=(0,a.computed)(()=>t.size||L.value||"default"),R=(0,a.computed)(()=>t.type!=="halfyear"),N=(0,a.computed)(()=>(Array.isArray(t.modelValue)?t.modelValue:[t.modelValue]).flatMap(n=>{const c=O(n,t.valueFormat);return c?[Re(c)]:[]})),q=(0,a.ref)(!1),h=(0,a.ref)(),A=(0,a.ref)(),F=(0,a.ref)(new Date().getFullYear()),M=(0,a.ref)(),I=(0,a.ref)(),H=(0,a.ref)(),ue=(0,a.computed)(()=>R.value?[F.value,F.value+1]:[F.value]);function Ue(n,c){const m=new Date(n,c,1);return m.setFullYear(n),m}const pe=()=>N.value[0]?.getFullYear()??(Array.isArray(t.defaultValue)?t.defaultValue[0]:t.defaultValue)?.getFullYear()??new Date().getFullYear();(0,a.watch)(q,n=>{n&&(F.value=pe(),h.value=void 0,A.value=void 0),i("visible-change",n)}),(0,a.watch)(d,n=>{n&&Y()}),(0,a.watch)(()=>t.modelValue,()=>{h.value=void 0,A.value=void 0,t.type!=="weekrange"&&u?.validate("change").catch(()=>{})},{flush:"post"});function ge(n){return n?f("datePicker.halfYear",{year:n.getFullYear(),half:f(n.getMonth()<6?"datePicker.firstHalf":"datePicker.secondHalf")}):""}const Ge=(0,a.computed)(()=>N.value.map(n=>t.format?(0,p.dayjs)(n).format(t.format):ge(n))),Je=n=>N.value.some(c=>c.getTime()===n.getTime()),U=n=>t.disabledDate?.(n)??!1;function Ze(n){const c=h.value?[h.value,A.value??h.value]:N.value;if(c.length<2)return!1;const m=c.map(y=>y.getTime());return n.getTime()>=Math.min(...m)&&n.getTime()<=Math.max(...m)}function k(n){i("update:modelValue",n),i("change",n)}function Qe(n){i("blur",n),u?.validate("blur").catch(()=>{})}function Xe(n){if(!(d.value||U(n))){if(!R.value)k(W(n,t.valueFormat));else if(h.value){const c=[h.value,n].sort((m,y)=>m.getTime()-y.getTime());i("calendar-change",c),k(c.map(m=>W(m,t.valueFormat)))}else{h.value=n,A.value=n,i("calendar-change",[n,null]);return}q.value=!1,(0,a.nextTick)(()=>M.value?.focus())}}function $e(){d.value||(h.value=void 0,k(null),i("clear"))}function G(){d.value||(t.type==="weekrange"?H.value?.handleOpen():q.value=!0)}function Y(){q.value=!1,H.value?.handleClose()}function j(){t.type==="weekrange"?H.value?.focus():M.value?.focus()}function fe(){t.type==="weekrange"?H.value?.blur():M.value?.blur()}function ea(n){n.key==="Escape"?(Y(),j()):["Enter"," ","ArrowDown"].includes(n.key)&&(n.preventDefault(),G(),(0,a.nextTick)(()=>I.value?.querySelector(".nf-date-picker-cell:not(:disabled)")?.focus()))}function aa(n,c){if(n.key==="Escape"){Y(),j();return}const m={ArrowLeft:-6,ArrowRight:6,ArrowUp:-12,ArrowDown:12}[n.key];if(!m)return;n.preventDefault();const y=(0,p.dayjs)(c).add(m,"month").toDate();y.getFullYear()<1||y.getFullYear()>9998||(ue.value.includes(y.getFullYear())||(F.value=y.getFullYear()),(0,a.nextTick)(()=>I.value?.querySelector(`[data-date="${(0,p.dayjs)(y).format("YYYY-MM-DD")}"]`)?.focus()))}const J=(0,a.computed)(()=>Array.isArray(t.modelValue)?t.modelValue.map(n=>O(n,t.valueFormat)).filter(n=>!!n):[]);function ra(n){if(d.value)return;if(!Array.isArray(n)){k(null);return}if(!n?.length){k(null);return}const c=n.map(m=>O(m)).filter(m=>!!m);c.length!==2||c.some(ye)||k(K(c,E.value?.name??"en",t.weekStartsOn).map(m=>W(m,t.valueFormat)))}function ye(n){if(!t.disabledDate)return!1;const[c]=K([n],E.value?.name??"en",t.weekStartsOn);return Array.from({length:7},(m,y)=>(0,p.dayjs)(c).add(y,"day").toDate()).some(U)}function la(n){if(J.value.length!==2)return"";const[c,m]=K(J.value,E.value?.name??"en",t.weekStartsOn);return n>=c&&n<=m?"nf-week-range-selected":""}r({focus:j,blur:fe,handleOpen:G,handleClose:Y});const he={rawProps:e,props:t,emit:i,inheritedDisabled:l,disabled:d,formItem:u,t:f,globalLocale:E,inheritedSize:L,size:_,isRange:R,values:N,visible:q,draft:h,hover:A,year:F,trigger:M,panel:I,weekPicker:H,years:ue,panelDate:Ue,firstYear:pe,label:ge,display:Ge,selected:Je,dateDisabled:U,inRange:Ze,commit:k,triggerBlur:Qe,select:Xe,clear:$e,handleOpen:G,handleClose:Y,focus:j,blur:fe,keydown:ea,cellKeydown:aa,weekValue:J,updateWeek:ra,weekDisabled:ye,weekCellClass:la,get ElDatePicker(){return p.ElDatePicker},get ElPopover(){return p.ElPopover},get dayjs(){return p.dayjs}};return Object.defineProperty(he,"__isScriptSetup",{enumerable:!1,value:!0}),he}}),V=(o,r)=>{const s=o.__vccOpts||o;for(const[e,t]of r)s[e]=t;return s},qe=["aria-expanded","aria-disabled","aria-label","tabindex"],Ae=["aria-label"],He=["aria-label"],Ye=["disabled","aria-label"],Be=["disabled","aria-label"],Ve={class:"nf-date-picker-grid"},_e=["data-date","disabled","aria-pressed","onMouseenter","onFocus","onClick","onKeydown"];function Me(o,r,s,e,t,i){return e.props.type==="weekrange"?((0,a.openBlock)(),(0,a.createBlock)(e.ElDatePicker,(0,a.mergeProps)({key:0,ref:"weekPicker"},o.$attrs,{class:"nf-date-picker nf-week-range-picker",type:"daterange","model-value":e.weekValue,size:e.size,disabled:e.disabled,clearable:e.props.clearable,format:e.props.format,"default-value":e.props.defaultValue,"disabled-date":e.weekDisabled,teleported:e.props.teleported,"popper-class":["nf-week-range-popper",e.props.popperClass].filter(Boolean).join(" "),"start-placeholder":e.props.startPlaceholder??e.t("datePicker.startWeek"),"end-placeholder":e.props.endPlaceholder??e.t("datePicker.endWeek"),"cell-class-name":e.weekCellClass,"onUpdate:modelValue":e.updateWeek,onClear:r[0]||(r[0]=l=>e.emit("clear")),onCalendarChange:r[1]||(r[1]=l=>e.emit("calendar-change",l)),onVisibleChange:r[2]||(r[2]=l=>e.emit("visible-change",l)),onFocus:r[3]||(r[3]=l=>e.emit("focus",l)),onBlur:e.triggerBlur}),null,16,["model-value","size","disabled","clearable","format","default-value","teleported","popper-class","start-placeholder","end-placeholder"])):((0,a.openBlock)(),(0,a.createBlock)(e.ElPopover,{key:1,visible:e.visible,"onUpdate:visible":r[9]||(r[9]=l=>e.visible=l),trigger:"click",placement:"bottom-start",disabled:e.disabled,teleported:e.props.teleported,"popper-class":["nf-date-picker-popper",e.props.popperClass].filter(Boolean).join(" "),width:e.isRange?576:288,"show-arrow":!1},{reference:(0,a.withCtx)(()=>[(0,a.createElementVNode)("div",(0,a.mergeProps)({ref:"trigger"},o.$attrs,{class:["nf-date-picker nf-date-picker-reference el-input__wrapper",["is-"+e.size,{"is-disabled":e.disabled,"is-focus":e.visible,"is-range":e.isRange}]],role:"combobox","aria-expanded":e.visible,"aria-haspopup":"dialog","aria-disabled":e.disabled,"aria-label":e.props.placeholder??e.t(e.isRange?"datePicker.halfYearRangePlaceholder":"datePicker.halfYearPlaceholder"),tabindex:e.disabled?-1:0,onKeydown:e.keydown,onFocus:r[5]||(r[5]=l=>e.emit("focus",l)),onBlur:e.triggerBlur}),[r[11]||(r[11]=(0,a.createElementVNode)("svg",{class:"nf-date-picker-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","aria-hidden":"true"},[(0,a.createElementVNode)("rect",{x:"3",y:"5",width:"18",height:"16",rx:"2"}),(0,a.createElementVNode)("path",{d:"M7 3v4m10-4v4M3 11h18"})],-1)),(0,a.createElementVNode)("span",{class:(0,a.normalizeClass)(["nf-date-picker-value",{"is-placeholder":!e.display[0]}])},(0,a.toDisplayString)(e.display[0]||(e.isRange?e.props.startPlaceholder??e.t("datePicker.startHalfYear"):e.props.placeholder??e.t("datePicker.halfYearPlaceholder"))),3),e.isRange?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[r[10]||(r[10]=(0,a.createElementVNode)("span",{class:"nf-date-picker-separator"},"→",-1)),(0,a.createElementVNode)("span",{class:(0,a.normalizeClass)(["nf-date-picker-value",{"is-placeholder":!e.display[1]}])},(0,a.toDisplayString)(e.display[1]||e.props.endPlaceholder||e.t("datePicker.endHalfYear")),3)],64)):(0,a.createCommentVNode)("v-if",!0),e.props.clearable&&e.values.length&&!e.disabled?((0,a.openBlock)(),(0,a.createElementBlock)("button",{key:1,class:"nf-date-picker-clear",type:"button","aria-label":e.t("datePicker.clear"),onClick:(0,a.withModifiers)(e.clear,["stop"]),onKeydown:r[4]||(r[4]=(0,a.withModifiers)(()=>{},["stop"]))},"×",40,Ae)):(0,a.createCommentVNode)("v-if",!0)],16,qe)]),default:(0,a.withCtx)(()=>[(0,a.createElementVNode)("div",{ref:"panel",class:(0,a.normalizeClass)(["nf-date-picker-panel",{"is-range":e.isRange}]),role:"dialog","aria-label":e.t(e.isRange?"datePicker.halfYearRangePlaceholder":"datePicker.halfYearPlaceholder"),onKeydown:r[8]||(r[8]=(0,a.withKeys)((0,a.withModifiers)(l=>{e.handleClose(),e.focus()},["stop"]),["esc"]))},[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.years,(l,d)=>((0,a.openBlock)(),(0,a.createElementBlock)("section",{key:l,class:"nf-date-picker-year"},[(0,a.createElementVNode)("header",null,[d===0?((0,a.openBlock)(),(0,a.createElementBlock)("button",{key:0,type:"button",disabled:e.year<=1,"aria-label":e.t("datePicker.previousYear"),onClick:r[6]||(r[6]=u=>e.year--)},"«",8,Ye)):(0,a.createCommentVNode)("v-if",!0),(0,a.createElementVNode)("span",null,(0,a.toDisplayString)(l),1),d===e.years.length-1?((0,a.openBlock)(),(0,a.createElementBlock)("button",{key:1,type:"button",disabled:e.year>=9998,"aria-label":e.t("datePicker.nextYear"),onClick:r[7]||(r[7]=u=>e.year++)},"»",8,Be)):(0,a.createCommentVNode)("v-if",!0)]),(0,a.createElementVNode)("div",Ve,[((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)([0,6],u=>(0,a.createElementVNode)("button",{key:u,type:"button",class:(0,a.normalizeClass)(["nf-date-picker-cell",{"is-selected":e.selected(e.panelDate(l,u)),"is-in-range":e.inRange(e.panelDate(l,u)),"is-range-start":e.draft?.getTime()===e.panelDate(l,u).getTime()}]),"data-date":e.dayjs(e.panelDate(l,u)).format("YYYY-MM-DD"),disabled:e.props.disabledDate?.(e.panelDate(l,u)),"aria-pressed":e.selected(e.panelDate(l,u)),onMouseenter:f=>e.hover=e.panelDate(l,u),onFocus:f=>e.hover=e.panelDate(l,u),onClick:f=>e.select(e.panelDate(l,u)),onKeydown:f=>e.cellKeydown(f,e.panelDate(l,u))},(0,a.toDisplayString)(e.t(u===0?"datePicker.firstHalf":"datePicker.secondHalf")),43,_e)),64))])]))),128))],42,He)]),_:1},8,["visible","disabled","teleported","popper-class","width"]))}var x=V(Ne,[["render",Me],["__file","C:/common-ui-plus/packages/nf-date-picker/src/date-picker.vue"]]),je=(0,a.defineComponent)({name:"NfHalfYearPicker",__name:"half-year-picker",props:{modelValue:{type:[Date,String,Number,Array,null],required:!1},size:{type:String,required:!1},disabled:{type:Boolean,required:!1,default:void 0},clearable:{type:Boolean,required:!1,default:!0},placeholder:{type:String,required:!1},startPlaceholder:{type:String,required:!1},endPlaceholder:{type:String,required:!1},valueFormat:{type:String,required:!1},format:{type:String,required:!1},disabledDate:{type:Function,required:!1},defaultValue:{type:[Date,Array],required:!1},teleported:{type:Boolean,required:!1,default:!0},popperClass:{type:String,required:!1},weekStartsOn:{type:Number,required:!1}},emits:["update:modelValue","change","calendar-change","visible-change","clear","focus","blur"],setup(o,{expose:r,emit:s}){const e=o,t=B(e,"nfHalfYearPicker","nfDatePicker"),i=(0,a.ref)(),l=s;r({focus:()=>i.value?.focus(),blur:()=>i.value?.blur(),handleOpen:()=>i.value?.handleOpen(),handleClose:()=>i.value?.handleClose()});const d={rawProps:e,props:t,view:i,emit:l,View:x};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function ze(o,r,s,e,t,i){return(0,a.openBlock)(),(0,a.createBlock)(e.View,(0,a.mergeProps)({ref:"view"},e.props,{type:"halfyear","onUpdate:modelValue":r[0]||(r[0]=l=>e.emit("update:modelValue",l)),onChange:r[1]||(r[1]=l=>e.emit("change",l)),onCalendarChange:r[2]||(r[2]=l=>e.emit("calendar-change",l)),onVisibleChange:r[3]||(r[3]=l=>e.emit("visible-change",l)),onClear:r[4]||(r[4]=l=>e.emit("clear")),onFocus:r[5]||(r[5]=l=>e.emit("focus",l)),onBlur:r[6]||(r[6]=l=>e.emit("blur",l))}),null,16)}var ne=V(je,[["render",ze],["__file","C:/common-ui-plus/packages/nf-date-picker/src/half-year-picker.vue"]]),Oe=(0,a.defineComponent)({name:"NfHalfYearRangePicker",__name:"half-year-range-picker",props:{modelValue:{type:[Date,String,Number,Array,null],required:!1},size:{type:String,required:!1},disabled:{type:Boolean,required:!1,default:void 0},clearable:{type:Boolean,required:!1,default:!0},placeholder:{type:String,required:!1},startPlaceholder:{type:String,required:!1},endPlaceholder:{type:String,required:!1},valueFormat:{type:String,required:!1},format:{type:String,required:!1},disabledDate:{type:Function,required:!1},defaultValue:{type:[Date,Array],required:!1},teleported:{type:Boolean,required:!1,default:!0},popperClass:{type:String,required:!1},weekStartsOn:{type:Number,required:!1}},emits:["update:modelValue","change","calendar-change","visible-change","clear","focus","blur"],setup(o,{expose:r,emit:s}){const e=o,t=B(e,"nfHalfYearRangePicker","nfDatePicker"),i=(0,a.ref)(),l=s;r({focus:()=>i.value?.focus(),blur:()=>i.value?.blur(),handleOpen:()=>i.value?.handleOpen(),handleClose:()=>i.value?.handleClose()});const d={rawProps:e,props:t,view:i,emit:l,View:x};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function Ke(o,r,s,e,t,i){return(0,a.openBlock)(),(0,a.createBlock)(e.View,(0,a.mergeProps)({ref:"view"},e.props,{type:"halfyearrange","onUpdate:modelValue":r[0]||(r[0]=l=>e.emit("update:modelValue",l)),onChange:r[1]||(r[1]=l=>e.emit("change",l)),onCalendarChange:r[2]||(r[2]=l=>e.emit("calendar-change",l)),onVisibleChange:r[3]||(r[3]=l=>e.emit("visible-change",l)),onClear:r[4]||(r[4]=l=>e.emit("clear")),onFocus:r[5]||(r[5]=l=>e.emit("focus",l)),onBlur:r[6]||(r[6]=l=>e.emit("blur",l))}),null,16)}var oe=V(Oe,[["render",Ke],["__file","C:/common-ui-plus/packages/nf-date-picker/src/half-year-range-picker.vue"]]),We=(0,a.defineComponent)({name:"NfWeekRangePicker",__name:"week-range-picker",props:{modelValue:{type:[Date,String,Number,Array,null],required:!1},size:{type:String,required:!1},disabled:{type:Boolean,required:!1,default:void 0},clearable:{type:Boolean,required:!1,default:!0},placeholder:{type:String,required:!1},startPlaceholder:{type:String,required:!1},endPlaceholder:{type:String,required:!1},valueFormat:{type:String,required:!1},format:{type:String,required:!1},disabledDate:{type:Function,required:!1},defaultValue:{type:[Date,Array],required:!1},teleported:{type:Boolean,required:!1,default:!0},popperClass:{type:String,required:!1},weekStartsOn:{type:Number,required:!1}},emits:["update:modelValue","change","calendar-change","visible-change","clear","focus","blur"],setup(o,{expose:r,emit:s}){const e=o,t=B(e,"nfWeekRangePicker","nfDatePicker"),i=(0,a.ref)(),l=s;r({focus:()=>i.value?.focus(),blur:()=>i.value?.blur(),handleOpen:()=>i.value?.handleOpen(),handleClose:()=>i.value?.handleClose()});const d={rawProps:e,props:t,view:i,emit:l,View:x};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}});function Ie(o,r,s,e,t,i){return(0,a.openBlock)(),(0,a.createBlock)(e.View,(0,a.mergeProps)({ref:"view"},e.props,{type:"weekrange","onUpdate:modelValue":r[0]||(r[0]=l=>e.emit("update:modelValue",l)),onChange:r[1]||(r[1]=l=>e.emit("change",l)),onCalendarChange:r[2]||(r[2]=l=>e.emit("calendar-change",l)),onVisibleChange:r[3]||(r[3]=l=>e.emit("visible-change",l)),onClear:r[4]||(r[4]=l=>e.emit("clear")),onFocus:r[5]||(r[5]=l=>e.emit("focus",l)),onBlur:r[6]||(r[6]=l=>e.emit("blur",l))}),null,16)}var ie=V(We,[["render",Ie],["__file","C:/common-ui-plus/packages/nf-date-picker/src/week-range-picker.vue"]]),se=Object.assign(ne,{install(o){o.component("NfHalfYearPicker",ne)}}),de=Object.assign(oe,{install(o){o.component("NfHalfYearRangePicker",oe)}}),ce=Object.assign(ie,{install(o){o.component("NfWeekRangePicker",ie)}}),me=Object.assign(x,{install(o){o.component("NfDatePicker",x),o.use(se),o.use(de),o.use(ce)}});g.NfDatePicker=me,g.default=me,g.NfHalfYearPicker=se,g.NfHalfYearRangePicker=de,g.NfWeekRangePicker=ce});
2
+
3
+ //# sourceMappingURL=index.umd.js.map