@gisce/react-ooui 1.1.4 → 1.1.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.
- package/dist/react-ooui.es.js +1 -1
- package/dist/react-ooui.es.js.map +1 -1
- package/dist/react-ooui.umd.js +1 -1
- package/dist/react-ooui.umd.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/types/index.ts +1 -0
- package/src/views/actionViews/TreeActionView.tsx +1 -1
package/dist/react-ooui.umd.js
CHANGED
|
@@ -126,5 +126,5 @@ var hookCallback;function hooks(){return hookCallback.apply(null,arguments)}func
|
|
|
126
126
|
Arguments: `+Array.prototype.slice.call(o).join("")+`
|
|
127
127
|
`+new Error().stack),t=!1}return n.apply(this,arguments)},n)}var deprecations={};function deprecateSimple(e,n){hooks.deprecationHandler!=null&&hooks.deprecationHandler(e,n),deprecations[e]||(warn(n),deprecations[e]=!0)}hooks.suppressDeprecationWarnings=!1,hooks.deprecationHandler=null;function isFunction(e){return typeof Function<"u"&&e instanceof Function||Object.prototype.toString.call(e)==="[object Function]"}function set(e){var n,t;for(t in e)hasOwnProp(e,t)&&(n=e[t],isFunction(n)?this[t]=n:this["_"+t]=n);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function mergeConfigs(e,n){var t=extend({},e),o;for(o in n)hasOwnProp(n,o)&&(isObject(e[o])&&isObject(n[o])?(t[o]={},extend(t[o],e[o]),extend(t[o],n[o])):n[o]!=null?t[o]=n[o]:delete t[o]);for(o in e)hasOwnProp(e,o)&&!hasOwnProp(n,o)&&isObject(e[o])&&(t[o]=extend({},t[o]));return t}function Locale(e){e!=null&&this.set(e)}var keys;Object.keys?keys=Object.keys:keys=function(e){var n,t=[];for(n in e)hasOwnProp(e,n)&&t.push(n);return t};var defaultCalendar={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function calendar(e,n,t){var o=this._calendar[e]||this._calendar.sameElse;return isFunction(o)?o.call(n,t):o}function zeroFill(e,n,t){var o=""+Math.abs(e),r=n-o.length,a=e>=0;return(a?t?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+o}var formattingTokens=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,formatFunctions={},formatTokenFunctions={};function addFormatToken(e,n,t,o){var r=o;typeof o=="string"&&(r=function(){return this[o]()}),e&&(formatTokenFunctions[e]=r),n&&(formatTokenFunctions[n[0]]=function(){return zeroFill(r.apply(this,arguments),n[1],n[2])}),t&&(formatTokenFunctions[t]=function(){return this.localeData().ordinal(r.apply(this,arguments),e)})}function removeFormattingTokens(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function makeFormatFunction(e){var n=e.match(formattingTokens),t,o;for(t=0,o=n.length;t<o;t++)formatTokenFunctions[n[t]]?n[t]=formatTokenFunctions[n[t]]:n[t]=removeFormattingTokens(n[t]);return function(r){var a="",s;for(s=0;s<o;s++)a+=isFunction(n[s])?n[s].call(r,e):n[s];return a}}function formatMoment(e,n){return e.isValid()?(n=expandFormat(n,e.localeData()),formatFunctions[n]=formatFunctions[n]||makeFormatFunction(n),formatFunctions[n](e)):e.localeData().invalidDate()}function expandFormat(e,n){var t=5;function o(r){return n.longDateFormat(r)||r}for(localFormattingTokens.lastIndex=0;t>=0&&localFormattingTokens.test(e);)e=e.replace(localFormattingTokens,o),localFormattingTokens.lastIndex=0,t-=1;return e}var defaultLongDateFormat={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function longDateFormat(e){var n=this._longDateFormat[e],t=this._longDateFormat[e.toUpperCase()];return n||!t?n:(this._longDateFormat[e]=t.match(formattingTokens).map(function(o){return o==="MMMM"||o==="MM"||o==="DD"||o==="dddd"?o.slice(1):o}).join(""),this._longDateFormat[e])}var defaultInvalidDate="Invalid date";function invalidDate(){return this._invalidDate}var defaultOrdinal="%d",defaultDayOfMonthOrdinalParse=/\d{1,2}/;function ordinal(e){return this._ordinal.replace("%d",e)}var defaultRelativeTime={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function relativeTime(e,n,t,o){var r=this._relativeTime[t];return isFunction(r)?r(e,n,t,o):r.replace(/%d/i,e)}function pastFuture(e,n){var t=this._relativeTime[e>0?"future":"past"];return isFunction(t)?t(n):t.replace(/%s/i,n)}var aliases={};function addUnitAlias(e,n){var t=e.toLowerCase();aliases[t]=aliases[t+"s"]=aliases[n]=e}function normalizeUnits(e){return typeof e=="string"?aliases[e]||aliases[e.toLowerCase()]:void 0}function normalizeObjectUnits(e){var n={},t,o;for(o in e)hasOwnProp(e,o)&&(t=normalizeUnits(o),t&&(n[t]=e[o]));return n}var priorities={};function addUnitPriority(e,n){priorities[e]=n}function getPrioritizedUnits(e){var n=[],t;for(t in e)hasOwnProp(e,t)&&n.push({unit:t,priority:priorities[t]});return n.sort(function(o,r){return o.priority-r.priority}),n}function isLeapYear(e){return e%4===0&&e%100!==0||e%400===0}function absFloor(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function toInt(e){var n=+e,t=0;return n!==0&&isFinite(n)&&(t=absFloor(n)),t}function makeGetSet(e,n){return function(t){return t!=null?(set$1(this,e,t),hooks.updateOffset(this,n),this):get(this,e)}}function get(e,n){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+n]():NaN}function set$1(e,n,t){e.isValid()&&!isNaN(t)&&(n==="FullYear"&&isLeapYear(e.year())&&e.month()===1&&e.date()===29?(t=toInt(t),e._d["set"+(e._isUTC?"UTC":"")+n](t,e.month(),daysInMonth(t,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+n](t))}function stringGet(e){return e=normalizeUnits(e),isFunction(this[e])?this[e]():this}function stringSet(e,n){if(typeof e=="object"){e=normalizeObjectUnits(e);var t=getPrioritizedUnits(e),o,r=t.length;for(o=0;o<r;o++)this[t[o].unit](e[t[o].unit])}else if(e=normalizeUnits(e),isFunction(this[e]))return this[e](n);return this}var match1=/\d/,match2=/\d\d/,match3=/\d{3}/,match4=/\d{4}/,match6=/[+-]?\d{6}/,match1to2=/\d\d?/,match3to4=/\d\d\d\d?/,match5to6=/\d\d\d\d\d\d?/,match1to3=/\d{1,3}/,match1to4=/\d{1,4}/,match1to6=/[+-]?\d{1,6}/,matchUnsigned=/\d+/,matchSigned=/[+-]?\d+/,matchOffset=/Z|[+-]\d\d:?\d\d/gi,matchShortOffset=/Z|[+-]\d\d(?::?\d\d)?/gi,matchTimestamp=/[+-]?\d+(\.\d{1,3})?/,matchWord=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,regexes;regexes={};function addRegexToken(e,n,t){regexes[e]=isFunction(n)?n:function(o,r){return o&&t?t:n}}function getParseRegexForToken(e,n){return hasOwnProp(regexes,e)?regexes[e](n._strict,n._locale):new RegExp(unescapeFormat(e))}function unescapeFormat(e){return regexEscape(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(n,t,o,r,a){return t||o||r||a}))}function regexEscape(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var tokens={};function addParseToken(e,n){var t,o=n,r;for(typeof e=="string"&&(e=[e]),isNumber(n)&&(o=function(a,s){s[n]=toInt(a)}),r=e.length,t=0;t<r;t++)tokens[e[t]]=o}function addWeekParseToken(e,n){addParseToken(e,function(t,o,r,a){r._w=r._w||{},n(t,r._w,r,a)})}function addTimeToArrayFromToken(e,n,t){n!=null&&hasOwnProp(tokens,e)&&tokens[e](n,t._a,t,e)}var YEAR=0,MONTH=1,DATE=2,HOUR=3,MINUTE=4,SECOND=5,MILLISECOND=6,WEEK=7,WEEKDAY=8;function mod(e,n){return(e%n+n)%n}var indexOf;Array.prototype.indexOf?indexOf=Array.prototype.indexOf:indexOf=function(e){var n;for(n=0;n<this.length;++n)if(this[n]===e)return n;return-1};function daysInMonth(e,n){if(isNaN(e)||isNaN(n))return NaN;var t=mod(n,12);return e+=(n-t)/12,t===1?isLeapYear(e)?29:28:31-t%7%2}addFormatToken("M",["MM",2],"Mo",function(){return this.month()+1}),addFormatToken("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),addFormatToken("MMMM",0,0,function(e){return this.localeData().months(this,e)}),addUnitAlias("month","M"),addUnitPriority("month",8),addRegexToken("M",match1to2),addRegexToken("MM",match1to2,match2),addRegexToken("MMM",function(e,n){return n.monthsShortRegex(e)}),addRegexToken("MMMM",function(e,n){return n.monthsRegex(e)}),addParseToken(["M","MM"],function(e,n){n[MONTH]=toInt(e)-1}),addParseToken(["MMM","MMMM"],function(e,n,t,o){var r=t._locale.monthsParse(e,o,t._strict);r!=null?n[MONTH]=r:getParsingFlags(t).invalidMonth=e});var defaultLocaleMonths="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),defaultLocaleMonthsShort="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),MONTHS_IN_FORMAT=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,defaultMonthsShortRegex=matchWord,defaultMonthsRegex=matchWord;function localeMonths(e,n){return e?isArray(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(n)?"format":"standalone"][e.month()]:isArray(this._months)?this._months:this._months.standalone}function localeMonthsShort(e,n){return e?isArray(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(n)?"format":"standalone"][e.month()]:isArray(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function handleStrictParse(e,n,t){var o,r,a,s=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],o=0;o<12;++o)a=createUTC([2e3,o]),this._shortMonthsParse[o]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[o]=this.months(a,"").toLocaleLowerCase();return t?n==="MMM"?(r=indexOf.call(this._shortMonthsParse,s),r!==-1?r:null):(r=indexOf.call(this._longMonthsParse,s),r!==-1?r:null):n==="MMM"?(r=indexOf.call(this._shortMonthsParse,s),r!==-1?r:(r=indexOf.call(this._longMonthsParse,s),r!==-1?r:null)):(r=indexOf.call(this._longMonthsParse,s),r!==-1?r:(r=indexOf.call(this._shortMonthsParse,s),r!==-1?r:null))}function localeMonthsParse(e,n,t){var o,r,a;if(this._monthsParseExact)return handleStrictParse.call(this,e,n,t);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;o<12;o++){if(r=createUTC([2e3,o]),t&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),!t&&!this._monthsParse[o]&&(a="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[o]=new RegExp(a.replace(".",""),"i")),t&&n==="MMMM"&&this._longMonthsParse[o].test(e))return o;if(t&&n==="MMM"&&this._shortMonthsParse[o].test(e))return o;if(!t&&this._monthsParse[o].test(e))return o}}function setMonth(e,n){var t;if(!e.isValid())return e;if(typeof n=="string"){if(/^\d+$/.test(n))n=toInt(n);else if(n=e.localeData().monthsParse(n),!isNumber(n))return e}return t=Math.min(e.date(),daysInMonth(e.year(),n)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](n,t),e}function getSetMonth(e){return e!=null?(setMonth(this,e),hooks.updateOffset(this,!0),this):get(this,"Month")}function getDaysInMonth(){return daysInMonth(this.year(),this.month())}function monthsShortRegex(e){return this._monthsParseExact?(hasOwnProp(this,"_monthsRegex")||computeMonthsParse.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(hasOwnProp(this,"_monthsShortRegex")||(this._monthsShortRegex=defaultMonthsShortRegex),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)}function monthsRegex(e){return this._monthsParseExact?(hasOwnProp(this,"_monthsRegex")||computeMonthsParse.call(this),e?this._monthsStrictRegex:this._monthsRegex):(hasOwnProp(this,"_monthsRegex")||(this._monthsRegex=defaultMonthsRegex),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)}function computeMonthsParse(){function e(s,l){return l.length-s.length}var n=[],t=[],o=[],r,a;for(r=0;r<12;r++)a=createUTC([2e3,r]),n.push(this.monthsShort(a,"")),t.push(this.months(a,"")),o.push(this.months(a,"")),o.push(this.monthsShort(a,""));for(n.sort(e),t.sort(e),o.sort(e),r=0;r<12;r++)n[r]=regexEscape(n[r]),t[r]=regexEscape(t[r]);for(r=0;r<24;r++)o[r]=regexEscape(o[r]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+t.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")","i")}addFormatToken("Y",0,0,function(){var e=this.year();return e<=9999?zeroFill(e,4):"+"+e}),addFormatToken(0,["YY",2],0,function(){return this.year()%100}),addFormatToken(0,["YYYY",4],0,"year"),addFormatToken(0,["YYYYY",5],0,"year"),addFormatToken(0,["YYYYYY",6,!0],0,"year"),addUnitAlias("year","y"),addUnitPriority("year",1),addRegexToken("Y",matchSigned),addRegexToken("YY",match1to2,match2),addRegexToken("YYYY",match1to4,match4),addRegexToken("YYYYY",match1to6,match6),addRegexToken("YYYYYY",match1to6,match6),addParseToken(["YYYYY","YYYYYY"],YEAR),addParseToken("YYYY",function(e,n){n[YEAR]=e.length===2?hooks.parseTwoDigitYear(e):toInt(e)}),addParseToken("YY",function(e,n){n[YEAR]=hooks.parseTwoDigitYear(e)}),addParseToken("Y",function(e,n){n[YEAR]=parseInt(e,10)});function daysInYear(e){return isLeapYear(e)?366:365}hooks.parseTwoDigitYear=function(e){return toInt(e)+(toInt(e)>68?1900:2e3)};var getSetYear=makeGetSet("FullYear",!0);function getIsLeapYear(){return isLeapYear(this.year())}function createDate(e,n,t,o,r,a,s){var l;return e<100&&e>=0?(l=new Date(e+400,n,t,o,r,a,s),isFinite(l.getFullYear())&&l.setFullYear(e)):l=new Date(e,n,t,o,r,a,s),l}function createUTCDate(e){var n,t;return e<100&&e>=0?(t=Array.prototype.slice.call(arguments),t[0]=e+400,n=new Date(Date.UTC.apply(null,t)),isFinite(n.getUTCFullYear())&&n.setUTCFullYear(e)):n=new Date(Date.UTC.apply(null,arguments)),n}function firstWeekOffset(e,n,t){var o=7+n-t,r=(7+createUTCDate(e,0,o).getUTCDay()-n)%7;return-r+o-1}function dayOfYearFromWeeks(e,n,t,o,r){var a=(7+t-o)%7,s=firstWeekOffset(e,o,r),l=1+7*(n-1)+a+s,c,u;return l<=0?(c=e-1,u=daysInYear(c)+l):l>daysInYear(e)?(c=e+1,u=l-daysInYear(e)):(c=e,u=l),{year:c,dayOfYear:u}}function weekOfYear(e,n,t){var o=firstWeekOffset(e.year(),n,t),r=Math.floor((e.dayOfYear()-o-1)/7)+1,a,s;return r<1?(s=e.year()-1,a=r+weeksInYear(s,n,t)):r>weeksInYear(e.year(),n,t)?(a=r-weeksInYear(e.year(),n,t),s=e.year()+1):(s=e.year(),a=r),{week:a,year:s}}function weeksInYear(e,n,t){var o=firstWeekOffset(e,n,t),r=firstWeekOffset(e+1,n,t);return(daysInYear(e)-o+r)/7}addFormatToken("w",["ww",2],"wo","week"),addFormatToken("W",["WW",2],"Wo","isoWeek"),addUnitAlias("week","w"),addUnitAlias("isoWeek","W"),addUnitPriority("week",5),addUnitPriority("isoWeek",5),addRegexToken("w",match1to2),addRegexToken("ww",match1to2,match2),addRegexToken("W",match1to2),addRegexToken("WW",match1to2,match2),addWeekParseToken(["w","ww","W","WW"],function(e,n,t,o){n[o.substr(0,1)]=toInt(e)});function localeWeek(e){return weekOfYear(e,this._week.dow,this._week.doy).week}var defaultLocaleWeek={dow:0,doy:6};function localeFirstDayOfWeek(){return this._week.dow}function localeFirstDayOfYear(){return this._week.doy}function getSetWeek(e){var n=this.localeData().week(this);return e==null?n:this.add((e-n)*7,"d")}function getSetISOWeek(e){var n=weekOfYear(this,1,4).week;return e==null?n:this.add((e-n)*7,"d")}addFormatToken("d",0,"do","day"),addFormatToken("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),addFormatToken("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),addFormatToken("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),addFormatToken("e",0,0,"weekday"),addFormatToken("E",0,0,"isoWeekday"),addUnitAlias("day","d"),addUnitAlias("weekday","e"),addUnitAlias("isoWeekday","E"),addUnitPriority("day",11),addUnitPriority("weekday",11),addUnitPriority("isoWeekday",11),addRegexToken("d",match1to2),addRegexToken("e",match1to2),addRegexToken("E",match1to2),addRegexToken("dd",function(e,n){return n.weekdaysMinRegex(e)}),addRegexToken("ddd",function(e,n){return n.weekdaysShortRegex(e)}),addRegexToken("dddd",function(e,n){return n.weekdaysRegex(e)}),addWeekParseToken(["dd","ddd","dddd"],function(e,n,t,o){var r=t._locale.weekdaysParse(e,o,t._strict);r!=null?n.d=r:getParsingFlags(t).invalidWeekday=e}),addWeekParseToken(["d","e","E"],function(e,n,t,o){n[o]=toInt(e)});function parseWeekday(e,n){return typeof e!="string"?e:isNaN(e)?(e=n.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function parseIsoWeekday(e,n){return typeof e=="string"?n.weekdaysParse(e)%7||7:isNaN(e)?null:e}function shiftWeekdays(e,n){return e.slice(n,7).concat(e.slice(0,n))}var defaultLocaleWeekdays="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),defaultLocaleWeekdaysShort="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),defaultLocaleWeekdaysMin="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),defaultWeekdaysRegex=matchWord,defaultWeekdaysShortRegex=matchWord,defaultWeekdaysMinRegex=matchWord;function localeWeekdays(e,n){var t=isArray(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(n)?"format":"standalone"];return e===!0?shiftWeekdays(t,this._week.dow):e?t[e.day()]:t}function localeWeekdaysShort(e){return e===!0?shiftWeekdays(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function localeWeekdaysMin(e){return e===!0?shiftWeekdays(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function handleStrictParse$1(e,n,t){var o,r,a,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)a=createUTC([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(a,"").toLocaleLowerCase();return t?n==="dddd"?(r=indexOf.call(this._weekdaysParse,s),r!==-1?r:null):n==="ddd"?(r=indexOf.call(this._shortWeekdaysParse,s),r!==-1?r:null):(r=indexOf.call(this._minWeekdaysParse,s),r!==-1?r:null):n==="dddd"?(r=indexOf.call(this._weekdaysParse,s),r!==-1||(r=indexOf.call(this._shortWeekdaysParse,s),r!==-1)?r:(r=indexOf.call(this._minWeekdaysParse,s),r!==-1?r:null)):n==="ddd"?(r=indexOf.call(this._shortWeekdaysParse,s),r!==-1||(r=indexOf.call(this._weekdaysParse,s),r!==-1)?r:(r=indexOf.call(this._minWeekdaysParse,s),r!==-1?r:null)):(r=indexOf.call(this._minWeekdaysParse,s),r!==-1||(r=indexOf.call(this._weekdaysParse,s),r!==-1)?r:(r=indexOf.call(this._shortWeekdaysParse,s),r!==-1?r:null))}function localeWeekdaysParse(e,n,t){var o,r,a;if(this._weekdaysParseExact)return handleStrictParse$1.call(this,e,n,t);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(r=createUTC([2e3,1]).day(o),t&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[o]||(a="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[o]=new RegExp(a.replace(".",""),"i")),t&&n==="dddd"&&this._fullWeekdaysParse[o].test(e))return o;if(t&&n==="ddd"&&this._shortWeekdaysParse[o].test(e))return o;if(t&&n==="dd"&&this._minWeekdaysParse[o].test(e))return o;if(!t&&this._weekdaysParse[o].test(e))return o}}function getSetDayOfWeek(e){if(!this.isValid())return e!=null?this:NaN;var n=this._isUTC?this._d.getUTCDay():this._d.getDay();return e!=null?(e=parseWeekday(e,this.localeData()),this.add(e-n,"d")):n}function getSetLocaleDayOfWeek(e){if(!this.isValid())return e!=null?this:NaN;var n=(this.day()+7-this.localeData()._week.dow)%7;return e==null?n:this.add(e-n,"d")}function getSetISODayOfWeek(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var n=parseIsoWeekday(e,this.localeData());return this.day(this.day()%7?n:n-7)}else return this.day()||7}function weekdaysRegex(e){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(hasOwnProp(this,"_weekdaysRegex")||(this._weekdaysRegex=defaultWeekdaysRegex),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function weekdaysShortRegex(e){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(hasOwnProp(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=defaultWeekdaysShortRegex),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function weekdaysMinRegex(e){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(hasOwnProp(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=defaultWeekdaysMinRegex),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function computeWeekdaysParse(){function e(d,f){return f.length-d.length}var n=[],t=[],o=[],r=[],a,s,l,c,u;for(a=0;a<7;a++)s=createUTC([2e3,1]).day(a),l=regexEscape(this.weekdaysMin(s,"")),c=regexEscape(this.weekdaysShort(s,"")),u=regexEscape(this.weekdays(s,"")),n.push(l),t.push(c),o.push(u),r.push(l),r.push(c),r.push(u);n.sort(e),t.sort(e),o.sort(e),r.sort(e),this._weekdaysRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+t.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+n.join("|")+")","i")}function hFormat(){return this.hours()%12||12}function kFormat(){return this.hours()||24}addFormatToken("H",["HH",2],0,"hour"),addFormatToken("h",["hh",2],0,hFormat),addFormatToken("k",["kk",2],0,kFormat),addFormatToken("hmm",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)}),addFormatToken("hmmss",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)}),addFormatToken("Hmm",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)}),addFormatToken("Hmmss",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)});function meridiem(e,n){addFormatToken(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),n)})}meridiem("a",!0),meridiem("A",!1),addUnitAlias("hour","h"),addUnitPriority("hour",13);function matchMeridiem(e,n){return n._meridiemParse}addRegexToken("a",matchMeridiem),addRegexToken("A",matchMeridiem),addRegexToken("H",match1to2),addRegexToken("h",match1to2),addRegexToken("k",match1to2),addRegexToken("HH",match1to2,match2),addRegexToken("hh",match1to2,match2),addRegexToken("kk",match1to2,match2),addRegexToken("hmm",match3to4),addRegexToken("hmmss",match5to6),addRegexToken("Hmm",match3to4),addRegexToken("Hmmss",match5to6),addParseToken(["H","HH"],HOUR),addParseToken(["k","kk"],function(e,n,t){var o=toInt(e);n[HOUR]=o===24?0:o}),addParseToken(["a","A"],function(e,n,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),addParseToken(["h","hh"],function(e,n,t){n[HOUR]=toInt(e),getParsingFlags(t).bigHour=!0}),addParseToken("hmm",function(e,n,t){var o=e.length-2;n[HOUR]=toInt(e.substr(0,o)),n[MINUTE]=toInt(e.substr(o)),getParsingFlags(t).bigHour=!0}),addParseToken("hmmss",function(e,n,t){var o=e.length-4,r=e.length-2;n[HOUR]=toInt(e.substr(0,o)),n[MINUTE]=toInt(e.substr(o,2)),n[SECOND]=toInt(e.substr(r)),getParsingFlags(t).bigHour=!0}),addParseToken("Hmm",function(e,n,t){var o=e.length-2;n[HOUR]=toInt(e.substr(0,o)),n[MINUTE]=toInt(e.substr(o))}),addParseToken("Hmmss",function(e,n,t){var o=e.length-4,r=e.length-2;n[HOUR]=toInt(e.substr(0,o)),n[MINUTE]=toInt(e.substr(o,2)),n[SECOND]=toInt(e.substr(r))});function localeIsPM(e){return(e+"").toLowerCase().charAt(0)==="p"}var defaultLocaleMeridiemParse=/[ap]\.?m?\.?/i,getSetHour=makeGetSet("Hours",!0);function localeMeridiem(e,n,t){return e>11?t?"pm":"PM":t?"am":"AM"}var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse},locales={},localeFamilies={},globalLocale;function commonPrefix(e,n){var t,o=Math.min(e.length,n.length);for(t=0;t<o;t+=1)if(e[t]!==n[t])return t;return o}function normalizeLocale(e){return e&&e.toLowerCase().replace("_","-")}function chooseLocale(e){for(var n=0,t,o,r,a;n<e.length;){for(a=normalizeLocale(e[n]).split("-"),t=a.length,o=normalizeLocale(e[n+1]),o=o?o.split("-"):null;t>0;){if(r=loadLocale(a.slice(0,t).join("-")),r)return r;if(o&&o.length>=t&&commonPrefix(a,o)>=t-1)break;t--}n++}return globalLocale}function isLocaleNameSane(e){return e.match("^[^/\\\\]*$")!=null}function loadLocale(e){var n=null,t;if(locales[e]===void 0&&typeof module<"u"&&module&&module.exports&&isLocaleNameSane(e))try{n=globalLocale._abbr,t=require,t("./locale/"+e),getSetGlobalLocale(n)}catch{locales[e]=null}return locales[e]}function getSetGlobalLocale(e,n){var t;return e&&(isUndefined(n)?t=getLocale(e):t=defineLocale(e,n),t?globalLocale=t:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),globalLocale._abbr}function defineLocale(e,n){if(n!==null){var t,o=baseConfig;if(n.abbr=e,locales[e]!=null)deprecateSimple("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),o=locales[e]._config;else if(n.parentLocale!=null)if(locales[n.parentLocale]!=null)o=locales[n.parentLocale]._config;else if(t=loadLocale(n.parentLocale),t!=null)o=t._config;else return localeFamilies[n.parentLocale]||(localeFamilies[n.parentLocale]=[]),localeFamilies[n.parentLocale].push({name:e,config:n}),null;return locales[e]=new Locale(mergeConfigs(o,n)),localeFamilies[e]&&localeFamilies[e].forEach(function(r){defineLocale(r.name,r.config)}),getSetGlobalLocale(e),locales[e]}else return delete locales[e],null}function updateLocale(e,n){if(n!=null){var t,o,r=baseConfig;locales[e]!=null&&locales[e].parentLocale!=null?locales[e].set(mergeConfigs(locales[e]._config,n)):(o=loadLocale(e),o!=null&&(r=o._config),n=mergeConfigs(r,n),o==null&&(n.abbr=e),t=new Locale(n),t.parentLocale=locales[e],locales[e]=t),getSetGlobalLocale(e)}else locales[e]!=null&&(locales[e].parentLocale!=null?(locales[e]=locales[e].parentLocale,e===getSetGlobalLocale()&&getSetGlobalLocale(e)):locales[e]!=null&&delete locales[e]);return locales[e]}function getLocale(e){var n;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return globalLocale;if(!isArray(e)){if(n=loadLocale(e),n)return n;e=[e]}return chooseLocale(e)}function listLocales(){return keys(locales)}function checkOverflow(e){var n,t=e._a;return t&&getParsingFlags(e).overflow===-2&&(n=t[MONTH]<0||t[MONTH]>11?MONTH:t[DATE]<1||t[DATE]>daysInMonth(t[YEAR],t[MONTH])?DATE:t[HOUR]<0||t[HOUR]>24||t[HOUR]===24&&(t[MINUTE]!==0||t[SECOND]!==0||t[MILLISECOND]!==0)?HOUR:t[MINUTE]<0||t[MINUTE]>59?MINUTE:t[SECOND]<0||t[SECOND]>59?SECOND:t[MILLISECOND]<0||t[MILLISECOND]>999?MILLISECOND:-1,getParsingFlags(e)._overflowDayOfYear&&(n<YEAR||n>DATE)&&(n=DATE),getParsingFlags(e)._overflowWeeks&&n===-1&&(n=WEEK),getParsingFlags(e)._overflowWeekday&&n===-1&&(n=WEEKDAY),getParsingFlags(e).overflow=n),e}var extendedIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,basicIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,tzRegex=/Z|[+-]\d\d(?::?\d\d)?/,isoDates=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],isoTimes=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],aspNetJsonRegex=/^\/?Date\((-?\d+)/i,rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function configFromISO(e){var n,t,o=e._i,r=extendedIsoRegex.exec(o)||basicIsoRegex.exec(o),a,s,l,c,u=isoDates.length,d=isoTimes.length;if(r){for(getParsingFlags(e).iso=!0,n=0,t=u;n<t;n++)if(isoDates[n][1].exec(r[1])){s=isoDates[n][0],a=isoDates[n][2]!==!1;break}if(s==null){e._isValid=!1;return}if(r[3]){for(n=0,t=d;n<t;n++)if(isoTimes[n][1].exec(r[3])){l=(r[2]||" ")+isoTimes[n][0];break}if(l==null){e._isValid=!1;return}}if(!a&&l!=null){e._isValid=!1;return}if(r[4])if(tzRegex.exec(r[4]))c="Z";else{e._isValid=!1;return}e._f=s+(l||"")+(c||""),configFromStringAndFormat(e)}else e._isValid=!1}function extractFromRFC2822Strings(e,n,t,o,r,a){var s=[untruncateYear(e),defaultLocaleMonthsShort.indexOf(n),parseInt(t,10),parseInt(o,10),parseInt(r,10)];return a&&s.push(parseInt(a,10)),s}function untruncateYear(e){var n=parseInt(e,10);return n<=49?2e3+n:n<=999?1900+n:n}function preprocessRFC2822(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function checkWeekday(e,n,t){if(e){var o=defaultLocaleWeekdaysShort.indexOf(e),r=new Date(n[0],n[1],n[2]).getDay();if(o!==r)return getParsingFlags(t).weekdayMismatch=!0,t._isValid=!1,!1}return!0}function calculateOffset(e,n,t){if(e)return obsOffsets[e];if(n)return 0;var o=parseInt(t,10),r=o%100,a=(o-r)/100;return a*60+r}function configFromRFC2822(e){var n=rfc2822.exec(preprocessRFC2822(e._i)),t;if(n){if(t=extractFromRFC2822Strings(n[4],n[3],n[2],n[5],n[6],n[7]),!checkWeekday(n[1],t,e))return;e._a=t,e._tzm=calculateOffset(n[8],n[9],n[10]),e._d=createUTCDate.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),getParsingFlags(e).rfc2822=!0}else e._isValid=!1}function configFromString(e){var n=aspNetJsonRegex.exec(e._i);if(n!==null){e._d=new Date(+n[1]);return}if(configFromISO(e),e._isValid===!1)delete e._isValid;else return;if(configFromRFC2822(e),e._isValid===!1)delete e._isValid;else return;e._strict?e._isValid=!1:hooks.createFromInputFallback(e)}hooks.createFromInputFallback=deprecate("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))});function defaults(e,n,t){return e!=null?e:n!=null?n:t}function currentDateArray(e){var n=new Date(hooks.now());return e._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function configFromArray(e){var n,t,o=[],r,a,s;if(!e._d){for(r=currentDateArray(e),e._w&&e._a[DATE]==null&&e._a[MONTH]==null&&dayOfYearFromWeekInfo(e),e._dayOfYear!=null&&(s=defaults(e._a[YEAR],r[YEAR]),(e._dayOfYear>daysInYear(s)||e._dayOfYear===0)&&(getParsingFlags(e)._overflowDayOfYear=!0),t=createUTCDate(s,0,e._dayOfYear),e._a[MONTH]=t.getUTCMonth(),e._a[DATE]=t.getUTCDate()),n=0;n<3&&e._a[n]==null;++n)e._a[n]=o[n]=r[n];for(;n<7;n++)e._a[n]=o[n]=e._a[n]==null?n===2?1:0:e._a[n];e._a[HOUR]===24&&e._a[MINUTE]===0&&e._a[SECOND]===0&&e._a[MILLISECOND]===0&&(e._nextDay=!0,e._a[HOUR]=0),e._d=(e._useUTC?createUTCDate:createDate).apply(null,o),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[HOUR]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==a&&(getParsingFlags(e).weekdayMismatch=!0)}}function dayOfYearFromWeekInfo(e){var n,t,o,r,a,s,l,c,u;n=e._w,n.GG!=null||n.W!=null||n.E!=null?(a=1,s=4,t=defaults(n.GG,e._a[YEAR],weekOfYear(createLocal(),1,4).year),o=defaults(n.W,1),r=defaults(n.E,1),(r<1||r>7)&&(c=!0)):(a=e._locale._week.dow,s=e._locale._week.doy,u=weekOfYear(createLocal(),a,s),t=defaults(n.gg,e._a[YEAR],u.year),o=defaults(n.w,u.week),n.d!=null?(r=n.d,(r<0||r>6)&&(c=!0)):n.e!=null?(r=n.e+a,(n.e<0||n.e>6)&&(c=!0)):r=a),o<1||o>weeksInYear(t,a,s)?getParsingFlags(e)._overflowWeeks=!0:c!=null?getParsingFlags(e)._overflowWeekday=!0:(l=dayOfYearFromWeeks(t,o,r,a,s),e._a[YEAR]=l.year,e._dayOfYear=l.dayOfYear)}hooks.ISO_8601=function(){},hooks.RFC_2822=function(){};function configFromStringAndFormat(e){if(e._f===hooks.ISO_8601){configFromISO(e);return}if(e._f===hooks.RFC_2822){configFromRFC2822(e);return}e._a=[],getParsingFlags(e).empty=!0;var n=""+e._i,t,o,r,a,s,l=n.length,c=0,u,d;for(r=expandFormat(e._f,e._locale).match(formattingTokens)||[],d=r.length,t=0;t<d;t++)a=r[t],o=(n.match(getParseRegexForToken(a,e))||[])[0],o&&(s=n.substr(0,n.indexOf(o)),s.length>0&&getParsingFlags(e).unusedInput.push(s),n=n.slice(n.indexOf(o)+o.length),c+=o.length),formatTokenFunctions[a]?(o?getParsingFlags(e).empty=!1:getParsingFlags(e).unusedTokens.push(a),addTimeToArrayFromToken(a,o,e)):e._strict&&!o&&getParsingFlags(e).unusedTokens.push(a);getParsingFlags(e).charsLeftOver=l-c,n.length>0&&getParsingFlags(e).unusedInput.push(n),e._a[HOUR]<=12&&getParsingFlags(e).bigHour===!0&&e._a[HOUR]>0&&(getParsingFlags(e).bigHour=void 0),getParsingFlags(e).parsedDateParts=e._a.slice(0),getParsingFlags(e).meridiem=e._meridiem,e._a[HOUR]=meridiemFixWrap(e._locale,e._a[HOUR],e._meridiem),u=getParsingFlags(e).era,u!==null&&(e._a[YEAR]=e._locale.erasConvertYear(u,e._a[YEAR])),configFromArray(e),checkOverflow(e)}function meridiemFixWrap(e,n,t){var o;return t==null?n:e.meridiemHour!=null?e.meridiemHour(n,t):(e.isPM!=null&&(o=e.isPM(t),o&&n<12&&(n+=12),!o&&n===12&&(n=0)),n)}function configFromStringAndArray(e){var n,t,o,r,a,s,l=!1,c=e._f.length;if(c===0){getParsingFlags(e).invalidFormat=!0,e._d=new Date(NaN);return}for(r=0;r<c;r++)a=0,s=!1,n=copyConfig({},e),e._useUTC!=null&&(n._useUTC=e._useUTC),n._f=e._f[r],configFromStringAndFormat(n),isValid(n)&&(s=!0),a+=getParsingFlags(n).charsLeftOver,a+=getParsingFlags(n).unusedTokens.length*10,getParsingFlags(n).score=a,l?a<o&&(o=a,t=n):(o==null||a<o||s)&&(o=a,t=n,s&&(l=!0));extend(e,t||n)}function configFromObject(e){if(!e._d){var n=normalizeObjectUnits(e._i),t=n.day===void 0?n.date:n.day;e._a=map([n.year,n.month,t,n.hour,n.minute,n.second,n.millisecond],function(o){return o&&parseInt(o,10)}),configFromArray(e)}}function createFromConfig(e){var n=new Moment(checkOverflow(prepareConfig(e)));return n._nextDay&&(n.add(1,"d"),n._nextDay=void 0),n}function prepareConfig(e){var n=e._i,t=e._f;return e._locale=e._locale||getLocale(e._l),n===null||t===void 0&&n===""?createInvalid({nullInput:!0}):(typeof n=="string"&&(e._i=n=e._locale.preparse(n)),isMoment(n)?new Moment(checkOverflow(n)):(isDate(n)?e._d=n:isArray(t)?configFromStringAndArray(e):t?configFromStringAndFormat(e):configFromInput(e),isValid(e)||(e._d=null),e))}function configFromInput(e){var n=e._i;isUndefined(n)?e._d=new Date(hooks.now()):isDate(n)?e._d=new Date(n.valueOf()):typeof n=="string"?configFromString(e):isArray(n)?(e._a=map(n.slice(0),function(t){return parseInt(t,10)}),configFromArray(e)):isObject(n)?configFromObject(e):isNumber(n)?e._d=new Date(n):hooks.createFromInputFallback(e)}function createLocalOrUTC(e,n,t,o,r){var a={};return(n===!0||n===!1)&&(o=n,n=void 0),(t===!0||t===!1)&&(o=t,t=void 0),(isObject(e)&&isObjectEmpty(e)||isArray(e)&&e.length===0)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=r,a._l=t,a._i=e,a._f=n,a._strict=o,createFromConfig(a)}function createLocal(e,n,t,o){return createLocalOrUTC(e,n,t,o,!1)}var prototypeMin=deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=createLocal.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:createInvalid()}),prototypeMax=deprecate("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=createLocal.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:createInvalid()});function pickBy(e,n){var t,o;if(n.length===1&&isArray(n[0])&&(n=n[0]),!n.length)return createLocal();for(t=n[0],o=1;o<n.length;++o)(!n[o].isValid()||n[o][e](t))&&(t=n[o]);return t}function min(){var e=[].slice.call(arguments,0);return pickBy("isBefore",e)}function max(){var e=[].slice.call(arguments,0);return pickBy("isAfter",e)}var now=function(){return Date.now?Date.now():+new Date},ordering=["year","quarter","month","week","day","hour","minute","second","millisecond"];function isDurationValid(e){var n,t=!1,o,r=ordering.length;for(n in e)if(hasOwnProp(e,n)&&!(indexOf.call(ordering,n)!==-1&&(e[n]==null||!isNaN(e[n]))))return!1;for(o=0;o<r;++o)if(e[ordering[o]]){if(t)return!1;parseFloat(e[ordering[o]])!==toInt(e[ordering[o]])&&(t=!0)}return!0}function isValid$1(){return this._isValid}function createInvalid$1(){return createDuration(NaN)}function Duration(e){var n=normalizeObjectUnits(e),t=n.year||0,o=n.quarter||0,r=n.month||0,a=n.week||n.isoWeek||0,s=n.day||0,l=n.hour||0,c=n.minute||0,u=n.second||0,d=n.millisecond||0;this._isValid=isDurationValid(n),this._milliseconds=+d+u*1e3+c*6e4+l*1e3*60*60,this._days=+s+a*7,this._months=+r+o*3+t*12,this._data={},this._locale=getLocale(),this._bubble()}function isDuration(e){return e instanceof Duration}function absRound(e){return e<0?Math.round(-1*e)*-1:Math.round(e)}function compareArrays(e,n,t){var o=Math.min(e.length,n.length),r=Math.abs(e.length-n.length),a=0,s;for(s=0;s<o;s++)(t&&e[s]!==n[s]||!t&&toInt(e[s])!==toInt(n[s]))&&a++;return a+r}function offset(e,n){addFormatToken(e,0,0,function(){var t=this.utcOffset(),o="+";return t<0&&(t=-t,o="-"),o+zeroFill(~~(t/60),2)+n+zeroFill(~~t%60,2)})}offset("Z",":"),offset("ZZ",""),addRegexToken("Z",matchShortOffset),addRegexToken("ZZ",matchShortOffset),addParseToken(["Z","ZZ"],function(e,n,t){t._useUTC=!0,t._tzm=offsetFromString(matchShortOffset,e)});var chunkOffset=/([\+\-]|\d\d)/gi;function offsetFromString(e,n){var t=(n||"").match(e),o,r,a;return t===null?null:(o=t[t.length-1]||[],r=(o+"").match(chunkOffset)||["-",0,0],a=+(r[1]*60)+toInt(r[2]),a===0?0:r[0]==="+"?a:-a)}function cloneWithOffset(e,n){var t,o;return n._isUTC?(t=n.clone(),o=(isMoment(e)||isDate(e)?e.valueOf():createLocal(e).valueOf())-t.valueOf(),t._d.setTime(t._d.valueOf()+o),hooks.updateOffset(t,!1),t):createLocal(e).local()}function getDateOffset(e){return-Math.round(e._d.getTimezoneOffset())}hooks.updateOffset=function(){};function getSetOffset(e,n,t){var o=this._offset||0,r;if(!this.isValid())return e!=null?this:NaN;if(e!=null){if(typeof e=="string"){if(e=offsetFromString(matchShortOffset,e),e===null)return this}else Math.abs(e)<16&&!t&&(e=e*60);return!this._isUTC&&n&&(r=getDateOffset(this)),this._offset=e,this._isUTC=!0,r!=null&&this.add(r,"m"),o!==e&&(!n||this._changeInProgress?addSubtract(this,createDuration(e-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,hooks.updateOffset(this,!0),this._changeInProgress=null)),this}else return this._isUTC?o:getDateOffset(this)}function getSetZone(e,n){return e!=null?(typeof e!="string"&&(e=-e),this.utcOffset(e,n),this):-this.utcOffset()}function setOffsetToUTC(e){return this.utcOffset(0,e)}function setOffsetToLocal(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(getDateOffset(this),"m")),this}function setOffsetToParsedOffset(){if(this._tzm!=null)this.utcOffset(this._tzm,!1,!0);else if(typeof this._i=="string"){var e=offsetFromString(matchOffset,this._i);e!=null?this.utcOffset(e):this.utcOffset(0,!0)}return this}function hasAlignedHourOffset(e){return this.isValid()?(e=e?createLocal(e).utcOffset():0,(this.utcOffset()-e)%60===0):!1}function isDaylightSavingTime(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted))return this._isDSTShifted;var e={},n;return copyConfig(e,this),e=prepareConfig(e),e._a?(n=e._isUTC?createUTC(e._a):createLocal(e._a),this._isDSTShifted=this.isValid()&&compareArrays(e._a,n.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function isLocal(){return this.isValid()?!this._isUTC:!1}function isUtcOffset(){return this.isValid()?this._isUTC:!1}function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:!1}var aspNetRegex=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,isoRegex=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(e,n){var t=e,o=null,r,a,s;return isDuration(e)?t={ms:e._milliseconds,d:e._days,M:e._months}:isNumber(e)||!isNaN(+e)?(t={},n?t[n]=+e:t.milliseconds=+e):(o=aspNetRegex.exec(e))?(r=o[1]==="-"?-1:1,t={y:0,d:toInt(o[DATE])*r,h:toInt(o[HOUR])*r,m:toInt(o[MINUTE])*r,s:toInt(o[SECOND])*r,ms:toInt(absRound(o[MILLISECOND]*1e3))*r}):(o=isoRegex.exec(e))?(r=o[1]==="-"?-1:1,t={y:parseIso(o[2],r),M:parseIso(o[3],r),w:parseIso(o[4],r),d:parseIso(o[5],r),h:parseIso(o[6],r),m:parseIso(o[7],r),s:parseIso(o[8],r)}):t==null?t={}:typeof t=="object"&&("from"in t||"to"in t)&&(s=momentsDifference(createLocal(t.from),createLocal(t.to)),t={},t.ms=s.milliseconds,t.M=s.months),a=new Duration(t),isDuration(e)&&hasOwnProp(e,"_locale")&&(a._locale=e._locale),isDuration(e)&&hasOwnProp(e,"_isValid")&&(a._isValid=e._isValid),a}createDuration.fn=Duration.prototype,createDuration.invalid=createInvalid$1;function parseIso(e,n){var t=e&&parseFloat(e.replace(",","."));return(isNaN(t)?0:t)*n}function positiveMomentsDifference(e,n){var t={};return t.months=n.month()-e.month()+(n.year()-e.year())*12,e.clone().add(t.months,"M").isAfter(n)&&--t.months,t.milliseconds=+n-+e.clone().add(t.months,"M"),t}function momentsDifference(e,n){var t;return e.isValid()&&n.isValid()?(n=cloneWithOffset(n,e),e.isBefore(n)?t=positiveMomentsDifference(e,n):(t=positiveMomentsDifference(n,e),t.milliseconds=-t.milliseconds,t.months=-t.months),t):{milliseconds:0,months:0}}function createAdder(e,n){return function(t,o){var r,a;return o!==null&&!isNaN(+o)&&(deprecateSimple(n,"moment()."+n+"(period, number) is deprecated. Please use moment()."+n+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=t,t=o,o=a),r=createDuration(t,o),addSubtract(this,r,e),this}}function addSubtract(e,n,t,o){var r=n._milliseconds,a=absRound(n._days),s=absRound(n._months);!e.isValid()||(o=o==null?!0:o,s&&setMonth(e,get(e,"Month")+s*t),a&&set$1(e,"Date",get(e,"Date")+a*t),r&&e._d.setTime(e._d.valueOf()+r*t),o&&hooks.updateOffset(e,a||s))}var add=createAdder(1,"add"),subtract=createAdder(-1,"subtract");function isString(e){return typeof e=="string"||e instanceof String}function isMomentInput(e){return isMoment(e)||isDate(e)||isString(e)||isNumber(e)||isNumberOrStringArray(e)||isMomentInputObject(e)||e===null||e===void 0}function isMomentInputObject(e){var n=isObject(e)&&!isObjectEmpty(e),t=!1,o=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],r,a,s=o.length;for(r=0;r<s;r+=1)a=o[r],t=t||hasOwnProp(e,a);return n&&t}function isNumberOrStringArray(e){var n=isArray(e),t=!1;return n&&(t=e.filter(function(o){return!isNumber(o)&&isString(e)}).length===0),n&&t}function isCalendarSpec(e){var n=isObject(e)&&!isObjectEmpty(e),t=!1,o=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"],r,a;for(r=0;r<o.length;r+=1)a=o[r],t=t||hasOwnProp(e,a);return n&&t}function getCalendarFormat(e,n){var t=e.diff(n,"days",!0);return t<-6?"sameElse":t<-1?"lastWeek":t<0?"lastDay":t<1?"sameDay":t<2?"nextDay":t<7?"nextWeek":"sameElse"}function calendar$1(e,n){arguments.length===1&&(arguments[0]?isMomentInput(arguments[0])?(e=arguments[0],n=void 0):isCalendarSpec(arguments[0])&&(n=arguments[0],e=void 0):(e=void 0,n=void 0));var t=e||createLocal(),o=cloneWithOffset(t,this).startOf("day"),r=hooks.calendarFormat(this,o)||"sameElse",a=n&&(isFunction(n[r])?n[r].call(this,t):n[r]);return this.format(a||this.localeData().calendar(r,this,createLocal(t)))}function clone(){return new Moment(this)}function isAfter(e,n){var t=isMoment(e)?e:createLocal(e);return this.isValid()&&t.isValid()?(n=normalizeUnits(n)||"millisecond",n==="millisecond"?this.valueOf()>t.valueOf():t.valueOf()<this.clone().startOf(n).valueOf()):!1}function isBefore(e,n){var t=isMoment(e)?e:createLocal(e);return this.isValid()&&t.isValid()?(n=normalizeUnits(n)||"millisecond",n==="millisecond"?this.valueOf()<t.valueOf():this.clone().endOf(n).valueOf()<t.valueOf()):!1}function isBetween(e,n,t,o){var r=isMoment(e)?e:createLocal(e),a=isMoment(n)?n:createLocal(n);return this.isValid()&&r.isValid()&&a.isValid()?(o=o||"()",(o[0]==="("?this.isAfter(r,t):!this.isBefore(r,t))&&(o[1]===")"?this.isBefore(a,t):!this.isAfter(a,t))):!1}function isSame(e,n){var t=isMoment(e)?e:createLocal(e),o;return this.isValid()&&t.isValid()?(n=normalizeUnits(n)||"millisecond",n==="millisecond"?this.valueOf()===t.valueOf():(o=t.valueOf(),this.clone().startOf(n).valueOf()<=o&&o<=this.clone().endOf(n).valueOf())):!1}function isSameOrAfter(e,n){return this.isSame(e,n)||this.isAfter(e,n)}function isSameOrBefore(e,n){return this.isSame(e,n)||this.isBefore(e,n)}function diff(e,n,t){var o,r,a;if(!this.isValid())return NaN;if(o=cloneWithOffset(e,this),!o.isValid())return NaN;switch(r=(o.utcOffset()-this.utcOffset())*6e4,n=normalizeUnits(n),n){case"year":a=monthDiff(this,o)/12;break;case"month":a=monthDiff(this,o);break;case"quarter":a=monthDiff(this,o)/3;break;case"second":a=(this-o)/1e3;break;case"minute":a=(this-o)/6e4;break;case"hour":a=(this-o)/36e5;break;case"day":a=(this-o-r)/864e5;break;case"week":a=(this-o-r)/6048e5;break;default:a=this-o}return t?a:absFloor(a)}function monthDiff(e,n){if(e.date()<n.date())return-monthDiff(n,e);var t=(n.year()-e.year())*12+(n.month()-e.month()),o=e.clone().add(t,"months"),r,a;return n-o<0?(r=e.clone().add(t-1,"months"),a=(n-o)/(o-r)):(r=e.clone().add(t+1,"months"),a=(n-o)/(r-o)),-(t+a)||0}hooks.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",hooks.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";function toString(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function toISOString(e){if(!this.isValid())return null;var n=e!==!0,t=n?this.clone().utc():this;return t.year()<0||t.year()>9999?formatMoment(t,n?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):isFunction(Date.prototype.toISOString)?n?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",formatMoment(t,"Z")):formatMoment(t,n?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function inspect(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",n="",t,o,r,a;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",n="Z"),t="["+e+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r="-MM-DD[T]HH:mm:ss.SSS",a=n+'[")]',this.format(t+o+r+a)}function format(e){e||(e=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat);var n=formatMoment(this,e);return this.localeData().postformat(n)}function from(e,n){return this.isValid()&&(isMoment(e)&&e.isValid()||createLocal(e).isValid())?createDuration({to:this,from:e}).locale(this.locale()).humanize(!n):this.localeData().invalidDate()}function fromNow(e){return this.from(createLocal(),e)}function to(e,n){return this.isValid()&&(isMoment(e)&&e.isValid()||createLocal(e).isValid())?createDuration({from:this,to:e}).locale(this.locale()).humanize(!n):this.localeData().invalidDate()}function toNow(e){return this.to(createLocal(),e)}function locale(e){var n;return e===void 0?this._locale._abbr:(n=getLocale(e),n!=null&&(this._locale=n),this)}var lang=deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function localeData(){return this._locale}var MS_PER_SECOND=1e3,MS_PER_MINUTE=60*MS_PER_SECOND,MS_PER_HOUR=60*MS_PER_MINUTE,MS_PER_400_YEARS=(365*400+97)*24*MS_PER_HOUR;function mod$1(e,n){return(e%n+n)%n}function localStartOfDate(e,n,t){return e<100&&e>=0?new Date(e+400,n,t)-MS_PER_400_YEARS:new Date(e,n,t).valueOf()}function utcStartOfDate(e,n,t){return e<100&&e>=0?Date.UTC(e+400,n,t)-MS_PER_400_YEARS:Date.UTC(e,n,t)}function startOf(e){var n,t;if(e=normalizeUnits(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(t=this._isUTC?utcStartOfDate:localStartOfDate,e){case"year":n=t(this.year(),0,1);break;case"quarter":n=t(this.year(),this.month()-this.month()%3,1);break;case"month":n=t(this.year(),this.month(),1);break;case"week":n=t(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":n=t(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":n=t(this.year(),this.month(),this.date());break;case"hour":n=this._d.valueOf(),n-=mod$1(n+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR);break;case"minute":n=this._d.valueOf(),n-=mod$1(n,MS_PER_MINUTE);break;case"second":n=this._d.valueOf(),n-=mod$1(n,MS_PER_SECOND);break}return this._d.setTime(n),hooks.updateOffset(this,!0),this}function endOf(e){var n,t;if(e=normalizeUnits(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(t=this._isUTC?utcStartOfDate:localStartOfDate,e){case"year":n=t(this.year()+1,0,1)-1;break;case"quarter":n=t(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":n=t(this.year(),this.month()+1,1)-1;break;case"week":n=t(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":n=t(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":n=t(this.year(),this.month(),this.date()+1)-1;break;case"hour":n=this._d.valueOf(),n+=MS_PER_HOUR-mod$1(n+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR)-1;break;case"minute":n=this._d.valueOf(),n+=MS_PER_MINUTE-mod$1(n,MS_PER_MINUTE)-1;break;case"second":n=this._d.valueOf(),n+=MS_PER_SECOND-mod$1(n,MS_PER_SECOND)-1;break}return this._d.setTime(n),hooks.updateOffset(this,!0),this}function valueOf(){return this._d.valueOf()-(this._offset||0)*6e4}function unix(){return Math.floor(this.valueOf()/1e3)}function toDate(){return new Date(this.valueOf())}function toArray(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function toObject(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function toJSON(){return this.isValid()?this.toISOString():null}function isValid$2(){return isValid(this)}function parsingFlags(){return extend({},getParsingFlags(this))}function invalidAt(){return getParsingFlags(this).overflow}function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}addFormatToken("N",0,0,"eraAbbr"),addFormatToken("NN",0,0,"eraAbbr"),addFormatToken("NNN",0,0,"eraAbbr"),addFormatToken("NNNN",0,0,"eraName"),addFormatToken("NNNNN",0,0,"eraNarrow"),addFormatToken("y",["y",1],"yo","eraYear"),addFormatToken("y",["yy",2],0,"eraYear"),addFormatToken("y",["yyy",3],0,"eraYear"),addFormatToken("y",["yyyy",4],0,"eraYear"),addRegexToken("N",matchEraAbbr),addRegexToken("NN",matchEraAbbr),addRegexToken("NNN",matchEraAbbr),addRegexToken("NNNN",matchEraName),addRegexToken("NNNNN",matchEraNarrow),addParseToken(["N","NN","NNN","NNNN","NNNNN"],function(e,n,t,o){var r=t._locale.erasParse(e,o,t._strict);r?getParsingFlags(t).era=r:getParsingFlags(t).invalidEra=e}),addRegexToken("y",matchUnsigned),addRegexToken("yy",matchUnsigned),addRegexToken("yyy",matchUnsigned),addRegexToken("yyyy",matchUnsigned),addRegexToken("yo",matchEraYearOrdinal),addParseToken(["y","yy","yyy","yyyy"],YEAR),addParseToken(["yo"],function(e,n,t,o){var r;t._locale._eraYearOrdinalRegex&&(r=e.match(t._locale._eraYearOrdinalRegex)),t._locale.eraYearOrdinalParse?n[YEAR]=t._locale.eraYearOrdinalParse(e,r):n[YEAR]=parseInt(e,10)});function localeEras(e,n){var t,o,r,a=this._eras||getLocale("en")._eras;for(t=0,o=a.length;t<o;++t){switch(typeof a[t].since){case"string":r=hooks(a[t].since).startOf("day"),a[t].since=r.valueOf();break}switch(typeof a[t].until){case"undefined":a[t].until=1/0;break;case"string":r=hooks(a[t].until).startOf("day").valueOf(),a[t].until=r.valueOf();break}}return a}function localeErasParse(e,n,t){var o,r,a=this.eras(),s,l,c;for(e=e.toUpperCase(),o=0,r=a.length;o<r;++o)if(s=a[o].name.toUpperCase(),l=a[o].abbr.toUpperCase(),c=a[o].narrow.toUpperCase(),t)switch(n){case"N":case"NN":case"NNN":if(l===e)return a[o];break;case"NNNN":if(s===e)return a[o];break;case"NNNNN":if(c===e)return a[o];break}else if([s,l,c].indexOf(e)>=0)return a[o]}function localeErasConvertYear(e,n){var t=e.since<=e.until?1:-1;return n===void 0?hooks(e.since).year():hooks(e.since).year()+(n-e.offset)*t}function getEraName(){var e,n,t,o=this.localeData().eras();for(e=0,n=o.length;e<n;++e)if(t=this.clone().startOf("day").valueOf(),o[e].since<=t&&t<=o[e].until||o[e].until<=t&&t<=o[e].since)return o[e].name;return""}function getEraNarrow(){var e,n,t,o=this.localeData().eras();for(e=0,n=o.length;e<n;++e)if(t=this.clone().startOf("day").valueOf(),o[e].since<=t&&t<=o[e].until||o[e].until<=t&&t<=o[e].since)return o[e].narrow;return""}function getEraAbbr(){var e,n,t,o=this.localeData().eras();for(e=0,n=o.length;e<n;++e)if(t=this.clone().startOf("day").valueOf(),o[e].since<=t&&t<=o[e].until||o[e].until<=t&&t<=o[e].since)return o[e].abbr;return""}function getEraYear(){var e,n,t,o,r=this.localeData().eras();for(e=0,n=r.length;e<n;++e)if(t=r[e].since<=r[e].until?1:-1,o=this.clone().startOf("day").valueOf(),r[e].since<=o&&o<=r[e].until||r[e].until<=o&&o<=r[e].since)return(this.year()-hooks(r[e].since).year())*t+r[e].offset;return this.year()}function erasNameRegex(e){return hasOwnProp(this,"_erasNameRegex")||computeErasParse.call(this),e?this._erasNameRegex:this._erasRegex}function erasAbbrRegex(e){return hasOwnProp(this,"_erasAbbrRegex")||computeErasParse.call(this),e?this._erasAbbrRegex:this._erasRegex}function erasNarrowRegex(e){return hasOwnProp(this,"_erasNarrowRegex")||computeErasParse.call(this),e?this._erasNarrowRegex:this._erasRegex}function matchEraAbbr(e,n){return n.erasAbbrRegex(e)}function matchEraName(e,n){return n.erasNameRegex(e)}function matchEraNarrow(e,n){return n.erasNarrowRegex(e)}function matchEraYearOrdinal(e,n){return n._eraYearOrdinalRegex||matchUnsigned}function computeErasParse(){var e=[],n=[],t=[],o=[],r,a,s=this.eras();for(r=0,a=s.length;r<a;++r)n.push(regexEscape(s[r].name)),e.push(regexEscape(s[r].abbr)),t.push(regexEscape(s[r].narrow)),o.push(regexEscape(s[r].name)),o.push(regexEscape(s[r].abbr)),o.push(regexEscape(s[r].narrow));this._erasRegex=new RegExp("^("+o.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+n.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+e.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+t.join("|")+")","i")}addFormatToken(0,["gg",2],0,function(){return this.weekYear()%100}),addFormatToken(0,["GG",2],0,function(){return this.isoWeekYear()%100});function addWeekYearFormatToken(e,n){addFormatToken(0,[e,e.length],0,n)}addWeekYearFormatToken("gggg","weekYear"),addWeekYearFormatToken("ggggg","weekYear"),addWeekYearFormatToken("GGGG","isoWeekYear"),addWeekYearFormatToken("GGGGG","isoWeekYear"),addUnitAlias("weekYear","gg"),addUnitAlias("isoWeekYear","GG"),addUnitPriority("weekYear",1),addUnitPriority("isoWeekYear",1),addRegexToken("G",matchSigned),addRegexToken("g",matchSigned),addRegexToken("GG",match1to2,match2),addRegexToken("gg",match1to2,match2),addRegexToken("GGGG",match1to4,match4),addRegexToken("gggg",match1to4,match4),addRegexToken("GGGGG",match1to6,match6),addRegexToken("ggggg",match1to6,match6),addWeekParseToken(["gggg","ggggg","GGGG","GGGGG"],function(e,n,t,o){n[o.substr(0,2)]=toInt(e)}),addWeekParseToken(["gg","GG"],function(e,n,t,o){n[o]=hooks.parseTwoDigitYear(e)});function getSetWeekYear(e){return getSetWeekYearHelper.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function getSetISOWeekYear(e){return getSetWeekYearHelper.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function getISOWeeksInYear(){return weeksInYear(this.year(),1,4)}function getISOWeeksInISOWeekYear(){return weeksInYear(this.isoWeekYear(),1,4)}function getWeeksInYear(){var e=this.localeData()._week;return weeksInYear(this.year(),e.dow,e.doy)}function getWeeksInWeekYear(){var e=this.localeData()._week;return weeksInYear(this.weekYear(),e.dow,e.doy)}function getSetWeekYearHelper(e,n,t,o,r){var a;return e==null?weekOfYear(this,o,r).year:(a=weeksInYear(e,o,r),n>a&&(n=a),setWeekAll.call(this,e,n,t,o,r))}function setWeekAll(e,n,t,o,r){var a=dayOfYearFromWeeks(e,n,t,o,r),s=createUTCDate(a.year,0,a.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}addFormatToken("Q",0,"Qo","quarter"),addUnitAlias("quarter","Q"),addUnitPriority("quarter",7),addRegexToken("Q",match1),addParseToken("Q",function(e,n){n[MONTH]=(toInt(e)-1)*3});function getSetQuarter(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}addFormatToken("D",["DD",2],"Do","date"),addUnitAlias("date","D"),addUnitPriority("date",9),addRegexToken("D",match1to2),addRegexToken("DD",match1to2,match2),addRegexToken("Do",function(e,n){return e?n._dayOfMonthOrdinalParse||n._ordinalParse:n._dayOfMonthOrdinalParseLenient}),addParseToken(["D","DD"],DATE),addParseToken("Do",function(e,n){n[DATE]=toInt(e.match(match1to2)[0])});var getSetDayOfMonth=makeGetSet("Date",!0);addFormatToken("DDD",["DDDD",3],"DDDo","dayOfYear"),addUnitAlias("dayOfYear","DDD"),addUnitPriority("dayOfYear",4),addRegexToken("DDD",match1to3),addRegexToken("DDDD",match3),addParseToken(["DDD","DDDD"],function(e,n,t){t._dayOfYear=toInt(e)});function getSetDayOfYear(e){var n=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?n:this.add(e-n,"d")}addFormatToken("m",["mm",2],0,"minute"),addUnitAlias("minute","m"),addUnitPriority("minute",14),addRegexToken("m",match1to2),addRegexToken("mm",match1to2,match2),addParseToken(["m","mm"],MINUTE);var getSetMinute=makeGetSet("Minutes",!1);addFormatToken("s",["ss",2],0,"second"),addUnitAlias("second","s"),addUnitPriority("second",15),addRegexToken("s",match1to2),addRegexToken("ss",match1to2,match2),addParseToken(["s","ss"],SECOND);var getSetSecond=makeGetSet("Seconds",!1);addFormatToken("S",0,0,function(){return~~(this.millisecond()/100)}),addFormatToken(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),addFormatToken(0,["SSS",3],0,"millisecond"),addFormatToken(0,["SSSS",4],0,function(){return this.millisecond()*10}),addFormatToken(0,["SSSSS",5],0,function(){return this.millisecond()*100}),addFormatToken(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),addFormatToken(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),addFormatToken(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),addFormatToken(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),addUnitAlias("millisecond","ms"),addUnitPriority("millisecond",16),addRegexToken("S",match1to3,match1),addRegexToken("SS",match1to3,match2),addRegexToken("SSS",match1to3,match3);var token,getSetMillisecond;for(token="SSSS";token.length<=9;token+="S")addRegexToken(token,matchUnsigned);function parseMs(e,n){n[MILLISECOND]=toInt(("0."+e)*1e3)}for(token="S";token.length<=9;token+="S")addParseToken(token,parseMs);getSetMillisecond=makeGetSet("Milliseconds",!1),addFormatToken("z",0,0,"zoneAbbr"),addFormatToken("zz",0,0,"zoneName");function getZoneAbbr(){return this._isUTC?"UTC":""}function getZoneName(){return this._isUTC?"Coordinated Universal Time":""}var proto=Moment.prototype;proto.add=add,proto.calendar=calendar$1,proto.clone=clone,proto.diff=diff,proto.endOf=endOf,proto.format=format,proto.from=from,proto.fromNow=fromNow,proto.to=to,proto.toNow=toNow,proto.get=stringGet,proto.invalidAt=invalidAt,proto.isAfter=isAfter,proto.isBefore=isBefore,proto.isBetween=isBetween,proto.isSame=isSame,proto.isSameOrAfter=isSameOrAfter,proto.isSameOrBefore=isSameOrBefore,proto.isValid=isValid$2,proto.lang=lang,proto.locale=locale,proto.localeData=localeData,proto.max=prototypeMax,proto.min=prototypeMin,proto.parsingFlags=parsingFlags,proto.set=stringSet,proto.startOf=startOf,proto.subtract=subtract,proto.toArray=toArray,proto.toObject=toObject,proto.toDate=toDate,proto.toISOString=toISOString,proto.inspect=inspect,typeof Symbol<"u"&&Symbol.for!=null&&(proto[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),proto.toJSON=toJSON,proto.toString=toString,proto.unix=unix,proto.valueOf=valueOf,proto.creationData=creationData,proto.eraName=getEraName,proto.eraNarrow=getEraNarrow,proto.eraAbbr=getEraAbbr,proto.eraYear=getEraYear,proto.year=getSetYear,proto.isLeapYear=getIsLeapYear,proto.weekYear=getSetWeekYear,proto.isoWeekYear=getSetISOWeekYear,proto.quarter=proto.quarters=getSetQuarter,proto.month=getSetMonth,proto.daysInMonth=getDaysInMonth,proto.week=proto.weeks=getSetWeek,proto.isoWeek=proto.isoWeeks=getSetISOWeek,proto.weeksInYear=getWeeksInYear,proto.weeksInWeekYear=getWeeksInWeekYear,proto.isoWeeksInYear=getISOWeeksInYear,proto.isoWeeksInISOWeekYear=getISOWeeksInISOWeekYear,proto.date=getSetDayOfMonth,proto.day=proto.days=getSetDayOfWeek,proto.weekday=getSetLocaleDayOfWeek,proto.isoWeekday=getSetISODayOfWeek,proto.dayOfYear=getSetDayOfYear,proto.hour=proto.hours=getSetHour,proto.minute=proto.minutes=getSetMinute,proto.second=proto.seconds=getSetSecond,proto.millisecond=proto.milliseconds=getSetMillisecond,proto.utcOffset=getSetOffset,proto.utc=setOffsetToUTC,proto.local=setOffsetToLocal,proto.parseZone=setOffsetToParsedOffset,proto.hasAlignedHourOffset=hasAlignedHourOffset,proto.isDST=isDaylightSavingTime,proto.isLocal=isLocal,proto.isUtcOffset=isUtcOffset,proto.isUtc=isUtc,proto.isUTC=isUtc,proto.zoneAbbr=getZoneAbbr,proto.zoneName=getZoneName,proto.dates=deprecate("dates accessor is deprecated. Use date instead.",getSetDayOfMonth),proto.months=deprecate("months accessor is deprecated. Use month instead",getSetMonth),proto.years=deprecate("years accessor is deprecated. Use year instead",getSetYear),proto.zone=deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",getSetZone),proto.isDSTShifted=deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",isDaylightSavingTimeShifted);function createUnix(e){return createLocal(e*1e3)}function createInZone(){return createLocal.apply(null,arguments).parseZone()}function preParsePostFormat(e){return e}var proto$1=Locale.prototype;proto$1.calendar=calendar,proto$1.longDateFormat=longDateFormat,proto$1.invalidDate=invalidDate,proto$1.ordinal=ordinal,proto$1.preparse=preParsePostFormat,proto$1.postformat=preParsePostFormat,proto$1.relativeTime=relativeTime,proto$1.pastFuture=pastFuture,proto$1.set=set,proto$1.eras=localeEras,proto$1.erasParse=localeErasParse,proto$1.erasConvertYear=localeErasConvertYear,proto$1.erasAbbrRegex=erasAbbrRegex,proto$1.erasNameRegex=erasNameRegex,proto$1.erasNarrowRegex=erasNarrowRegex,proto$1.months=localeMonths,proto$1.monthsShort=localeMonthsShort,proto$1.monthsParse=localeMonthsParse,proto$1.monthsRegex=monthsRegex,proto$1.monthsShortRegex=monthsShortRegex,proto$1.week=localeWeek,proto$1.firstDayOfYear=localeFirstDayOfYear,proto$1.firstDayOfWeek=localeFirstDayOfWeek,proto$1.weekdays=localeWeekdays,proto$1.weekdaysMin=localeWeekdaysMin,proto$1.weekdaysShort=localeWeekdaysShort,proto$1.weekdaysParse=localeWeekdaysParse,proto$1.weekdaysRegex=weekdaysRegex,proto$1.weekdaysShortRegex=weekdaysShortRegex,proto$1.weekdaysMinRegex=weekdaysMinRegex,proto$1.isPM=localeIsPM,proto$1.meridiem=localeMeridiem;function get$1(e,n,t,o){var r=getLocale(),a=createUTC().set(o,n);return r[t](a,e)}function listMonthsImpl(e,n,t){if(isNumber(e)&&(n=e,e=void 0),e=e||"",n!=null)return get$1(e,n,t,"month");var o,r=[];for(o=0;o<12;o++)r[o]=get$1(e,o,t,"month");return r}function listWeekdaysImpl(e,n,t,o){typeof e=="boolean"?(isNumber(n)&&(t=n,n=void 0),n=n||""):(n=e,t=n,e=!1,isNumber(n)&&(t=n,n=void 0),n=n||"");var r=getLocale(),a=e?r._week.dow:0,s,l=[];if(t!=null)return get$1(n,(t+a)%7,o,"day");for(s=0;s<7;s++)l[s]=get$1(n,(s+a)%7,o,"day");return l}function listMonths(e,n){return listMonthsImpl(e,n,"months")}function listMonthsShort(e,n){return listMonthsImpl(e,n,"monthsShort")}function listWeekdays(e,n,t){return listWeekdaysImpl(e,n,t,"weekdays")}function listWeekdaysShort(e,n,t){return listWeekdaysImpl(e,n,t,"weekdaysShort")}function listWeekdaysMin(e,n,t){return listWeekdaysImpl(e,n,t,"weekdaysMin")}getSetGlobalLocale("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var n=e%10,t=toInt(e%100/10)===1?"th":n===1?"st":n===2?"nd":n===3?"rd":"th";return e+t}}),hooks.lang=deprecate("moment.lang is deprecated. Use moment.locale instead.",getSetGlobalLocale),hooks.langData=deprecate("moment.langData is deprecated. Use moment.localeData instead.",getLocale);var mathAbs=Math.abs;function abs(){var e=this._data;return this._milliseconds=mathAbs(this._milliseconds),this._days=mathAbs(this._days),this._months=mathAbs(this._months),e.milliseconds=mathAbs(e.milliseconds),e.seconds=mathAbs(e.seconds),e.minutes=mathAbs(e.minutes),e.hours=mathAbs(e.hours),e.months=mathAbs(e.months),e.years=mathAbs(e.years),this}function addSubtract$1(e,n,t,o){var r=createDuration(n,t);return e._milliseconds+=o*r._milliseconds,e._days+=o*r._days,e._months+=o*r._months,e._bubble()}function add$1(e,n){return addSubtract$1(this,e,n,1)}function subtract$1(e,n){return addSubtract$1(this,e,n,-1)}function absCeil(e){return e<0?Math.floor(e):Math.ceil(e)}function bubble(){var e=this._milliseconds,n=this._days,t=this._months,o=this._data,r,a,s,l,c;return e>=0&&n>=0&&t>=0||e<=0&&n<=0&&t<=0||(e+=absCeil(monthsToDays(t)+n)*864e5,n=0,t=0),o.milliseconds=e%1e3,r=absFloor(e/1e3),o.seconds=r%60,a=absFloor(r/60),o.minutes=a%60,s=absFloor(a/60),o.hours=s%24,n+=absFloor(s/24),c=absFloor(daysToMonths(n)),t+=c,n-=absCeil(monthsToDays(c)),l=absFloor(t/12),t%=12,o.days=n,o.months=t,o.years=l,this}function daysToMonths(e){return e*4800/146097}function monthsToDays(e){return e*146097/4800}function as(e){if(!this.isValid())return NaN;var n,t,o=this._milliseconds;if(e=normalizeUnits(e),e==="month"||e==="quarter"||e==="year")switch(n=this._days+o/864e5,t=this._months+daysToMonths(n),e){case"month":return t;case"quarter":return t/3;case"year":return t/12}else switch(n=this._days+Math.round(monthsToDays(this._months)),e){case"week":return n/7+o/6048e5;case"day":return n+o/864e5;case"hour":return n*24+o/36e5;case"minute":return n*1440+o/6e4;case"second":return n*86400+o/1e3;case"millisecond":return Math.floor(n*864e5)+o;default:throw new Error("Unknown unit "+e)}}function valueOf$1(){return this.isValid()?this._milliseconds+this._days*864e5+this._months%12*2592e6+toInt(this._months/12)*31536e6:NaN}function makeAs(e){return function(){return this.as(e)}}var asMilliseconds=makeAs("ms"),asSeconds=makeAs("s"),asMinutes=makeAs("m"),asHours=makeAs("h"),asDays=makeAs("d"),asWeeks=makeAs("w"),asMonths=makeAs("M"),asQuarters=makeAs("Q"),asYears=makeAs("y");function clone$1(){return createDuration(this)}function get$2(e){return e=normalizeUnits(e),this.isValid()?this[e+"s"]():NaN}function makeGetter(e){return function(){return this.isValid()?this._data[e]:NaN}}var milliseconds=makeGetter("milliseconds"),seconds=makeGetter("seconds"),minutes=makeGetter("minutes"),hours=makeGetter("hours"),days=makeGetter("days"),months=makeGetter("months"),years=makeGetter("years");function weeks(){return absFloor(this.days()/7)}var round=Math.round,thresholds={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function substituteTimeAgo(e,n,t,o,r){return r.relativeTime(n||1,!!t,e,o)}function relativeTime$1(e,n,t,o){var r=createDuration(e).abs(),a=round(r.as("s")),s=round(r.as("m")),l=round(r.as("h")),c=round(r.as("d")),u=round(r.as("M")),d=round(r.as("w")),f=round(r.as("y")),p=a<=t.ss&&["s",a]||a<t.s&&["ss",a]||s<=1&&["m"]||s<t.m&&["mm",s]||l<=1&&["h"]||l<t.h&&["hh",l]||c<=1&&["d"]||c<t.d&&["dd",c];return t.w!=null&&(p=p||d<=1&&["w"]||d<t.w&&["ww",d]),p=p||u<=1&&["M"]||u<t.M&&["MM",u]||f<=1&&["y"]||["yy",f],p[2]=n,p[3]=+e>0,p[4]=o,substituteTimeAgo.apply(null,p)}function getSetRelativeTimeRounding(e){return e===void 0?round:typeof e=="function"?(round=e,!0):!1}function getSetRelativeTimeThreshold(e,n){return thresholds[e]===void 0?!1:n===void 0?thresholds[e]:(thresholds[e]=n,e==="s"&&(thresholds.ss=n-1),!0)}function humanize(e,n){if(!this.isValid())return this.localeData().invalidDate();var t=!1,o=thresholds,r,a;return typeof e=="object"&&(n=e,e=!1),typeof e=="boolean"&&(t=e),typeof n=="object"&&(o=Object.assign({},thresholds,n),n.s!=null&&n.ss==null&&(o.ss=n.s-1)),r=this.localeData(),a=relativeTime$1(this,!t,o,r),t&&(a=r.pastFuture(+this,a)),r.postformat(a)}var abs$1=Math.abs;function sign(e){return(e>0)-(e<0)||+e}function toISOString$1(){if(!this.isValid())return this.localeData().invalidDate();var e=abs$1(this._milliseconds)/1e3,n=abs$1(this._days),t=abs$1(this._months),o,r,a,s,l=this.asSeconds(),c,u,d,f;return l?(o=absFloor(e/60),r=absFloor(o/60),e%=60,o%=60,a=absFloor(t/12),t%=12,s=e?e.toFixed(3).replace(/\.?0+$/,""):"",c=l<0?"-":"",u=sign(this._months)!==sign(l)?"-":"",d=sign(this._days)!==sign(l)?"-":"",f=sign(this._milliseconds)!==sign(l)?"-":"",c+"P"+(a?u+a+"Y":"")+(t?u+t+"M":"")+(n?d+n+"D":"")+(r||o||e?"T":"")+(r?f+r+"H":"")+(o?f+o+"M":"")+(e?f+s+"S":"")):"P0D"}var proto$2=Duration.prototype;proto$2.isValid=isValid$1,proto$2.abs=abs,proto$2.add=add$1,proto$2.subtract=subtract$1,proto$2.as=as,proto$2.asMilliseconds=asMilliseconds,proto$2.asSeconds=asSeconds,proto$2.asMinutes=asMinutes,proto$2.asHours=asHours,proto$2.asDays=asDays,proto$2.asWeeks=asWeeks,proto$2.asMonths=asMonths,proto$2.asQuarters=asQuarters,proto$2.asYears=asYears,proto$2.valueOf=valueOf$1,proto$2._bubble=bubble,proto$2.clone=clone$1,proto$2.get=get$2,proto$2.milliseconds=milliseconds,proto$2.seconds=seconds,proto$2.minutes=minutes,proto$2.hours=hours,proto$2.days=days,proto$2.weeks=weeks,proto$2.months=months,proto$2.years=years,proto$2.humanize=humanize,proto$2.toISOString=toISOString$1,proto$2.toString=toISOString$1,proto$2.toJSON=toISOString$1,proto$2.locale=locale,proto$2.localeData=localeData,proto$2.toIsoString=deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",toISOString$1),proto$2.lang=lang,addFormatToken("X",0,0,"unix"),addFormatToken("x",0,0,"valueOf"),addRegexToken("x",matchSigned),addRegexToken("X",matchTimestamp),addParseToken("X",function(e,n,t){t._d=new Date(parseFloat(e)*1e3)}),addParseToken("x",function(e,n,t){t._d=new Date(toInt(e))});//! moment.js
|
|
128
128
|
hooks.version="2.29.4",setHookCallback(createLocal),hooks.fn=proto,hooks.min=min,hooks.max=max,hooks.now=now,hooks.utc=createUTC,hooks.unix=createUnix,hooks.months=listMonths,hooks.isDate=isDate,hooks.locale=getSetGlobalLocale,hooks.invalid=createInvalid,hooks.duration=createDuration,hooks.isMoment=isMoment,hooks.weekdays=listWeekdays,hooks.parseZone=createInZone,hooks.localeData=getLocale,hooks.isDuration=isDuration,hooks.monthsShort=listMonthsShort,hooks.weekdaysMin=listWeekdaysMin,hooks.defineLocale=defineLocale,hooks.updateLocale=updateLocale,hooks.locales=listLocales,hooks.weekdaysShort=listWeekdaysShort,hooks.normalizeUnits=normalizeUnits,hooks.relativeTimeRounding=getSetRelativeTimeRounding,hooks.relativeTimeThreshold=getSetRelativeTimeThreshold,hooks.calendarFormat=getCalendarFormat,hooks.prototype=proto,hooks.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};const DatePickerConfig={date:{placeholder:"__/__/____",dateDisplayFormat:"YYYY-MM-DD",dateInternalFormat:"YYYY-MM-DD"},time:{placeholder:"__/__/____ __:__:__",dateDisplayFormat:"YYYY-MM-DD HH:mm:ss",dateInternalFormat:"YYYY-MM-DD HH:mm:ss"}},DatePicker=e=>{const{ooui:n,showTime:t=!1}=e,{required:o}=n;return jsxRuntime.jsx(Field$1,{required:o,...e,children:jsxRuntime.jsx(DatePickerInput,{ooui:n,showTime:t})})},DatePickerInput=e=>{const{value:n,onChange:t,ooui:o,showTime:r}=e,{id:a,readOnly:s,required:l}=o,c=l&&!s?Config.requiredClass:void 0,u=r?"time":"date",d=I=>{t==null||t(I)},f=I=>{if(I===null){d(void 0);return}d(I.format(DatePickerConfig[u].dateInternalFormat))},p=r?{defaultValue:hooks("00:00:00","HH:mm:ss")}:void 0,m=n?hooks(n,DatePickerConfig[u].dateInternalFormat):void 0;return jsxRuntime.jsx(antd.DatePicker,{style:{width:"100%"},placeholder:r?DatePickerConfig.time.placeholder:DatePickerConfig.date.placeholder,disabled:s,id:a,showTime:p,className:c,format:DatePickerConfig[u].dateDisplayFormat,value:m,onChange:f})},Date$1=e=>{const{ooui:n}=e;return jsxRuntime.jsx(DatePicker,{ooui:n})},DateTime=e=>{const{ooui:n}=e;return jsxRuntime.jsx(DatePicker,{ooui:n,showTime:!0})},Reference=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,...e,children:jsxRuntime.jsx(ReferenceInput,{ooui:n})})},ReferenceInput=e=>{const{value:n,onChange:t,ooui:o}=e,{required:r,selectionValues:a,readOnly:s}=o,l=n==null?void 0:n.split(","),[c,u]=React.useState([]),[d,f]=React.useState();return React.useEffect(()=>{if(!n)return;const p=n&&l&&l[0],m=n&&l&&l[1]&&parseInt(l[1]);u([m,void 0]),f(p)},[n]),jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"1",children:jsxRuntime.jsx(SelectionInput$1,{ooui:new ooui.Selection({name:"model_selection",selection:a,readOnly:s,required:r}),onChange:p=>{f(p),u([]),t==null||t(void 0)},value:d})}),jsxRuntime.jsx(antd.Col,{flex:"3",children:jsxRuntime.jsx(Many2oneInput,{ooui:new ooui.Many2one({name:"object_value",relation:d,readOnly:s,required:r}),value:c,onChange:p=>{u(p);const m=`${d},${p[0]}`;m!==n&&(t==null||t(m))}})})]})},Binary=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,...e,children:jsxRuntime.jsx(BinaryInput,{ooui:n})})},BinaryInput=e=>{const{ooui:n,value:t,onChange:o}=e,{readOnly:r,required:a,filenameField:s}=n,l=a&&!r?Config.requiredClass:void 0,c=React.useRef(null),{setFieldValue:u,getFieldValue:d}=React.useContext(FormContext$1)||{},{t:f}=React.useContext(LocaleContext),p=t?getFilesize(t):"",m=h=>{o==null||o(h)};async function I(){const h=await getMimeType(t),x=`data:${h==null?void 0:h.mime};base64,${t}`,y=document.createElement("a"),O=d(s),b=d("name");y.href=x,y.download=O||b,y.click()}async function v(){const h=await getMimeType(t);openBase64InNewTab(t,h.mime)}async function C(h){h.stopPropagation(),h.preventDefault();const x=h.target.files[0],y=await toBase64(x);m(y),s&&u(s,x.name)}function g(){u(s,void 0),m(void 0)}return jsxRuntime.jsxs(antd.Row,{gutter:8,children:[jsxRuntime.jsxs(antd.Col,{style:{paddingBottom:5},children:[jsxRuntime.jsx("input",{type:"file",id:"file",ref:c,style:{display:"none"},onChange:C}),jsxRuntime.jsx(antd.Input,{type:"text",disabled:!0,className:l,value:p})]}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(Icon.FolderOpenOutlined,{}),disabled:r,onClick:()=>{c.current.click()},children:"Select"}),jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(Icon.EyeOutlined,{}),disabled:!t,onClick:v,children:f("open")}),jsxRuntime.jsx(ButtonWithTooltip,{tooltip:f("download"),disabled:!t,onClick:I,icon:jsxRuntime.jsx(Icon.DownloadOutlined,{})}),jsxRuntime.jsx(ButtonWithTooltip,{tooltip:f("clear"),disabled:r||!t,onClick:g,icon:jsxRuntime.jsx(Icon.ClearOutlined,{})})]})})]})},iconsForViewTypes={tree:jsxRuntime.jsx(Icon.TableOutlined,{}),form:jsxRuntime.jsx(Icon.FormOutlined,{}),graph:jsxRuntime.jsx(Icon.AreaChartOutlined,{}),calendar:jsxRuntime.jsx(Icon.CalendarOutlined,{})};function getIconForView(e){return e?(iconsForViewTypes==null?void 0:iconsForViewTypes[e.type])||jsxRuntime.jsx(Icon.FormOutlined,{}):jsxRuntime.jsx(Icon.FormOutlined,{})}function ChangeViewButton(e){const{currentView:n,availableViews:t,onChangeView:o,disabled:r=!1,formHasChanges:a=!1,previousView:s}=e,{t:l,lang:c}=React.useContext(LocaleContext);function u(){const p=t.map((m,I)=>jsxRuntime.jsx(antd.Menu.Item,{children:jsxRuntime.jsxs(antd.Row,{wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"none",style:{paddingRight:20},children:getIconForView(m)}),jsxRuntime.jsx(antd.Col,{flex:"auto",style:{paddingRight:20},children:m.type==="graph"?m.name:m.type.charAt(0).toUpperCase()+m.type.slice(1)}),jsxRuntime.jsx(antd.Col,{flex:"none",children:jsxRuntime.jsx(Icon.CheckOutlined,{style:{opacity:n.view_id===m.view_id?1:0}})})]})},m.view_id||I));return jsxRuntime.jsx(antd.Menu,{onClick:f,children:jsxRuntime.jsx(antd.Menu.ItemGroup,{title:l("viewAs"),children:p})})}function d(p){if(a){showDialog$6({lang:c,onOk:()=>{p()}});return}p()}function f(p){d(()=>{const m=t.find(I=>I.view_id===parseInt(p.key));o(m)})}return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ButtonWithTooltip,{tooltip:s?l("viewAs")+" "+l(s.type):"",icon:getIconForView(s),style:{width:50},onClick:()=>{f({key:s==null?void 0:s.view_id})},disabled:r||t.length===1}),jsxRuntime.jsx(antd.Dropdown,{overlay:u(),disabled:r||t.length===1,children:jsxRuntime.jsx(antd.Button,{style:{width:25},icon:jsxRuntime.jsx(Icon.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:p=>p.preventDefault()})})]})}function DropdownButton(e){const{icon:n,tooltip:t,items:o=[],onItemClick:r,label:a,disabled:s=!1}=e;function l(){const u=o==null?void 0:o.map((d,f)=>d.name==="divider"?jsxRuntime.jsx(antd.Menu.Divider,{},"divider"+f):jsxRuntime.jsx(antd.Menu.Item,{children:d.name},d.id));return jsxRuntime.jsx(antd.Menu,{onClick:c,children:jsxRuntime.jsx(antd.Menu.ItemGroup,{title:t,children:u})})}function c(u){const d=o.find(f=>isNaN(u.key)?f.id===u.key:f.id===parseInt(u.key));r(d)}return jsxRuntime.jsx(antd.Dropdown,{overlay:l(),disabled:s||!o||o.length===0,children:jsxRuntime.jsxs(antd.Button,{children:[n," ",a," ",jsxRuntime.jsx(Icon.DownOutlined,{})]})})}function ActionButton(e){const{onClick:n,disabled:t=!1,loading:o=!1,tooltip:r,icon:a,label:s,type:l="default"}=e,c=o?jsxRuntime.jsx(Icon.LoadingOutlined,{}):a;return jsxRuntime.jsxs(ButtonWithTooltip,{type:l,tooltip:r,onClick:n,disabled:t,children:[c,s]})}function NewButton(e){const{disabled:n=!1}=e,{formHasChanges:t,onNewClicked:o}=React.useContext(ActionViewContext),{t:r,lang:a}=React.useContext(LocaleContext),s=()=>{if(t){showDialog$6({lang:a,onOk:()=>{o()}});return}o()};return jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.FileAddOutlined,{}),tooltip:r("new"),onClick:s,disabled:n})}const{confirm}=antd.Modal,showDialog=({onOk:e,onCancel:n,lang:t})=>{confirm({title:tForLang("unsavedChanges",t),icon:jsxRuntime.jsx(Icon.ExclamationCircleOutlined,{}),centered:!0,content:tForLang("confirmRefreshWithoutSave",t),okText:tForLang("discardAndRefresh",t),cancelText:tForLang("cancel",t),onOk:e,onCancel:n})};async function showLogInfo(e,n,t){const o=(await ConnectionProvider.getHandler().getLogInfo({model:e,ids:[n]}))[0],{create_date:r,create_uid:a,id:s,write_date:l,write_uid:c}=o;showDialog$7(jsxRuntime.jsxs("div",{children:["ID: "+s," ",jsxRuntime.jsx("br",{}),t("createdBy")+": "+a[1]," ",jsxRuntime.jsx("br",{}),t("creationDate")+": "+r," ",jsxRuntime.jsx("br",{}),t("lastUpdatedBy")+": "+c[1]," ",jsxRuntime.jsx("br",{}),t("lastUpdatedDate")+": "+l]}))}const AttachmentsButtonWrapper=e=>{const{numberOfAttachments:n,disabled:t}=e,{t:o}=React.useContext(LocaleContext),[r,a]=React.useState(!1),s=jsxRuntime.jsxs(antd.Button,{disabled:t,children:[jsxRuntime.jsx(Icon.LinkOutlined,{}),`(${n})`,jsxRuntime.jsx(Icon.DownOutlined,{style:{fontSize:12}})]});return t?s:jsxRuntime.jsx(antd.Popover,{onVisibleChange:l=>a(l),visible:r,placement:"bottom",content:Content$1(e,a),title:o("attachments"),arrowContent:null,children:s})},Content$1=(e,n)=>{const{attachments:t=[],loading:o,onAddNewAttachment:r,onopenAttachmentLink:a,onOpenAttachmentDetail:s,onListAllAttachments:l}=e,{t:c}=React.useContext(LocaleContext);return o?jsxRuntime.jsx(antd.Spin,{style:{padding:20}}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("a",{style:{display:"block",paddingBottom:5},href:"#",onClick:()=>{n(!1),l()},children:[jsxRuntime.jsx(Icon.TableOutlined,{})," ",c("listAllAttachments")]}),jsxRuntime.jsxs("a",{style:{display:"block"},href:"#",onClick:()=>{n(!1),r()},children:[jsxRuntime.jsx(Icon.FileAddOutlined,{})," ",c("addNewAttachment")]}),t.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("li",{className:" ant-dropdown-menu-item-divider"}),t.map(u=>{const d=u.link?Icon.LinkOutlined:Icon.DownloadOutlined;return jsxRuntime.jsxs(antd.Row,{style:{paddingTop:4,paddingBottom:4},wrap:!1,align:"middle",children:[jsxRuntime.jsx(antd.Col,{flex:"auto",children:u.name}),jsxRuntime.jsx(antd.Col,{flex:"25px",style:{textAlign:"center"},children:(u.datas_fname||u.link)&&jsxRuntime.jsx(antd.Tooltip,{title:u.link?c("openAttachmentLink"):c("download"),children:jsxRuntime.jsx(d,{style:{cursor:"pointer"},onClick:()=>{n(!1),a(u)}})})}),jsxRuntime.jsx(antd.Col,{flex:"25px",style:{textAlign:"center"},children:jsxRuntime.jsx(antd.Tooltip,{title:c("openAttachment"),children:jsxRuntime.jsx(Icon.FormOutlined,{style:{cursor:"pointer"},onClick:()=>{n(!1),s(u)}})})})]},u.id)})]})]})};function AttachmentsButton(e){const{attachments:n,disabled:t=!1,onAddNewAttachment:o,onListAllAttachments:r,onViewAttachmentDetails:a}=e,{formRef:s}=React.useContext(ActionViewContext),[l,c]=React.useState(!1),[u,d]=React.useState([]),[f,p]=React.useState(!1),{t:m}=React.useContext(LocaleContext),I=React.useCallback(async()=>{c(!0);try{const g=await ConnectionProvider.getHandler().readObjects({model:"ir.attachment",ids:n.map(h=>h.id),fieldsToRetrieve:["name","datas_fname","link"],context:s.current.getContext()});d(g.map(h=>({id:h.id,name:h.name,datas_fname:h.datas_fname,link:h.link})))}catch(g){showDialog$8(g)}c(!1)},n),v=React.useCallback(async g=>{if(g.link){window.open(g.link);return}p(!0);let h;try{h=(await ConnectionProvider.getHandler().readObjects({model:"ir.attachment",ids:[g.id],context:s.current.getContext()}))[0]}catch(x){showDialog$8(x)}if(p(!1),!!h)if(h.datas){const x=await getMimeType(h.datas);openBase64InNewTab(h.datas,x.mime)}else a(h)},[]),C=React.useCallback(async g=>{a(g)},[]);return React.useEffect(()=>{I()},[I]),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(AttachmentsButtonWrapper,{numberOfAttachments:n.length,attachments:u,disabled:t,loading:l,onAddNewAttachment:o,onListAllAttachments:r,onopenAttachmentLink:v,onOpenAttachmentDetail:C}),jsxRuntime.jsx(antd.Modal,{title:m("downloadingAttachment"),visible:f,footer:null,closable:!1,centered:!0,maskClosable:!1,children:jsxRuntime.jsx(antd.Spin,{})})]})}function FormActionBar({toolbar:e}){const{availableViews:n,currentView:t,setCurrentView:o,onFormSave:r,formHasChanges:a,formIsSaving:s,currentId:l,results:c,setCurrentItemIndex:u,currentItemIndex:d,setCurrentId:f,currentModel:p,setRemovingItem:m,removingItem:I,duplicatingItem:v,setDuplicatingItem:C,setResults:g,formIsLoading:h,attachments:x,formRef:y,setFormHasChanges:O,searchTreeRef:b,previousView:E,setPreviousView:w,goToResourceId:_}=React.useContext(ActionViewContext),{t:S,lang:k}=React.useContext(LocaleContext),N=React.useContext(ContentRootContext),{processAction:M}=N||{},j=React.useContext(TabManagerContext),{openRelate:B,openDefaultActionForModel:$}=j||{};function L(P){if(a){showDialog({lang:k,onOk:()=>{P()}});return}P()}function D(P){if(a){showDialog$6({lang:k,onOk:()=>{P()}});return}P()}function U(){c&&c.length>d+1?(u==null||u(d+1),f==null||f(c[d+1].id)):c&&d+1===c.length&&(u==null||u(0),f==null||f(c[0].id))}function G(){c&&d>0?(u==null||u(d-1),f==null||f(c[d-1].id)):c&&d===0&&(u==null||u(c.length-1),f==null||f(c[c.length-1].id))}function z(){showDialog$9({confirmMessage:S("confirmRemoveItem"),lang:k,onOk:()=>{W()}})}async function W(){try{m==null||m(!0),await ConnectionProvider.getHandler().delete({model:p,ids:[l]});const P=c==null?void 0:c.filter(q=>q.id!==l);g==null||g(P);let A=0;d>0&&d<=c.length-1&&(A=d-1),P!=null&&P[A]?(f==null||f(P==null?void 0:P[A].id),u==null||u(A)):(f==null||f(void 0),u==null||u(void 0))}catch(P){showDialog$3(JSON.stringify(P))}finally{m==null||m(!1)}}async function Z(){try{C==null||C(!0);const P=await ConnectionProvider.getHandler().duplicate({id:l,model:p,context:y.current.getContext()});P&&await(_==null?void 0:_(P))}catch(P){showDialog$3(JSON.stringify(P))}finally{C==null||C(!1)}}const V=s||I||h||v;function H(P){M==null||M({actionData:P,values:y.current.getValues(),fields:y.current.getFields(),context:y.current.getContext(),onRefreshParentValues:()=>{y.current.fetchValues()}})}return t?jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[h&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Spin,{}),separator$2(),separator$2()]}),jsxRuntime.jsx(NewButton,{disabled:s||h||I||v}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.SaveOutlined,{}),tooltip:S("save"),disabled:!a||V,loading:s,onClick:r}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.CopyOutlined,{}),tooltip:S("duplicate"),disabled:a||s||l===void 0||v||h,loading:v,onClick:Z}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.DeleteOutlined,{}),tooltip:S("delete"),disabled:s||l===void 0||I||v||h,loading:I,onClick:z}),separator$2(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.InfoCircleOutlined,{}),tooltip:S("showLogs"),disabled:s||l===void 0||I||v||h,loading:!1,onClick:()=>{showLogInfo(p,l,S)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.ReloadOutlined,{}),tooltip:S("refresh"),disabled:s||l===void 0||I||v||h,loading:!1,onClick:()=>{L(()=>{y.current.fetchValues()})}}),separator$2(),jsxRuntime.jsx(ChangeViewButton,{currentView:t,previousView:E,availableViews:n,onChangeView:P=>{w==null||w(t),O==null||O(!1),o==null||o(P)},disabled:V,formHasChanges:a}),separator$2(),jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.LeftOutlined,{}),tooltip:S("previous"),disabled:V,loading:!1,onClick:()=>{D(G)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.RightOutlined,{}),tooltip:S("next"),disabled:V,loading:!1,onClick:()=>{D(U)}})]}),separator$2(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(Icon.ThunderboltOutlined,{}),disabled:V,tooltip:S("actions"),items:e==null?void 0:e.action,onItemClick:P=>{!P||H(P)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(Icon.PrinterOutlined,{}),disabled:V,tooltip:S("reports"),items:e==null?void 0:e.print,onItemClick:P=>{!P||H({...P,datas:{...P.datas||{},ids:[l]}})}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(Icon.EnterOutlined,{}),disabled:V,tooltip:S("related"),items:e==null?void 0:e.relate,onItemClick:async P=>{!P||B({relateData:P,values:y.current.getValues(),fields:y.current.getFields(),action_id:P.id,action_type:P.type})}}),jsxRuntime.jsx(AttachmentsButton,{disabled:V,attachments:x,onAddNewAttachment:()=>{const P=l,A=p;$({model:"ir.attachment",values:{selection_associated_object:`${A},${P}`},forced_values:{res_model:A,res_id:P},initialViewType:"form"})},onListAllAttachments:()=>{const P=l;$({model:"ir.attachment",domain:[["res_model","=",`${p}`],["res_id","=",`${P}`]],initialViewType:"tree"})},onViewAttachmentDetails:P=>{$({model:"ir.attachment",res_id:P.id,initialViewType:"form"})}})]}):null}function separator$2(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}var isURL$1={exports:{}},assertString={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=o;function t(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?t=function(s){return typeof s}:t=function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},t(r)}function o(r){var a=typeof r=="string"||r instanceof String;if(!a){var s=t(r);throw r===null?s="null":s==="object"&&(s=r.constructor.name),new TypeError("Expected a string but received a ".concat(s))}}e.exports=n.default,e.exports.default=n.default})(assertString,assertString.exports);var isFQDN={exports:{}},merge={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=t;function t(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;for(var a in r)typeof o[a]>"u"&&(o[a]=r[a]);return o}e.exports=n.default,e.exports.default=n.default})(merge,merge.exports),function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=s;var t=r(assertString.exports),o=r(merge.exports);function r(l){return l&&l.__esModule?l:{default:l}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1};function s(l,c){(0,t.default)(l),c=(0,o.default)(c,a),c.allow_trailing_dot&&l[l.length-1]==="."&&(l=l.substring(0,l.length-1)),c.allow_wildcard===!0&&l.indexOf("*.")===0&&(l=l.substring(2));var u=l.split("."),d=u[u.length-1];return c.require_tld&&(u.length<2||!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(d)||/\s/.test(d))||!c.allow_numeric_tld&&/^\d+$/.test(d)?!1:u.every(function(f){return!(f.length>63||!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(f)||/[\uff01-\uff5e]/.test(f)||/^-|-$/.test(f)||!c.allow_underscores&&/_/.test(f))})}e.exports=n.default,e.exports.default=n.default}(isFQDN,isFQDN.exports);var isIP={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=u;var t=o(assertString.exports);function o(d){return d&&d.__esModule?d:{default:d}}var r="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",a="(".concat(r,"[.]){3}").concat(r),s=new RegExp("^".concat(a,"$")),l="(?:[0-9a-fA-F]{1,4})",c=new RegExp("^("+"(?:".concat(l,":){7}(?:").concat(l,"|:)|")+"(?:".concat(l,":){6}(?:").concat(a,"|:").concat(l,"|:)|")+"(?:".concat(l,":){5}(?::").concat(a,"|(:").concat(l,"){1,2}|:)|")+"(?:".concat(l,":){4}(?:(:").concat(l,"){0,1}:").concat(a,"|(:").concat(l,"){1,3}|:)|")+"(?:".concat(l,":){3}(?:(:").concat(l,"){0,2}:").concat(a,"|(:").concat(l,"){1,4}|:)|")+"(?:".concat(l,":){2}(?:(:").concat(l,"){0,3}:").concat(a,"|(:").concat(l,"){1,5}|:)|")+"(?:".concat(l,":){1}(?:(:").concat(l,"){0,4}:").concat(a,"|(:").concat(l,"){1,6}|:)|")+"(?::((?::".concat(l,"){0,5}:").concat(a,"|(?::").concat(l,"){1,7}|:))")+")(%[0-9a-zA-Z-.:]{1,})?$");function u(d){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if((0,t.default)(d),f=String(f),!f)return u(d,4)||u(d,6);if(f==="4"){if(!s.test(d))return!1;var p=d.split(".").sort(function(m,I){return m-I});return p[3]<=255}return f==="6"?!!c.test(d):!1}e.exports=n.default,e.exports.default=n.default})(isIP,isIP.exports),function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=g;var t=s(assertString.exports),o=s(isFQDN.exports),r=s(isIP.exports),a=s(merge.exports);function s(h){return h&&h.__esModule?h:{default:h}}function l(h,x){return p(h)||f(h,x)||u(h,x)||c()}function c(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
129
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function u(h,x){if(!!h){if(typeof h=="string")return d(h,x);var y=Object.prototype.toString.call(h).slice(8,-1);if(y==="Object"&&h.constructor&&(y=h.constructor.name),y==="Map"||y==="Set")return Array.from(h);if(y==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(y))return d(h,x)}}function d(h,x){(x==null||x>h.length)&&(x=h.length);for(var y=0,O=new Array(x);y<x;y++)O[y]=h[y];return O}function f(h,x){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(h)))){var y=[],O=!0,b=!1,E=void 0;try{for(var w=h[Symbol.iterator](),_;!(O=(_=w.next()).done)&&(y.push(_.value),!(x&&y.length===x));O=!0);}catch(S){b=!0,E=S}finally{try{!O&&w.return!=null&&w.return()}finally{if(b)throw E}}return y}}function p(h){if(Array.isArray(h))return h}var m={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_port:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1,allow_fragments:!0,allow_query_components:!0,validate_length:!0},I=/^\[([^\]]+)\](?::([0-9]+))?$/;function v(h){return Object.prototype.toString.call(h)==="[object RegExp]"}function C(h,x){for(var y=0;y<x.length;y++){var O=x[y];if(h===O||v(O)&&O.test(h))return!0}return!1}function g(h,x){if((0,t.default)(h),!h||/[\s<>]/.test(h)||h.indexOf("mailto:")===0||(x=(0,a.default)(x,m),x.validate_length&&h.length>=2083)||!x.allow_fragments&&h.includes("#")||!x.allow_query_components&&(h.includes("?")||h.includes("&")))return!1;var y,O,b,E,w,_,S,k;if(S=h.split("#"),h=S.shift(),S=h.split("?"),h=S.shift(),S=h.split("://"),S.length>1){if(y=S.shift().toLowerCase(),x.require_valid_protocol&&x.protocols.indexOf(y)===-1)return!1}else{if(x.require_protocol)return!1;if(h.substr(0,2)==="//"){if(!x.allow_protocol_relative_urls)return!1;S[0]=h.substr(2)}}if(h=S.join("://"),h==="")return!1;if(S=h.split("/"),h=S.shift(),h===""&&!x.require_host)return!0;if(S=h.split("@"),S.length>1){if(x.disallow_auth||S[0]===""||(O=S.shift(),O.indexOf(":")>=0&&O.split(":").length>2))return!1;var N=O.split(":"),M=l(N,2),j=M[0],B=M[1];if(j===""&&B==="")return!1}E=S.join("@"),_=null,k=null;var $=E.match(I);if($?(b="",k=$[1],_=$[2]||null):(S=E.split(":"),b=S.shift(),S.length&&(_=S.join(":"))),_!==null&&_.length>0){if(w=parseInt(_,10),!/^[0-9]+$/.test(_)||w<=0||w>65535)return!1}else if(x.require_port)return!1;return x.host_whitelist?C(b,x.host_whitelist):!(!(0,r.default)(b)&&!(0,o.default)(b,x)&&(!k||!(0,r.default)(k,6))||(b=b||k,x.host_blacklist&&C(b,x.host_blacklist)))}e.exports=n.default,e.exports.default=n.default}(isURL$1,isURL$1.exports);const isURL=getDefaultExportFromCjs(isURL$1.exports),LinkInput=e=>{const{ooui:n,value:t,onChange:o,valueValidator:r,linkPrefix:a=""}=e,{id:s,readOnly:l,required:c}=n,u=c&&!l?Config.requiredClass:void 0,d=React.useContext(FormContext$1),{elementHasLostFocus:f}=d||{},[p,m]=React.useState(!1),[I,v]=React.useState(!1);React.useEffect(()=>{l&&!p&&v(!1),!t&&!l&&(m(!0),v(!0))},[p,l]);const C=g=>{o==null||o(g.target.value)};return jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,align:"middle",children:[l?null:jsxRuntime.jsx(antd.Col,{flex:"32px",children:p?jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(Icon.CheckOutlined,{}),onClick:()=>{r(t)&&(m(!1),v(!1))},tabIndex:-1}):jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(Icon.EditOutlined,{}),onClick:()=>{m(!0),v(!0)},tabIndex:-1})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:I?jsxRuntime.jsx(antd.Input,{id:s,onChange:C,className:u,value:t,onBlur:()=>{r(t)&&(m(!1),v(!1),f==null||f())}}):jsxRuntime.jsx("a",{href:`${a}${t}`,style:{color:"#1890ff",paddingRight:15},target:"_blank",children:t})})]})},Url=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,...e,children:jsxRuntime.jsx(LinkInput,{ooui:n,valueValidator:o=>o?isURL(o):!1})})};var isEmail$1={exports:{}},isByteLength={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=a;var t=o(assertString.exports);function o(s){return s&&s.__esModule?s:{default:s}}function r(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?r=function(c){return typeof c}:r=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},r(s)}function a(s,l){(0,t.default)(s);var c,u;r(l)==="object"?(c=l.min||0,u=l.max):(c=arguments[1],u=arguments[2]);var d=encodeURI(s).split(/%..|./).length-1;return d>=c&&(typeof u>"u"||d<=u)}e.exports=n.default,e.exports.default=n.default})(isByteLength,isByteLength.exports),function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=g;var t=l(assertString.exports),o=l(merge.exports),r=l(isByteLength.exports),a=l(isFQDN.exports),s=l(isIP.exports);function l(h){return h&&h.__esModule?h:{default:h}}var c={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1,host_blacklist:[]},u=/^([^\x00-\x1F\x7F-\x9F\cX]+)</i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,f=/^[a-z\d]+$/,p=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,m=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,I=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,v=254;function C(h){var x=h.replace(/^"(.+)"$/,"$1");if(!x.trim())return!1;var y=/[\.";<>]/.test(x);if(y){if(x===h)return!1;var O=x.split('"').length===x.split('\\"').length;if(!O)return!1}return!0}function g(h,x){if((0,t.default)(h),x=(0,o.default)(x,c),x.require_display_name||x.allow_display_name){var y=h.match(u);if(y){var O=y[1];if(h=h.replace(O,"").replace(/(^<|>$)/g,""),O.endsWith(" ")&&(O=O.substr(0,O.length-1)),!C(O))return!1}else if(x.require_display_name)return!1}if(!x.ignore_max_length&&h.length>v)return!1;var b=h.split("@"),E=b.pop(),w=E.toLowerCase();if(x.host_blacklist.includes(w))return!1;var _=b.join("@");if(x.domain_specific_validation&&(w==="gmail.com"||w==="googlemail.com")){_=_.toLowerCase();var S=_.split("+")[0];if(!(0,r.default)(S.replace(/\./g,""),{min:6,max:30}))return!1;for(var k=S.split("."),N=0;N<k.length;N++)if(!f.test(k[N]))return!1}if(x.ignore_max_length===!1&&(!(0,r.default)(_,{max:64})||!(0,r.default)(E,{max:254})))return!1;if(!(0,a.default)(E,{require_tld:x.require_tld})){if(!x.allow_ip_domain)return!1;if(!(0,s.default)(E)){if(!E.startsWith("[")||!E.endsWith("]"))return!1;var M=E.substr(1,E.length-2);if(M.length===0||!(0,s.default)(M))return!1}}if(_[0]==='"')return _=_.slice(1,_.length-1),x.allow_utf8_local_part?I.test(_):p.test(_);for(var j=x.allow_utf8_local_part?m:d,B=_.split("."),$=0;$<B.length;$++)if(!j.test(B[$]))return!1;return!(x.blacklisted_chars&&_.search(new RegExp("[".concat(x.blacklisted_chars,"]+"),"g"))!==-1)}e.exports=n.default,e.exports.default=n.default}(isEmail$1,isEmail$1.exports);const isEmail=getDefaultExportFromCjs(isEmail$1.exports),Email=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,...e,children:jsxRuntime.jsx(LinkInput,{ooui:n,linkPrefix:"mailto:",valueValidator:o=>o?isEmail(o):!1})})},GoToResourceModal=e=>{const{visible:n,onIdSubmitted:t,onCancel:o,isSearching:r}=e,{t:a}=React.useContext(LocaleContext);function s(l){t(l.id)}return jsxRuntime.jsx(antd.Modal,{title:a("goToResourceId"),centered:!0,visible:n,footer:null,destroyOnClose:!0,onCancel:o,maskClosable:!1,children:jsxRuntime.jsxs(antd.Form,{layout:"vertical",onFinish:s,autoComplete:"off",children:[jsxRuntime.jsx(antd.Form.Item,{name:"id",label:a("searchId"),rules:[{required:!0,type:"number"}],children:jsxRuntime.jsx(antd.InputNumber,{style:{width:"100%"},autoFocus:!0})}),jsxRuntime.jsx(antd.Row,{align:"middle",justify:"end",children:jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(Icon.CloseOutlined,{}),htmlType:"button",onClick:o,disabled:r,children:a("cancel")}),jsxRuntime.jsx(antd.Button,{loading:r,style:{marginLeft:15},icon:jsxRuntime.jsx(Icon.CheckOutlined,{}),htmlType:"submit",type:"primary",disabled:r,children:a("ok")})]})})})]})})};function ButtonWithBadge(e){const{badgeNumber:n=0,...t}=e;return jsxRuntime.jsxs("div",{style:{position:"relative"},children:[n>0&&jsxRuntime.jsx("div",{style:{position:"absolute",left:-10,top:-10,zIndex:2},children:jsxRuntime.jsx("span",{style:{display:"inline-block",minWidth:"22px",padding:"2px",borderRadius:"50%",fontSize:"12px",textAlign:"center",background:"#1890FF",color:"#fefefe"},children:n})}),jsxRuntime.jsx(ButtonWithTooltip,{...t,style:{width:46,zIndex:0}})]})}function GraphActionBar({refreshGraph:e}){const{t:n}=React.useContext(LocaleContext),{availableViews:t,currentView:o,setCurrentView:r,searchParams:a,searchVisible:s,setSearchVisible:l,graphIsLoading:c,previousView:u,setPreviousView:d}=React.useContext(ActionViewContext);return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(Icon.FilterOutlined,{style:{color:s?"white":void 0}}),tooltip:n("advanced_search"),type:s?"primary":"default",onClick:()=>{l==null||l(!s)},disabled:c,badgeNumber:a==null?void 0:a.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.ReloadOutlined,{}),tooltip:n("refresh"),disabled:c,loading:!1,onClick:()=>{e()}}),jsxRuntime.jsx(ChangeViewButton,{currentView:o,availableViews:t,onChangeView:f=>{d==null||d(o),r==null||r(f)},disabled:!1,previousView:u})]})}const{Title:Title$1,Text:Text$1}=antd.Typography;function TitleHeader(e){const{title:n,children:t}=e,{title:o,currentView:r,currentId:a,currentItemIndex:s,results:l,totalItems:c,selectedRowItems:u}=React.useContext(ActionViewContext),{t:d}=React.useContext(LocaleContext);function f(){if((r==null?void 0:r.type)==="form")return a?c===0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("editingDocument")," (id: ",jsxRuntime.jsx(Text$1,{copyable:!0,children:a}),")"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("register")," ",s===void 0?1:s+1," /"," ",l.length," ",d("of")," ",c," - ",d("editingDocument")," (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:a}),")"]}):"";if((r==null?void 0:r.type)==="tree"&&u){if(u.length===1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:["1 ",d("selectedRegisters")," - (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:u[0].id}),")"]});if(u.length>1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u.length," ",d("selectedRegisters"),jsxRuntime.jsx(Text$1,{copyable:{text:u.map(p=>p.id).join(", ")}})]})}return null}return jsxRuntime.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[jsxRuntime.jsxs(antd.Row,{className:"rounded shadow-md bg-blueGray-100",style:{padding:"1em"},align:"middle",children:[jsxRuntime.jsxs(antd.Col,{flex:2,children:[jsxRuntime.jsx(Title$1,{level:3,style:{marginBottom:0},children:n||o}),f()]}),jsxRuntime.jsx(antd.Col,{flex:3,children:jsxRuntime.jsx(antd.Row,{justify:"end",children:t})})]}),jsxRuntime.jsx("div",{className:"pb-5"})]})}const GraphActionView=e=>{const{viewData:n,visible:t,model:o,context:r,domain:a,formView:s,treeView:l}=e,c=React.useRef(),u=React.useContext(ActionViewContext),{setResults:d=void 0,setCurrentItemIndex:f=void 0,currentId:p=void 0,results:m=void 0,setSelectedRowItems:I=void 0,setSearchParams:v=void 0,searchVisible:C=!0,setSearchVisible:g=void 0,sorter:h=void 0,setSorter:x=void 0,setTotalItems:y=void 0,setSearchTreeNameSearch:O=void 0,setTreeIsLoading:b=void 0,limit:E,setLimit:w,searchParams:_,searchValues:S,setSearchValues:k,currentView:N}=u||{},[M,j]=React.useState(!0);React.useEffect(()=>{var G;(G=c.current)==null||G.refresh()},[_]),React.useEffect(()=>{n.view_id!==N.view_id&&j(!0)},[N]);const{clear:B,searchFilterLoading:$,searchError:L,offset:D,tableRefreshing:U}=useSearch({model:o,setSearchTreeNameSearch:O,setSelectedRowItems:I,searchParams:_,setSearchValues:k,setSearchParams:v,setSearchVisible:g,setTreeIsLoading:b,context:r,formView:s,treeView:l,sorter:h,setSorter:x,setCurrentItemIndex:f,setResultsActionView:d,resultsActionView:m,domain:a,currentId:p,setActionViewTotalItems:y,limit:E,setLimit:w});return!t||!n?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{title:n.name,children:jsxRuntime.jsx(GraphActionBar,{refreshGraph:()=>{c.current.refresh()}})}),jsxRuntime.jsx(SearchFilter,{fields:{...l.fields,...s.fields},searchFields:mergeSearchFields([s.search_fields,l.search_fields]),limit:E,onClear:B,offset:D,isSearching:$,onSubmit:G=>{j(!1),v==null||v(G.params),g==null||g(!1)},searchError:L,searchVisible:C,searchValues:S,showLimitOptions:!1}),U?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(Graph,{ref:c,view_id:n.view_id,model:o,context:r,domain:mergeParams(_||[],a),limit:M?E:void 0,manualIds:M?m==null?void 0:m.map(G=>G.id):void 0})]})},FormActionView=e=>{const{visible:n,formRef:t,model:o,currentId:r,domain:a,formView:s,context:l,defaultValues:c,forcedValues:u,results:d,setResults:f,setCurrentItemIndex:p}=e;return n?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(FormActionBar,{toolbar:s==null?void 0:s.toolbar})}),jsxRuntime.jsx(Form$1,{rootForm:!0,ref:t,model:o,defaultValues:c,forcedValues:u,formView:s,actionDomain:a,id:r,parentContext:l,onSubmitSucceed:(m,I)=>{d.findIndex(C=>C.id===m)===-1&&(d.push(I),f(d),p(d.length-1))}})]}):null};function SearchBar(e){const{onSearch:n,disabled:t=!1,searchText:o}=e,{t:r}=React.useContext(LocaleContext),[a]=antd.Form.useForm(),[s,l]=React.useState(!1);function c(d){n(d.search)}React.useEffect(()=>{a.setFieldsValue({search:o})},[o]);function u(){l(!1),a.setFieldsValue({search:void 0}),n(void 0)}return jsxRuntime.jsx(antd.Form,{form:a,onFinish:c,autoComplete:"off",children:jsxRuntime.jsxs(antd.Row,{align:"middle",justify:"end",children:[jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Form.Item,{name:"search",noStyle:!0,children:jsxRuntime.jsx(antd.Input,{autoFocus:!0,disabled:t,onChange:d=>{l(d.target.value.length>0)},suffix:(s||o&&o.length>0)&&jsxRuntime.jsx(antd.Tooltip,{title:r("clear"),children:jsxRuntime.jsx(Icon.CloseCircleFilled,{style:{color:"rgba(0,0,0,.45)"},onClick:u})})})})}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Button,{htmlType:"submit",disabled:t,children:r("search")})})]})})}function TreeActionBar(e){const{availableViews:n,currentView:t,setCurrentView:o,selectedRowItems:r,setRemovingItem:a,removingItem:s,duplicatingItem:l,setDuplicatingItem:c,currentModel:u,searchTreeRef:d,setCurrentId:f,setCurrentItemIndex:p,searchParams:m,searchVisible:I,setSearchVisible:v,setSearchTreeNameSearch:C,searchTreeNameSearch:g,treeIsLoading:h,setPreviousView:x,previousView:y}=React.useContext(ActionViewContext),{parentContext:O={},treeExpandable:b,toolbar:E}=e,{t:w,lang:_}=React.useContext(LocaleContext),S=React.useContext(ContentRootContext),{processAction:k}=S||{};function N(){showDialog$9({confirmMessage:w("confirmRemove"),lang:_,onOk:()=>{M()}})}async function M(){var $;try{a==null||a(!0),await ConnectionProvider.getHandler().delete({model:u,ids:r.map(L=>L.id)}),f==null||f(void 0),p==null||p(void 0),($=d==null?void 0:d.current)==null||$.refreshResults()}catch(L){showDialog$8(L)}finally{a==null||a(!1)}}async function j(){var $;try{c==null||c(!0);const L=r[0].id;await ConnectionProvider.getHandler().duplicate({id:L,model:u,context:{...O}})&&(($=d==null?void 0:d.current)==null||$.refreshResults())}catch(L){showDialog$8(L)}finally{c==null||c(!1)}}function B($){k==null||k({actionData:$,values:{active_id:r==null?void 0:r.map(L=>L.id)[0],active_ids:r==null?void 0:r.map(L=>L.id)},fields:{},context:{...O,active_id:r==null?void 0:r.map(L=>L.id)[0],active_ids:r==null?void 0:r.map(L=>L.id)},onRefreshParentValues:()=>{var L;(L=d==null?void 0:d.current)==null||L.refreshResults()}})}return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[b?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchBar,{disabled:l||s||h,searchText:g,onSearch:$=>{$&&$.trim().length>0?C==null||C($):C==null||C(void 0)}}),separator$1(),jsxRuntime.jsx(NewButton,{disabled:h}),separator$1(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.CopyOutlined,{}),tooltip:w("duplicate"),disabled:!r||(r==null?void 0:r.length)!==1||l||h,loading:l,onClick:j}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.DeleteOutlined,{}),tooltip:w("delete"),disabled:!(r&&(r==null?void 0:r.length)>0)||h,loading:s,onClick:N}),separator$1()]}),!b&&jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(Icon.FilterOutlined,{style:{color:I?"white":void 0}}),tooltip:w("advanced_search"),type:I?"primary":"default",onClick:()=>{v==null||v(!I)},disabled:l||s||h,badgeNumber:m==null?void 0:m.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.InfoCircleOutlined,{}),tooltip:w("showLogs"),disabled:!(r&&(r==null?void 0:r.length)>0)||h,loading:!1,onClick:()=>{showLogInfo(u,r[0].id,w)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.ReloadOutlined,{}),tooltip:w("refresh"),disabled:l||s||h,loading:!1,onClick:()=>{var $;($=d==null?void 0:d.current)==null||$.refreshResults()}}),!b&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[separator$1(),jsxRuntime.jsx(ChangeViewButton,{currentView:t,availableViews:n,onChangeView:$=>{x==null||x(t),o==null||o($)},previousView:y,disabled:h})]}),separator$1(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(Icon.ThunderboltOutlined,{}),disabled:!(r&&(r==null?void 0:r.length)>0)||h,tooltip:w("actions"),items:E==null?void 0:E.action,onItemClick:$=>{!$||B($)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(Icon.PrinterOutlined,{}),disabled:!(r&&(r==null?void 0:r.length)>0)||h,tooltip:w("reports"),items:E==null?void 0:E.print,onItemClick:$=>{!$||B({...$,datas:{...$.datas||{},ids:r.map(L=>L.id)}})}})]})}function separator$1(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}const TreeActionView=e=>{const{visible:n,searchTreeRef:t,model:o,context:r,formView:a,treeView:s,domain:l,setCurrentItemIndex:c,results:u,setCurrentId:d,setCurrentView:f,availableViews:p,searchTreeNameSearch:m}=e;return n?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(TreeActionBar,{toolbar:a==null?void 0:a.toolbar,parentContext:r,treeExpandable:(s==null?void 0:s.isExpandable)||!1})}),jsxRuntime.jsx(SearchTree$1,{ref:t,rootTree:!0,model:o,parentContext:r,nameSearch:m,formView:a,treeView:s,domain:l,onRowClicked:I=>{const{id:v}=I;d(v);const C=u.findIndex(h=>h.id===v);c(C);const g=p.find(h=>h.type==="form");f(g)}})]}):null},DashboardActionContext=React__default.default.createContext(null),DashboardActionProvider=e=>{const[n,t]=React.useState(!1),[o,r]=React.useState(!1),{children:a,dashboardRef:s,openAction:l}=e;return jsxRuntime.jsx(DashboardActionContext.Provider,{value:{isLoading:n,setIsLoading:t,dashboardRef:s,openAction:l,moveItemsEnabled:o,setMoveItemsEnabled:r},children:a})};function DashboardActionBar(){const{isLoading:e,dashboardRef:n,moveItemsEnabled:t,setMoveItemsEnabled:o}=React.useContext(DashboardActionContext),{t:r}=React.useContext(LocaleContext);return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.BorderOuterOutlined,{style:{color:t?"white":void 0}}),type:t?"primary":"default",tooltip:r("moveDashboard"),disabled:e,loading:!1,onClick:()=>{o(!t)}}),separator(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.SettingOutlined,{}),tooltip:r("configDashboard"),disabled:e,loading:!1,onClick:()=>{n==null||n.current.configDashboard()}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.ReloadOutlined,{}),tooltip:r("refresh"),disabled:e,loading:!1,onClick:()=>{n==null||n.current.refresh()}})]})}function separator(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}const DashboardActionView=e=>{const{dashboardData:n}=e,t=React.useRef(),o=React.useContext(TabManagerContext),{openShortcut:r}=o||{};return n?jsxRuntime.jsxs(DashboardActionProvider,{dashboardRef:t,openAction:a=>{r(a)},children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(DashboardActionBar,{})}),jsxRuntime.jsx(Dashboard$1,{ref:t,model:n.model,id:n.id,context:n==null?void 0:n.context,configAction:n==null?void 0:n.configAction})]}):null};function ActionView(e,n){const{domain:t,model:o,context:r,views:a,title:s,setCanWeClose:l,tabKey:c,initialView:u,formDefaultValues:d,formForcedValues:f={},res_id:p=!1,action_id:m,action_type:I,treeExpandable:v=!1,limit:C}=e,[g,h]=React.useState(),[x,y]=React.useState([]),[O,b]=React.useState(!0),E=p||void 0,[w,_]=React.useState(E),[S,k]=React.useState([]),[N,M]=React.useState(),[j,B]=React.useState([]),[$,L]=React.useState(),[D,U]=React.useState(0),[G,z]=React.useState(!1),[W,Z]=React.useState(!1),[V,H]=React.useState(),{t:P}=React.useContext(LocaleContext),A=React.useRef(),q=React.useRef(),K=React.useContext(TabManagerContext),{setCurrentView:X,setCurrentId:F,tabs:T,activeKey:Y,openAction:Q}=K||{};reactHotkeysHook.useHotkeys("ctrl+g,command+g",ie=>{ie.preventDefault(),ce()},[Y,T,g,N,j]);function te(ie){_(ie),F==null||F(ie)}function J(ie){h(ie),X==null||X(ie)}React.useImperativeHandle(n,()=>({canWeClose:re}));const ee=async()=>{b(!0);const ie=[];for(const le of a){const[me,ve]=le;let Ce;try{ve!=="dashboard"&&(Ce=await ConnectionProvider.getHandler().getView({model:o,type:ve,id:me,context:r}))}catch(Ie){console.error(`${o} - ${ve}\xA0- ${JSON.stringify(Ie,null,2)}`);continue}switch(ve){case"dashboard":{const Ie=a.find(Se=>{const[,se]=Se;return se==="form"});let _e;Ie&&(_e={action_id:m,action_type:I,name:s,res_id:r.active_id,res_model:o,view_id:Ie[0],view_type:Ie[1]}),ie.push({type:"dashboard",id:r.active_id,model:o,context:r,configAction:_e});break}case"form":{ie.push({...Ce});break}case"tree":{ie.push({...Ce,isExpandable:v});break}case"graph":{ie.push({...Ce});break}}}if(!u&&ie.find(le=>le.type==="tree")){const le=ie.find(me=>me.type==="tree");J(le)}else if(u){const le=ie.find(me=>u.id?me.type===u.type&&me.view_id===u.id:me.type===u.type);J(le)}else{const le=ie.find(me=>me.type==="form");J(le)}y(ie),b(!1)};l({tabKey:c,canWeClose:re}),React.useEffect(()=>{const ie=x.find(me=>me.type==="tree"),le=x.find(me=>u.id?me.type===u.type&&me.view_id===u.id:me.type===u.type);J(le||ie),p?F==null||F(E):(te(void 0),M(void 0)),ee()},[o,a,p]),React.useEffect(()=>{Y===c&&(F==null||F(w),X==null||X(g))},[T,Y]);async function re(){return g.type==="form"?await A.current.cancelUnsavedChanges():!0}async function ce(){Y===c&&(g.type==="form"&&!await A.current.cancelUnsavedChanges()||z(!0))}async function ae(ie){var Ce;Z(!0);const le=j.findIndex(Ie=>Ie.id===ie);let me;if(le===-1){try{me=(Ce=await ConnectionProvider.getHandler().readObjects({model:o,ids:[ie],context:r}))==null?void 0:Ce[0]}catch{}if(!me){Z(!1),z(!1),showDialog$7(P("idNotFound"));return}}else me=j[le];Z(!1),z(!1);const ve=a.find(Ie=>Ie[1]==="form");Q({domain:[],context:r,model:o,views:a,title:s,target:"current",initialView:{id:ve==null?void 0:ve[0],type:"form"},action_id:m,action_type:I,res_id:ie})}function pe(){return x.map(ie=>{switch(ie.type){case"form":return jsxRuntime.jsx(FormActionView,{formRef:A,currentId:w,visible:g.type===ie.type&&g.view_id===ie.view_id,formView:ie,model:o,context:r,domain:t,defaultValues:d,forcedValues:f,results:j,setResults:B,setCurrentItemIndex:M},`${ie.type}-${ie.view_id}`);case"tree":return jsxRuntime.jsx(TreeActionView,{visible:g.type===ie.type&&g.view_id===ie.view_id,limit:C,model:o,context:r,domain:t,formView:x.find(le=>le.type==="form"),treeView:ie,searchTreeRef:q,searchTreeNameSearch:V,availableViews:x,results:j,setCurrentItemIndex:M,setCurrentId:te,setCurrentView:J},`${ie.type}-${ie.view_id}`);case"graph":return jsxRuntime.jsx(GraphActionView,{visible:g.type===ie.type&&g.view_id===ie.view_id,viewData:ie,model:o,context:r,domain:t,treeView:x.find(le=>le.type==="tree"),formView:x.find(le=>le.type==="form")},`${ie.type}-${ie.view_id}`);case"dashboard":return jsxRuntime.jsx(DashboardActionView,{dashboardData:ie},`${ie.type}-${ie.view_id}`)}})}function he(){if(w===void 0&&g.type==="form")A.current.clearAndReload();else{te(void 0);const ie=x.find(le=>le.type==="form");J(ie)}}return O?jsxRuntime.jsx(antd.Spin,{}):g?jsxRuntime.jsxs(ActionViewProvider,{title:s,currentView:g,setCurrentView:J,availableViews:x,formRef:A,searchTreeRef:q,onNewClicked:he,currentId:w,setCurrentId:te,setCurrentItemIndex:M,currentItemIndex:N,results:j,setResults:B,currentModel:o,sorter:$,setSorter:L,totalItems:D,setTotalItems:U,selectedRowItems:S,setSelectedRowItems:k,setSearchTreeNameSearch:H,searchTreeNameSearch:V,goToResourceId:ae,limit:C,children:[pe(),jsxRuntime.jsx(GoToResourceModal,{visible:G,onIdSubmitted:ae,isSearching:W,onCancel:()=>{z(!1)}})]}):null}const ActionView$1=React.forwardRef(ActionView);var getRandomValues,rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}const REGEX=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate(e){return typeof e=="string"&®EX.test(e)}for(var byteToHex=[],i=0;i<256;++i)byteToHex.push((i+256).toString(16).substr(1));function stringify(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=(byteToHex[e[n+0]]+byteToHex[e[n+1]]+byteToHex[e[n+2]]+byteToHex[e[n+3]]+"-"+byteToHex[e[n+4]]+byteToHex[e[n+5]]+"-"+byteToHex[e[n+6]]+byteToHex[e[n+7]]+"-"+byteToHex[e[n+8]]+byteToHex[e[n+9]]+"-"+byteToHex[e[n+10]]+byteToHex[e[n+11]]+byteToHex[e[n+12]]+byteToHex[e[n+13]]+byteToHex[e[n+14]]+byteToHex[e[n+15]]).toLowerCase();if(!validate(t))throw TypeError("Stringified UUID is invalid");return t}function v4(e,n,t){e=e||{};var o=e.random||(e.rng||rng)();if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,n){t=t||0;for(var r=0;r<16;++r)n[t+r]=o[r];return n}return stringify(o)}async function fetchAction({actionId:e,rootContext:n={},globalValues:t={}}){const o="ir.actions.act_window",r=`${o},${e}`,a=await ConnectionProvider.getHandler().getActionData({action:r,context:n}),s=ooui.parseContext({context:a.context,values:t,fields:{}}),l=a.domain?await ConnectionProvider.getHandler().evalDomain({domain:a.domain,values:t,context:{...n,...s}}):[],{res_model:c,views:u,name:d,limit:f,view_type:p}=a,m=p==="tree",I=[];for(const h of u){const[x,y]=h;if(x)I.push(h);else{const{view_id:O}=await ConnectionProvider.getHandler().getView({model:c,type:y,id:x,context:{...n,...s}});I.push([O,y])}}const[v,C]=I[0],g={id:v,type:C};return{title:d,actionId:e,actionType:o,key:v4(),views:u,model:c,context:{...n,...s},domain:l,initialView:g,limit:f,treeExpandable:m}}const styles$1="",styles="",ResponsiveReactGridLayout=reactGridLayout.WidthProvider(reactGridLayout.Responsive),DashboardGrid=e=>{const{children:n=[],onPositionItemsChanged:t}=e,o=React__default.default.Children.map(n,r=>{const{parms:a,id:s}=r.props;return jsxRuntime.jsx("div",{"data-grid":a,children:r},s)});return jsxRuntime.jsx(ResponsiveReactGridLayout,{className:"layout",cols:{lg:12,md:10,sm:6,xs:4,xxs:2},draggableHandle:".draggable-head",rowHeight:30,onLayoutChange:r=>{t==null||t(r.map(a=>({id:parseInt(a.i.replace(".$",""),10),x:a.x,y:a.y,w:a.w,h:a.h})))},children:o})},{Text}=antd.Typography,DashboardGridItem=e=>{const{id:n,title:t,children:o,action:r,openAction:a}=e;return jsxRuntime.jsxs("div",{className:"shadow-md rounded",style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",border:"1px solid #eee",backgroundColor:"white"},children:[jsxRuntime.jsxs(antd.Row,{className:"bg-blueGray-100",align:"middle",style:{borderBottom:"1px solid #ddd"},wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"auto",className:"draggable-head",style:{fontWeight:"bold",padding:"0.5rem",cursor:"grab",overflow:"hidden"},children:jsxRuntime.jsx(Text,{ellipsis:!0,children:t})}),r&&jsxRuntime.jsx(antd.Col,{flex:"25px",style:{padding:"0.5rem"},children:jsxRuntime.jsx(antd.Row,{justify:"end",align:"middle",children:jsxRuntime.jsx(Icon.ExportOutlined,{style:{cursor:"pointer"},onClick:()=>{a==null||a(r)}})})})]}),o]})},DEFAULT_SEARCH_LIMIT=80;function DashboardTree(e){const{action:n,model:t,view_id:o,onRowClicked:r,domain:a=[],visible:s=!0,parentContext:l={}}=e,[c,u]=React.useState(!1),[d,f]=React.useState(!1),[p,m]=React.useState(),[I,v]=React.useState(),[C,g]=React.useState(),[h,x]=React.useState(1),[y,O]=React.useState(0),b=React.useRef(DEFAULT_SEARCH_LIMIT),E=React.useRef([]),[w,_]=React.useState(0),[S,k]=React.useState([]),[N,M]=React.useState(void 0),[j,B]=React.useState(),[$,L]=React.useState(),[D,U]=React.useState(),[G,z]=React.useState(!1),W=React.useRef([]),Z=F=>{z(!0),x(F),O((F-1)*b.current)},V=async()=>{const F=W.current.length>0?W.current:a,T=mergeParams(E.current,F),{colors:Y}=getTree(I),{totalItems:Q,results:te,attrsEvaluated:J}=await ConnectionProvider.getHandler().searchForTree({params:T,limit:b.current,offset:y,model:p,fields:I.fields,context:l,attrs:Y&&{colors:Y}}),ee=await Q;_(ee),M(getColorMap(J));const re=sortResults({resultsToSort:te,sorter:j,fields:{...I.fields,...C.fields}});k(re)},H=async()=>{try{z(!0),await V()}catch(F){L(JSON.stringify(F))}finally{z(!1)}};React.useEffect(()=>{!d||s&&H()},[h,y,d,s]);const P=async F=>{f(!1),u(!0),U(void 0);try{F==="action"?await A():await q(),f(!0)}catch(T){U(T)}finally{u(!1)}},A=async()=>{const F=await ConnectionProvider.getHandler().getViewsForAction({action:n,context:l});W.current=F.domain,g(F.views.get("form")),v(F.views.get("tree")),m(F.model),b.current=F.limit},q=async()=>{m(t);const F=await ConnectionProvider.getHandler().getView({model:t,type:"form",context:l});g(F);const T=await ConnectionProvider.getHandler().getView({model:t,type:"tree",id:o,context:l});v(T)};React.useEffect(()=>{n?P("action"):t&&P("model")},[n,t]);const K=F=>{const{id:T}=F;r({id:T,model:p,treeView:I})},X=()=>!I||!C?null:jsxRuntime.jsxs("div",{style:{overflowY:"scroll"},children:[$&&jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:$,type:"error",banner:!0}),jsxRuntime.jsx(Tree,{showPagination:!1,total:w,limit:b.current,page:h,treeView:I,results:S,onRequestPageChange:Z,loading:G,onRowClicked:K,colorsForResults:N,sorter:j,onChangeSort:F=>{B==null||B(F);const T=sortResults({resultsToSort:S,sorter:F,fields:{...I.fields,...C.fields}});k(T)}})]});return D?jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:D,type:"error",banner:!0}):c?jsxRuntime.jsx(antd.Spin,{style:{padding:"2rem"}}):X()}const DashboardForm=e=>{const{model:n}=e,[t,o]=React.useState();React.useEffect(()=>{r()},[n]);async function r(){const a=await ConnectionProvider.getHandler().search({params:[],model:n,limit:1});a.length>0&&o(a[0].id)}return jsxRuntime.jsx("div",{style:{padding:"0.5rem",overflowY:"scroll"},children:jsxRuntime.jsx(Form$1,{...e,model:n,id:t,readOnly:!0})})},itemsField="line_ids";function Dashboard(e,n){const{model:t,context:o={},id:r,configAction:a}=e,[s,l]=React.useState([]),[c,u]=React.useState(!1),[d,f]=React.useState(),{setIsLoading:p,openAction:m,moveItemsEnabled:I}=React.useContext(DashboardActionContext),v=React.useRef(),C=React.useRef();React.useEffect(()=>{g()},[t,r,o]),React.useImperativeHandle(n,()=>({refresh:()=>{g()},configDashboard:E}));async function g(){u(!0),p(!0),f(void 0);try{const w=await h(),_=await y(w),S=w.fields[itemsField].relation,k=_[itemsField].items;C.current=w.fields;const N=await x({items:k,model:S,context:o}),M=await O(N);l(M),u(!1),p(!1)}catch(w){f(JSON.stringify(w))}}async function h(){return await ConnectionProvider.getHandler().getView({model:t,type:"form",context:o})}async function x({items:w,model:_,context:S}){return v.current=(await ConnectionProvider.getHandler().getView({model:_,type:"form",context:S})).fields,await readObjectValues({treeFields:v.current,formFields:v.current,model:_,items:w,context:S})}async function y(w){return(await ConnectionProvider.getHandler().readObjects({model:t,ids:[r],fields:w.fields,context:o}))[0]}async function O(w){const _=[];for(const S of w){const{values:k}=S;if(k.action_id&&k.action_id.length>0){const N=parseInt(k.action_id[0],10),M=await fetchAction({actionId:N,rootContext:o});_.push({...S,actionData:M})}}return _}async function b(w){if(!I)return;const _=w.filter(M=>{const j=s.find($=>$.id===M.id);if(!j)return!1;if(!j.position)return!0;const B={...JSON.parse(j.position.replace(/'/g,'"')),id:j.id};return JSON.stringify(M)!==JSON.stringify(B)});if(_.length===0)return;const k=s.filter(M=>_.map(j=>j.id).includes(M.id)).map(M=>{const j={..._.find(B=>B.id===M.id)};return delete j.id,{...M},{...M,operation:"pendingUpdate",values:{...M.values,position:JSON.stringify(j).replace(/"/g,"'")}}}),N={fields:v.current,items:k};await ConnectionProvider.getHandler().update({model:t,id:r,values:{[itemsField]:N},fields:C.current,context:o})}async function E(){m(a)}return d?jsxRuntime.jsx(antd.Alert,{className:"mt-10 mb-20",message:d,type:"error",banner:!0}):c?jsxRuntime.jsx(Icon.LoadingOutlined,{}):jsxRuntime.jsx(DashboardGrid,{onPositionItemsChanged:b,children:s.map((w,_)=>{const{actionData:S,values:k}=w,{position:N,id:M}=k,{actionId:j,actionType:B,key:$,title:L,views:D,model:U,context:G,domain:z,initialView:W,limit:Z}=S;let V={};try{V=JSON.parse(N.replace(/'/g,'"'))}catch{V={x:_*2,y:0,w:2,h:3}}let H=null;(W==null?void 0:W.type)==="graph"?H=jsxRuntime.jsx(Graph,{view_id:D.filter(q=>q[1]==="graph")[0][0],model:U,context:G,domain:z,limit:Z}):(W==null?void 0:W.type)==="form"?H=jsxRuntime.jsx(DashboardForm,{model:U,actionDomain:z}):(W==null?void 0:W.type)==="tree"?H=jsxRuntime.jsx(DashboardTree,{model:U,domain:z,view_id:D.filter(q=>q[1]==="tree")[0][0],onRowClicked:q=>{const K=D.find(X=>{const[,F]=X;return F==="form"});if(K){const[X,F]=K,{actionId:T,actionType:Y,title:Q,model:te}=S,J={action_id:T,action_type:Y,name:Q,res_id:q.id,res_model:te,view_id:X,view_type:F};m(J)}}}):W!==void 0&&(H=jsxRuntime.jsx(ActionView$1,{action_id:j,action_type:B,tabKey:$,title:L,views:D,model:U,context:G,domain:z,setCanWeClose:()=>{},initialView:W,limit:Z}));let P;const A=D.find(q=>{const[,K]=q;return K==="tree"});if(A){const[q,K]=A,{actionId:X,actionType:F,title:T,model:Y}=S;P={action_id:X,action_type:F,name:T,res_id:!1,res_model:Y,view_id:q,view_type:K}}return jsxRuntime.jsx(DashboardGridItem,{id:M,title:L,parms:V,action:P,openAction:m,children:H},M)})})}const Dashboard$1=React.forwardRef(Dashboard),MultiCheckbox=e=>{const{ooui:n}=e;return jsxRuntime.jsx(Field$1,{type:"array",...e,children:jsxRuntime.jsx(MultiCheckboxInput,{ooui:n})})},MultiCheckboxInput=e=>{const{value:n,ooui:t,onChange:o}=e,{items:r=[]}=n||{},a=r.filter(w=>w.operation!=="pendingRemove").map(w=>w.id),[s,l]=React.useState([]),[c,u]=React.useState(),[d,f]=React.useState(!1),{relation:p,context:m,readOnly:I,field:v,columns:C}=t,g=React.useContext(FormContext$1),{getContext:h}=g||{};useDeepCompareEffect__default.default(()=>{y()},[r]);const x=w=>{o==null||o({items:w})};async function y(){f(!0);let w=[];if(t.domain){const _=await ConnectionProvider.getHandler().evalDomain({domain:t.domain,values:transformPlainMany2Ones({fields:g==null?void 0:g.getFields(),values:g.getPlainValues()}),context:g.getContext()});w=[...w,..._]}try{const S=(await ConnectionProvider.getHandler().search({model:p,params:w,fields:[v],context:{...h==null?void 0:h(),...m}})).map(k=>{const N=k[v];let M=N;return Array.isArray(N)&&(M=N[1]),{label:M,value:k.id}});l(S)}catch(_){u(_)}finally{f(!1)}if(c)return jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:c,type:"error",banner:!0})}const O=()=>{E(s.map(w=>w.value))},b=()=>{E([])},E=w=>{const _=r.map(k=>w.includes(k.id)?k.operation=="pendingRemove"?{...k,operation:"original"}:k:{id:k.id,operation:"pendingRemove"}),S=_.map(k=>k.id);w.filter(k=>!S.includes(k)).map(k=>{_.push({id:k,operation:"pendingLink"})}),x(_)};return d&&s.length===0?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsxs("div",{className:"flex flex-row",children:[jsxRuntime.jsx(antd.Checkbox.Group,{value:s.length?a:[],disabled:I,onChange:E,style:{width:"100%"},children:jsxRuntime.jsx(antd.Row,{children:s.map(w=>jsxRuntime.jsx(antd.Col,{span:Math.floor(24/C),children:jsxRuntime.jsx(antd.Checkbox,{value:w.value,children:w.label})}))})}),!I&&jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{onClick:O,disabled:a.length==s.length,children:"Check all"}),jsxRuntime.jsx(antd.Button,{onClick:b,disabled:a.length===0,children:"Uncheck all"})]})]})})},Radio=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,type:"any",...e,children:jsxRuntime.jsx(SelectionInput,{...e})})},SelectionInput=e=>{const{ooui:n,onChange:t,value:o}=e,{selectionValues:r,readOnly:a,direction:s}=n,l=Array.from(r.entries()),c=l&&l.length&&l.map(u=>{const[d,f]=u;return jsxRuntime.jsx(antd.Radio,{value:d,children:f},d)});return jsxRuntime.jsx(antd.Radio.Group,{disabled:a,onChange:t,value:o,children:jsxRuntime.jsx(antd.Space,{direction:s,children:c})})},Switch=e=>{const{ooui:n}=e,{id:t,readOnly:o,required:r}=n;return jsxRuntime.jsx(Field$1,{...e,valuePropName:"checked",children:jsxRuntime.jsx(SwitchInput,{id:t,readOnly:o,required:r})})},SwitchInput=e=>{const{required:n,readOnly:t,...o}=e;return jsxRuntime.jsx("div",{className:"flex flex-row",children:jsxRuntime.jsx(antd.Switch,{disabled:t,...o})})},Steps=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,type:"any",...e,children:jsxRuntime.jsx(StepsInput,{...e})})},StepsInput=e=>{const{ooui:n,value:t}=e,{selectionValues:o,errorField:r}=n,a=React.useContext(FormContext$1),s=Array.from(o.entries()),l=s.map(d=>d[0]).indexOf(t);let c="process",u="";return r&&(u=a.getFieldValue(r),u&&(c="error")),jsxRuntime.jsx(antd.Steps,{current:l,status:c,children:s.map((d,f)=>jsxRuntime.jsx(antd.Steps.Step,{title:d[1],description:f===l&&c==="error"?u:null}))})},CodeEditor=e=>{const{ooui:n}=e,{lang:t,height:o}=n,r=React.useContext(FormContext$1),{elementHasLostFocus:a}=r||{},s=l=>{l.onDidBlurEditorWidget(a)};return jsxRuntime.jsx(Field$1,{...e,children:jsxRuntime.jsx(Editor__default.default,{defaultLanguage:t||"",height:o||300,onMount:s})})},{Content}=antd.Layout,{Title}=antd.Typography;function Welcome(){const{t:e}=React.useContext(LocaleContext);return jsxRuntime.jsx(Content,{className:"m-5 select-none",children:jsxRuntime.jsx(Title,{level:5,children:e("welcome")})})}function RootView(e,n){const{children:t,globalValues:o={},rootContext:r={},lang:a}=e,[s,l]=React.useState("welcome"),[c,u]=React.useState([{title:tForLang("welcome",a),key:"welcome",closable:!0,content:jsxRuntime.jsx(Welcome,{})}]),d=React.useRef(new Map),f=React.useRef();React.useImperativeHandle(n,()=>({retrieveAndOpenAction:I,openShortcut:g}));function p(y){if(y===s){const O=c.findIndex(b=>b.key===y);c[O-1]&&l(c[O-1].key),c[O+1]&&l(c[O+1].key)}u(c.filter(O=>O.key!==y)),d.current.delete(y)}function m({tabKey:y,canWeClose:O}){d.current.set(y,O)}async function I({action:y,values:O,forced_values:b,initialViewType:E,res_id:w,domain:_=[]}){const S=await ConnectionProvider.getHandler().getActionData({action:y,context:r});if(S.type==="ir.actions.wizard"){showDialog$8("Action type not supported");return}const[k,N]=y.split(","),M=parseInt(N),j=ooui.parseContext({context:S.context,values:o,fields:{}}),B=S.domain?await ConnectionProvider.getHandler().evalDomain({domain:S.domain,values:o,context:{...r,...j}}):[],{res_model:$,views:L,name:D,target:U,view_type:G,limit:z}=S,W=G==="tree",Z=[];for(const H of L){const[P,A]=H;if(P)Z.push(H);else if(A==="dashboard")Z.push([void 0,"dashboard"]);else{const{view_id:q}=await ConnectionProvider.getHandler().getView({model:$,type:A,id:P,context:{...r,...j}});Z.push([q,A])}}let V;if(E){const[H,P]=Z.find(([A,q])=>q===E);V={id:H,type:P}}else{const[H,P]=Z[0];V={id:H,type:P}}x({domain:[...B,..._],context:{...r,...j},model:$,views:Z,title:D,target:U,initialView:V,action_type:k,action_id:M,values:O,forced_values:b,res_id:w,treeExpandable:W,limit:z})}function v({title:y,content:O,key:b,action:E}){let w=[...c];c.length===1&&c[0].key==="welcome"&&(w=[...c.filter(_=>_.key!=="welcome")]),u([...w,{title:y,key:b,closable:!0,content:O,action:E}]),l(b)}async function C({relateData:y,fields:O,values:b,action_id:E,action_type:w}){const{res_model:_,context:S,domain:k,views:N,target:M,string:j,limit:B}=y,[$,L]=N[0],D={id:$,type:L},U=ooui.parseContext({context:S,values:{...b,...o},fields:O}),G=k?await ConnectionProvider.getHandler().evalDomain({domain:k,values:transformPlainMany2Ones({fields:O,values:{...b,...o}}),context:{...r,...U}}):[];x({model:_,target:M,views:N,context:{...r,...U},domain:G,title:j,initialView:D,action_id:E,action_type:w,limit:B})}async function g(y){const{action_id:O,action_type:b,res_id:E,view_id:w}=y,_=`${b},${O}`,S=await ConnectionProvider.getHandler().getActionData({action:_,context:r}),k=ooui.parseContext({context:S.context,values:o,fields:{}}),N=S.domain?await ConnectionProvider.getHandler().evalDomain({domain:S.domain,values:o,context:{...r,...k}}):[],{res_model:M,views:j,name:B,target:$,view_type:L,limit:D}=S,U=L==="tree",G=[];for(const V of j){const[H,P]=V;if(H)G.push(V);else if(P==="dashboard")G.push([void 0,"dashboard"]);else{const{view_id:A}=await ConnectionProvider.getHandler().getView({model:M,type:P,id:H,context:{...r,...k}});G.push([A,P])}}let z,W;if(w==null){const V=G.find(H=>H[0]===void 0);z=void 0,W=V[1]}else[z,W]=G.find(V=>V[0]===void 0?!1:V[0]===w);const Z={id:z,type:W};x({domain:N,context:{...r,...k},model:M,views:G,title:B,target:$,initialView:Z,action_id:O,action_type:b,res_id:E,treeExpandable:U,limit:D})}async function h({model:y,values:O,forced_values:b,initialViewType:E,res_id:w,domain:_}){const S=await ConnectionProvider.getHandler().getActionStringForModel(y);await I({action:S,values:O,forced_values:b,initialViewType:E,res_id:w,domain:_})}async function x({domain:y,context:O,model:b,views:E,title:w,target:_,initialView:S,action_id:k,action_type:N,res_id:M,values:j,forced_values:B,treeExpandable:$=!1,limit:L}){const D=v4();if(_!=="current"){const U=await ConnectionProvider.getHandler().getView({model:b,type:"form",id:S.type==="form"?S.id:void 0,context:{...r,...O}});f.current.openActionModal({domain:y,model:b,formView:U,context:{...r,...O},actionData:{action_id:k,action_type:N,res_id:M,view_id:U.view_id}})}else v({title:w,action:{id:k,type:N},content:jsxRuntime.jsx(ActionView$1,{action_id:k,action_type:N,tabKey:D,title:w,views:E,model:b,context:{...r,...O},domain:y,setCanWeClose:m,initialView:S,res_id:M,formDefaultValues:j,formForcedValues:B,treeExpandable:$,limit:L}),key:D})}return jsxRuntime.jsx(LocaleContextProvider,{lang:a,children:jsxRuntime.jsx(TabManagerProvider,{openShortcut:g,openAction:x,openRelate:C,openDefaultActionForModel:h,tabs:c,activeKey:s,onRemoveTab:async y=>{const O=d.current.get(y);(await(O==null?void 0:O())||s==="welcome")&&p(y)},onChangeTab:y=>{l(y)},children:jsxRuntime.jsx(ContentRootProvider$1,{ref:f,globalValues:o,children:t})})})}const RootView$1=React.forwardRef(RootView);function Tab(e){const{label:n,onClose:t,tabKey:o,isActive:r,onSelected:a}=e,s=r?"#ffffff":"#F1F5F9";return jsxRuntime.jsxs("div",{onClick:()=>{!r&&a(o)},style:{cursor:"pointer",height:40,paddingTop:7,paddingBottom:5,paddingLeft:10,paddingRight:10,backgroundColor:s,display:"inline-flex",flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",borderTopLeftRadius:8,borderTopRightRadius:8,marginLeft:2},children:[jsxRuntime.jsx("div",{style:{color:r?"#001529":"#ADB0B3",userSelect:"none",height:40,display:"flex",justifyContent:"center",alignItems:"center",paddingLeft:5,paddingRight:5,marginBottom:2},children:n}),jsxRuntime.jsx("div",{style:{paddingLeft:5,height:40,display:"flex",justifyContent:"center",alignItems:"center"},children:jsxRuntime.jsx(Icon.CloseOutlined,{style:{color:r?"#001529":"#ADB0B3"},onClick:l=>{l.stopPropagation(),t(o)}})})]})}function TabSelector(){const e=React.useContext(TabManagerContext),{activeKey:n,tabs:t,onRemoveTab:o,onChangeTab:r}=e||{};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map(a=>jsxRuntime.jsx(Tab,{tabKey:a.key,label:a.title,onClose:o,isActive:n===a.key,onSelected:r},a.key))})}function TabContent(e){const{tab:n}=e,t=React.useContext(TabManagerContext),{activeKey:o}=t||{},r={display:"none"};return jsxRuntime.jsx("div",{style:n.key!==o?r:void 0,children:n.content})}const TabContent$1=React__default.default.memo(TabContent,()=>!0);function CurrentTabContent(){const e=React.useContext(TabManagerContext),{tabs:n}=e||{},t=(n==null?void 0:n.map(o=>jsxRuntime.jsx(TabContent$1,{tab:o},o.key)))||null;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t})}const FavouriteButton=e=>{const{onRetrieveShortcuts:n,onCheckIsFavourite:t,onAddFavourite:o,onRemoveFavourite:r}=e,[a,s]=React.useState(!1),[l,c]=React.useState(!1),[u,d]=React.useState([]),[f,p]=React.useState(!0),[m,I]=React.useState(),{t:v}=React.useContext(LocaleContext),C=React.useContext(TabManagerContext),{openShortcut:g,tabs:h,activeKey:x,currentView:y,currentId:O,openDefaultActionForModel:b}=C||{};React.useEffect(()=>{E()},[]),React.useEffect(()=>{S()},[h,x,y,O]);async function E(){try{p(!0);const B=await n();d(B)}catch(B){showDialog$8(B)}finally{p(!1)}}function w(B){const{key:$}=B,L=u.find(D=>D.id===Number($));(L==null?void 0:L.action_type)!=="ir.actions.wizard"&&(L&&g(L),c(!1))}function _(B){B&&E(),c(B)}async function S(){if(!y)return;const B=h.find(z=>z.key===x),{id:$,type:L}=(B==null?void 0:B.action)||{};if(!$||!L){s(!1);return}const D=y.view_id;let U=!1;y.type==="form"&&(U=O||!1);const G=await t({action_id:$,action_type:L,view_id:D,res_id:U});G!==!1&&I(G),s(G!==!1)}async function k(){c(!1),b==null||b({model:"ir.ui.view_sc"})}const N=jsxRuntime.jsxs(antd.Menu,{onClick:w,children:[jsxRuntime.jsxs("div",{style:{width:300,padding:5,display:"flex"},children:[jsxRuntime.jsx("div",{style:{paddingLeft:15,color:"#ccc"},children:v("favorites").toUpperCase()}),jsxRuntime.jsx("div",{style:{flexGrow:1,paddingLeft:10},children:jsxRuntime.jsx(antd.Tooltip,{title:v("edit_favorites"),children:jsxRuntime.jsx(Icon.EditOutlined,{style:{color:"#1890FF",cursor:"pointer"},onClick:k})})})]}),jsxRuntime.jsx(antd.Menu.Divider,{}),f?jsxRuntime.jsx(antd.Spin,{style:{padding:"1rem"}}):u.length>0?jsxRuntime.jsx(jsxRuntime.Fragment,{children:u.map(B=>jsxRuntime.jsx(antd.Menu.Item,{children:jsxRuntime.jsx(M,{title:B.name,type:B.view_type})},B.id))}):jsxRuntime.jsx("div",{style:{width:300,padding:5,paddingLeft:15},children:v("no_favorites")})]});function M({title:B,type:$}){const L=$==="tree"?jsxRuntime.jsx(Icon.TableOutlined,{}):jsxRuntime.jsx(Icon.FormOutlined,{});return jsxRuntime.jsxs(antd.Row,{wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"none",style:{paddingRight:20},children:L}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:B})]})}async function j(){if(a&&m)await r(m);else{if(!y)return;const B=h.find(G=>G.key===x),{id:$,type:L}=(B==null?void 0:B.action)||{},D=y.view_id;let U=!1;if(!$||!L){s(!1);return}y.type==="form"&&(U=O||!1),await o({action_id:$,action_type:L,view_id:D,res_id:U})}await E(),s(!a)}return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Button,{type:a?"primary":"default",icon:a?jsxRuntime.jsx(Icon.StarFilled,{style:{color:"white"}}):jsxRuntime.jsx(Icon.StarOutlined,{}),style:{width:50},onClick:j}),jsxRuntime.jsx(antd.Dropdown,{overlay:N,onVisibleChange:_,visible:l,children:jsxRuntime.jsx(antd.Button,{style:{width:25},icon:jsxRuntime.jsx(Icon.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:B=>B.preventDefault()})})]})};exports.ActionBar=FormActionBar,exports.Binary=Binary,exports.Boolean=Boolean$1,exports.Button=Button,exports.ButtonGroup=ButtonGroup,exports.Char=Char,exports.CodeEditor=CodeEditor,exports.ConnectionProvider=ConnectionProvider,exports.ContentRootProvider=ContentRootProvider$1,exports.CurrentTabContent=CurrentTabContent,exports.Dashboard=Dashboard$1,exports.DashboardGrid=DashboardGrid,exports.DashboardGridItem=DashboardGridItem,exports.Date=Date$1,exports.DateTime=DateTime,exports.Email=Email,exports.FavouriteButton=FavouriteButton,exports.Float=Float,exports.FloatTime=FloatTime,exports.Form=Form$1,exports.FormModal=FormModal,exports.GraphIndicator=GraphIndicator,exports.Group=Group,exports.Image=Image,exports.Integer=Integer,exports.Label=Label,exports.Many2one=Many2one,exports.MultiCheckbox=MultiCheckbox,exports.Notebook=Notebook,exports.One2many=One2many,exports.ProgressBar=ProgressBar,exports.Radio=Radio,exports.Reference=Reference,exports.RootView=RootView$1,exports.SearchFilter=SearchFilter,exports.SearchModal=SearchModal,exports.SearchTree=SearchTree$1,exports.Selection=Selection,exports.Separator=Separator,exports.Steps=Steps,exports.Switch=Switch,exports.TabSelector=TabSelector,exports.Tags=Tags,exports.Text=Text$2,exports.Tree=Tree,exports.Url=Url,exports.iconMapper=iconMapper,exports.showConfirmDialog=showDialog$9,Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
129
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function u(h,x){if(!!h){if(typeof h=="string")return d(h,x);var y=Object.prototype.toString.call(h).slice(8,-1);if(y==="Object"&&h.constructor&&(y=h.constructor.name),y==="Map"||y==="Set")return Array.from(h);if(y==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(y))return d(h,x)}}function d(h,x){(x==null||x>h.length)&&(x=h.length);for(var y=0,O=new Array(x);y<x;y++)O[y]=h[y];return O}function f(h,x){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(h)))){var y=[],O=!0,b=!1,E=void 0;try{for(var w=h[Symbol.iterator](),_;!(O=(_=w.next()).done)&&(y.push(_.value),!(x&&y.length===x));O=!0);}catch(S){b=!0,E=S}finally{try{!O&&w.return!=null&&w.return()}finally{if(b)throw E}}return y}}function p(h){if(Array.isArray(h))return h}var m={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_port:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1,allow_fragments:!0,allow_query_components:!0,validate_length:!0},I=/^\[([^\]]+)\](?::([0-9]+))?$/;function v(h){return Object.prototype.toString.call(h)==="[object RegExp]"}function C(h,x){for(var y=0;y<x.length;y++){var O=x[y];if(h===O||v(O)&&O.test(h))return!0}return!1}function g(h,x){if((0,t.default)(h),!h||/[\s<>]/.test(h)||h.indexOf("mailto:")===0||(x=(0,a.default)(x,m),x.validate_length&&h.length>=2083)||!x.allow_fragments&&h.includes("#")||!x.allow_query_components&&(h.includes("?")||h.includes("&")))return!1;var y,O,b,E,w,_,S,k;if(S=h.split("#"),h=S.shift(),S=h.split("?"),h=S.shift(),S=h.split("://"),S.length>1){if(y=S.shift().toLowerCase(),x.require_valid_protocol&&x.protocols.indexOf(y)===-1)return!1}else{if(x.require_protocol)return!1;if(h.substr(0,2)==="//"){if(!x.allow_protocol_relative_urls)return!1;S[0]=h.substr(2)}}if(h=S.join("://"),h==="")return!1;if(S=h.split("/"),h=S.shift(),h===""&&!x.require_host)return!0;if(S=h.split("@"),S.length>1){if(x.disallow_auth||S[0]===""||(O=S.shift(),O.indexOf(":")>=0&&O.split(":").length>2))return!1;var N=O.split(":"),M=l(N,2),j=M[0],B=M[1];if(j===""&&B==="")return!1}E=S.join("@"),_=null,k=null;var $=E.match(I);if($?(b="",k=$[1],_=$[2]||null):(S=E.split(":"),b=S.shift(),S.length&&(_=S.join(":"))),_!==null&&_.length>0){if(w=parseInt(_,10),!/^[0-9]+$/.test(_)||w<=0||w>65535)return!1}else if(x.require_port)return!1;return x.host_whitelist?C(b,x.host_whitelist):!(!(0,r.default)(b)&&!(0,o.default)(b,x)&&(!k||!(0,r.default)(k,6))||(b=b||k,x.host_blacklist&&C(b,x.host_blacklist)))}e.exports=n.default,e.exports.default=n.default}(isURL$1,isURL$1.exports);const isURL=getDefaultExportFromCjs(isURL$1.exports),LinkInput=e=>{const{ooui:n,value:t,onChange:o,valueValidator:r,linkPrefix:a=""}=e,{id:s,readOnly:l,required:c}=n,u=c&&!l?Config.requiredClass:void 0,d=React.useContext(FormContext$1),{elementHasLostFocus:f}=d||{},[p,m]=React.useState(!1),[I,v]=React.useState(!1);React.useEffect(()=>{l&&!p&&v(!1),!t&&!l&&(m(!0),v(!0))},[p,l]);const C=g=>{o==null||o(g.target.value)};return jsxRuntime.jsxs(antd.Row,{gutter:8,wrap:!1,align:"middle",children:[l?null:jsxRuntime.jsx(antd.Col,{flex:"32px",children:p?jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(Icon.CheckOutlined,{}),onClick:()=>{r(t)&&(m(!1),v(!1))},tabIndex:-1}):jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(Icon.EditOutlined,{}),onClick:()=>{m(!0),v(!0)},tabIndex:-1})}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:I?jsxRuntime.jsx(antd.Input,{id:s,onChange:C,className:u,value:t,onBlur:()=>{r(t)&&(m(!1),v(!1),f==null||f())}}):jsxRuntime.jsx("a",{href:`${a}${t}`,style:{color:"#1890ff",paddingRight:15},target:"_blank",children:t})})]})},Url=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,...e,children:jsxRuntime.jsx(LinkInput,{ooui:n,valueValidator:o=>o?isURL(o):!1})})};var isEmail$1={exports:{}},isByteLength={exports:{}};(function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=a;var t=o(assertString.exports);function o(s){return s&&s.__esModule?s:{default:s}}function r(s){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?r=function(c){return typeof c}:r=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},r(s)}function a(s,l){(0,t.default)(s);var c,u;r(l)==="object"?(c=l.min||0,u=l.max):(c=arguments[1],u=arguments[2]);var d=encodeURI(s).split(/%..|./).length-1;return d>=c&&(typeof u>"u"||d<=u)}e.exports=n.default,e.exports.default=n.default})(isByteLength,isByteLength.exports),function(e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=g;var t=l(assertString.exports),o=l(merge.exports),r=l(isByteLength.exports),a=l(isFQDN.exports),s=l(isIP.exports);function l(h){return h&&h.__esModule?h:{default:h}}var c={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1,host_blacklist:[]},u=/^([^\x00-\x1F\x7F-\x9F\cX]+)</i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,f=/^[a-z\d]+$/,p=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,m=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,I=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,v=254;function C(h){var x=h.replace(/^"(.+)"$/,"$1");if(!x.trim())return!1;var y=/[\.";<>]/.test(x);if(y){if(x===h)return!1;var O=x.split('"').length===x.split('\\"').length;if(!O)return!1}return!0}function g(h,x){if((0,t.default)(h),x=(0,o.default)(x,c),x.require_display_name||x.allow_display_name){var y=h.match(u);if(y){var O=y[1];if(h=h.replace(O,"").replace(/(^<|>$)/g,""),O.endsWith(" ")&&(O=O.substr(0,O.length-1)),!C(O))return!1}else if(x.require_display_name)return!1}if(!x.ignore_max_length&&h.length>v)return!1;var b=h.split("@"),E=b.pop(),w=E.toLowerCase();if(x.host_blacklist.includes(w))return!1;var _=b.join("@");if(x.domain_specific_validation&&(w==="gmail.com"||w==="googlemail.com")){_=_.toLowerCase();var S=_.split("+")[0];if(!(0,r.default)(S.replace(/\./g,""),{min:6,max:30}))return!1;for(var k=S.split("."),N=0;N<k.length;N++)if(!f.test(k[N]))return!1}if(x.ignore_max_length===!1&&(!(0,r.default)(_,{max:64})||!(0,r.default)(E,{max:254})))return!1;if(!(0,a.default)(E,{require_tld:x.require_tld})){if(!x.allow_ip_domain)return!1;if(!(0,s.default)(E)){if(!E.startsWith("[")||!E.endsWith("]"))return!1;var M=E.substr(1,E.length-2);if(M.length===0||!(0,s.default)(M))return!1}}if(_[0]==='"')return _=_.slice(1,_.length-1),x.allow_utf8_local_part?I.test(_):p.test(_);for(var j=x.allow_utf8_local_part?m:d,B=_.split("."),$=0;$<B.length;$++)if(!j.test(B[$]))return!1;return!(x.blacklisted_chars&&_.search(new RegExp("[".concat(x.blacklisted_chars,"]+"),"g"))!==-1)}e.exports=n.default,e.exports.default=n.default}(isEmail$1,isEmail$1.exports);const isEmail=getDefaultExportFromCjs(isEmail$1.exports),Email=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,...e,children:jsxRuntime.jsx(LinkInput,{ooui:n,linkPrefix:"mailto:",valueValidator:o=>o?isEmail(o):!1})})},GoToResourceModal=e=>{const{visible:n,onIdSubmitted:t,onCancel:o,isSearching:r}=e,{t:a}=React.useContext(LocaleContext);function s(l){t(l.id)}return jsxRuntime.jsx(antd.Modal,{title:a("goToResourceId"),centered:!0,visible:n,footer:null,destroyOnClose:!0,onCancel:o,maskClosable:!1,children:jsxRuntime.jsxs(antd.Form,{layout:"vertical",onFinish:s,autoComplete:"off",children:[jsxRuntime.jsx(antd.Form.Item,{name:"id",label:a("searchId"),rules:[{required:!0,type:"number"}],children:jsxRuntime.jsx(antd.InputNumber,{style:{width:"100%"},autoFocus:!0})}),jsxRuntime.jsx(antd.Row,{align:"middle",justify:"end",children:jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{icon:jsxRuntime.jsx(Icon.CloseOutlined,{}),htmlType:"button",onClick:o,disabled:r,children:a("cancel")}),jsxRuntime.jsx(antd.Button,{loading:r,style:{marginLeft:15},icon:jsxRuntime.jsx(Icon.CheckOutlined,{}),htmlType:"submit",type:"primary",disabled:r,children:a("ok")})]})})})]})})};function ButtonWithBadge(e){const{badgeNumber:n=0,...t}=e;return jsxRuntime.jsxs("div",{style:{position:"relative"},children:[n>0&&jsxRuntime.jsx("div",{style:{position:"absolute",left:-10,top:-10,zIndex:2},children:jsxRuntime.jsx("span",{style:{display:"inline-block",minWidth:"22px",padding:"2px",borderRadius:"50%",fontSize:"12px",textAlign:"center",background:"#1890FF",color:"#fefefe"},children:n})}),jsxRuntime.jsx(ButtonWithTooltip,{...t,style:{width:46,zIndex:0}})]})}function GraphActionBar({refreshGraph:e}){const{t:n}=React.useContext(LocaleContext),{availableViews:t,currentView:o,setCurrentView:r,searchParams:a,searchVisible:s,setSearchVisible:l,graphIsLoading:c,previousView:u,setPreviousView:d}=React.useContext(ActionViewContext);return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(Icon.FilterOutlined,{style:{color:s?"white":void 0}}),tooltip:n("advanced_search"),type:s?"primary":"default",onClick:()=>{l==null||l(!s)},disabled:c,badgeNumber:a==null?void 0:a.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.ReloadOutlined,{}),tooltip:n("refresh"),disabled:c,loading:!1,onClick:()=>{e()}}),jsxRuntime.jsx(ChangeViewButton,{currentView:o,availableViews:t,onChangeView:f=>{d==null||d(o),r==null||r(f)},disabled:!1,previousView:u})]})}const{Title:Title$1,Text:Text$1}=antd.Typography;function TitleHeader(e){const{title:n,children:t}=e,{title:o,currentView:r,currentId:a,currentItemIndex:s,results:l,totalItems:c,selectedRowItems:u}=React.useContext(ActionViewContext),{t:d}=React.useContext(LocaleContext);function f(){if((r==null?void 0:r.type)==="form")return a?c===0?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("editingDocument")," (id: ",jsxRuntime.jsx(Text$1,{copyable:!0,children:a}),")"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d("register")," ",s===void 0?1:s+1," /"," ",l.length," ",d("of")," ",c," - ",d("editingDocument")," (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:a}),")"]}):"";if((r==null?void 0:r.type)==="tree"&&u){if(u.length===1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:["1 ",d("selectedRegisters")," - (id:"," ",jsxRuntime.jsx(Text$1,{copyable:!0,children:u[0].id}),")"]});if(u.length>1)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u.length," ",d("selectedRegisters"),jsxRuntime.jsx(Text$1,{copyable:{text:u.map(p=>p.id).join(", ")}})]})}return null}return jsxRuntime.jsxs("div",{style:{position:"sticky",top:80,zIndex:3},children:[jsxRuntime.jsxs(antd.Row,{className:"rounded shadow-md bg-blueGray-100",style:{padding:"1em"},align:"middle",children:[jsxRuntime.jsxs(antd.Col,{flex:2,children:[jsxRuntime.jsx(Title$1,{level:3,style:{marginBottom:0},children:n||o}),f()]}),jsxRuntime.jsx(antd.Col,{flex:3,children:jsxRuntime.jsx(antd.Row,{justify:"end",children:t})})]}),jsxRuntime.jsx("div",{className:"pb-5"})]})}const GraphActionView=e=>{const{viewData:n,visible:t,model:o,context:r,domain:a,formView:s,treeView:l}=e,c=React.useRef(),u=React.useContext(ActionViewContext),{setResults:d=void 0,setCurrentItemIndex:f=void 0,currentId:p=void 0,results:m=void 0,setSelectedRowItems:I=void 0,setSearchParams:v=void 0,searchVisible:C=!0,setSearchVisible:g=void 0,sorter:h=void 0,setSorter:x=void 0,setTotalItems:y=void 0,setSearchTreeNameSearch:O=void 0,setTreeIsLoading:b=void 0,limit:E,setLimit:w,searchParams:_,searchValues:S,setSearchValues:k,currentView:N}=u||{},[M,j]=React.useState(!0);React.useEffect(()=>{var G;(G=c.current)==null||G.refresh()},[_]),React.useEffect(()=>{n.view_id!==N.view_id&&j(!0)},[N]);const{clear:B,searchFilterLoading:$,searchError:L,offset:D,tableRefreshing:U}=useSearch({model:o,setSearchTreeNameSearch:O,setSelectedRowItems:I,searchParams:_,setSearchValues:k,setSearchParams:v,setSearchVisible:g,setTreeIsLoading:b,context:r,formView:s,treeView:l,sorter:h,setSorter:x,setCurrentItemIndex:f,setResultsActionView:d,resultsActionView:m,domain:a,currentId:p,setActionViewTotalItems:y,limit:E,setLimit:w});return!t||!n?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{title:n.name,children:jsxRuntime.jsx(GraphActionBar,{refreshGraph:()=>{c.current.refresh()}})}),jsxRuntime.jsx(SearchFilter,{fields:{...l.fields,...s.fields},searchFields:mergeSearchFields([s.search_fields,l.search_fields]),limit:E,onClear:B,offset:D,isSearching:$,onSubmit:G=>{j(!1),v==null||v(G.params),g==null||g(!1)},searchError:L,searchVisible:C,searchValues:S,showLimitOptions:!1}),U?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(Graph,{ref:c,view_id:n.view_id,model:o,context:r,domain:mergeParams(_||[],a),limit:M?E:void 0,manualIds:M?m==null?void 0:m.map(G=>G.id):void 0})]})},FormActionView=e=>{const{visible:n,formRef:t,model:o,currentId:r,domain:a,formView:s,context:l,defaultValues:c,forcedValues:u,results:d,setResults:f,setCurrentItemIndex:p}=e;return n?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(FormActionBar,{toolbar:s==null?void 0:s.toolbar})}),jsxRuntime.jsx(Form$1,{rootForm:!0,ref:t,model:o,defaultValues:c,forcedValues:u,formView:s,actionDomain:a,id:r,parentContext:l,onSubmitSucceed:(m,I)=>{d.findIndex(C=>C.id===m)===-1&&(d.push(I),f(d),p(d.length-1))}})]}):null};function SearchBar(e){const{onSearch:n,disabled:t=!1,searchText:o}=e,{t:r}=React.useContext(LocaleContext),[a]=antd.Form.useForm(),[s,l]=React.useState(!1);function c(d){n(d.search)}React.useEffect(()=>{a.setFieldsValue({search:o})},[o]);function u(){l(!1),a.setFieldsValue({search:void 0}),n(void 0)}return jsxRuntime.jsx(antd.Form,{form:a,onFinish:c,autoComplete:"off",children:jsxRuntime.jsxs(antd.Row,{align:"middle",justify:"end",children:[jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Form.Item,{name:"search",noStyle:!0,children:jsxRuntime.jsx(antd.Input,{autoFocus:!0,disabled:t,onChange:d=>{l(d.target.value.length>0)},suffix:(s||o&&o.length>0)&&jsxRuntime.jsx(antd.Tooltip,{title:r("clear"),children:jsxRuntime.jsx(Icon.CloseCircleFilled,{style:{color:"rgba(0,0,0,.45)"},onClick:u})})})})}),jsxRuntime.jsx(antd.Col,{children:jsxRuntime.jsx(antd.Button,{htmlType:"submit",disabled:t,children:r("search")})})]})})}function TreeActionBar(e){const{availableViews:n,currentView:t,setCurrentView:o,selectedRowItems:r,setRemovingItem:a,removingItem:s,duplicatingItem:l,setDuplicatingItem:c,currentModel:u,searchTreeRef:d,setCurrentId:f,setCurrentItemIndex:p,searchParams:m,searchVisible:I,setSearchVisible:v,setSearchTreeNameSearch:C,searchTreeNameSearch:g,treeIsLoading:h,setPreviousView:x,previousView:y}=React.useContext(ActionViewContext),{parentContext:O={},treeExpandable:b,toolbar:E}=e,{t:w,lang:_}=React.useContext(LocaleContext),S=React.useContext(ContentRootContext),{processAction:k}=S||{};function N(){showDialog$9({confirmMessage:w("confirmRemove"),lang:_,onOk:()=>{M()}})}async function M(){var $;try{a==null||a(!0),await ConnectionProvider.getHandler().delete({model:u,ids:r.map(L=>L.id)}),f==null||f(void 0),p==null||p(void 0),($=d==null?void 0:d.current)==null||$.refreshResults()}catch(L){showDialog$8(L)}finally{a==null||a(!1)}}async function j(){var $;try{c==null||c(!0);const L=r[0].id;await ConnectionProvider.getHandler().duplicate({id:L,model:u,context:{...O}})&&(($=d==null?void 0:d.current)==null||$.refreshResults())}catch(L){showDialog$8(L)}finally{c==null||c(!1)}}function B($){k==null||k({actionData:$,values:{active_id:r==null?void 0:r.map(L=>L.id)[0],active_ids:r==null?void 0:r.map(L=>L.id)},fields:{},context:{...O,active_id:r==null?void 0:r.map(L=>L.id)[0],active_ids:r==null?void 0:r.map(L=>L.id)},onRefreshParentValues:()=>{var L;(L=d==null?void 0:d.current)==null||L.refreshResults()}})}return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[b?null:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(SearchBar,{disabled:l||s||h,searchText:g,onSearch:$=>{$&&$.trim().length>0?C==null||C($):C==null||C(void 0)}}),separator$1(),jsxRuntime.jsx(NewButton,{disabled:h}),separator$1(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.CopyOutlined,{}),tooltip:w("duplicate"),disabled:!r||(r==null?void 0:r.length)!==1||l||h,loading:l,onClick:j}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.DeleteOutlined,{}),tooltip:w("delete"),disabled:!(r&&(r==null?void 0:r.length)>0)||h,loading:s,onClick:N}),separator$1()]}),!b&&jsxRuntime.jsx(ButtonWithBadge,{icon:jsxRuntime.jsx(Icon.FilterOutlined,{style:{color:I?"white":void 0}}),tooltip:w("advanced_search"),type:I?"primary":"default",onClick:()=>{v==null||v(!I)},disabled:l||s||h,badgeNumber:m==null?void 0:m.length}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.InfoCircleOutlined,{}),tooltip:w("showLogs"),disabled:!(r&&(r==null?void 0:r.length)>0)||h,loading:!1,onClick:()=>{showLogInfo(u,r[0].id,w)}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.ReloadOutlined,{}),tooltip:w("refresh"),disabled:l||s||h,loading:!1,onClick:()=>{var $;($=d==null?void 0:d.current)==null||$.refreshResults()}}),!b&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[separator$1(),jsxRuntime.jsx(ChangeViewButton,{currentView:t,availableViews:n,onChangeView:$=>{x==null||x(t),o==null||o($)},previousView:y,disabled:h})]}),separator$1(),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(Icon.ThunderboltOutlined,{}),disabled:!(r&&(r==null?void 0:r.length)>0)||h,tooltip:w("actions"),items:E==null?void 0:E.action,onItemClick:$=>{!$||B($)}}),jsxRuntime.jsx(DropdownButton,{icon:jsxRuntime.jsx(Icon.PrinterOutlined,{}),disabled:!(r&&(r==null?void 0:r.length)>0)||h,tooltip:w("reports"),items:E==null?void 0:E.print,onItemClick:$=>{!$||B({...$,datas:{...$.datas||{},ids:r.map(L=>L.id)}})}})]})}function separator$1(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}const TreeActionView=e=>{const{visible:n,searchTreeRef:t,model:o,context:r,formView:a,treeView:s,domain:l,setCurrentItemIndex:c,results:u,setCurrentId:d,setCurrentView:f,availableViews:p,searchTreeNameSearch:m}=e;return n?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(TreeActionBar,{toolbar:s==null?void 0:s.toolbar,parentContext:r,treeExpandable:(s==null?void 0:s.isExpandable)||!1})}),jsxRuntime.jsx(SearchTree$1,{ref:t,rootTree:!0,model:o,parentContext:r,nameSearch:m,formView:a,treeView:s,domain:l,onRowClicked:I=>{const{id:v}=I;d(v);const C=u.findIndex(h=>h.id===v);c(C);const g=p.find(h=>h.type==="form");f(g)}})]}):null},DashboardActionContext=React__default.default.createContext(null),DashboardActionProvider=e=>{const[n,t]=React.useState(!1),[o,r]=React.useState(!1),{children:a,dashboardRef:s,openAction:l}=e;return jsxRuntime.jsx(DashboardActionContext.Provider,{value:{isLoading:n,setIsLoading:t,dashboardRef:s,openAction:l,moveItemsEnabled:o,setMoveItemsEnabled:r},children:a})};function DashboardActionBar(){const{isLoading:e,dashboardRef:n,moveItemsEnabled:t,setMoveItemsEnabled:o}=React.useContext(DashboardActionContext),{t:r}=React.useContext(LocaleContext);return jsxRuntime.jsxs(antd.Space,{wrap:!0,children:[jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.BorderOuterOutlined,{style:{color:t?"white":void 0}}),type:t?"primary":"default",tooltip:r("moveDashboard"),disabled:e,loading:!1,onClick:()=>{o(!t)}}),separator(),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.SettingOutlined,{}),tooltip:r("configDashboard"),disabled:e,loading:!1,onClick:()=>{n==null||n.current.configDashboard()}}),jsxRuntime.jsx(ActionButton,{icon:jsxRuntime.jsx(Icon.ReloadOutlined,{}),tooltip:r("refresh"),disabled:e,loading:!1,onClick:()=>{n==null||n.current.refresh()}})]})}function separator(){return jsxRuntime.jsx("div",{className:"inline-block w-2"})}const DashboardActionView=e=>{const{dashboardData:n}=e,t=React.useRef(),o=React.useContext(TabManagerContext),{openShortcut:r}=o||{};return n?jsxRuntime.jsxs(DashboardActionProvider,{dashboardRef:t,openAction:a=>{r(a)},children:[jsxRuntime.jsx(TitleHeader,{children:jsxRuntime.jsx(DashboardActionBar,{})}),jsxRuntime.jsx(Dashboard$1,{ref:t,model:n.model,id:n.id,context:n==null?void 0:n.context,configAction:n==null?void 0:n.configAction})]}):null};function ActionView(e,n){const{domain:t,model:o,context:r,views:a,title:s,setCanWeClose:l,tabKey:c,initialView:u,formDefaultValues:d,formForcedValues:f={},res_id:p=!1,action_id:m,action_type:I,treeExpandable:v=!1,limit:C}=e,[g,h]=React.useState(),[x,y]=React.useState([]),[O,b]=React.useState(!0),E=p||void 0,[w,_]=React.useState(E),[S,k]=React.useState([]),[N,M]=React.useState(),[j,B]=React.useState([]),[$,L]=React.useState(),[D,U]=React.useState(0),[G,z]=React.useState(!1),[W,Z]=React.useState(!1),[V,H]=React.useState(),{t:P}=React.useContext(LocaleContext),A=React.useRef(),q=React.useRef(),K=React.useContext(TabManagerContext),{setCurrentView:X,setCurrentId:F,tabs:T,activeKey:Y,openAction:Q}=K||{};reactHotkeysHook.useHotkeys("ctrl+g,command+g",ie=>{ie.preventDefault(),ce()},[Y,T,g,N,j]);function te(ie){_(ie),F==null||F(ie)}function J(ie){h(ie),X==null||X(ie)}React.useImperativeHandle(n,()=>({canWeClose:re}));const ee=async()=>{b(!0);const ie=[];for(const le of a){const[me,ve]=le;let Ce;try{ve!=="dashboard"&&(Ce=await ConnectionProvider.getHandler().getView({model:o,type:ve,id:me,context:r}))}catch(Ie){console.error(`${o} - ${ve}\xA0- ${JSON.stringify(Ie,null,2)}`);continue}switch(ve){case"dashboard":{const Ie=a.find(Se=>{const[,se]=Se;return se==="form"});let _e;Ie&&(_e={action_id:m,action_type:I,name:s,res_id:r.active_id,res_model:o,view_id:Ie[0],view_type:Ie[1]}),ie.push({type:"dashboard",id:r.active_id,model:o,context:r,configAction:_e});break}case"form":{ie.push({...Ce});break}case"tree":{ie.push({...Ce,isExpandable:v});break}case"graph":{ie.push({...Ce});break}}}if(!u&&ie.find(le=>le.type==="tree")){const le=ie.find(me=>me.type==="tree");J(le)}else if(u){const le=ie.find(me=>u.id?me.type===u.type&&me.view_id===u.id:me.type===u.type);J(le)}else{const le=ie.find(me=>me.type==="form");J(le)}y(ie),b(!1)};l({tabKey:c,canWeClose:re}),React.useEffect(()=>{const ie=x.find(me=>me.type==="tree"),le=x.find(me=>u.id?me.type===u.type&&me.view_id===u.id:me.type===u.type);J(le||ie),p?F==null||F(E):(te(void 0),M(void 0)),ee()},[o,a,p]),React.useEffect(()=>{Y===c&&(F==null||F(w),X==null||X(g))},[T,Y]);async function re(){return g.type==="form"?await A.current.cancelUnsavedChanges():!0}async function ce(){Y===c&&(g.type==="form"&&!await A.current.cancelUnsavedChanges()||z(!0))}async function ae(ie){var Ce;Z(!0);const le=j.findIndex(Ie=>Ie.id===ie);let me;if(le===-1){try{me=(Ce=await ConnectionProvider.getHandler().readObjects({model:o,ids:[ie],context:r}))==null?void 0:Ce[0]}catch{}if(!me){Z(!1),z(!1),showDialog$7(P("idNotFound"));return}}else me=j[le];Z(!1),z(!1);const ve=a.find(Ie=>Ie[1]==="form");Q({domain:[],context:r,model:o,views:a,title:s,target:"current",initialView:{id:ve==null?void 0:ve[0],type:"form"},action_id:m,action_type:I,res_id:ie})}function pe(){return x.map(ie=>{switch(ie.type){case"form":return jsxRuntime.jsx(FormActionView,{formRef:A,currentId:w,visible:g.type===ie.type&&g.view_id===ie.view_id,formView:ie,model:o,context:r,domain:t,defaultValues:d,forcedValues:f,results:j,setResults:B,setCurrentItemIndex:M},`${ie.type}-${ie.view_id}`);case"tree":return jsxRuntime.jsx(TreeActionView,{visible:g.type===ie.type&&g.view_id===ie.view_id,limit:C,model:o,context:r,domain:t,formView:x.find(le=>le.type==="form"),treeView:ie,searchTreeRef:q,searchTreeNameSearch:V,availableViews:x,results:j,setCurrentItemIndex:M,setCurrentId:te,setCurrentView:J},`${ie.type}-${ie.view_id}`);case"graph":return jsxRuntime.jsx(GraphActionView,{visible:g.type===ie.type&&g.view_id===ie.view_id,viewData:ie,model:o,context:r,domain:t,treeView:x.find(le=>le.type==="tree"),formView:x.find(le=>le.type==="form")},`${ie.type}-${ie.view_id}`);case"dashboard":return jsxRuntime.jsx(DashboardActionView,{dashboardData:ie},`${ie.type}-${ie.view_id}`)}})}function he(){if(w===void 0&&g.type==="form")A.current.clearAndReload();else{te(void 0);const ie=x.find(le=>le.type==="form");J(ie)}}return O?jsxRuntime.jsx(antd.Spin,{}):g?jsxRuntime.jsxs(ActionViewProvider,{title:s,currentView:g,setCurrentView:J,availableViews:x,formRef:A,searchTreeRef:q,onNewClicked:he,currentId:w,setCurrentId:te,setCurrentItemIndex:M,currentItemIndex:N,results:j,setResults:B,currentModel:o,sorter:$,setSorter:L,totalItems:D,setTotalItems:U,selectedRowItems:S,setSelectedRowItems:k,setSearchTreeNameSearch:H,searchTreeNameSearch:V,goToResourceId:ae,limit:C,children:[pe(),jsxRuntime.jsx(GoToResourceModal,{visible:G,onIdSubmitted:ae,isSearching:W,onCancel:()=>{z(!1)}})]}):null}const ActionView$1=React.forwardRef(ActionView);var getRandomValues,rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}const REGEX=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate(e){return typeof e=="string"&®EX.test(e)}for(var byteToHex=[],i=0;i<256;++i)byteToHex.push((i+256).toString(16).substr(1));function stringify(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=(byteToHex[e[n+0]]+byteToHex[e[n+1]]+byteToHex[e[n+2]]+byteToHex[e[n+3]]+"-"+byteToHex[e[n+4]]+byteToHex[e[n+5]]+"-"+byteToHex[e[n+6]]+byteToHex[e[n+7]]+"-"+byteToHex[e[n+8]]+byteToHex[e[n+9]]+"-"+byteToHex[e[n+10]]+byteToHex[e[n+11]]+byteToHex[e[n+12]]+byteToHex[e[n+13]]+byteToHex[e[n+14]]+byteToHex[e[n+15]]).toLowerCase();if(!validate(t))throw TypeError("Stringified UUID is invalid");return t}function v4(e,n,t){e=e||{};var o=e.random||(e.rng||rng)();if(o[6]=o[6]&15|64,o[8]=o[8]&63|128,n){t=t||0;for(var r=0;r<16;++r)n[t+r]=o[r];return n}return stringify(o)}async function fetchAction({actionId:e,rootContext:n={},globalValues:t={}}){const o="ir.actions.act_window",r=`${o},${e}`,a=await ConnectionProvider.getHandler().getActionData({action:r,context:n}),s=ooui.parseContext({context:a.context,values:t,fields:{}}),l=a.domain?await ConnectionProvider.getHandler().evalDomain({domain:a.domain,values:t,context:{...n,...s}}):[],{res_model:c,views:u,name:d,limit:f,view_type:p}=a,m=p==="tree",I=[];for(const h of u){const[x,y]=h;if(x)I.push(h);else{const{view_id:O}=await ConnectionProvider.getHandler().getView({model:c,type:y,id:x,context:{...n,...s}});I.push([O,y])}}const[v,C]=I[0],g={id:v,type:C};return{title:d,actionId:e,actionType:o,key:v4(),views:u,model:c,context:{...n,...s},domain:l,initialView:g,limit:f,treeExpandable:m}}const styles$1="",styles="",ResponsiveReactGridLayout=reactGridLayout.WidthProvider(reactGridLayout.Responsive),DashboardGrid=e=>{const{children:n=[],onPositionItemsChanged:t}=e,o=React__default.default.Children.map(n,r=>{const{parms:a,id:s}=r.props;return jsxRuntime.jsx("div",{"data-grid":a,children:r},s)});return jsxRuntime.jsx(ResponsiveReactGridLayout,{className:"layout",cols:{lg:12,md:10,sm:6,xs:4,xxs:2},draggableHandle:".draggable-head",rowHeight:30,onLayoutChange:r=>{t==null||t(r.map(a=>({id:parseInt(a.i.replace(".$",""),10),x:a.x,y:a.y,w:a.w,h:a.h})))},children:o})},{Text}=antd.Typography,DashboardGridItem=e=>{const{id:n,title:t,children:o,action:r,openAction:a}=e;return jsxRuntime.jsxs("div",{className:"shadow-md rounded",style:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",border:"1px solid #eee",backgroundColor:"white"},children:[jsxRuntime.jsxs(antd.Row,{className:"bg-blueGray-100",align:"middle",style:{borderBottom:"1px solid #ddd"},wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"auto",className:"draggable-head",style:{fontWeight:"bold",padding:"0.5rem",cursor:"grab",overflow:"hidden"},children:jsxRuntime.jsx(Text,{ellipsis:!0,children:t})}),r&&jsxRuntime.jsx(antd.Col,{flex:"25px",style:{padding:"0.5rem"},children:jsxRuntime.jsx(antd.Row,{justify:"end",align:"middle",children:jsxRuntime.jsx(Icon.ExportOutlined,{style:{cursor:"pointer"},onClick:()=>{a==null||a(r)}})})})]}),o]})},DEFAULT_SEARCH_LIMIT=80;function DashboardTree(e){const{action:n,model:t,view_id:o,onRowClicked:r,domain:a=[],visible:s=!0,parentContext:l={}}=e,[c,u]=React.useState(!1),[d,f]=React.useState(!1),[p,m]=React.useState(),[I,v]=React.useState(),[C,g]=React.useState(),[h,x]=React.useState(1),[y,O]=React.useState(0),b=React.useRef(DEFAULT_SEARCH_LIMIT),E=React.useRef([]),[w,_]=React.useState(0),[S,k]=React.useState([]),[N,M]=React.useState(void 0),[j,B]=React.useState(),[$,L]=React.useState(),[D,U]=React.useState(),[G,z]=React.useState(!1),W=React.useRef([]),Z=F=>{z(!0),x(F),O((F-1)*b.current)},V=async()=>{const F=W.current.length>0?W.current:a,T=mergeParams(E.current,F),{colors:Y}=getTree(I),{totalItems:Q,results:te,attrsEvaluated:J}=await ConnectionProvider.getHandler().searchForTree({params:T,limit:b.current,offset:y,model:p,fields:I.fields,context:l,attrs:Y&&{colors:Y}}),ee=await Q;_(ee),M(getColorMap(J));const re=sortResults({resultsToSort:te,sorter:j,fields:{...I.fields,...C.fields}});k(re)},H=async()=>{try{z(!0),await V()}catch(F){L(JSON.stringify(F))}finally{z(!1)}};React.useEffect(()=>{!d||s&&H()},[h,y,d,s]);const P=async F=>{f(!1),u(!0),U(void 0);try{F==="action"?await A():await q(),f(!0)}catch(T){U(T)}finally{u(!1)}},A=async()=>{const F=await ConnectionProvider.getHandler().getViewsForAction({action:n,context:l});W.current=F.domain,g(F.views.get("form")),v(F.views.get("tree")),m(F.model),b.current=F.limit},q=async()=>{m(t);const F=await ConnectionProvider.getHandler().getView({model:t,type:"form",context:l});g(F);const T=await ConnectionProvider.getHandler().getView({model:t,type:"tree",id:o,context:l});v(T)};React.useEffect(()=>{n?P("action"):t&&P("model")},[n,t]);const K=F=>{const{id:T}=F;r({id:T,model:p,treeView:I})},X=()=>!I||!C?null:jsxRuntime.jsxs("div",{style:{overflowY:"scroll"},children:[$&&jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:$,type:"error",banner:!0}),jsxRuntime.jsx(Tree,{showPagination:!1,total:w,limit:b.current,page:h,treeView:I,results:S,onRequestPageChange:Z,loading:G,onRowClicked:K,colorsForResults:N,sorter:j,onChangeSort:F=>{B==null||B(F);const T=sortResults({resultsToSort:S,sorter:F,fields:{...I.fields,...C.fields}});k(T)}})]});return D?jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:D,type:"error",banner:!0}):c?jsxRuntime.jsx(antd.Spin,{style:{padding:"2rem"}}):X()}const DashboardForm=e=>{const{model:n}=e,[t,o]=React.useState();React.useEffect(()=>{r()},[n]);async function r(){const a=await ConnectionProvider.getHandler().search({params:[],model:n,limit:1});a.length>0&&o(a[0].id)}return jsxRuntime.jsx("div",{style:{padding:"0.5rem",overflowY:"scroll"},children:jsxRuntime.jsx(Form$1,{...e,model:n,id:t,readOnly:!0})})},itemsField="line_ids";function Dashboard(e,n){const{model:t,context:o={},id:r,configAction:a}=e,[s,l]=React.useState([]),[c,u]=React.useState(!1),[d,f]=React.useState(),{setIsLoading:p,openAction:m,moveItemsEnabled:I}=React.useContext(DashboardActionContext),v=React.useRef(),C=React.useRef();React.useEffect(()=>{g()},[t,r,o]),React.useImperativeHandle(n,()=>({refresh:()=>{g()},configDashboard:E}));async function g(){u(!0),p(!0),f(void 0);try{const w=await h(),_=await y(w),S=w.fields[itemsField].relation,k=_[itemsField].items;C.current=w.fields;const N=await x({items:k,model:S,context:o}),M=await O(N);l(M),u(!1),p(!1)}catch(w){f(JSON.stringify(w))}}async function h(){return await ConnectionProvider.getHandler().getView({model:t,type:"form",context:o})}async function x({items:w,model:_,context:S}){return v.current=(await ConnectionProvider.getHandler().getView({model:_,type:"form",context:S})).fields,await readObjectValues({treeFields:v.current,formFields:v.current,model:_,items:w,context:S})}async function y(w){return(await ConnectionProvider.getHandler().readObjects({model:t,ids:[r],fields:w.fields,context:o}))[0]}async function O(w){const _=[];for(const S of w){const{values:k}=S;if(k.action_id&&k.action_id.length>0){const N=parseInt(k.action_id[0],10),M=await fetchAction({actionId:N,rootContext:o});_.push({...S,actionData:M})}}return _}async function b(w){if(!I)return;const _=w.filter(M=>{const j=s.find($=>$.id===M.id);if(!j)return!1;if(!j.position)return!0;const B={...JSON.parse(j.position.replace(/'/g,'"')),id:j.id};return JSON.stringify(M)!==JSON.stringify(B)});if(_.length===0)return;const k=s.filter(M=>_.map(j=>j.id).includes(M.id)).map(M=>{const j={..._.find(B=>B.id===M.id)};return delete j.id,{...M},{...M,operation:"pendingUpdate",values:{...M.values,position:JSON.stringify(j).replace(/"/g,"'")}}}),N={fields:v.current,items:k};await ConnectionProvider.getHandler().update({model:t,id:r,values:{[itemsField]:N},fields:C.current,context:o})}async function E(){m(a)}return d?jsxRuntime.jsx(antd.Alert,{className:"mt-10 mb-20",message:d,type:"error",banner:!0}):c?jsxRuntime.jsx(Icon.LoadingOutlined,{}):jsxRuntime.jsx(DashboardGrid,{onPositionItemsChanged:b,children:s.map((w,_)=>{const{actionData:S,values:k}=w,{position:N,id:M}=k,{actionId:j,actionType:B,key:$,title:L,views:D,model:U,context:G,domain:z,initialView:W,limit:Z}=S;let V={};try{V=JSON.parse(N.replace(/'/g,'"'))}catch{V={x:_*2,y:0,w:2,h:3}}let H=null;(W==null?void 0:W.type)==="graph"?H=jsxRuntime.jsx(Graph,{view_id:D.filter(q=>q[1]==="graph")[0][0],model:U,context:G,domain:z,limit:Z}):(W==null?void 0:W.type)==="form"?H=jsxRuntime.jsx(DashboardForm,{model:U,actionDomain:z}):(W==null?void 0:W.type)==="tree"?H=jsxRuntime.jsx(DashboardTree,{model:U,domain:z,view_id:D.filter(q=>q[1]==="tree")[0][0],onRowClicked:q=>{const K=D.find(X=>{const[,F]=X;return F==="form"});if(K){const[X,F]=K,{actionId:T,actionType:Y,title:Q,model:te}=S,J={action_id:T,action_type:Y,name:Q,res_id:q.id,res_model:te,view_id:X,view_type:F};m(J)}}}):W!==void 0&&(H=jsxRuntime.jsx(ActionView$1,{action_id:j,action_type:B,tabKey:$,title:L,views:D,model:U,context:G,domain:z,setCanWeClose:()=>{},initialView:W,limit:Z}));let P;const A=D.find(q=>{const[,K]=q;return K==="tree"});if(A){const[q,K]=A,{actionId:X,actionType:F,title:T,model:Y}=S;P={action_id:X,action_type:F,name:T,res_id:!1,res_model:Y,view_id:q,view_type:K}}return jsxRuntime.jsx(DashboardGridItem,{id:M,title:L,parms:V,action:P,openAction:m,children:H},M)})})}const Dashboard$1=React.forwardRef(Dashboard),MultiCheckbox=e=>{const{ooui:n}=e;return jsxRuntime.jsx(Field$1,{type:"array",...e,children:jsxRuntime.jsx(MultiCheckboxInput,{ooui:n})})},MultiCheckboxInput=e=>{const{value:n,ooui:t,onChange:o}=e,{items:r=[]}=n||{},a=r.filter(w=>w.operation!=="pendingRemove").map(w=>w.id),[s,l]=React.useState([]),[c,u]=React.useState(),[d,f]=React.useState(!1),{relation:p,context:m,readOnly:I,field:v,columns:C}=t,g=React.useContext(FormContext$1),{getContext:h}=g||{};useDeepCompareEffect__default.default(()=>{y()},[r]);const x=w=>{o==null||o({items:w})};async function y(){f(!0);let w=[];if(t.domain){const _=await ConnectionProvider.getHandler().evalDomain({domain:t.domain,values:transformPlainMany2Ones({fields:g==null?void 0:g.getFields(),values:g.getPlainValues()}),context:g.getContext()});w=[...w,..._]}try{const S=(await ConnectionProvider.getHandler().search({model:p,params:w,fields:[v],context:{...h==null?void 0:h(),...m}})).map(k=>{const N=k[v];let M=N;return Array.isArray(N)&&(M=N[1]),{label:M,value:k.id}});l(S)}catch(_){u(_)}finally{f(!1)}if(c)return jsxRuntime.jsx(antd.Alert,{className:"mt-10",message:c,type:"error",banner:!0})}const O=()=>{E(s.map(w=>w.value))},b=()=>{E([])},E=w=>{const _=r.map(k=>w.includes(k.id)?k.operation=="pendingRemove"?{...k,operation:"original"}:k:{id:k.id,operation:"pendingRemove"}),S=_.map(k=>k.id);w.filter(k=>!S.includes(k)).map(k=>{_.push({id:k,operation:"pendingLink"})}),x(_)};return d&&s.length===0?jsxRuntime.jsx(antd.Spin,{}):jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsxs("div",{className:"flex flex-row",children:[jsxRuntime.jsx(antd.Checkbox.Group,{value:s.length?a:[],disabled:I,onChange:E,style:{width:"100%"},children:jsxRuntime.jsx(antd.Row,{children:s.map(w=>jsxRuntime.jsx(antd.Col,{span:Math.floor(24/C),children:jsxRuntime.jsx(antd.Checkbox,{value:w.value,children:w.label})}))})}),!I&&jsxRuntime.jsxs(antd.Space,{children:[jsxRuntime.jsx(antd.Button,{onClick:O,disabled:a.length==s.length,children:"Check all"}),jsxRuntime.jsx(antd.Button,{onClick:b,disabled:a.length===0,children:"Uncheck all"})]})]})})},Radio=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,type:"any",...e,children:jsxRuntime.jsx(SelectionInput,{...e})})},SelectionInput=e=>{const{ooui:n,onChange:t,value:o}=e,{selectionValues:r,readOnly:a,direction:s}=n,l=Array.from(r.entries()),c=l&&l.length&&l.map(u=>{const[d,f]=u;return jsxRuntime.jsx(antd.Radio,{value:d,children:f},d)});return jsxRuntime.jsx(antd.Radio.Group,{disabled:a,onChange:t,value:o,children:jsxRuntime.jsx(antd.Space,{direction:s,children:c})})},Switch=e=>{const{ooui:n}=e,{id:t,readOnly:o,required:r}=n;return jsxRuntime.jsx(Field$1,{...e,valuePropName:"checked",children:jsxRuntime.jsx(SwitchInput,{id:t,readOnly:o,required:r})})},SwitchInput=e=>{const{required:n,readOnly:t,...o}=e;return jsxRuntime.jsx("div",{className:"flex flex-row",children:jsxRuntime.jsx(antd.Switch,{disabled:t,...o})})},Steps=e=>{const{ooui:n}=e,{required:t}=n;return jsxRuntime.jsx(Field$1,{required:t,type:"any",...e,children:jsxRuntime.jsx(StepsInput,{...e})})},StepsInput=e=>{const{ooui:n,value:t}=e,{selectionValues:o,errorField:r}=n,a=React.useContext(FormContext$1),s=Array.from(o.entries()),l=s.map(d=>d[0]).indexOf(t);let c="process",u="";return r&&(u=a.getFieldValue(r),u&&(c="error")),jsxRuntime.jsx(antd.Steps,{current:l,status:c,children:s.map((d,f)=>jsxRuntime.jsx(antd.Steps.Step,{title:d[1],description:f===l&&c==="error"?u:null}))})},CodeEditor=e=>{const{ooui:n}=e,{lang:t,height:o}=n,r=React.useContext(FormContext$1),{elementHasLostFocus:a}=r||{},s=l=>{l.onDidBlurEditorWidget(a)};return jsxRuntime.jsx(Field$1,{...e,children:jsxRuntime.jsx(Editor__default.default,{defaultLanguage:t||"",height:o||300,onMount:s})})},{Content}=antd.Layout,{Title}=antd.Typography;function Welcome(){const{t:e}=React.useContext(LocaleContext);return jsxRuntime.jsx(Content,{className:"m-5 select-none",children:jsxRuntime.jsx(Title,{level:5,children:e("welcome")})})}function RootView(e,n){const{children:t,globalValues:o={},rootContext:r={},lang:a}=e,[s,l]=React.useState("welcome"),[c,u]=React.useState([{title:tForLang("welcome",a),key:"welcome",closable:!0,content:jsxRuntime.jsx(Welcome,{})}]),d=React.useRef(new Map),f=React.useRef();React.useImperativeHandle(n,()=>({retrieveAndOpenAction:I,openShortcut:g}));function p(y){if(y===s){const O=c.findIndex(b=>b.key===y);c[O-1]&&l(c[O-1].key),c[O+1]&&l(c[O+1].key)}u(c.filter(O=>O.key!==y)),d.current.delete(y)}function m({tabKey:y,canWeClose:O}){d.current.set(y,O)}async function I({action:y,values:O,forced_values:b,initialViewType:E,res_id:w,domain:_=[]}){const S=await ConnectionProvider.getHandler().getActionData({action:y,context:r});if(S.type==="ir.actions.wizard"){showDialog$8("Action type not supported");return}const[k,N]=y.split(","),M=parseInt(N),j=ooui.parseContext({context:S.context,values:o,fields:{}}),B=S.domain?await ConnectionProvider.getHandler().evalDomain({domain:S.domain,values:o,context:{...r,...j}}):[],{res_model:$,views:L,name:D,target:U,view_type:G,limit:z}=S,W=G==="tree",Z=[];for(const H of L){const[P,A]=H;if(P)Z.push(H);else if(A==="dashboard")Z.push([void 0,"dashboard"]);else{const{view_id:q}=await ConnectionProvider.getHandler().getView({model:$,type:A,id:P,context:{...r,...j}});Z.push([q,A])}}let V;if(E){const[H,P]=Z.find(([A,q])=>q===E);V={id:H,type:P}}else{const[H,P]=Z[0];V={id:H,type:P}}x({domain:[...B,..._],context:{...r,...j},model:$,views:Z,title:D,target:U,initialView:V,action_type:k,action_id:M,values:O,forced_values:b,res_id:w,treeExpandable:W,limit:z})}function v({title:y,content:O,key:b,action:E}){let w=[...c];c.length===1&&c[0].key==="welcome"&&(w=[...c.filter(_=>_.key!=="welcome")]),u([...w,{title:y,key:b,closable:!0,content:O,action:E}]),l(b)}async function C({relateData:y,fields:O,values:b,action_id:E,action_type:w}){const{res_model:_,context:S,domain:k,views:N,target:M,string:j,limit:B}=y,[$,L]=N[0],D={id:$,type:L},U=ooui.parseContext({context:S,values:{...b,...o},fields:O}),G=k?await ConnectionProvider.getHandler().evalDomain({domain:k,values:transformPlainMany2Ones({fields:O,values:{...b,...o}}),context:{...r,...U}}):[];x({model:_,target:M,views:N,context:{...r,...U},domain:G,title:j,initialView:D,action_id:E,action_type:w,limit:B})}async function g(y){const{action_id:O,action_type:b,res_id:E,view_id:w}=y,_=`${b},${O}`,S=await ConnectionProvider.getHandler().getActionData({action:_,context:r}),k=ooui.parseContext({context:S.context,values:o,fields:{}}),N=S.domain?await ConnectionProvider.getHandler().evalDomain({domain:S.domain,values:o,context:{...r,...k}}):[],{res_model:M,views:j,name:B,target:$,view_type:L,limit:D}=S,U=L==="tree",G=[];for(const V of j){const[H,P]=V;if(H)G.push(V);else if(P==="dashboard")G.push([void 0,"dashboard"]);else{const{view_id:A}=await ConnectionProvider.getHandler().getView({model:M,type:P,id:H,context:{...r,...k}});G.push([A,P])}}let z,W;if(w==null){const V=G.find(H=>H[0]===void 0);z=void 0,W=V[1]}else[z,W]=G.find(V=>V[0]===void 0?!1:V[0]===w);const Z={id:z,type:W};x({domain:N,context:{...r,...k},model:M,views:G,title:B,target:$,initialView:Z,action_id:O,action_type:b,res_id:E,treeExpandable:U,limit:D})}async function h({model:y,values:O,forced_values:b,initialViewType:E,res_id:w,domain:_}){const S=await ConnectionProvider.getHandler().getActionStringForModel(y);await I({action:S,values:O,forced_values:b,initialViewType:E,res_id:w,domain:_})}async function x({domain:y,context:O,model:b,views:E,title:w,target:_,initialView:S,action_id:k,action_type:N,res_id:M,values:j,forced_values:B,treeExpandable:$=!1,limit:L}){const D=v4();if(_!=="current"){const U=await ConnectionProvider.getHandler().getView({model:b,type:"form",id:S.type==="form"?S.id:void 0,context:{...r,...O}});f.current.openActionModal({domain:y,model:b,formView:U,context:{...r,...O},actionData:{action_id:k,action_type:N,res_id:M,view_id:U.view_id}})}else v({title:w,action:{id:k,type:N},content:jsxRuntime.jsx(ActionView$1,{action_id:k,action_type:N,tabKey:D,title:w,views:E,model:b,context:{...r,...O},domain:y,setCanWeClose:m,initialView:S,res_id:M,formDefaultValues:j,formForcedValues:B,treeExpandable:$,limit:L}),key:D})}return jsxRuntime.jsx(LocaleContextProvider,{lang:a,children:jsxRuntime.jsx(TabManagerProvider,{openShortcut:g,openAction:x,openRelate:C,openDefaultActionForModel:h,tabs:c,activeKey:s,onRemoveTab:async y=>{const O=d.current.get(y);(await(O==null?void 0:O())||s==="welcome")&&p(y)},onChangeTab:y=>{l(y)},children:jsxRuntime.jsx(ContentRootProvider$1,{ref:f,globalValues:o,children:t})})})}const RootView$1=React.forwardRef(RootView);function Tab(e){const{label:n,onClose:t,tabKey:o,isActive:r,onSelected:a}=e,s=r?"#ffffff":"#F1F5F9";return jsxRuntime.jsxs("div",{onClick:()=>{!r&&a(o)},style:{cursor:"pointer",height:40,paddingTop:7,paddingBottom:5,paddingLeft:10,paddingRight:10,backgroundColor:s,display:"inline-flex",flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",borderTopLeftRadius:8,borderTopRightRadius:8,marginLeft:2},children:[jsxRuntime.jsx("div",{style:{color:r?"#001529":"#ADB0B3",userSelect:"none",height:40,display:"flex",justifyContent:"center",alignItems:"center",paddingLeft:5,paddingRight:5,marginBottom:2},children:n}),jsxRuntime.jsx("div",{style:{paddingLeft:5,height:40,display:"flex",justifyContent:"center",alignItems:"center"},children:jsxRuntime.jsx(Icon.CloseOutlined,{style:{color:r?"#001529":"#ADB0B3"},onClick:l=>{l.stopPropagation(),t(o)}})})]})}function TabSelector(){const e=React.useContext(TabManagerContext),{activeKey:n,tabs:t,onRemoveTab:o,onChangeTab:r}=e||{};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map(a=>jsxRuntime.jsx(Tab,{tabKey:a.key,label:a.title,onClose:o,isActive:n===a.key,onSelected:r},a.key))})}function TabContent(e){const{tab:n}=e,t=React.useContext(TabManagerContext),{activeKey:o}=t||{},r={display:"none"};return jsxRuntime.jsx("div",{style:n.key!==o?r:void 0,children:n.content})}const TabContent$1=React__default.default.memo(TabContent,()=>!0);function CurrentTabContent(){const e=React.useContext(TabManagerContext),{tabs:n}=e||{},t=(n==null?void 0:n.map(o=>jsxRuntime.jsx(TabContent$1,{tab:o},o.key)))||null;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t})}const FavouriteButton=e=>{const{onRetrieveShortcuts:n,onCheckIsFavourite:t,onAddFavourite:o,onRemoveFavourite:r}=e,[a,s]=React.useState(!1),[l,c]=React.useState(!1),[u,d]=React.useState([]),[f,p]=React.useState(!0),[m,I]=React.useState(),{t:v}=React.useContext(LocaleContext),C=React.useContext(TabManagerContext),{openShortcut:g,tabs:h,activeKey:x,currentView:y,currentId:O,openDefaultActionForModel:b}=C||{};React.useEffect(()=>{E()},[]),React.useEffect(()=>{S()},[h,x,y,O]);async function E(){try{p(!0);const B=await n();d(B)}catch(B){showDialog$8(B)}finally{p(!1)}}function w(B){const{key:$}=B,L=u.find(D=>D.id===Number($));(L==null?void 0:L.action_type)!=="ir.actions.wizard"&&(L&&g(L),c(!1))}function _(B){B&&E(),c(B)}async function S(){if(!y)return;const B=h.find(z=>z.key===x),{id:$,type:L}=(B==null?void 0:B.action)||{};if(!$||!L){s(!1);return}const D=y.view_id;let U=!1;y.type==="form"&&(U=O||!1);const G=await t({action_id:$,action_type:L,view_id:D,res_id:U});G!==!1&&I(G),s(G!==!1)}async function k(){c(!1),b==null||b({model:"ir.ui.view_sc"})}const N=jsxRuntime.jsxs(antd.Menu,{onClick:w,children:[jsxRuntime.jsxs("div",{style:{width:300,padding:5,display:"flex"},children:[jsxRuntime.jsx("div",{style:{paddingLeft:15,color:"#ccc"},children:v("favorites").toUpperCase()}),jsxRuntime.jsx("div",{style:{flexGrow:1,paddingLeft:10},children:jsxRuntime.jsx(antd.Tooltip,{title:v("edit_favorites"),children:jsxRuntime.jsx(Icon.EditOutlined,{style:{color:"#1890FF",cursor:"pointer"},onClick:k})})})]}),jsxRuntime.jsx(antd.Menu.Divider,{}),f?jsxRuntime.jsx(antd.Spin,{style:{padding:"1rem"}}):u.length>0?jsxRuntime.jsx(jsxRuntime.Fragment,{children:u.map(B=>jsxRuntime.jsx(antd.Menu.Item,{children:jsxRuntime.jsx(M,{title:B.name,type:B.view_type})},B.id))}):jsxRuntime.jsx("div",{style:{width:300,padding:5,paddingLeft:15},children:v("no_favorites")})]});function M({title:B,type:$}){const L=$==="tree"?jsxRuntime.jsx(Icon.TableOutlined,{}):jsxRuntime.jsx(Icon.FormOutlined,{});return jsxRuntime.jsxs(antd.Row,{wrap:!1,children:[jsxRuntime.jsx(antd.Col,{flex:"none",style:{paddingRight:20},children:L}),jsxRuntime.jsx(antd.Col,{flex:"auto",children:B})]})}async function j(){if(a&&m)await r(m);else{if(!y)return;const B=h.find(G=>G.key===x),{id:$,type:L}=(B==null?void 0:B.action)||{},D=y.view_id;let U=!1;if(!$||!L){s(!1);return}y.type==="form"&&(U=O||!1),await o({action_id:$,action_type:L,view_id:D,res_id:U})}await E(),s(!a)}return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(antd.Button,{type:a?"primary":"default",icon:a?jsxRuntime.jsx(Icon.StarFilled,{style:{color:"white"}}):jsxRuntime.jsx(Icon.StarOutlined,{}),style:{width:50},onClick:j}),jsxRuntime.jsx(antd.Dropdown,{overlay:N,onVisibleChange:_,visible:l,children:jsxRuntime.jsx(antd.Button,{style:{width:25},icon:jsxRuntime.jsx(Icon.DownOutlined,{style:{fontSize:"0.5em"}}),onClick:B=>B.preventDefault()})})]})};exports.ActionBar=FormActionBar,exports.Binary=Binary,exports.Boolean=Boolean$1,exports.Button=Button,exports.ButtonGroup=ButtonGroup,exports.Char=Char,exports.CodeEditor=CodeEditor,exports.ConnectionProvider=ConnectionProvider,exports.ContentRootProvider=ContentRootProvider$1,exports.CurrentTabContent=CurrentTabContent,exports.Dashboard=Dashboard$1,exports.DashboardGrid=DashboardGrid,exports.DashboardGridItem=DashboardGridItem,exports.Date=Date$1,exports.DateTime=DateTime,exports.Email=Email,exports.FavouriteButton=FavouriteButton,exports.Float=Float,exports.FloatTime=FloatTime,exports.Form=Form$1,exports.FormModal=FormModal,exports.GraphIndicator=GraphIndicator,exports.Group=Group,exports.Image=Image,exports.Integer=Integer,exports.Label=Label,exports.Many2one=Many2one,exports.MultiCheckbox=MultiCheckbox,exports.Notebook=Notebook,exports.One2many=One2many,exports.ProgressBar=ProgressBar,exports.Radio=Radio,exports.Reference=Reference,exports.RootView=RootView$1,exports.SearchFilter=SearchFilter,exports.SearchModal=SearchModal,exports.SearchTree=SearchTree$1,exports.Selection=Selection,exports.Separator=Separator,exports.Steps=Steps,exports.Switch=Switch,exports.TabSelector=TabSelector,exports.Tags=Tags,exports.Text=Text$2,exports.Tree=Tree,exports.Url=Url,exports.iconMapper=iconMapper,exports.showConfirmDialog=showDialog$9,Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
130
130
|
//# sourceMappingURL=react-ooui.umd.js.map
|