@steedos-widgets/fullcalendar 1.2.12 → 1.2.13

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.
@@ -20,4 +20,4 @@ config$1.touchMouseIgnoreWait=500;var ignoreMouseDepth=0,listenerCnt=0,isWindowT
20
20
  FullCalendar v5.11.4
21
21
  Docs & License: https://fullcalendar.io/
22
22
  (c) 2022 Adam Shaw
23
- */function renderInnerContent(e){return createElement(Fragment,null,e.text&&createElement("a",__assign$1({id:e.textId,className:"fc-list-day-text"},e.navLinkAttrs),e.text),e.sideText&&createElement("a",__assign$1({"aria-hidden":!0,className:"fc-list-day-side-text"},e.sideNavLinkAttrs),e.sideText))}var DEFAULT_TIME_FORMAT=createFormatter({hour:"numeric",minute:"2-digit",meridiem:"short"}),ListViewEventRow=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=e.seg,r=e.timeHeaderId,a=e.eventHeaderId,i=e.dateHeaderId,o=t.options.eventTimeFormat||DEFAULT_TIME_FORMAT;return createElement(EventRoot,{seg:n,timeText:"",disableDragging:!0,disableResizing:!0,defaultContent:function(){return renderEventInnerContent(n,t)},isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,isSelected:e.isSelected,isDragging:e.isDragging,isResizing:e.isResizing,isDateSelecting:e.isDateSelecting},(function(e,s,l,c,d){return createElement("tr",{className:["fc-list-event",d.event.url?"fc-event-forced-url":""].concat(s).join(" "),ref:e},buildTimeContent(n,o,t,r,i),createElement("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},createElement("span",{className:"fc-list-event-dot",style:{borderColor:d.borderColor||d.backgroundColor}})),createElement("td",{ref:l,headers:a+" "+i,className:"fc-list-event-title"},c))}))},t}(BaseComponent);function renderEventInnerContent(e,t){var n=getSegAnchorAttrs(e,t);return createElement("a",__assign$1({},n),e.eventRange.def.title)}function buildTimeContent(e,t,n,r,a){var i=n.options;if(!1!==i.displayEventTime){var o=e.eventRange.def,s=e.eventRange.instance,l=!1,c=void 0;if(o.allDay?l=!0:isMultiDayRange(e.eventRange.range)?e.isStart?c=buildSegTimeText(e,t,n,null,null,s.range.start,e.end):e.isEnd?c=buildSegTimeText(e,t,n,null,null,e.start,s.range.end):l=!0:c=buildSegTimeText(e,t,n),l){var d={text:n.options.allDayText,view:n.viewApi};return createElement(RenderHook,{hookProps:d,classNames:i.allDayClassNames,content:i.allDayContent,defaultContent:renderAllDayInner,didMount:i.allDayDidMount,willUnmount:i.allDayWillUnmount},(function(e,t,n,i){return createElement("td",{ref:e,headers:r+" "+a,className:["fc-list-event-time"].concat(t).join(" ")},i)}))}return createElement("td",{className:"fc-list-event-time"},c)}return null}function renderAllDayInner(e){return e.text}var ListView=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.computeDateVars=memoize(computeDateVars),t.eventStoreToSegs=memoize(t._eventStoreToSegs),t.state={timeHeaderId:getUniqueDomId(),eventHeaderId:getUniqueDomId(),dateHeaderIdRoot:getUniqueDomId()},t.setRootEl=function(e){e?t.context.registerInteractiveComponent(t,{el:e}):t.context.unregisterInteractiveComponent(t)},t}return __extends(t,e),t.prototype.render=function(){var e=this,t=this.props,n=this.context,r=["fc-list",n.theme.getClass("table"),!1!==n.options.stickyHeaderDates?"fc-list-sticky":""],a=this.computeDateVars(t.dateProfile),i=a.dayDates,o=a.dayRanges,s=this.eventStoreToSegs(t.eventStore,t.eventUiBases,o);return createElement(ViewRoot,{viewSpec:n.viewSpec,elRef:this.setRootEl},(function(n,a){return createElement("div",{ref:n,className:r.concat(a).join(" ")},createElement(Scroller,{liquid:!t.isHeightAuto,overflowX:t.isHeightAuto?"visible":"hidden",overflowY:t.isHeightAuto?"visible":"auto"},s.length>0?e.renderSegList(s,i):e.renderEmptyMessage()))}))},t.prototype.renderEmptyMessage=function(){var e=this.context,t=e.options,n=e.viewApi,r={text:t.noEventsText,view:n};return createElement(RenderHook,{hookProps:r,classNames:t.noEventsClassNames,content:t.noEventsContent,defaultContent:renderNoEventsInner,didMount:t.noEventsDidMount,willUnmount:t.noEventsWillUnmount},(function(e,t,n,r){return createElement("div",{className:["fc-list-empty"].concat(t).join(" "),ref:e},createElement("div",{className:"fc-list-empty-cushion",ref:n},r))}))},t.prototype.renderSegList=function(e,t){var n=this.context,r=n.theme,a=n.options,i=this.state,o=i.timeHeaderId,s=i.eventHeaderId,l=i.dateHeaderIdRoot,c=groupSegsByDay(e);return createElement(NowTimer,{unit:"day"},(function(e,n){for(var i=[],d=0;d<c.length;d+=1){var u=c[d];if(u){var p=formatDayString(t[d]),f=l+"-"+p;i.push(createElement(ListViewHeaderRow,{key:p,cellId:f,dayDate:t[d],todayRange:n}));for(var m=0,h=u=sortEventSegs(u,a.eventOrder);m<h.length;m++){var g=h[m];i.push(createElement(ListViewEventRow,__assign$1({key:p+":"+g.eventRange.instance.instanceId,seg:g,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:o,eventHeaderId:s,dateHeaderId:f},getSegMeta(g,n,e))))}}}return createElement("table",{className:"fc-list-table "+r.getClass("table")},createElement("thead",null,createElement("tr",null,createElement("th",{scope:"col",id:o},a.timeHint),createElement("th",{scope:"col","aria-hidden":!0}),createElement("th",{scope:"col",id:s},a.eventHint))),createElement("tbody",null,i))}))},t.prototype._eventStoreToSegs=function(e,t,n){return this.eventRangesToSegs(sliceEventStore(e,t,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,n)},t.prototype.eventRangesToSegs=function(e,t){for(var n=[],r=0,a=e;r<a.length;r++){var i=a[r];n.push.apply(n,this.eventRangeToSegs(i,t))}return n},t.prototype.eventRangeToSegs=function(e,t){var n,r,a,i=this.context.dateEnv,o=this.context.options.nextDayThreshold,s=e.range,l=e.def.allDay,c=[];for(n=0;n<t.length;n+=1)if((r=intersectRanges(s,t[n]))&&(a={component:this,eventRange:e,start:r.start,end:r.end,isStart:e.isStart&&r.start.valueOf()===s.start.valueOf(),isEnd:e.isEnd&&r.end.valueOf()===s.end.valueOf(),dayIndex:n},c.push(a),!a.isEnd&&!l&&n+1<t.length&&s.end<i.add(t[n+1].start,o))){a.end=s.end,a.isEnd=!0;break}return c},t}(DateComponent);function renderNoEventsInner(e){return e.text}function computeDateVars(e){for(var t=startOfDay(e.renderRange.start),n=e.renderRange.end,r=[],a=[];t<n;)r.push(t),a.push({start:t,end:addDays(t,1)}),t=addDays(t,1);return{dayDates:r,dayRanges:a}}function groupSegsByDay(e){var t,n,r=[];for(t=0;t<e.length;t+=1)(r[(n=e[t]).dayIndex]||(r[n.dayIndex]=[])).push(n);return r}var OPTION_REFINERS={listDayFormat:createFalsableFormatter,listDaySideFormat:createFalsableFormatter,noEventsClassNames:identity,noEventsContent:identity,noEventsDidMount:identity,noEventsWillUnmount:identity};function createFalsableFormatter(e){return!1===e?null:createFormatter(e)}var main=createPlugin({optionRefiners:OPTION_REFINERS,views:{list:{component:ListView,buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}}),commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==global?global:"undefined"!=typeof self?self:{},localesAll$1={};Object.defineProperty(localesAll$1,"__esModule",{value:!0});var l0={code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Heeldag",moreLinkText:"Addisionele",noEventsText:"Daar is geen gebeurtenisse nie"},l1={code:"ar-dz",week:{dow:0,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l2={code:"ar-kw",week:{dow:0,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l3={code:"ar-ly",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l4={code:"ar-ma",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l5={code:"ar-sa",week:{dow:0,doy:6},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l6={code:"ar-tn",week:{dow:1,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l7={code:"ar",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l8={code:"az",week:{dow:1,doy:4},buttonText:{prev:"Əvvəl",next:"Sonra",today:"Bu Gün",month:"Ay",week:"Həftə",day:"Gün",list:"Gündəm"},weekText:"Həftə",allDayText:"Bütün Gün",moreLinkText:function(e){return"+ daha çox "+e},noEventsText:"Göstərmək üçün hadisə yoxdur"},l9={code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",moreLinkText:function(e){return"+още "+e},noEventsText:"Няма събития за показване"},l10={code:"bn",week:{dow:0,doy:6},buttonText:{prev:"পেছনে",next:"সামনে",today:"আজ",month:"মাস",week:"সপ্তাহ",day:"দিন",list:"তালিকা"},weekText:"সপ্তাহ",allDayText:"সারাদিন",moreLinkText:function(e){return"+অন্যান্য "+e},noEventsText:"কোনো ইভেন্ট নেই"},l11={code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekText:"Sed",allDayText:"Cijeli dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nema događaja za prikazivanje"},l12={code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekText:"Set",allDayText:"Tot el dia",moreLinkText:"més",noEventsText:"No hi ha esdeveniments per mostrar"},l13={code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekText:"Týd",allDayText:"Celý den",moreLinkText:function(e){return"+další: "+e},noEventsText:"Žádné akce k zobrazení"},l14={code:"cy",week:{dow:1,doy:4},buttonText:{prev:"Blaenorol",next:"Nesaf",today:"Heddiw",year:"Blwyddyn",month:"Mis",week:"Wythnos",day:"Dydd",list:"Rhestr"},weekText:"Wythnos",allDayText:"Trwy'r dydd",moreLinkText:"Mwy",noEventsText:"Dim digwyddiadau"},l15={code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekText:"Uge",allDayText:"Hele dagen",moreLinkText:"flere",noEventsText:"Ingen arrangementer at vise"};function affix$1(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var l16={code:"de-at",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:function(e){return"+ weitere "+e},noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:function(e){return"Vorherige".concat(affix$1(e)," ").concat(e)},next:function(e){return"Nächste".concat(affix$1(e)," ").concat(e)},today:function(e){return"Tag"===e?"Heute":"Diese".concat(affix$1(e)," ").concat(e)}},viewHint:function(e){return e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht"},navLinkHint:"Gehe zu $0",moreLinkHint:function(e){return"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse")},closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"};function affix(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var l17={code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:function(e){return"+ weitere "+e},noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:function(e){return"Vorherige".concat(affix(e)," ").concat(e)},next:function(e){return"Nächste".concat(affix(e)," ").concat(e)},today:function(e){return"Tag"===e?"Heute":"Diese".concat(affix(e)," ").concat(e)}},viewHint:function(e){return e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht"},navLinkHint:"Gehe zu $0",moreLinkHint:function(e){return"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse")},closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"},l18={code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekText:"Εβδ",allDayText:"Ολοήμερο",moreLinkText:"περισσότερα",noEventsText:"Δεν υπάρχουν γεγονότα προς εμφάνιση"},l19={code:"en-au",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:function(e){return"Show ".concat(e," more event").concat(1===e?"":"s")}},l20={code:"en-gb",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:function(e){return"Show ".concat(e," more event").concat(1===e?"":"s")}},l21={code:"en-nz",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:function(e){return"Show ".concat(e," more event").concat(1===e?"":"s")}},l22={code:"eo",week:{dow:1,doy:4},buttonText:{prev:"Antaŭa",next:"Sekva",today:"Hodiaŭ",month:"Monato",week:"Semajno",day:"Tago",list:"Tagordo"},weekText:"Sm",allDayText:"Tuta tago",moreLinkText:"pli",noEventsText:"Neniuj eventoj por montri"},l23={code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"},l24={code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},buttonHints:{prev:"$0 antes",next:"$0 siguiente",today:function(e){return"Día"===e?"Hoy":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()}},viewHint:function(e){return"Vista "+("Semana"===e?"de la":"del")+" "+e.toLocaleLowerCase()},weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo el día",moreLinkText:"más",moreLinkHint:function(e){return"Mostrar ".concat(e," eventos más")},noEventsText:"No hay eventos para mostrar",navLinkHint:"Ir al $0",closeHint:"Cerrar",timeHint:"La hora",eventHint:"Evento"},l25={code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekText:"näd",allDayText:"Kogu päev",moreLinkText:function(e){return"+ veel "+e},noEventsText:"Kuvamiseks puuduvad sündmused"},l26={code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekText:"As",allDayText:"Egun osoa",moreLinkText:"gehiago",noEventsText:"Ez dago ekitaldirik erakusteko"},l27={code:"fa",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekText:"هف",allDayText:"تمام روز",moreLinkText:function(e){return"بیش از "+e},noEventsText:"هیچ رویدادی به نمایش"},l28={code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekText:"Vk",allDayText:"Koko päivä",moreLinkText:"lisää",noEventsText:"Ei näytettäviä tapahtumia"},l29={code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},l30={code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sm",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},l31={code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},l32={code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekText:"Sm",allDayText:"Todo o día",moreLinkText:"máis",noEventsText:"Non hai eventos para amosar"},l33={code:"he",direction:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",moreLinkText:"אחר",noEventsText:"אין אירועים להצגה",weekText:"שבוע"},l34={code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekText:"हफ्ता",allDayText:"सभी दिन",moreLinkText:function(e){return"+अधिक "+e},noEventsText:"कोई घटनाओं को प्रदर्शित करने के लिए"},l35={code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekText:"Tje",allDayText:"Cijeli dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nema događaja za prikaz"},l36={code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Lista"},weekText:"Hét",allDayText:"Egész nap",moreLinkText:"további",noEventsText:"Nincs megjeleníthető esemény"},l37={code:"hy-am",week:{dow:1,doy:4},buttonText:{prev:"Նախորդ",next:"Հաջորդ",today:"Այսօր",month:"Ամիս",week:"Շաբաթ",day:"Օր",list:"Օրվա ցուցակ"},weekText:"Շաբ",allDayText:"Ամբողջ օր",moreLinkText:function(e){return"+ ևս "+e},noEventsText:"Բացակայում է իրադարձությունը ցուցադրելու"},l38={code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sehari penuh",moreLinkText:"lebih",noEventsText:"Tidak ada acara untuk ditampilkan"},l39={code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekText:"Vika",allDayText:"Allan daginn",moreLinkText:"meira",noEventsText:"Engir viðburðir til að sýna"},l40={code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekText:"Sm",allDayText:"Tutto il giorno",moreLinkText:function(e){return"+altri "+e},noEventsText:"Non ci sono eventi da visualizzare"},l41={code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekText:"週",allDayText:"終日",moreLinkText:function(e){return"他 "+e+" 件"},noEventsText:"表示する予定はありません"},l42={code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekText:"კვ",allDayText:"მთელი დღე",moreLinkText:function(e){return"+ კიდევ "+e},noEventsText:"ღონისძიებები არ არის"},l43={code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekText:"Не",allDayText:"Күні бойы",moreLinkText:function(e){return"+ тағы "+e},noEventsText:"Көрсету үшін оқиғалар жоқ"},l44={code:"km",week:{dow:1,doy:4},buttonText:{prev:"មុន",next:"បន្ទាប់",today:"ថ្ងៃនេះ",year:"ឆ្នាំ",month:"ខែ",week:"សប្តាហ៍",day:"ថ្ងៃ",list:"បញ្ជី"},weekText:"សប្តាហ៍",allDayText:"ពេញមួយថ្ងៃ",moreLinkText:"ច្រើនទៀត",noEventsText:"គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ"},l45={code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekText:"주",allDayText:"종일",moreLinkText:"개",noEventsText:"일정이 없습니다"},l46={code:"ku",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"پێشتر",next:"دواتر",today:"ئەمڕو",month:"مانگ",week:"هەفتە",day:"ڕۆژ",list:"بەرنامە"},weekText:"هەفتە",allDayText:"هەموو ڕۆژەکە",moreLinkText:"زیاتر",noEventsText:"هیچ ڕووداوێك نیە"},l47={code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekText:"W",allDayText:"Ganzen Dag",moreLinkText:"méi",noEventsText:"Nee Evenementer ze affichéieren"},l48={code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekText:"SAV",allDayText:"Visą dieną",moreLinkText:"daugiau",noEventsText:"Nėra įvykių rodyti"},l49={code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekText:"Ned.",allDayText:"Visu dienu",moreLinkText:function(e){return"+vēl "+e},noEventsText:"Nav notikumu"},l50={code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekText:"Сед",allDayText:"Цел ден",moreLinkText:function(e){return"+повеќе "+e},noEventsText:"Нема настани за прикажување"},l51={code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sepanjang hari",moreLinkText:function(e){return"masih ada "+e+" acara"},noEventsText:"Tiada peristiwa untuk dipaparkan"},l52={code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekText:"Uke",weekTextLong:"Uke",allDayText:"Hele dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise",buttonHints:{prev:"Forrige $0",next:"Neste $0",today:"Nåværende $0"},viewHint:"$0 visning",navLinkHint:"Gå til $0",moreLinkHint:function(e){return"Vis ".concat(e," flere hendelse").concat(1===e?"":"r")}},l53={code:"ne",week:{dow:7,doy:1},buttonText:{prev:"अघिल्लो",next:"अर्को",today:"आज",month:"महिना",week:"हप्ता",day:"दिन",list:"सूची"},weekText:"हप्ता",allDayText:"दिनभरि",moreLinkText:"थप लिंक",noEventsText:"देखाउनको लागि कुनै घटनाहरू छैनन्"},l54={code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",moreLinkText:"extra",noEventsText:"Geen evenementen om te laten zien"},l55={code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekText:"Veke",allDayText:"Heile dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"},l56={code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekText:"Tydz",allDayText:"Cały dzień",moreLinkText:"więcej",noEventsText:"Brak wydarzeń do wyświetlenia"},l57={code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Lista"},weekText:"Sm",allDayText:"dia inteiro",moreLinkText:function(e){return"mais +"+e},noEventsText:"Não há eventos para mostrar"},l58={code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekText:"Sem",allDayText:"Todo o dia",moreLinkText:"mais",noEventsText:"Não há eventos para mostrar"},l59={code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekText:"Săpt",allDayText:"Toată ziua",moreLinkText:function(e){return"+alte "+e},noEventsText:"Nu există evenimente de afișat"},l60={code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekText:"Нед",allDayText:"Весь день",moreLinkText:function(e){return"+ ещё "+e},noEventsText:"Нет событий для отображения"},l61={code:"si-lk",week:{dow:1,doy:4},buttonText:{prev:"පෙර",next:"පසු",today:"අද",month:"මාසය",week:"සතිය",day:"දවස",list:"ලැයිස්තුව"},weekText:"සති",allDayText:"සියලු",moreLinkText:"තවත්",noEventsText:"මුකුත් නැත"},l62={code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekText:"Ty",allDayText:"Celý deň",moreLinkText:function(e){return"+ďalšie: "+e},noEventsText:"Žiadne akcie na zobrazenie"},l63={code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekText:"Teden",allDayText:"Ves dan",moreLinkText:"več",noEventsText:"Ni dogodkov za prikaz"},l64={code:"sm",buttonText:{prev:"Talu ai",next:"Mulimuli atu",today:"Aso nei",month:"Masina",week:"Vaiaso",day:"Aso",list:"Faasologa"},weekText:"Vaiaso",allDayText:"Aso atoa",moreLinkText:"sili atu",noEventsText:"Leai ni mea na tutupu"},l65={code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekText:"Ja",allDayText:"Gjithë ditën",moreLinkText:function(e){return"+më tepër "+e},noEventsText:"Nuk ka evente për të shfaqur"},l66={code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekText:"Сед",allDayText:"Цео дан",moreLinkText:function(e){return"+ још "+e},noEventsText:"Нема догађаја за приказ"},l67={code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekText:"Sed",allDayText:"Cеo dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nеma događaja za prikaz"},l68={code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},buttonHints:{prev:function(e){return"Föregående ".concat(e.toLocaleLowerCase())},next:function(e){return"Nästa ".concat(e.toLocaleLowerCase())},today:function(e){return("Program"===e?"Detta":"Denna")+" "+e.toLocaleLowerCase()}},viewHint:"$0 vy",navLinkHint:"Gå till $0",moreLinkHint:function(e){return"Visa ytterligare ".concat(e," händelse").concat(1===e?"":"r")},weekText:"v.",weekTextLong:"Vecka",allDayText:"Heldag",moreLinkText:"till",noEventsText:"Inga händelser att visa",closeHint:"Stäng",timeHint:"Klockan",eventHint:"Händelse"},l69={code:"ta-in",week:{dow:1,doy:4},buttonText:{prev:"முந்தைய",next:"அடுத்தது",today:"இன்று",month:"மாதம்",week:"வாரம்",day:"நாள்",list:"தினசரி அட்டவணை"},weekText:"வாரம்",allDayText:"நாள் முழுவதும்",moreLinkText:function(e){return"+ மேலும் "+e},noEventsText:"காண்பிக்க நிகழ்வுகள் இல்லை"},l70={code:"th",week:{dow:1,doy:4},buttonText:{prev:"ก่อนหน้า",next:"ถัดไป",prevYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",year:"ปี",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"กำหนดการ"},weekText:"สัปดาห์",allDayText:"ตลอดวัน",moreLinkText:"เพิ่มเติม",noEventsText:"ไม่มีกิจกรรมที่จะแสดง"},l71={code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"},l72={code:"ug",buttonText:{month:"ئاي",week:"ھەپتە",day:"كۈن",list:"كۈنتەرتىپ"},allDayText:"پۈتۈن كۈن"},l73={code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekText:"Тиж",allDayText:"Увесь день",moreLinkText:function(e){return"+ще "+e+"..."},noEventsText:"Немає подій для відображення"},l74={code:"uz",buttonText:{month:"Oy",week:"Xafta",day:"Kun",list:"Kun tartibi"},allDayText:"Kun bo'yi",moreLinkText:function(e){return"+ yana "+e},noEventsText:"Ko'rsatish uchun voqealar yo'q"},l75={code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekText:"Tu",allDayText:"Cả ngày",moreLinkText:function(e){return"+ thêm "+e},noEventsText:"Không có sự kiện để hiển thị"},l76={code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekText:"周",allDayText:"全天",moreLinkText:function(e){return"另外 "+e+" 个"},noEventsText:"没有事件显示"},l77={code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekText:"周",allDayText:"整天",moreLinkText:"顯示更多",noEventsText:"没有任何活動"},localesAll=[l0,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,l15,l16,l17,l18,l19,l20,l21,l22,l23,l24,l25,l26,l27,l28,l29,l30,l31,l32,l33,l34,l35,l36,l37,l38,l39,l40,l41,l42,l43,l44,l45,l46,l47,l48,l49,l50,l51,l52,l53,l54,l55,l56,l57,l58,l59,l60,l61,l62,l63,l64,l65,l66,l67,l68,l69,l70,l71,l72,l73,l74,l75,l76,l77],_default=localesAll$1.default=localesAll,freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$1=freeGlobal||freeSelf||Function("return this")(),_root=root$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol;Symbol$2&&Symbol$2.toStringTag;var Symbol$1=_Symbol;Symbol$1&&Symbol$1.toStringTag;var funcProto=Function.prototype,funcToString=funcProto.toString;funcToString.call(Object);const getBuilderContext=()=>"undefined"==typeof window?{}:Builder.settings.context?Builder.settings.context:Builder.settings;async function fetchAPI(e,t={credentials:"include"}){const n={"Content-Type":"application/json"},r=getAuthorization();r&&(n.Authorization=r),t.headers=Object.assign({},n,t.headers),t.credentials="include";const a=await fetch(`${getRootUrl()}${e}`,t);if(401===a.status)throw new Error(401);const i=await a.json();if(i.errors)throw console.error(i.errors),new Error("Failed to fetch API");return i}function getAuthorization(){try{const e=getBuilderContext();let t=e.tenantId,n=e.authToken;return t&&n?`Bearer ${t},${n}`:null}catch(e){console.error(e)}}function getUserId(){try{let e=getBuilderContext().userId;return e||null}catch(e){console.error(e)}}function getRootUrl(e){const t=getBuilderContext();if(t.rootUrl)return t.rootUrl;const n="undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"";return n||e}const Router={getTabDisplayAs(e){var t=new URLSearchParams(document.location.search);if(t.has("display"))return t.get("display");const n=localStorage.getItem("page_display");return n||"grid"},setTabDisplayAs(e,t){const n=`tab.${e}.display`;localStorage.setItem(n,t)},getAppPath:({formFactor:e,appId:t})=>`/app/${t}`,getPagePath(){},getObjectListViewPath:({formFactor:e,appId:t,objectName:n,listViewName:r})=>`/app/${t}/${n}/grid/${r}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:r,recordId:a,listViewName:i,_templateType:o}=e,s=Router.getTabDisplayAs(r);return"JavaScript"===o?`/app/${n}/${r}/view/${a}?display=${s}&side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${r}/view/${a}?display=${s}&side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:r,objectName:a,foreignKey:i})=>`/app/${t}/${n}/${r}/${a}/grid?related_field_name=${i}`};function getContrastColor(e){var t="#"===e.charAt(0)?e.substring(1,7):e;return(299*parseInt(t.substr(0,2),16)+587*parseInt(t.substr(2,2),16)+114*parseInt(t.substr(4,2),16))/1e3<128?"#ffffff":"#000000"}function getNumberTpl(e){return`<div>\${_display.${e.name}}</div>`}function getTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFieldTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFileSizeTpl(e){return`<div>\${_display.${e.name}}</div>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<div>\${_display.${e.name}}</div>`}function getSelectMap(e){let t={};return ___default.forEach(e,(e=>{const n=e.value+"",r=e.color+"";if(r){const a="#"===r.charAt(0)?r:"#"+r,i="background:"+a+";color:"+getContrastColor(a);t[n]=`<span class="rounded-xl px-2 py-1" style='${i}'>${e.label}</span>`}else t[n]=e.label})),t}function getNameTplUrl(e,t){if("cms_files"===t.objectName)return"${context.rootUrl}/api/files/files/${versions[0]}?download=true";return Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){return`<a href="${getNameTplUrl(e,t)}">\${${e.name}}</a>`}function getRelatedFieldTpl(e,t){let n="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;const r=t.onlyDisplayLabel;let a=`data._display.${e.name}`;if(e.isTableField&&(a=`data.${e.name}`),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}"><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item,index) { %> <% if(index>0 && index<${a}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let a=`\${_display.${e.name}.label}`,i=`\${_display.${e.name}.objectName}`,o=`\${_display.${e.name}.value}`;if(e.isTableField&&(a=`\${${e.name}.label}`,i=`\${${e.name}.objectName}`,o=`\${${e.name}.value}`),!r){a=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${i}`,recordId:`${o}`})}">${a}</a>`}n=a}else{let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}"><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item) { %> ${e} <% }); %><% } %>\n `}return n}async function getLookupTpl(e,t){if(!e.reference_to)return getSelectTpl(e);const n=await getRefObjectNameFieldName(e);if(e.multiple){const r=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"});return`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${r}"><%=item.${n}%></a> <% }); %><% } %>\n `}return`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${n}}</a>`}function getSwitchTpl(e){return`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">\n <span ><%= data._display.${e.name} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : data._display.${e.name} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLabel)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return await getRelatedFieldTpl(e,t);case"number":case"currency":return await getNumberTpl(e);case"percent":case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t){0!=t&&(t=!0);let n=["_id"],r=[],a=[];a=___default__namespace.isArray(e)?e:___default__namespace.values(e);for(const e of a)e.name.indexOf(".")<0&&(!t||"lookup"!=e.type&&"master_detail"!=e.type?n.push(e.alias?`${e.alias}:${e.name}`:e.name):(n.push(`${e.name}`),r.push(`${e.name}`)),___default.includes(["time","date","datetime","boolean","number","currency"],e.type)&&n.push(`${e.name}`),___default.includes(["percent","time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],e.type)&&r.push(`${e.name}`));return r=___default__namespace.uniq(r),n=___default__namespace.uniq(n),r.length>0?`${n.join(",")},_display:_ui{${r.join(",")}}`:`${n.join(" ")}`}async function getFindQuery(e,t,n,r){let a=r.limit||10,i=`(top: ${a})`;t&&(i=`(filters:["_id", "=", "${t}"], top: ${a})`);let o="data";r&&(r.alias&&(o=r.alias),r.filters&&(i=`(filters:${r.filters})`),r.queryOptions&&(i=`(${r.queryOptions})`));var s="";e.enable_tree&&___default__namespace.includes(___default__namespace.keys(e.fields),"parent")&&___default__namespace.includes(___default__namespace.keys(e.fields),"children")&&(s=",parent,children");var l="";"cms_files"===e.name&&(l=",versions");const c=!1===r.count?"":`,count:${e.name}__count(filters:{__filters})`,d=r.moreQueries?.length?","+r.moreQueries.map((function(e){return e.replace(/^{/,"").replace(/}$/,"")})).join(","):"";return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${o}:${e.name}${i}{${await getFieldsTemplate(n,r.expand)}${s}${l}}${c}${d}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql?reload=${additionalFilters}"}async function getListBody(e,t){const n=[];for(const r of e){const e=await getFieldTpl(r,t);let a="text";e&&(a="tpl"),r.hidden||r.extra||n.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:a,tpl:e,toggled:r.toggled})}return{type:"hbox",columns:n}}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||10}}async function getListSchema$1(e,t){const n=(await getListBody(e,t)).columns;return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...n],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}const getSchema$4=async(e,t)=>({type:"service",body:[{type:"button",label:"新建",id:"u:standard_new",level:"default",onEvent:{click:{weight:0,actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",_master:"${_master}","_master._isRelated":"${_isRelated}","_master.relatedKey":"${relatedKey}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",displayAs:"${displayAs}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}"},title:"新建 ${uiSchema.label}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}",_master:"${_master}",url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"return { ...api, url: api.body.url }",adaptor:`\n let formSchema = {\n "type": "steedos-object-form",\n "label": "对象表单",\n "objectApiName": "\${objectName}",\n "recordId": "",\n "mode": "edit",\n "layout": "normal"\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId;\n let relatedKeySaveValue = recordId;\n const fields = ${JSON.stringify(e.fields)};\n const relatedField = fields[relatedKey];\n if(relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let defaultData = {}; \n let relatedKeyValue; \n if(!_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n\n return {\n data: formSchema\n };\n `}}],showCloseButton:!0,id:"u:e11347411d2d",closeOnEsc:!1,closeOnOutside:!1,size:"lg",actions:[{type:"button",actionType:"cancel",label:"取消"},{type:"button",label:"保存并新建",actionType:"confirm",close:!1,id:"confirmAndNew"},{type:"button",actionType:"confirm",label:"保存",primary:!0}]}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"});async function getObjectFieldsFilterFormSchema(e){e||(e={});return{type:"service",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===e.formFactor?"slds-filters__body p-0 mb-2":"slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",schemaApi:{method:"post",url:"${context.rootUrl}/graphql?reload=${filterFormSearchableFields|join}",data:{$self:"$$",query:'{\n data: objects(filters: [["_id","=",null]],top: 1, skip: 0){_id}\n }'},requestAdaptor:"\n return {\n ...api,\n data: {\n query: api.data.query\n }\n };\n ",adaptor:`\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n "body": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn("run function getFieldSearchable failed.");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n delete field.defaultValue;\n delete field.required;\n delete field.is_wide;\n delete field.readonly;\n delete field.hidden;\n delete field.omit;\n var ctx = ${JSON.stringify(e)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}async function getObjectFieldsFilterBarSchema(e,t){t||(t={});const n="btn_filter_form_search_"+(new Date).getTime();return{type:"service",name:"service_listview_filter_form",data:{},dataProvider:{inited:'\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listViewId = data.listViewId;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields/";\n if(isLookup){\n searchableFieldsStoreKey += "lookup/" + objectName;\n }\n else{\n searchableFieldsStoreKey += listViewId;\n }\n let defaultSearchableFields = sessionStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(",");\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, \'field\');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.searchable;\n }), "sort_no"),\n "name"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: false });\n }\n else{\n const listViewPropsStoreKey = location.pathname + "/crud/" + data.listViewId ;\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let isMobile = Steedos.isMobile();\n if(isMobile){\n // 手机端不展开,只显示搜索按钮上的红点\n let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n }\n else{\n setData({ showFieldsFilter: true });\n }\n }\n }\n }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[await getObjectFieldsFilterFormSchema(t),{type:"wrapper",body:{type:"wrapper",body:[{type:"button",id:n,label:"搜索",icon:"fa fa-search",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n\n let isMobile = Steedos.isMobile();\n if(isMobile){\n // 手机端点击搜索的时候自动收起搜索栏\n let resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 500);\n }\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({showFieldsFilter: false});\n resizeWindow();\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。\n let filterFormValues = event.data;\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter: false});\n }\n '}]}}},{type:"button",label:"取消",name:"btn_filter_form_cancel",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n var filterFormValues = filterForm.getValues();\n var listView = scope.parent.parent.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listViewId = event.data.listViewId;\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n removedValues[k] = null;\n }\n }\n }\n filterForm.reset();\n listView.handleFilterSubmit(removedValues);\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 100);\n let isMobile = Steedos.isMobile();\n if(isMobile){\n // 手机端移除搜索按钮上的红点\n let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n }\n '}]}}},{type:"button",label:"设置搜索项",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:"设置搜索项",body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{$self:"$$"},requestAdaptor:"",adaptor:'\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = (payload.data?.options || []).filter(function(item){\n let field = fields[item.value];\n return !!field && window.isFieldTypeSearchable(field.type)\n });\n payload.data = {\n "options": options\n };\n return payload;\n '},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],id:"u:ca99fa9fe1b1",actions:[{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:"确认",onEvent:{click:{actions:[{actionType:"custom",script:'\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listViewId = data.listViewId;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为"listview-filter-form"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields/";\n if(isLookup){\n searchableFieldsStoreKey += "lookup/" + objectName;\n }\n else{\n searchableFieldsStoreKey += listViewId;\n }\n sessionStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === "string"){\n preSearchableFields = preSearchableFields.split(",");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, "form", "listview-filter-form");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 100)\n // ===END===\n '},{actionType:"click",componentId:n},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},id:"u:b96d84868a5a",level:"link"}],size:"xs",className:"space-x-4"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters"},size:"xs",className:`border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap ${!t.isLookup&&"mt-2"}`,visibleOn:"this.showFieldsFilter"},className:"bg-white"}}async function getObjectListHeaderFieldsFilterBar(e,t,n){return await getObjectFieldsFilterBarSchema(e,n)}const getExportExcelToolbarButtonSchema=()=>({type:"button",icon:"fa fa-download",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",tooltipPlacement:"bottom",visibleOn:"${!isLookup && global.user.is_space_admin}",tooltip:"导出Excel",onEvent:{click:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/record/export/${objectName}",method:"get",messages:{},requestAdaptor:`${requestAdaptor$1()}`,data:{uiSchema:"${uiSchema}",listName:"${listName}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download"}]}}});function requestAdaptor$1(){return'\n // 获取列表视图的属性\n let uiSchema = api.body.uiSchema;\n let list_views = uiSchema.list_views;\n let list_views_name = api.body.listName;\n let col = list_views[list_views_name].columns;\n let sort_test = list_views[list_views_name].sort;\n \n // 获取下载字段\n let select = [];\n _.each(col, (col) => {\n if (col.field == undefined)\n select.push(col);\n else select.push(col.field);\n });\n \n // 获取排序字段\n \n let sort = [];\n _.forEach(sort_test, (sortField) => {\n if (sortField.field_name == undefined)\n sort.push(sortField);\n else sort.push([sortField.field_name, sortField.order]);\n })\n \n let orders = [];\n _.map(sort, (value) => {\n let order_tmp = [];\n if (value[1] == "desc")\n order_tmp = value[0] + \' desc\';\n else\n order_tmp = value[0];\n orders.push(order_tmp);\n });\n let order = orders.join(\',\');\n \n let filename = uiSchema.label + "-" + list_views[list_views_name].label;\n \n url_tmp = api.url.split(\'?\')[0];\n api.url = url_tmp + "?$select=" + select.toString() + "&filename=" + filename;\n \n // 判断sort 和 filters\n if (sort.length > 0) {\n api.url += "&$orderby=" + order;\n }\n let filters = list_views[list_views_name].filters;\n if (filters && filters.length > 0) {\n api.url = api.url + "&filters=" + JSON.stringify(filters);\n }\n return api;\n '}const getNewListviewButtonSchema=()=>({type:"button",label:"新建",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"新建 列表视图",data:{all:"${uiSchema.list_views.all}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",targetObjectName:"${objectName}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",defaultData:{"&":"${list_view}",name:"",label:"",filters:"",shared:!1},fieldsExtend:fieldsExtend$4(),fields:fields$1(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"}]}},messages:{success:"成功",failed:"失败"}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields$1(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared"]}function fieldsExtend$4(){return{label:{is_wide:!0},name:{amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{amis:{visibleOn:"${global.user.is_space_admin}"}}}}const getCopyListviewButtonSchema=()=>({type:"button",label:"复制",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"复制 列表视图",data:{listName:"${listName}",targetObjectName:"${objectName}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",defaultData:{"&":"${list_view}",name:"",label:"${list_view.label} 的副本",shared:!1},fieldsExtend:fieldsExtend$3(),fields:fields(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared"]}function fieldsExtend$3(){return{label:{is_wide:!0},name:{is_wide:!0,amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{amis:{visibleOn:"${global.user.is_space_admin}"}}}}const getRenameListviewButtonSchema=()=>({type:"button",label:"重命名",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"重命名 列表视图",data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["label"],fieldsExtend:'{\n "label":{\n "is_wide": true\n }\n}',onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}}),getSetListviewShareButtonSchema=()=>({type:"button",label:"共享设置",disabledOn:"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"共享设置",data:{recordId:"${uiSchema.list_views[listName]._id}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["shared"]}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"md"},actionType:"dialog"}]}}}),getSetListviewFiltersButtonSchema=()=>({type:"button",label:"过滤设置",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"过滤设置",data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["filters"],initApiAdaptor:initApiAdaptor$2(),apiRequestAdaptor:apiRequestAdaptor$2(),fieldsExtend:fieldsExtend$2(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function initApiAdaptor$2(){return"\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$2(){return"\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}function fieldsExtend$2(){return{filters:{visible_on:"true",amis:{type:"condition-builder",label:"条件组件1",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}const getSetListviewColumnsButtonSchema=()=>({type:"button",label:"显示的列",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{args:{},dialog:{type:"dialog",title:"显示的列",data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fieldsExtend:fieldsExtend$1(),initApiAdaptor:initApiAdaptor$1(),apiRequestAdaptor:apiRequestAdaptor$1(),fields:["columns","mobile_columns"],onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}}}],searchable:!0,showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}});function fieldsExtend$1(){return{columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}},mobile_columns:{group:"手机端",amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor$1(){return"\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$1(){return"\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns?.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns?.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n "}const getSetListviewSortButtonSchema=()=>({type:"button",label:"默认排序规则",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"默认排序规则",data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",className:"",id:"u:061f158b4c5a",mode:"edit",fields:["sort","sort.$.field_name","sort.$.order"],onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}},fieldsExtend:fieldsExtend(),initApiAdaptor:initApiAdaptor(),apiRequestAdaptor:apiRequestAdaptor()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,id:"u:d3f6947b6acf",size:"lg"},actionType:"dialog"}]}}});function fieldsExtend(){return{sort:{amis:{type:"tabs-transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor(){return"\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor(){return"\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort?.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}const getDeleteListviewButtonSchema=()=>({type:"button",label:"删除",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",confirmText:"如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?",onEvent:{click:{actions:[{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{"&":"$$",uiSchema:"${uiSchema}",recordId:"${uiSchema.list_views[listName]._id}"},messages:{success:"删除成功"},requestAdaptor:requestAdaptor(),adaptor:adaptor()}}},{actionType:"url",args:{url:"${context.rootUrl}/app/${appId}/${objectName}/grid/all",blank:!1},expression:"data.delete == 1"}]}}});function requestAdaptor(){return"\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(`delete:object_listviews__delete(id: \"${recordId}\")`); }\n api.data = { query: `mutation{${deleteArray.join(',')}}` };\n return api;\n "}function adaptor(){return"\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "}const getSettingListviewToolbarButtonSchema=()=>({type:"dropdown-button",trigger:"click",icon:"fa fa-cog",btnClassName:"antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",align:"right",visibleOn:"${!isLookup}",buttons:[{label:"列表视图操作",children:[getNewListviewButtonSchema(),getCopyListviewButtonSchema(),getRenameListviewButtonSchema(),getSetListviewShareButtonSchema(),getSetListviewFiltersButtonSchema(),getSetListviewColumnsButtonSchema(),getSetListviewSortButtonSchema(),getDeleteListviewButtonSchema()]}]}),getDisplayAsButton=function(e,t){let n=Router.getTabDisplayAs(e);return{type:"dropdown-button",icon:"fa fa-table-columns",btnClassName:"antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",align:"right",visibleOn:"${window:innerWidth > 768 && !!!isLookup}",buttons:[{label:"显示为",children:[{type:"button",label:"表格",onClick:'let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get("side_object") && urlSearch.get("side_listview_id")){url=`/app/${props.data.appId}/${urlSearch.get("side_object")}/grid/${urlSearch.get("side_listview_id")}`;}; props.env.jumpTo(url + \'?display=grid\');',rightIcon:"split"!=n?"fa fa-check":null,rightIconClassName:"m-l-sm"},{type:"button",label:"分栏视图",onClick:"const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",rightIcon:"split"===n?"fa fa-check":null,rightIconClassName:"m-l-sm"}]}]}},onFieldsFilterToggleScript='\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n});\n// filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\nlet resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 500);\n}\nlet isMobile = Steedos.isMobile();\nif(filterService.props.data.showFieldsFilter){\n if(isMobile){\n // 手机上只能通过取消按钮来关闭搜索栏\n return;\n }\n let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", { \n direction: "down", \n name: "btn_filter_form_cancel" \n });\n buttonCancel.props.dispatchEvent(\'click\', {}).then(function(){\n resizeWindow();\n });\n}\nelse{\n filterService.setData({showFieldsFilter: true});\n resizeWindow();\n if(isMobile){\n // 手机端在显示搜索栏时隐藏刷新按钮\n let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n crudService && crudService.setData({showFieldsFilter: true});\n }\n}\n';function getObjectHeaderToolbar(e,t,{showDisplayAs:n=!1,hiddenCount:r=!1,headerToolbarItems:a,filterVisible:i=!0}={}){if(window.innerWidth<768&&(n=!1),"SMALL"===t){return[...a||[],r?{}:{type:"tpl",tpl:"${count} 个项目"},{type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",label:"",icon:"fa fa-sync",visibleOn:"${!showFieldsFilter}",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleChangePage(1);\n '}]}}},i?{label:"",icon:"fa fa-search",type:"button",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false}"},align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}}:{},getDisplayAsButton(e?.name)]}return[...a||[],"bulkActions",{type:"columns-toggler",className:"hidden"},r?{}:{type:"tpl",tpl:"${count} 个项目"},{type:"reload",align:"right",tooltipPlacement:"bottom",className:"bg-white p-2 rounded border-gray-300 text-gray-500"},getExportExcelToolbarButtonSchema(),i?{label:"",icon:"fa fa-search",type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}}:{},getSettingListviewToolbarButtonSchema(),getDisplayAsButton(n)]}function getObjectFooterToolbar(e,t){return"SMALL"===t?["load-more"]:["switch-per-page","statistics","pagination"]}async function getObjectFilter(e,t,n){return{title:"",submitText:"",className:"",mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,n)]}}async function getSource(e,t){const n=t.objectName,r=await getFindQuery({name:n},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],{alias:"options",filters:"{__filters}"});r.query=r.query.replace(/,count\:.+/,"}");const a=await getFindQuery({name:n},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"}],{alias:"defaultValueOptions",filters:"{__options_filters}"});a.query=a.query.replace(/,count\:.+/,"}"),r.query=r.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}"));let i=`${e.name}`;e._prefix&&(i=`${e._prefix}${e.name}`),t.fieldNamePrefix&&(i=`${t.fieldNamePrefix}${i}`),r.$value=`$${i}`;const o=`\n var filters = [['parent', '=', null]];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;return{method:"post",url:getApi$2(),requestAdaptor:o,adaptor:'\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n ',data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){const n=t.objectName,r=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let a=e.filters;"string"==typeof a&&(a=new Function(`return ${a}`),a=a()),"function"==typeof a&&(a=a(e)),r.query=r.query.replace(/,count\:.+/,"}"),r.query=r.query.replace("{_id}","{{__fields}}");const i=`\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = "";\n if (dep) {\n objectName = "${n}";\n fields = "_id,value:${t.valueField},label:${t.labelField},children";\n filters = [['parent', '=', dep]];\n sort = "${t.sort}";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"&dep=${value}",requestAdaptor:i,adaptor:"\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ",data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){const t=___default__namespace.find(e.list_views,((e,t)=>"all"===t));let n="";return t&&(n=getListViewSort(t)),n}async function lookupToAmisTreeSelect(e,t,n){if(!e)return{};n||(n={});const r={type:getAmisStaticFieldType("tree-select",t)};if(t)r.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(r,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,n),deferApi:await getDeferApi(e,n)}),e.multiple&&Object.assign(r,{joinValues:!1}),"boolean"!=typeof r.searchable&&(r.searchable=!0);const a=e.onEvent;a&&(r.onEvent=a)}return r}const getReferenceTo=async e=>{let t=e.reference_to;if(!t)return;"users"===t&&(t="space_users",e.reference_to_field="user");const n=await getUISchema(t);if(!n)return null;let r=null,a=e.reference_to_field;return a||(a=n.idFieldName||"_id"),r="_id"===a?{name:"_id",label:"ID",type:"text",toggled:!1}:n.fields[a]||{name:a},{objectName:t,valueField:r,labelField:n.fields[n.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:n.NAME_FIELD_KEY||"name"}};function getLookupSapceUserTreeSchema(){return[{type:"input-tree",className:"",inputClassName:"pl-0",id:"u:7fd77b7915b0",source:{method:"post",url:"${context.rootUrl}/graphql",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ",requestAdaptor:"\n ",data:{query:'{options:organizations(filters:["hidden", "!=", true],sort:"sort_no desc"){value:_id label:name,parent,children}}'},messages:{},cache:3e5},onEvent:{change:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterFormValues={\n "__searchable__organizations_parents":event.data.value.value\n }\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n '}]}},label:"",name:"organizations",multiple:!1,joinValues:!1,clearValueOnHidden:!1,fieldName:"organizations",hideRoot:!0,initiallyOpen:!1,extractValue:!0,onlyChildren:!0,treeContainerClassName:"no-border",showIcon:!1,enableNodePath:!1,autoCheckChildren:!1,searchable:!0,searchConfig:{sticky:!0},unfoldedLevel:2,style:{"max-height":"100%",position:"absolute",left:"-200px",width:"190px",bottom:0,top:"-14px",overflow:"auto","min-height":"300px"},originPosition:"left-top"}]}async function lookupToAmisPicker(e,t,n){let r=await getReferenceTo(e);if(!r)return;const a=await getUISchema(r.objectName),i=[];let o=0;const s=[],l=[],c=___default__namespace.find(a.list_views,((e,t)=>"all"===t));c&&c.columns?___default__namespace.each(c.columns,(function(e){___default__namespace.isString(e)&&a.fields[e]?l.push(a.fields[e]):___default__namespace.isObject(e)&&a.fields[e.field]&&l.push(Object.assign({},a.fields[e.field],{width:e.width,wrap:e.wrap}))})):___default__namespace.each(a.fields,((e,t)=>{"_id"==t||e.hidden||(___default__namespace.has(e,"name")||(e.name=t),l.push(e))})),___default__namespace.each(___default__namespace.sortBy(l,"sort_no"),(function(e){o<5&&(___default__namespace.find(i,(function(t){return t.name===e.name}))||(o++,i.push(e),e.searchable&&s.push(e.name)))}));const d={[r.labelField.name]:r.labelField,[r.valueField.name]:r.valueField};___default__namespace.each(i,(e=>{e.hidden||(d[e.name]=e)}));let u="";c&&(u=getListViewSort(c));const p=await getApi$1(a,null,d,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});if(p.url&&!n.inFilterForm){const t=[],n=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(p.url=`${p.url}?${t.join("&")}`,p.sendOn=`${n.join(" && ")}`)}p.data.$term="$term",p.data.$self="$$",p.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${u}";\n var allowSearchFields = ${JSON.stringify(s)};\n let fieldValue;\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [["${r.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${r.valueField.name}", "=", fieldValue]];\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, "contains", keyValue]);\n }\n })\n }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${n.inFilterForm};\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${a.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `,p.adaptor=`\n const enable_tree = ${a.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, ["${r.labelField.name}", "${r.valueField.name}"]);\n })\n payload.data.rows = rows;\n return payload;\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `,(e.optionsFunction||e._optionsFunction)&&(p.adaptor=`\n payload.data.rows = eval(${e.optionsFunction||e._optionsFunction})(api.data.$self);\n return payload;\n `);let f=20;a.paging&&!1===a.paging.enabled&&(f=1e3);let m=null;if("SMALL"===n.formFactor)m=await getListSchema$1(i,{top:f,...n,actions:!1});else{m=await getTableSchema$1(i,{labelFieldName:a.NAME_FIELD_KEY,top:f,...n}),m.affixHeader=!1;var h=[];const t=window.innerWidth<768;"space_users"!==r.objectName||"user"!==e.reference_to_field||t||(h=getLookupSapceUserTreeSchema(),m.style={"margin-left":"200px","min-height":"300px"}),m.headerToolbar=getObjectHeaderToolbar(a,n.formFactor,{headerToolbarItems:h});if(a.permissions.allowCreate){const e=await getSchema$4(a,{appId:n.appId,objectName:a.name,formFactor:n.formFactor});e.align="right",m.headerToolbar.push(e)}m.footerToolbar=a.enable_tree?[]:getObjectFooterToolbar(),!1!==n.filterVisible&&(m.filter=await getObjectFilter(a,d,{isLookup:!0,...n})),m.data=Object.assign({},m.data,{"&":"$$",objectName:a.name,uiSchema:a,listName:"all",isLookup:!0}),m.onEvent||(m.onEvent={}),m.onEvent[`@data.changed.${a.name}`]={actions:[{actionType:"reload"}]}}const g={type:getAmisStaticFieldType("picker",t),labelField:r.labelField.name,valueField:r.valueField.name,modalMode:"dialog",source:p,size:"lg",pickerSchema:m,joinValues:!1,extractValue:!0};return e.multiple&&(g.multiple=!0,g.extractValue=!0),t&&(g.tpl=await getLookupTpl(e,n)),g}async function lookupToAmisSelect(e,t,n){let r=await getReferenceTo(e);const a=r&&r.valueField?.name||"_id";let i;if(r){const e=await getFindQuery({name:r.objectName},null,[Object.assign({},r.labelField,{alias:"label"}),Object.assign({},r.valueField,{alias:"value"})],{alias:"defaultValueOptions",filters:"{__options_filters}",count:!1});i=await getApi$1({name:r.objectName},null,[Object.assign({},r.labelField,{alias:"label"}),Object.assign({},r.valueField,{alias:"value"})],{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"',moreQueries:[e.query]}),i.adaptor='\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n '}else i={method:"post",url:getApi$2(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};const o=r&&await getUISchema(r.objectName),s=o&&___default__namespace.find(o.list_views,((e,t)=>"all"===t));let l="";if(s&&(l=getListViewSort(s)),i.url&&!n.inFilterForm){const t=[],n=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(i.url=`${i.url}?${t.join("&")}`,i.sendOn=`${n.join(" && ")}`)}i.data.$term="$term",i.data.$value=n.isRefToMutiple?`$${e.name}.ids`:`$${e.name}`,___default__namespace.each(e.depend_on,(function(e){i.data[e]=`$${e}`})),i.data.$="$$",i.data.rfield="${object_name}",i.requestAdaptor=`\n var filters = [];\n var top = 10;\n if(api.data.$term){\n filters = [["${r?.NAME_FIELD_KEY||"name"}", "contains", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [["_id", "=", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n\n const inFilterForm = ${n.inFilterForm};\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${l}";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${a}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${a}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,r&&r.labelField.name,r&&r.valueField.name,(e.optionsFunction||e._optionsFunction)&&(i.adaptor=`\n var options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `);const c={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,clearable:!0,source:i,autoComplete:i,searchable:!0};return c.menuTpl="${icon ? `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>` : label}",e.multiple&&(c.multiple=!0,c.extractValue=!0),t&&(c.tpl=await getLookupTpl(e,n)),c}async function getApi$1(e,t,n,r){const a=await getFindQuery(e,t,n,r);return{method:"post",url:getApi$2(),data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function lookupToAmis(e,t,n){if(n||(n={}),t)return{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,n)};if(e.reference_to&&!___default__namespace.isString(e.reference_to)&&!t)return{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}};let r=await getReferenceTo(e);if(!r)return await lookupToAmisSelect(e,t,n);if("space_users"===r.objectName&&"user"===e.reference_to_field&&(n.idsDependOn||e.amis))return await lookupToAmisIdsPicker(e,t,n);const a=await getUISchema(r.objectName);return 1==a.enable_enhanced_lookup&&___default__namespace.isEmpty(e.depend_on)?await lookupToAmisPicker(e,t,n):a.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:r.labelField?.name||"name",valueField:r.valueField?.name||"_id",objectName:r.objectName})):await lookupToAmisSelect(e,t,n)}async function lookupToAmisIdsPicker(e,t,n){return getIdsPickerSchema(e,t,n)}async function getIdsPickerSchema(e,t,n){n||(n={});let r=await getReferenceTo(e);if(!r)return;const a=await getUISchema(r.objectName),{idsDependOn:i}=n,o={[r.labelField.name]:r.labelField,[r.valueField.name]:r.valueField},s=[r.labelField],l=await getApi$1(a,null,o,{expand:!0,alias:"rows",queryOptions:"filters: {__filters}, top: {__top}, skip: {__skip}"});l.data.$term="$term",l.data.$self="$$",i&&l.url&&!n.inFilterForm&&(l.sendOn=`\${${i} && ${i}.length}`,l.url=`${l.url}&depend_on_${i}=\${${i}|join}`),l.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [["${r.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${r.valueField.name}", "=", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = "${i}";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push(["${r.valueField.name}", "=", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip);\n return api;\n `;let c=null;"SMALL"===n.formFactor?c=await getListSchema$1(s,{top:1e3,...n,actions:!1}):(c=await getTableSchema$1(s,{labelFieldName:a.NAME_FIELD_KEY,top:1e3,...n}),c.affixHeader=!1);const d={type:getAmisStaticFieldType("picker",t),labelField:r.labelField.name,valueField:r.valueField.name,modalMode:"dialog",source:l,size:"lg",pickerSchema:c,joinValues:!1,extractValue:!0};return e.multiple&&(d.multiple=!0,d.extractValue=!0),n.value&&(d.value=n.value),null!=n.selectFirst&&(d.selectFirst=n.selectFirst),t&&(d.tpl=await getLookupTpl(e,n)),d}const getMarkdownFieldSchema=(e,t,n)=>t?{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}:{type:"group",body:[{type:"editor",name:e.name,language:"markdown"},{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]},getHtmlFieldSchema=(e,t,n)=>t?{type:"html",name:e.name}:{type:"input-rich-text",name:e.name},AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,n){return t?___default__namespace.includes(["text","image"],e)?"image"===e&&n&&n.multiple?"static-images":`static-${e}`:"static":___default__namespace.includes(AmisFormInputs,e)?`input-${e}`:e}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{const t=e.type,n=getAmisFieldType$1(e,!0);return _.includes(["avatar","image"],t)?{type:n,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:n,tpl:`\n <% let fileData = data.${e.name}; if (fileData) { %>\n <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>\n <% fileData.forEach(function(item) { %> \n <a href='<%= item.url %>' target='_self' class='block'><%= item.name %></a> \n <% });} %>`}:void 0},getAmisFileEditSchema=e=>{const t=getFileTableName(e);let n={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",url:`\${context.rootUrl}/s3/${t}`,data:{$:"$$",context:"${context}"},adaptor:`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${t}/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(n.multiple=!0,n.joinValues=!1,n.extractValue=!0),n},getAmisFileSchema=(e,t)=>t?getAmisFileReadonlySchema(e):getAmisFileEditSchema(e),OMIT_FIELDS=["created","created_by","modified","modified_by"];function getObjectFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=___default__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`)&&___default__namespace.split(t.name,".").length<3;return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=___default__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getSelectFieldOptions(e){const t=e.data_type||"text",n=[];return ___default__namespace.each(e.options,(e=>{switch(t){case"number":n.push({label:e.label,value:Number(e.value)});break;case"text":n.push({label:e.label,value:String(e.value)});break;case"boolean":n.push({label:e.label,value:"false"!==e.value})}})),n}async function convertSFieldToAmisField(e,t,n){const r=window.innerWidth<=768;if(___default__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const a={name:n.fieldNamePrefix?`${n.fieldNamePrefix}${e.name}`:e.name,label:e.label,labelRemark:e.inlineHelpText,required:___default__namespace.has(n,"required")?n.required:e.required};let i={};switch(e.type){case"text":i.type=getAmisStaticFieldType("text",t);break;case"textarea":i.type=getAmisStaticFieldType("textarea",t),i.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":i=getHtmlFieldSchema(e,t);break;case"markdown":i=getMarkdownFieldSchema(e,t);break;case"select":if(t){const t=getSelectMap(e.options);i={type:"static-mapping",name:e.name,label:e.label,map:t}}else i={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value"},e.multiple&&(i.multiple=!0,i.extractValue=!0);break;case"boolean":i={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1};break;case"date":i=r&&!t?{type:"native-date",pipeIn:(e,t)=>e?e=moment(e).utc().format("YYYY-MM-DD"):"",pipeOut:(e,t,n)=>e?e=moment(e).format("YYYY-MM-DDT00:00:00.000[Z]"):""}:{type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":i={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1};break;case"datetime":i=r&&!t?{type:"combo",pipeIn:(t,n)=>{let r={};return t&&"Invalid date"!=t?(t=moment(t).format("YYYY-MM-DD HH:mm:ss"),r[e.name+"-native-date"]=t.split(" ")[0],r[e.name+"-native-time"]=t.split(" ")[1]):(r[e.name+"-native-date"]="",r[e.name+"-native-time"]=""),r},pipeOut:(t,n,r)=>{let a="";return t[e.name+"-native-date"]&&t[e.name+"-native-time"]&&(a=t[e.name+"-native-date"]+" "+t[e.name+"-native-time"],a=moment(a).utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")),a},items:[{type:"native-date",name:e.name+"-native-date",className:"steedos-native-date",value:""},{type:"native-time",name:e.name+"-native-time",className:"steedos-native-time",value:""}]}:{type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0};break;case"input-time-range":i={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":i=r&&!t?{type:"native-time",pipeIn:(e,t)=>e?e=moment(e).utc().format("HH:mm"):"",pipeOut:(e,t,n)=>e?e=moment("1970-01-01 "+e).format("1970-01-01THH:mm:00.000[Z]"):""}:{type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":i=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":i=Object.assign({},e,a);break;case"input-range":i={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i=t?{type:"static-tpl",tpl:getUiFieldTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":i={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":i=await lookupToAmis(e,t,n);break;case"autonumber":t&&(i={type:"static-text"});break;case"url":i={type:getAmisStaticFieldType("url",t)};break;case"email":i={type:getAmisStaticFieldType("email",t)};break;case"avatar":case"image":case"file":i=getAmisFileSchema(e,t);break;case"formula":case"summary":t&&(i={type:"static-tpl",tpl:getUiFieldTpl(e)});break;case"code":i={type:"editor",language:e.language,editorDidMount:new Function("editor","monaco",e.editorDidMount)};break;case"toggle":i={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){i={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,needConfirm:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const r of e.subFields){const a=r.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),o=await convertSFieldToAmisField(Object.assign({},r,{name:a,isTableField:!0}),t,n);if(o){delete o.name,delete o.label;const e={name:a,label:r.label,quickEdit:!t&&o};"lookup"===r.type&&(e.type=o.type,e.tpl=o.tpl),i.columns.push(Object.assign({},e,r.amis,{name:a}))}}}break;case"object":if(e.subFields){i={type:"combo",items:[]};for(let r of e.subFields){let a=r.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===r.type?r=await getGridFieldSubFields(r,n.__formFields):t&&(a=`${e.name}.${a}`);const o=await convertSFieldToAmisField(Object.assign({},r,{name:a}),t,n);o&&(delete o.name,delete o.label,i.items.push(Object.assign({},o,{label:r.label},r.amis,{name:a})))}}}if(!___default__namespace.isEmpty(i)){e.is_wide||"group"===i.type?i.className="col-span-2 m-1":i.className="m-1",t&&(i.className=`${i.className} md:border-b`),t&&(i.quickEdit=!1);let r=" steedos-"+i.type+(t?"-readonly":"-edit");return i.className?i.className=i.className+r:i.className=r,e.visible_on&&!n.inFilterForm&&(e.visible_on.startsWith("{{")?i.visibleOn=`${e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data.")}`:i.visibleOn=`${e.visible_on.replace(/formData./g,"data.")}`),___default__namespace.isString(a.required)&&a.required.startsWith("{{")&&(a.requiredOn=`${a.required.substring(2,a.required.length-2).replace(/formData./g,"data.")}`,delete a.required),"group"===i.type?(i.body[0]=Object.assign({},a,i.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),i):Object.assign({},a,i,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:a.name})}}async function getFieldSearchable(e,t,n){n||(n={});let r=e;"grid"===r.type?r=await getGridFieldSubFields(e,t):"object"===e.type&&(r=await getObjectFieldSubFields(e,t));let a="__searchable__";if(r.name.indexOf(".")<0){let e=___default.cloneDeep(r);___default.includes(["textarea","html","code","autonumber"],r.type)&&(e.type="text"),___default.includes(["formula","summary"],r.type)?(e.type=r.data_type,e.precision=r.precision,e.scale=r.scale):"select"===r.type&&r.data_type&&"text"!=r.data_type&&(e.type=r.data_type),"number"!==e.type&&"currency"!==e.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,a=`${a}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,a=`${a}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,a=`${a}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,a=`${a}between__`),"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0;const t=await convertSFieldToAmisField(e,!1,Object.assign({},n,{fieldNamePrefix:a,required:!1,showSystemFields:!0,inFilterForm:!0}));if(t)return t}}function isFieldTypeSearchable(e){return!___default__namespace.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],e)}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable);var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};async function getTableColumns(e,t){const n=[{name:"_index",type:"text",width:32,placeholder:""}];for(const r of e)if(!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)n.push(Object.assign({},{type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap"},r.amis,{name:r.name}));else if("avatar"===r.type||"image"===r.type||"file"===r.type)n.push(Object.assign({},{type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap",...getAmisFileReadonlySchema(r)},r.amis,{name:r.name}));else if("select"===r.type){const e=getSelectMap(r.options);n.push(Object.assign({},{type:"mapping",name:r.name,label:r.label,map:e,sortable:r.sortable,width:r.width,toggled:r.toggled,className:"whitespace-nowrap"},r.amis,{name:r.name}))}else{const e=await getFieldTpl(r,t);let a="text";e?a="tpl":"html"===r.type&&(a="markdown");let i="";"textarea"===r.type&&(i="min-w-56"),!1===r.wrap&&(i+=" whitespace-nowrap"),r.hidden||r.extra||n.push(Object.assign({},{name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:a,tpl:e,toggled:r.toggled,className:i,options:"html"===r.type?{html:!0}:null},r.amis,{name:r.name}))}else{const e=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${r.label}";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n `;n.push({type:"button",label:`<%=data.versions ? data.name : "${r.label}"%>`,className:"whitespace-nowrap",level:"link",onEvent:{click:{actions:[{args:{api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download",expression:"!!!window?.nw?.require"},{args:{},actionType:"custom",script:e,expression:"!!window?.nw?.require"}]}}})}return n}function getMobileLines(e){let t=[],n=[],r=!1,a=!0,i="",o="flex items-center justify-between h-[20px]";return e.forEach((function(e){r&&t.length<2&&(t.push({type:"wrapper",body:n,size:"none",className:o}),n=[]),a?(i="steedos-listview-item-left truncate",e.field.is_wide&&(i="steedos-listview-item-wide truncate"),0===t.length&&(i+=" font-bold text-gray-800")):i="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",n.push({type:"tpl",tpl:e.tpl,className:i}),e.field.is_wide?(a=!0,r=!0):(a=!a,r=a)})),n.length&&t.length<2&&t.push({type:"wrapper",body:n,size:"none",className:o}),t}async function getMobileTableColumns(e,t){const n=[];let r={},a=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(r=n,t.onlyDisplayLabel=!0,e=await getFieldTpl(n,t)):"avatar"===n.type||"image"===n.type||"file"===n.type?e=`\${_display.${n.name}.name}`:("lookup"!==n.type&&"master_detail"!==n.type||(t.onlyDisplayLabel=!0),e=await getFieldTpl(n,t)),e||(e=`\${${n.name}}`),n.hidden||n.extra||a.push({field:n,tpl:e})}const i=getNameTplUrl(r,t),o=getMobileLines(a);let s={name:r.name,label:r.label,sortable:r.sortable,type:"button",level:"link",actionType:"link",link:i,innerClassName:"steedos-listview-item block text-gray-500",body:{type:"wrapper",body:o,size:"none",className:"p-1"}};return"cms_files"===t.objectName&&(s=window.Meteor?.isCordova?{...s,actionType:"",link:"",onEvent:{click:{actions:[{script:'\n let cms_url = "/api/files/files/"+event.data.versions[0]+"?download=true"\n Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);\n ',actionType:"custom"}],weight:0}}}:{...s,actionType:"",link:"",onEvent:{click:{actions:[{args:{api:{url:i,method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download"}],weight:0}}}),n.push(s),n}function getDefaultParams(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn(e){let t=e.visible;if(e._visible&&(t=e._visible),___default.isBoolean(t)&&(t=t.toString()),t)return t.trim().startsWith("function")?`${t}(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)`:t;if("amis_button"===e.type){const t=e.amis_schema;if(t&&t.body&&t.body.length>0){return t.body[0].visibleOn}}}async function getTableOperation(e){const t=e.buttons,n=[];if(___default.each(t,(e=>{___default.isBoolean(e.visible)&&(e.visible=e.visible.toString()),n.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:"antd-Button--default"})})),!(n.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-20",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:n,placement:"bottomRight",overlayClassName:"shadow !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",data:{$:"$$",objectName:"${objectName}",listViewId:"${listViewId}",appId:"${appId}",formFactor:"${formFactor}",context:"${context}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n "}}]}}async function getTableSchema$1(e,t){t||(t={});let n=[];return"SMALL"===t.formFactor||["split"].indexOf(t.displayAs)>-1?n=await getMobileTableColumns(e,t):(n=await getTableColumns(e,t),n.push(await getTableOperation(t))),{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 bg-gray-100 border-solid border-b",className:"",draggable:!1,defaultParams:getDefaultParams(t),columns:n,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1}}let UI_SCHEMA_CACHE={},UISchemaFunction;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE);const setUISchemaCache=(e,t)=>{UI_SCHEMA_CACHE[e]=t},getUISchemaCache=e=>___default.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>___default.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let n=[];return n="SMALL"===t?___default.isEmpty(e.mobile_columns)?___default.slice(e.columns,0,4):e.mobile_columns:e.columns,n}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&___default.each(e.sort,(function(e,n){if(___default.isArray(e)){let r=e[0]+" "+(e[1]||"");r=n>0?","+r:r,t+=r}else{let r=e.field_name+" "+e.order;r=n>0?","+r:r,t+=r}})),t}function getListViewFilter(e){if(e)try{const t=getUserId();let n=e.filters;if("mine"===e.filter_scope)if(___default__default.default.isEmpty(n))n=[["owner","=",t]];else{if(___default__default.default.isString(n)&&___default__default.default.startsWith(___default__default.default.trim(n),"function")&&(n=new Function(`return ${n}`),n=n()),!___default__default.default.isArray(n))throw console.debug("listView filters is not array",e),new Error("filters is not array");n.push(["owner","=",t])}return n}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),___default.each(uiSchema.fields,(field=>{try{"lookup"===field.type&&field._reference_to&&___default__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}})),___default.each(uiSchema.list_views,((e,t)=>{e.name=t,___default.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)}))}async function getUISchema(e,t){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let n=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;n=await fetchAPI(t,{method:"get"})}if(!n)return;formatUISchemaCache(e,n)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}function getUISchemaSync(e,t){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let n=null;try{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(n=Steedos.authRequest(t,{type:"GET",async:!1}),!n)return;formatUISchemaCache(e,n)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,r={}){const a=await getUISchema(t);if(!a)return{};const i=___default.find(a.list_views,((e,t)=>(n||(n=t),t===n||e._id===n)));if(!i)return{uiSchema:a};if(i.enable_amis_schema&&i.amis_schema){return{uiSchema:a,isCustomAmisSchema:!0,amisSchema:___default.isString(i.amis_schema)?JSON.parse(i.amis_schema):i.amis_schema}}let o=getListViewColumns(i,r.formFactor),s=getListViewSort(i),l=getListViewFilter(i),c=i&&i._filters;if("calendar"===i.type){return{uiSchema:a,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...i.options}}}const d=r.defaults||{};d.headerSchema=null;try{const e=location.pathname+"/crud/"+r.listViewId;let t=sessionStorage.getItem(e);if(t){t=JSON.parse(t);let e={};t.orderBy&&(e.orderBy=t.orderBy),t.orderDir&&(e.orderDir=t.orderDir),d.listSchema=___default.defaultsDeep({},e,d.listSchema||{})}}catch(e){console.error("本地存储中crud参数解析异常:",e)}r.defaults=d;return{uiSchema:a,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:o,extraColumns:i.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:r,requestAdaptor:i.requestAdaptor,adaptor:i.adaptor,headerToolbarItems:r.headerToolbarItems,filterVisible:r.filterVisible}}}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync,window.getListSchema=getListSchema);var __assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},__assign.apply(this,arguments)};function createObject(e,t,n){e&&Object.isFrozen(e)&&(e=cloneObject(e));var r=e?Object.create(e,__assign(__assign({},n),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,n);return t&&isObject(t)&&Object.keys(t).forEach((function(e){return r[e]=t[e]})),r}function cloneObject(e,t){void 0===t&&(t=!0);var n=e&&e.__super?Object.create(e.__super,{__super:{value:e.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return t&&e&&Object.keys(e).forEach((function(t){return n[t]=e[t]})),n}function isObject(e){var t=typeof e;return e&&"string"!==t&&"number"!==t&&"boolean"!==t&&"function"!==t&&!Array.isArray(e)}var FullCalendar=function(e){var t=e.dispatchEvent,n=e.data,r=__rest(e,["dispatchEvent","data"]),a=function(e,r){return __awaiter(void 0,void 0,void 0,(function(){var a,i;return __generator(this,(function(o){switch(o.label){case 0:return t?[4,t(e,r?createObject(n,r):n)]:[2];case 1:return a=o.sent(),[2,null!==(i=null==a?void 0:a.prevented)&&void 0!==i&&i]}}))}))};return React__default.default.createElement(FullCalendar$1,__assign$1({plugins:[main$3,main$2,main$1,main],headerToolbar:{left:"title",center:"",right:"prev,next today dayGridMonth,timeGridWeek,timeGridDay,listWeek"},locales:_default,locale:"zh-cn",editable:!0,selectable:!0,selectMirror:!0,dayMaxEvents:!0,initialView:"timeGridWeek",events:function(e,t,n){setTimeout((function(){a("getEvents",{fetchInfo:e,successCallback:t,failureCallback:n})}),100)},select:function(e){a("select",e)},eventClick:function(e){a("eventClick",e)},eventsSet:function(e){a("eventsSet",e)},eventAdd:function(e){a("eventAdd",e)},eventChange:function(e){a("eventChange",e)},eventRemove:function(e){a("eventRemove",e)},eventDidMount:function(e){a("eventDidMount",e)},eventWillUnmount:function(e){a("eventWillUnmount",e)},noEventsDidMount:function(e){a("noEventsDidMount",e)},noEventsWillUnmount:function(e){a("noEventsWillUnmount",e)},forceEventDuration:!0,views:{listWeek:{buttonText:"列表"}}},r))};exports.FullCalendar=FullCalendar,Object.defineProperty(exports,"__esModule",{value:!0})}));
23
+ */function renderInnerContent(e){return createElement(Fragment,null,e.text&&createElement("a",__assign$1({id:e.textId,className:"fc-list-day-text"},e.navLinkAttrs),e.text),e.sideText&&createElement("a",__assign$1({"aria-hidden":!0,className:"fc-list-day-side-text"},e.sideNavLinkAttrs),e.sideText))}var DEFAULT_TIME_FORMAT=createFormatter({hour:"numeric",minute:"2-digit",meridiem:"short"}),ListViewEventRow=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=e.seg,r=e.timeHeaderId,a=e.eventHeaderId,i=e.dateHeaderId,o=t.options.eventTimeFormat||DEFAULT_TIME_FORMAT;return createElement(EventRoot,{seg:n,timeText:"",disableDragging:!0,disableResizing:!0,defaultContent:function(){return renderEventInnerContent(n,t)},isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,isSelected:e.isSelected,isDragging:e.isDragging,isResizing:e.isResizing,isDateSelecting:e.isDateSelecting},(function(e,s,l,c,d){return createElement("tr",{className:["fc-list-event",d.event.url?"fc-event-forced-url":""].concat(s).join(" "),ref:e},buildTimeContent(n,o,t,r,i),createElement("td",{"aria-hidden":!0,className:"fc-list-event-graphic"},createElement("span",{className:"fc-list-event-dot",style:{borderColor:d.borderColor||d.backgroundColor}})),createElement("td",{ref:l,headers:a+" "+i,className:"fc-list-event-title"},c))}))},t}(BaseComponent);function renderEventInnerContent(e,t){var n=getSegAnchorAttrs(e,t);return createElement("a",__assign$1({},n),e.eventRange.def.title)}function buildTimeContent(e,t,n,r,a){var i=n.options;if(!1!==i.displayEventTime){var o=e.eventRange.def,s=e.eventRange.instance,l=!1,c=void 0;if(o.allDay?l=!0:isMultiDayRange(e.eventRange.range)?e.isStart?c=buildSegTimeText(e,t,n,null,null,s.range.start,e.end):e.isEnd?c=buildSegTimeText(e,t,n,null,null,e.start,s.range.end):l=!0:c=buildSegTimeText(e,t,n),l){var d={text:n.options.allDayText,view:n.viewApi};return createElement(RenderHook,{hookProps:d,classNames:i.allDayClassNames,content:i.allDayContent,defaultContent:renderAllDayInner,didMount:i.allDayDidMount,willUnmount:i.allDayWillUnmount},(function(e,t,n,i){return createElement("td",{ref:e,headers:r+" "+a,className:["fc-list-event-time"].concat(t).join(" ")},i)}))}return createElement("td",{className:"fc-list-event-time"},c)}return null}function renderAllDayInner(e){return e.text}var ListView=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.computeDateVars=memoize(computeDateVars),t.eventStoreToSegs=memoize(t._eventStoreToSegs),t.state={timeHeaderId:getUniqueDomId(),eventHeaderId:getUniqueDomId(),dateHeaderIdRoot:getUniqueDomId()},t.setRootEl=function(e){e?t.context.registerInteractiveComponent(t,{el:e}):t.context.unregisterInteractiveComponent(t)},t}return __extends(t,e),t.prototype.render=function(){var e=this,t=this.props,n=this.context,r=["fc-list",n.theme.getClass("table"),!1!==n.options.stickyHeaderDates?"fc-list-sticky":""],a=this.computeDateVars(t.dateProfile),i=a.dayDates,o=a.dayRanges,s=this.eventStoreToSegs(t.eventStore,t.eventUiBases,o);return createElement(ViewRoot,{viewSpec:n.viewSpec,elRef:this.setRootEl},(function(n,a){return createElement("div",{ref:n,className:r.concat(a).join(" ")},createElement(Scroller,{liquid:!t.isHeightAuto,overflowX:t.isHeightAuto?"visible":"hidden",overflowY:t.isHeightAuto?"visible":"auto"},s.length>0?e.renderSegList(s,i):e.renderEmptyMessage()))}))},t.prototype.renderEmptyMessage=function(){var e=this.context,t=e.options,n=e.viewApi,r={text:t.noEventsText,view:n};return createElement(RenderHook,{hookProps:r,classNames:t.noEventsClassNames,content:t.noEventsContent,defaultContent:renderNoEventsInner,didMount:t.noEventsDidMount,willUnmount:t.noEventsWillUnmount},(function(e,t,n,r){return createElement("div",{className:["fc-list-empty"].concat(t).join(" "),ref:e},createElement("div",{className:"fc-list-empty-cushion",ref:n},r))}))},t.prototype.renderSegList=function(e,t){var n=this.context,r=n.theme,a=n.options,i=this.state,o=i.timeHeaderId,s=i.eventHeaderId,l=i.dateHeaderIdRoot,c=groupSegsByDay(e);return createElement(NowTimer,{unit:"day"},(function(e,n){for(var i=[],d=0;d<c.length;d+=1){var u=c[d];if(u){var p=formatDayString(t[d]),f=l+"-"+p;i.push(createElement(ListViewHeaderRow,{key:p,cellId:f,dayDate:t[d],todayRange:n}));for(var m=0,h=u=sortEventSegs(u,a.eventOrder);m<h.length;m++){var g=h[m];i.push(createElement(ListViewEventRow,__assign$1({key:p+":"+g.eventRange.instance.instanceId,seg:g,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,timeHeaderId:o,eventHeaderId:s,dateHeaderId:f},getSegMeta(g,n,e))))}}}return createElement("table",{className:"fc-list-table "+r.getClass("table")},createElement("thead",null,createElement("tr",null,createElement("th",{scope:"col",id:o},a.timeHint),createElement("th",{scope:"col","aria-hidden":!0}),createElement("th",{scope:"col",id:s},a.eventHint))),createElement("tbody",null,i))}))},t.prototype._eventStoreToSegs=function(e,t,n){return this.eventRangesToSegs(sliceEventStore(e,t,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,n)},t.prototype.eventRangesToSegs=function(e,t){for(var n=[],r=0,a=e;r<a.length;r++){var i=a[r];n.push.apply(n,this.eventRangeToSegs(i,t))}return n},t.prototype.eventRangeToSegs=function(e,t){var n,r,a,i=this.context.dateEnv,o=this.context.options.nextDayThreshold,s=e.range,l=e.def.allDay,c=[];for(n=0;n<t.length;n+=1)if((r=intersectRanges(s,t[n]))&&(a={component:this,eventRange:e,start:r.start,end:r.end,isStart:e.isStart&&r.start.valueOf()===s.start.valueOf(),isEnd:e.isEnd&&r.end.valueOf()===s.end.valueOf(),dayIndex:n},c.push(a),!a.isEnd&&!l&&n+1<t.length&&s.end<i.add(t[n+1].start,o))){a.end=s.end,a.isEnd=!0;break}return c},t}(DateComponent);function renderNoEventsInner(e){return e.text}function computeDateVars(e){for(var t=startOfDay(e.renderRange.start),n=e.renderRange.end,r=[],a=[];t<n;)r.push(t),a.push({start:t,end:addDays(t,1)}),t=addDays(t,1);return{dayDates:r,dayRanges:a}}function groupSegsByDay(e){var t,n,r=[];for(t=0;t<e.length;t+=1)(r[(n=e[t]).dayIndex]||(r[n.dayIndex]=[])).push(n);return r}var OPTION_REFINERS={listDayFormat:createFalsableFormatter,listDaySideFormat:createFalsableFormatter,noEventsClassNames:identity,noEventsContent:identity,noEventsDidMount:identity,noEventsWillUnmount:identity};function createFalsableFormatter(e){return!1===e?null:createFormatter(e)}var main=createPlugin({optionRefiners:OPTION_REFINERS,views:{list:{component:ListView,buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}}),commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==global?global:"undefined"!=typeof self?self:{},localesAll$1={};Object.defineProperty(localesAll$1,"__esModule",{value:!0});var l0={code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Heeldag",moreLinkText:"Addisionele",noEventsText:"Daar is geen gebeurtenisse nie"},l1={code:"ar-dz",week:{dow:0,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l2={code:"ar-kw",week:{dow:0,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l3={code:"ar-ly",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l4={code:"ar-ma",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l5={code:"ar-sa",week:{dow:0,doy:6},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l6={code:"ar-tn",week:{dow:1,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l7={code:"ar",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},l8={code:"az",week:{dow:1,doy:4},buttonText:{prev:"Əvvəl",next:"Sonra",today:"Bu Gün",month:"Ay",week:"Həftə",day:"Gün",list:"Gündəm"},weekText:"Həftə",allDayText:"Bütün Gün",moreLinkText:function(e){return"+ daha çox "+e},noEventsText:"Göstərmək üçün hadisə yoxdur"},l9={code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",moreLinkText:function(e){return"+още "+e},noEventsText:"Няма събития за показване"},l10={code:"bn",week:{dow:0,doy:6},buttonText:{prev:"পেছনে",next:"সামনে",today:"আজ",month:"মাস",week:"সপ্তাহ",day:"দিন",list:"তালিকা"},weekText:"সপ্তাহ",allDayText:"সারাদিন",moreLinkText:function(e){return"+অন্যান্য "+e},noEventsText:"কোনো ইভেন্ট নেই"},l11={code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekText:"Sed",allDayText:"Cijeli dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nema događaja za prikazivanje"},l12={code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekText:"Set",allDayText:"Tot el dia",moreLinkText:"més",noEventsText:"No hi ha esdeveniments per mostrar"},l13={code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekText:"Týd",allDayText:"Celý den",moreLinkText:function(e){return"+další: "+e},noEventsText:"Žádné akce k zobrazení"},l14={code:"cy",week:{dow:1,doy:4},buttonText:{prev:"Blaenorol",next:"Nesaf",today:"Heddiw",year:"Blwyddyn",month:"Mis",week:"Wythnos",day:"Dydd",list:"Rhestr"},weekText:"Wythnos",allDayText:"Trwy'r dydd",moreLinkText:"Mwy",noEventsText:"Dim digwyddiadau"},l15={code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekText:"Uge",allDayText:"Hele dagen",moreLinkText:"flere",noEventsText:"Ingen arrangementer at vise"};function affix$1(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var l16={code:"de-at",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:function(e){return"+ weitere "+e},noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:function(e){return"Vorherige".concat(affix$1(e)," ").concat(e)},next:function(e){return"Nächste".concat(affix$1(e)," ").concat(e)},today:function(e){return"Tag"===e?"Heute":"Diese".concat(affix$1(e)," ").concat(e)}},viewHint:function(e){return e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht"},navLinkHint:"Gehe zu $0",moreLinkHint:function(e){return"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse")},closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"};function affix(e){return"Tag"===e||"Monat"===e?"r":"Jahr"===e?"s":""}var l17={code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",weekTextLong:"Woche",allDayText:"Ganztägig",moreLinkText:function(e){return"+ weitere "+e},noEventsText:"Keine Ereignisse anzuzeigen",buttonHints:{prev:function(e){return"Vorherige".concat(affix(e)," ").concat(e)},next:function(e){return"Nächste".concat(affix(e)," ").concat(e)},today:function(e){return"Tag"===e?"Heute":"Diese".concat(affix(e)," ").concat(e)}},viewHint:function(e){return e+("Woche"===e?"n":"Monat"===e?"s":"es")+"ansicht"},navLinkHint:"Gehe zu $0",moreLinkHint:function(e){return"Zeige "+(1===e?"ein weiteres Ereignis":e+" weitere Ereignisse")},closeHint:"Schließen",timeHint:"Uhrzeit",eventHint:"Ereignis"},l18={code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekText:"Εβδ",allDayText:"Ολοήμερο",moreLinkText:"περισσότερα",noEventsText:"Δεν υπάρχουν γεγονότα προς εμφάνιση"},l19={code:"en-au",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:function(e){return"Show ".concat(e," more event").concat(1===e?"":"s")}},l20={code:"en-gb",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:function(e){return"Show ".concat(e," more event").concat(1===e?"":"s")}},l21={code:"en-nz",week:{dow:1,doy:4},buttonHints:{prev:"Previous $0",next:"Next $0",today:"This $0"},viewHint:"$0 view",navLinkHint:"Go to $0",moreLinkHint:function(e){return"Show ".concat(e," more event").concat(1===e?"":"s")}},l22={code:"eo",week:{dow:1,doy:4},buttonText:{prev:"Antaŭa",next:"Sekva",today:"Hodiaŭ",month:"Monato",week:"Semajno",day:"Tago",list:"Tagordo"},weekText:"Sm",allDayText:"Tuta tago",moreLinkText:"pli",noEventsText:"Neniuj eventoj por montri"},l23={code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"},l24={code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},buttonHints:{prev:"$0 antes",next:"$0 siguiente",today:function(e){return"Día"===e?"Hoy":("Semana"===e?"Esta":"Este")+" "+e.toLocaleLowerCase()}},viewHint:function(e){return"Vista "+("Semana"===e?"de la":"del")+" "+e.toLocaleLowerCase()},weekText:"Sm",weekTextLong:"Semana",allDayText:"Todo el día",moreLinkText:"más",moreLinkHint:function(e){return"Mostrar ".concat(e," eventos más")},noEventsText:"No hay eventos para mostrar",navLinkHint:"Ir al $0",closeHint:"Cerrar",timeHint:"La hora",eventHint:"Evento"},l25={code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekText:"näd",allDayText:"Kogu päev",moreLinkText:function(e){return"+ veel "+e},noEventsText:"Kuvamiseks puuduvad sündmused"},l26={code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekText:"As",allDayText:"Egun osoa",moreLinkText:"gehiago",noEventsText:"Ez dago ekitaldirik erakusteko"},l27={code:"fa",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekText:"هف",allDayText:"تمام روز",moreLinkText:function(e){return"بیش از "+e},noEventsText:"هیچ رویدادی به نمایش"},l28={code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekText:"Vk",allDayText:"Koko päivä",moreLinkText:"lisää",noEventsText:"Ei näytettäviä tapahtumia"},l29={code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},l30={code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sm",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},l31={code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},l32={code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekText:"Sm",allDayText:"Todo o día",moreLinkText:"máis",noEventsText:"Non hai eventos para amosar"},l33={code:"he",direction:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",moreLinkText:"אחר",noEventsText:"אין אירועים להצגה",weekText:"שבוע"},l34={code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekText:"हफ्ता",allDayText:"सभी दिन",moreLinkText:function(e){return"+अधिक "+e},noEventsText:"कोई घटनाओं को प्रदर्शित करने के लिए"},l35={code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekText:"Tje",allDayText:"Cijeli dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nema događaja za prikaz"},l36={code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Lista"},weekText:"Hét",allDayText:"Egész nap",moreLinkText:"további",noEventsText:"Nincs megjeleníthető esemény"},l37={code:"hy-am",week:{dow:1,doy:4},buttonText:{prev:"Նախորդ",next:"Հաջորդ",today:"Այսօր",month:"Ամիս",week:"Շաբաթ",day:"Օր",list:"Օրվա ցուցակ"},weekText:"Շաբ",allDayText:"Ամբողջ օր",moreLinkText:function(e){return"+ ևս "+e},noEventsText:"Բացակայում է իրադարձությունը ցուցադրելու"},l38={code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sehari penuh",moreLinkText:"lebih",noEventsText:"Tidak ada acara untuk ditampilkan"},l39={code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekText:"Vika",allDayText:"Allan daginn",moreLinkText:"meira",noEventsText:"Engir viðburðir til að sýna"},l40={code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekText:"Sm",allDayText:"Tutto il giorno",moreLinkText:function(e){return"+altri "+e},noEventsText:"Non ci sono eventi da visualizzare"},l41={code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekText:"週",allDayText:"終日",moreLinkText:function(e){return"他 "+e+" 件"},noEventsText:"表示する予定はありません"},l42={code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekText:"კვ",allDayText:"მთელი დღე",moreLinkText:function(e){return"+ კიდევ "+e},noEventsText:"ღონისძიებები არ არის"},l43={code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekText:"Не",allDayText:"Күні бойы",moreLinkText:function(e){return"+ тағы "+e},noEventsText:"Көрсету үшін оқиғалар жоқ"},l44={code:"km",week:{dow:1,doy:4},buttonText:{prev:"មុន",next:"បន្ទាប់",today:"ថ្ងៃនេះ",year:"ឆ្នាំ",month:"ខែ",week:"សប្តាហ៍",day:"ថ្ងៃ",list:"បញ្ជី"},weekText:"សប្តាហ៍",allDayText:"ពេញមួយថ្ងៃ",moreLinkText:"ច្រើនទៀត",noEventsText:"គ្មានព្រឹត្តិការណ៍ត្រូវបង្ហាញ"},l45={code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekText:"주",allDayText:"종일",moreLinkText:"개",noEventsText:"일정이 없습니다"},l46={code:"ku",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"پێشتر",next:"دواتر",today:"ئەمڕو",month:"مانگ",week:"هەفتە",day:"ڕۆژ",list:"بەرنامە"},weekText:"هەفتە",allDayText:"هەموو ڕۆژەکە",moreLinkText:"زیاتر",noEventsText:"هیچ ڕووداوێك نیە"},l47={code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekText:"W",allDayText:"Ganzen Dag",moreLinkText:"méi",noEventsText:"Nee Evenementer ze affichéieren"},l48={code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekText:"SAV",allDayText:"Visą dieną",moreLinkText:"daugiau",noEventsText:"Nėra įvykių rodyti"},l49={code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekText:"Ned.",allDayText:"Visu dienu",moreLinkText:function(e){return"+vēl "+e},noEventsText:"Nav notikumu"},l50={code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekText:"Сед",allDayText:"Цел ден",moreLinkText:function(e){return"+повеќе "+e},noEventsText:"Нема настани за прикажување"},l51={code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sepanjang hari",moreLinkText:function(e){return"masih ada "+e+" acara"},noEventsText:"Tiada peristiwa untuk dipaparkan"},l52={code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekText:"Uke",weekTextLong:"Uke",allDayText:"Hele dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise",buttonHints:{prev:"Forrige $0",next:"Neste $0",today:"Nåværende $0"},viewHint:"$0 visning",navLinkHint:"Gå til $0",moreLinkHint:function(e){return"Vis ".concat(e," flere hendelse").concat(1===e?"":"r")}},l53={code:"ne",week:{dow:7,doy:1},buttonText:{prev:"अघिल्लो",next:"अर्को",today:"आज",month:"महिना",week:"हप्ता",day:"दिन",list:"सूची"},weekText:"हप्ता",allDayText:"दिनभरि",moreLinkText:"थप लिंक",noEventsText:"देखाउनको लागि कुनै घटनाहरू छैनन्"},l54={code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",moreLinkText:"extra",noEventsText:"Geen evenementen om te laten zien"},l55={code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekText:"Veke",allDayText:"Heile dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"},l56={code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekText:"Tydz",allDayText:"Cały dzień",moreLinkText:"więcej",noEventsText:"Brak wydarzeń do wyświetlenia"},l57={code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Lista"},weekText:"Sm",allDayText:"dia inteiro",moreLinkText:function(e){return"mais +"+e},noEventsText:"Não há eventos para mostrar"},l58={code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekText:"Sem",allDayText:"Todo o dia",moreLinkText:"mais",noEventsText:"Não há eventos para mostrar"},l59={code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekText:"Săpt",allDayText:"Toată ziua",moreLinkText:function(e){return"+alte "+e},noEventsText:"Nu există evenimente de afișat"},l60={code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekText:"Нед",allDayText:"Весь день",moreLinkText:function(e){return"+ ещё "+e},noEventsText:"Нет событий для отображения"},l61={code:"si-lk",week:{dow:1,doy:4},buttonText:{prev:"පෙර",next:"පසු",today:"අද",month:"මාසය",week:"සතිය",day:"දවස",list:"ලැයිස්තුව"},weekText:"සති",allDayText:"සියලු",moreLinkText:"තවත්",noEventsText:"මුකුත් නැත"},l62={code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekText:"Ty",allDayText:"Celý deň",moreLinkText:function(e){return"+ďalšie: "+e},noEventsText:"Žiadne akcie na zobrazenie"},l63={code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekText:"Teden",allDayText:"Ves dan",moreLinkText:"več",noEventsText:"Ni dogodkov za prikaz"},l64={code:"sm",buttonText:{prev:"Talu ai",next:"Mulimuli atu",today:"Aso nei",month:"Masina",week:"Vaiaso",day:"Aso",list:"Faasologa"},weekText:"Vaiaso",allDayText:"Aso atoa",moreLinkText:"sili atu",noEventsText:"Leai ni mea na tutupu"},l65={code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekText:"Ja",allDayText:"Gjithë ditën",moreLinkText:function(e){return"+më tepër "+e},noEventsText:"Nuk ka evente për të shfaqur"},l66={code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekText:"Сед",allDayText:"Цео дан",moreLinkText:function(e){return"+ још "+e},noEventsText:"Нема догађаја за приказ"},l67={code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekText:"Sed",allDayText:"Cеo dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nеma događaja za prikaz"},l68={code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},buttonHints:{prev:function(e){return"Föregående ".concat(e.toLocaleLowerCase())},next:function(e){return"Nästa ".concat(e.toLocaleLowerCase())},today:function(e){return("Program"===e?"Detta":"Denna")+" "+e.toLocaleLowerCase()}},viewHint:"$0 vy",navLinkHint:"Gå till $0",moreLinkHint:function(e){return"Visa ytterligare ".concat(e," händelse").concat(1===e?"":"r")},weekText:"v.",weekTextLong:"Vecka",allDayText:"Heldag",moreLinkText:"till",noEventsText:"Inga händelser att visa",closeHint:"Stäng",timeHint:"Klockan",eventHint:"Händelse"},l69={code:"ta-in",week:{dow:1,doy:4},buttonText:{prev:"முந்தைய",next:"அடுத்தது",today:"இன்று",month:"மாதம்",week:"வாரம்",day:"நாள்",list:"தினசரி அட்டவணை"},weekText:"வாரம்",allDayText:"நாள் முழுவதும்",moreLinkText:function(e){return"+ மேலும் "+e},noEventsText:"காண்பிக்க நிகழ்வுகள் இல்லை"},l70={code:"th",week:{dow:1,doy:4},buttonText:{prev:"ก่อนหน้า",next:"ถัดไป",prevYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",year:"ปี",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"กำหนดการ"},weekText:"สัปดาห์",allDayText:"ตลอดวัน",moreLinkText:"เพิ่มเติม",noEventsText:"ไม่มีกิจกรรมที่จะแสดง"},l71={code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"},l72={code:"ug",buttonText:{month:"ئاي",week:"ھەپتە",day:"كۈن",list:"كۈنتەرتىپ"},allDayText:"پۈتۈن كۈن"},l73={code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekText:"Тиж",allDayText:"Увесь день",moreLinkText:function(e){return"+ще "+e+"..."},noEventsText:"Немає подій для відображення"},l74={code:"uz",buttonText:{month:"Oy",week:"Xafta",day:"Kun",list:"Kun tartibi"},allDayText:"Kun bo'yi",moreLinkText:function(e){return"+ yana "+e},noEventsText:"Ko'rsatish uchun voqealar yo'q"},l75={code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekText:"Tu",allDayText:"Cả ngày",moreLinkText:function(e){return"+ thêm "+e},noEventsText:"Không có sự kiện để hiển thị"},l76={code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekText:"周",allDayText:"全天",moreLinkText:function(e){return"另外 "+e+" 个"},noEventsText:"没有事件显示"},l77={code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekText:"周",allDayText:"整天",moreLinkText:"顯示更多",noEventsText:"没有任何活動"},localesAll=[l0,l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,l15,l16,l17,l18,l19,l20,l21,l22,l23,l24,l25,l26,l27,l28,l29,l30,l31,l32,l33,l34,l35,l36,l37,l38,l39,l40,l41,l42,l43,l44,l45,l46,l47,l48,l49,l50,l51,l52,l53,l54,l55,l56,l57,l58,l59,l60,l61,l62,l63,l64,l65,l66,l67,l68,l69,l70,l71,l72,l73,l74,l75,l76,l77],_default=localesAll$1.default=localesAll,freeGlobal$1="object"==typeof commonjsGlobal&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,_freeGlobal=freeGlobal$1,freeGlobal=_freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root$1=freeGlobal||freeSelf||Function("return this")(),_root=root$1,root=_root,Symbol$3=root.Symbol,_Symbol=Symbol$3,Symbol$2=_Symbol;Symbol$2&&Symbol$2.toStringTag;var Symbol$1=_Symbol;Symbol$1&&Symbol$1.toStringTag;var funcProto=Function.prototype,funcToString=funcProto.toString;funcToString.call(Object);const getBuilderContext=()=>"undefined"==typeof window?{}:Builder.settings.context?Builder.settings.context:Builder.settings;async function fetchAPI(e,t={credentials:"include"}){const n={"Content-Type":"application/json"},r=getAuthorization();r&&(n.Authorization=r),t.headers=Object.assign({},n,t.headers),t.credentials="include";const a=await fetch(`${getRootUrl()}${e}`,t);if(401===a.status)throw new Error(401);const i=await a.json();if(i.errors)throw console.error(i.errors),new Error("Failed to fetch API");return i}function getAuthorization(){try{const e=getBuilderContext();let t=e.tenantId,n=e.authToken;return t&&n?`Bearer ${t},${n}`:null}catch(e){console.error(e)}}function getUserId(){try{let e=getBuilderContext().userId;return e||null}catch(e){console.error(e)}}function getRootUrl(e){const t=getBuilderContext();if(t.rootUrl)return t.rootUrl;const n="undefined"!=typeof window?window.localStorage.getItem("steedos:rootUrl"):"";return n||e}const Router={getTabDisplayAs(e){var t=new URLSearchParams(document.location.search);if(t.has("display"))return t.get("display");const n=localStorage.getItem("page_display");return n||"grid"},setTabDisplayAs(e,t){const n=`tab.${e}.display`;localStorage.setItem(n,t)},getAppPath:({formFactor:e,appId:t})=>`/app/${t}`,getPagePath(){},getObjectListViewPath:({formFactor:e,appId:t,objectName:n,listViewName:r})=>`/app/${t}/${n}/grid/${r}`,getObjectDetailPath(e){const{formFactor:t,appId:n,objectName:r,recordId:a,listViewName:i,_templateType:o}=e,s=Router.getTabDisplayAs(r);return"JavaScript"===o?`/app/${n}/${r}/view/${a}?display=${s}&side_object=<%=item.objectName%>&side_listview_id=<%=item.listName%>`:`/app/${n}/${r}/view/${a}?display=${s}&side_object=\${objectName}&side_listview_id=\${listName}`},getObjectRelatedViewPath:({formFactor:e,appId:t,masterObjectName:n,masterRecordId:r,objectName:a,foreignKey:i})=>`/app/${t}/${n}/${r}/${a}/grid?related_field_name=${i}`};function getContrastColor(e){var t="#"===e.charAt(0)?e.substring(1,7):e;return(299*parseInt(t.substr(0,2),16)+587*parseInt(t.substr(2,2),16)+114*parseInt(t.substr(4,2),16))/1e3<128?"#ffffff":"#000000"}function getNumberTpl(e){return`<div>\${_display.${e.name}}</div>`}function getTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTpl(e){return`<div>\${_display.${e.name}}</div>`}function getDateTimeTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFieldTpl(e){return`<div>\${_display.${e.name}}</div>`}function getUiFileSizeTpl(e){return`<div>\${_display.${e.name}}</div>`}async function getRefObjectNameFieldName(e){return(await getUISchema(e.reference_to)).NAME_FIELD_KEY||"name"}function getSelectTpl(e){return`<div>\${_display.${e.name}}</div>`}function getSelectMap(e){let t={};return ___default.forEach(e,(e=>{const n=e.value+"",r=e.color+"";if(r){const a="#"===r.charAt(0)?r:"#"+r,i="background:"+a+";color:"+getContrastColor(a);t[n]=`<span class="rounded-xl px-2 py-1" style='${i}'>${e.label}</span>`}else t[n]=e.label})),t}function getNameTplUrl(e,t){if("cms_files"===t.objectName)return"${context.rootUrl}/api/files/files/${versions[0]}?download=true";return Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`})}function getNameTpl(e,t){return`<a href="${getNameTplUrl(e,t)}">\${${e.name}}</a>`}function getRelatedFieldTpl(e,t){let n="";if(!e.reference_to&&(e.optionsFunction||e._optionsFunction))return e.isTableField?`\${${e.name}}`:`\${${e.name}__label}`;const r=t.onlyDisplayLabel;let a=`data._display.${e.name}`;if(e.isTableField&&(a=`data.${e.name}`),_.isString(e.reference_to)||!e.reference_to)if(e.multiple){let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}"><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item,index) { %> <% if(index>0 && index<${a}.length){ %> , <% } %> ${e} <% }); %><% } %>\n `}else{let a=`\${_display.${e.name}.label}`,i=`\${_display.${e.name}.objectName}`,o=`\${_display.${e.name}.value}`;if(e.isTableField&&(a=`\${${e.name}.label}`,i=`\${${e.name}.objectName}`,o=`\${${e.name}.value}`),!r){a=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"${appId}",objectName:`${i}`,recordId:`${o}`})}">${a}</a>`}n=a}else{let e="<%=item.label%>";if(!r){e=`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:"<%=data.appId%>",objectName:"<%=item.objectName%>",recordId:"<%=item.value%>",_templateType:"JavaScript"})}"><%=item.label%></a>`}n=`\n <% if (${a} && ${a}.length) { %><% ${a}.forEach(function(item) { %> ${e} <% }); %><% } %>\n `}return n}async function getLookupTpl(e,t){if(!e.reference_to)return getSelectTpl(e);const n=await getRefObjectNameFieldName(e);if(e.multiple){const r=Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:"<%=item._id%>",_templateType:"JavaScript"});return`\n <% if (data.${e.name} && data.${e.name}.length) { %><% data.${e.name}.forEach(function(item) { %> <a href="${r}"><%=item.${n}%></a> <% }); %><% } %>\n `}return`<a href="${Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:e.reference_to,recordId:`\${${e.name}._id}`})}">\${${e.name}.${n}}</a>`}function getSwitchTpl(e){return`<% if (data.${e.name}) { %>\n <span class="slds-icon_container slds-icon-utility-check slds-current-color" title="<%=data._display.${e.name}%>">\n <span ><%= data._display.${e.name} === "√" ? "<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='w-4 h-4'><path stroke-linecap='round' stroke-linejoin='round' d='M4.5 12.75l6 6 9-13.5' /></svg>" : data._display.${e.name} %></span>\n </span>\n <% } %>`}function getPasswordTpl(e){return`<% if (data.${e.name}) { %>\n <span>······</span>\n <% } %>`}async function getFieldTpl(e,t){if((e.is_name||e.name===t.labelFieldName)&&!t.onlyDisplayLabel)return getNameTpl(e,t);switch(e.type){case"password":return getPasswordTpl(e);case"boolean":case"toggle":return getSwitchTpl(e);case"select":return getSelectTpl(e);case"time":return getTimeTpl(e);case"date":return getDateTpl(e);case"datetime":return getDateTimeTpl(e);case"lookup":case"master_detail":return await getRelatedFieldTpl(e,t);case"number":case"currency":return await getNumberTpl(e);case"percent":case"formula":case"summary":return getUiFieldTpl(e);case"filesize":return getUiFileSizeTpl(e)}}async function getFieldsTemplate(e,t){0!=t&&(t=!0);let n=["_id"],r=[],a=[];a=___default__namespace.isArray(e)?e:___default__namespace.values(e);for(const e of a)e.name.indexOf(".")<0&&(!t||"lookup"!=e.type&&"master_detail"!=e.type?n.push(e.alias?`${e.alias}:${e.name}`:e.name):(n.push(`${e.name}`),r.push(`${e.name}`)),___default.includes(["time","date","datetime","boolean","number","currency"],e.type)&&n.push(`${e.name}`),___default.includes(["percent","time","filesize","date","datetime","boolean","number","currency","select","file","image","avatar","formula","summary","object","grid"],e.type)&&r.push(`${e.name}`));return r=___default__namespace.uniq(r),n=___default__namespace.uniq(n),r.length>0?`${n.join(",")},_display:_ui{${r.join(",")}}`:`${n.join(" ")}`}async function getFindQuery(e,t,n,r){let a=r.limit||10,i=`(top: ${a})`;t&&(i=`(filters:["_id", "=", "${t}"], top: ${a})`);let o="data";r&&(r.alias&&(o=r.alias),r.filters&&(i=`(filters:${r.filters})`),r.queryOptions&&(i=`(${r.queryOptions})`));var s="";e.enable_tree&&___default__namespace.includes(___default__namespace.keys(e.fields),"parent")&&___default__namespace.includes(___default__namespace.keys(e.fields),"children")&&(s=",parent,children");var l="";"cms_files"===e.name&&(l=",versions");const c=!1===r.count?"":`,count:${e.name}__count(filters:{__filters})`,d=r.moreQueries?.length?","+r.moreQueries.map((function(e){return e.replace(/^{/,"").replace(/}$/,"")})).join(","):"";return{orderBy:"${orderBy}",orderDir:"${orderDir}",pageNo:"${page}",pageSize:"${perPage}",query:`{${o}:${e.name}${i}{${await getFieldsTemplate(n,r.expand)}${s}${l}}${c}${d}}`}}function getApi$2(e){if(!e)return"${context.rootUrl}/graphql?reload=${additionalFilters}"}async function getListBody(e,t){const n=[];for(const r of e){const e=await getFieldTpl(r,t);let a="text";e&&(a="tpl"),r.hidden||r.extra||n.push({name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:a,tpl:e,toggled:r.toggled})}return{type:"hbox",columns:n}}function getDefaultParams$1(e){return{perPage:e.top||e.perPage||10}}async function getListSchema$1(e,t){const n=(await getListBody(e,t)).columns;return{mode:"list",name:"thelist",draggable:!1,headerToolbar:["reload"],defaultParams:getDefaultParams$1(t),syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:"${name}",listItem:{body:[...n],actions:!1===t.actions?null:[{icon:"fa fa-eye",label:"查看",type:"button",actionType:"link",link:Router.getObjectDetailPath({formFactor:t.formFactor,appId:t.appId,objectName:t.tabId,listView:t.listView,recordId:"${_id}"})}]}}}const getSchema$4=async(e,t)=>({type:"service",body:[{type:"button",label:"新建",id:"u:standard_new",level:"default",onEvent:{click:{weight:0,actions:[{actionType:"dialog",dialog:{type:"dialog",data:{$master:"$$",_master:"${_master}","_master._isRelated":"${_isRelated}","_master.relatedKey":"${relatedKey}",appId:"${appId}",objectName:"${objectName}",context:"${context}",global:"${global}",listViewId:"${listViewId}",displayAs:"${displayAs}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",listName:"${listName}"},title:"新建 ${uiSchema.label}",body:[{type:"service",id:"u:1678e148c4d2",messages:{},schemaApi:{data:{isLookup:"${isLookup}",_master:"${_master}",url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}"},url:"${context.rootUrl}/api/pageSchema/form?app=${appId}&objectApiName=${objectName}&formFactor=${formFactor}",method:"get",messages:{},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},requestAdaptor:"return { ...api, url: api.body.url }",adaptor:`\n let formSchema = {\n "type": "steedos-object-form",\n "label": "对象表单",\n "objectApiName": "\${objectName}",\n "recordId": "",\n "mode": "edit",\n "layout": "normal"\n };\n\n if (payload && payload.schema) {\n formSchema = _.isString(payload.schema) ? JSON.parse(payload.schema) : payload.schema;\n }\n\n const _master = api.body._master;\n if(_master && _master._isRelated){\n const relatedKey = _master.relatedKey;\n const masterObjectName = _master.objectName;\n const recordId = _master.recordId;\n let relatedKeySaveValue = recordId;\n const fields = ${JSON.stringify(e.fields)};\n const relatedField = fields[relatedKey];\n if(relatedField.reference_to_field && relatedField.reference_to_field !== '_id'){\n relatedKeySaveValue = _master.record[relatedField.reference_to_field];\n }\n let defaultData = {}; \n let relatedKeyValue; \n if(!_.isString(relatedField.reference_to)){\n relatedKeyValue = { o: masterObjectName, ids: [relatedKeySaveValue] };\n }else if (relatedField.multiple) {\n relatedKeyValue = [relatedKeySaveValue];\n } else {\n relatedKeyValue = relatedKeySaveValue;\n }\n defaultData[relatedKey]=relatedKeyValue;\n if(payload.schema){\n // 表单微页面第一层要求是page\n formSchema.data.defaultData = defaultData;\n }else{\n formSchema.defaultData = defaultData;\n }\n }\n\n return {\n data: formSchema\n };\n `}}],showCloseButton:!0,id:"u:e11347411d2d",closeOnEsc:!1,closeOnOutside:!1,size:"lg",actions:[{type:"button",actionType:"cancel",label:"取消"},{type:"button",label:"保存并新建",actionType:"confirm",close:!1,id:"confirmAndNew"},{type:"button",actionType:"confirm",label:"保存",primary:!0}]}}]}}}],regions:["body"],className:"p-0 border-0",id:"u:aef99d937b10"});async function getObjectFieldsFilterFormSchema(e){e||(e={});return{type:"service",visibleOn:"this.filterFormSearchableFields && this.filterFormSearchableFields.length",className:"SMALL"===e.formFactor?"slds-filters__body p-0 mb-2":"slds-filters__body p-0 sm:grid sm:gap-2 sm:grid-cols-4 mb-2",schemaApi:{method:"post",url:"${context.rootUrl}/graphql?reload=${filterFormSearchableFields|join}",data:{$self:"$$",query:'{\n data: objects(filters: [["_id","=",null]],top: 1, skip: 0){_id}\n }'},requestAdaptor:"\n return {\n ...api,\n data: {\n query: api.data.query\n }\n };\n ",adaptor:`\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const filterFormSearchableFields = (selfData.filterFormSearchableFields || []).filter(function(item){\n return !!fields[item]\n });\n const resolveAll = function(values){\n payload.data = {\n "body": values\n };\n return payload;\n }\n\n const rejectAll = function(){\n console.warn("run function getFieldSearchable failed.");\n }\n\n return Promise.all(filterFormSearchableFields.map(function (item) {\n const field = _.clone(fields[item]);\n if (\n field && window.isFieldTypeSearchable(field.type)\n ) {\n delete field.defaultValue;\n delete field.required;\n delete field.is_wide;\n delete field.readonly;\n delete field.hidden;\n delete field.omit;\n var ctx = ${JSON.stringify(e)};\n const amisField = window.getFieldSearchable(field, fields, ctx);\n return amisField;\n }\n })).then(resolveAll, rejectAll);\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}async function getObjectFieldsFilterBarSchema(e,t){t||(t={});const n="btn_filter_form_search_"+(new Date).getTime();return{type:"service",name:"service_listview_filter_form",data:{},dataProvider:{inited:'\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listViewId = data.listViewId;\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields/";\n if(isLookup){\n searchableFieldsStoreKey += "lookup/" + objectName;\n }\n else{\n searchableFieldsStoreKey += listViewId;\n }\n let defaultSearchableFields = sessionStorage.getItem(searchableFieldsStoreKey);\n if(defaultSearchableFields){\n defaultSearchableFields = defaultSearchableFields.split(",");\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n let listView = data.uiSchema.list_views[data.listName];\n const sFields = listView && listView.searchable_fields;\n if(sFields && sFields.length){\n defaultSearchableFields = _.map(sFields, \'field\');\n }\n }\n if(_.isEmpty(defaultSearchableFields) && data.uiSchema){\n defaultSearchableFields = _.map(\n _.sortBy(_.filter(_.values(data.uiSchema.fields), (field) => {\n return field.searchable;\n }), "sort_no"),\n "name"\n );\n }\n setData({ filterFormSearchableFields: defaultSearchableFields });\n if(isLookup){\n // looup字段过滤器不在本地缓存记住过滤条件,所以初始始终隐藏过滤器\n setData({ showFieldsFilter: false });\n }\n else{\n const listViewPropsStoreKey = location.pathname + "/crud/" + data.listViewId ;\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n let filterFormValues = _.pickBy(localListViewProps, function(n,k){\n return /^__searchable__/g.test(k);\n });\n if(!_.isEmpty(filterFormValues)){\n setData({ ...filterFormValues });\n const omitedEmptyFormValue = _.omitBy(filterFormValues, function(n){\n return _.isNil(n) \n || (_.isObject(n) && _.isEmpty(n)) \n || (_.isArray(n) && _.isEmpty(n.filter(function(item){return !_.isNil(item)})))\n || (_.isString(n) && n.length === 0);\n });\n // 有过滤条件时自动展开搜索栏\n if(!_.isEmpty(omitedEmptyFormValue)){\n let isMobile = Steedos.isMobile();\n if(isMobile){\n // 手机端不展开,只显示搜索按钮上的红点\n let crudService = SteedosUI.getRef(data.$scopeId).getComponentById("service_listview_" + data.objectName)\n crudService && crudService.setData({isFieldsFilterEmpty: false});\n }\n else{\n setData({ showFieldsFilter: true });\n }\n }\n }\n }\n }\n '},body:{type:"wrapper",body:{type:"wrapper",body:[await getObjectFieldsFilterFormSchema(t),{type:"wrapper",body:{type:"wrapper",body:[{type:"button",id:n,label:"搜索",icon:"fa fa-search",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n filterForm.handleFormSubmit(event);\n // var filterFormValues = filterForm.getValues();\n // var listView = scope.parent.parent.parent.getComponents().find(function(n){\n // return n.props.type === "crud";\n // });\n // const removedValues = {};\n // // 设置搜索项中移除搜索项后,filterFormValues未把其字段的空值保存为own property,即hasOwnProperty属性中\n // // 这会造成handleFilterSubmit时把移除掉的搜索项字段之前的值加到过滤条件中\n // for(var k in filterFormValues){\n // if(filterFormValues[k] === "" && !filterFormValues.hasOwnProperty(k)){\n // removedValues[k] = null;\n // }\n // }\n // listView.handleFilterSubmit(Object.assign({}, removedValues, filterFormValues));\n\n let isMobile = Steedos.isMobile();\n if(isMobile){\n // 手机端点击搜索的时候自动收起搜索栏\n let resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 500);\n }\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({showFieldsFilter: false});\n resizeWindow();\n // 使用filterForm.getValues()的话,并不能拿到本地存储中的过滤条件,所以需要从event.data中取。\n let filterFormValues = event.data;\n let isFieldsFilterEmpty = SteedosUI.isFilterFormValuesEmpty(filterFormValues);\n let crud = SteedosUI.getClosestAmisComponentByType(scope, "crud");\n let crudService = crud && SteedosUI.getClosestAmisComponentByType(crud.context, "service");\n crudService && crudService.setData({isFieldsFilterEmpty, showFieldsFilter: false});\n }\n '}]}}},{type:"button",label:"取消",name:"btn_filter_form_cancel",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n var filterFormValues = filterForm.getValues();\n var listView = scope.parent.parent.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n const removedValues = {};\n for(var k in filterFormValues){\n if(/^__searchable__/.test(k)){\n removedValues[k] = null;\n }\n }\n if(!event.data.isLookup){\n // 刷新浏览器后,filterFormValues值是空的,只能从本地存储中取出并重置为空值\n const listViewId = event.data.listViewId;\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n for(var k in localListViewProps){\n removedValues[k] = null;\n }\n }\n }\n filterForm.reset();\n listView.handleFilterSubmit(removedValues);\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 100);\n let isMobile = Steedos.isMobile();\n if(isMobile){\n // 手机端移除搜索按钮上的红点\n let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n crudService && crudService.setData({isFieldsFilterEmpty: true, showFieldsFilter: false});\n }\n '}]}}},{type:"button",label:"设置搜索项",onEvent:{click:{actions:[{actionType:"dialog",dialog:{type:"dialog",size:"md",title:"设置搜索项",body:[{type:"form",title:"",body:[{label:"",type:"transfer",name:"fields",id:"u:92c0b3cccca0",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${objectName}/fields/options",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{$self:"$$"},requestAdaptor:"",adaptor:'\n if(payload.errors){\n payload.status = 2;\n payload.msg = window.t ? window.t(payload.errors[0].message) : payload.errors[0].message;\n }\n const selfData = api.body.$self;\n const uiSchema = selfData.uiSchema;\n const fields = uiSchema.fields;\n const options = (payload.data?.options || []).filter(function(item){\n let field = fields[item.value];\n return !!field && window.isFieldTypeSearchable(field.type)\n });\n payload.data = {\n "options": options\n };\n return payload;\n '},options:[],required:!0,placeholder:"-",className:"col-span-2 m-0",checkAll:!1,searchable:!0,sortable:!0,joinValues:!1,extractValue:!0,multiple:!0}],id:"u:e5ac506d5683",mode:"normal",persistData:!1,promptPageLeave:!0,name:"form",debug:!1,actions:[],panelClassName:"m-0",bodyClassName:"p-4",className:"steedos-amis-form"}],id:"u:ca99fa9fe1b1",actions:[{type:"button",label:"取消",onEvent:{click:{actions:[{componentId:"",args:{},actionType:"closeDialog"}]}},id:"u:4e447b5ca72a"},{type:"button",label:"确认",onEvent:{click:{actions:[{actionType:"custom",script:'\n const data = context.props.data;\n const listName = data.listName;\n const objectName = data.objectName;\n const isLookup = data.isLookup;\n const listViewId = data.listViewId;\n const value = data.fields;\n const scope = event.context.scoped;\n // 这里的filterForm不是name为"listview-filter-form"的内部form,而是crud自带的filter form\n const filterForm = scope.parent.parent.getComponents().find(function(n){\n return n.props.type === "form";\n });\n const filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n });\n filterService.setData({ filterFormSearchableFields: value });\n let searchableFieldsStoreKey = location.pathname + "/searchable_fields/";\n if(isLookup){\n searchableFieldsStoreKey += "lookup/" + objectName;\n }\n else{\n searchableFieldsStoreKey += listViewId;\n }\n sessionStorage.setItem(searchableFieldsStoreKey, value);\n\n // ===START===:当变更可搜索字段时,如果被移除的可搜索字段在本地存储中已经存入过滤条件中则应该清除本地存储中相关字段的过滤条件。\n const searchableFields = data.fields;\n let preSearchableFields = data.__super.fields;\n if(typeof preSearchableFields === "string"){\n preSearchableFields = preSearchableFields.split(",");\n }\n const removedFields = _.difference(preSearchableFields, searchableFields);\n\n // const getClosestAmisComponentByType = function (scope, type, name) {\n // // 递归children找到listview-filter-form\n // let re = scope.getComponents().find(function (n) {\n // return n.props.type === type && n.props.name === name;\n // });\n // if (re) {\n // return re;\n // }\n // else {\n // if (scope.children && scope.children.length) {\n // for (let i = 0; i < scope.children.length; i++) {\n // re = getClosestAmisComponentByType(scope.children[i], type, name);\n // if (re) {\n // break;\n // }\n // }\n // return re;\n // }\n \n // }\n // }\n // // 这里第二层form才是真正要提交到crud过滤条件的form\n // filterInnerForm = getClosestAmisComponentByType(filterForm.context, "form", "listview-filter-form");\n\n const filterFormValues = filterForm.getValues();\n let removedKeys = [];\n _.each(filterFormValues, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n removedKeys.push(k);\n }\n });\n const removedValues = {};\n removedKeys.forEach(function(key){\n removedValues[key] = null;\n });\n filterForm.setValues(removedValues);//这里使用filterInnerForm也可以\n\n if(isLookup){\n return;\n }\n \n // 列表视图crud支持本地缓存,所以需要进一步清除浏览器本地缓存里面用户在可搜索项中移除的字段值\n const listViewPropsStoreKey = location.pathname + "/crud/" + listViewId ;\n let localListViewProps = sessionStorage.getItem(listViewPropsStoreKey);\n if(localListViewProps){\n localListViewProps = JSON.parse(localListViewProps);\n _.each(localListViewProps, function(n,k){\n // __searchable__开头的不在searchableFields范围则清除其值\n let isRemoved = !!removedFields.find(function(fieldName){\n return new RegExp("__searchable__.*" + fieldName + "$").test(k);\n });\n if(isRemoved){\n delete localListViewProps[k];\n }\n });\n sessionStorage.setItem(listViewPropsStoreKey, JSON.stringify(localListViewProps));\n }\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 100)\n // ===END===\n '},{actionType:"click",componentId:n},{componentId:"",args:{},actionType:"closeDrawer"}]}},id:"u:14e7388fecd3",level:"primary"}],closeOnEsc:!1,closeOnOutside:!1,showCloseButton:!0,data:{"&":"$$",objectName:"${objectName}",listName:"${listName}",listViewId:"${listViewId}",uiSchema:"${uiSchema}",isLookup:"${isLookup}",context:"${context}",fields:"${filterFormSearchableFields}"}}}]}},id:"u:b96d84868a5a",level:"link"}],size:"xs",className:"space-x-4"},size:"xs",className:"slds-filters__footer slds-grid slds-shrink-none flex justify-between p-0"}],size:"xs",className:"slds-filters"},size:"xs",className:`border-gray-300 border-y slds-grid slds-grid_vertical slds-nowrap ${!t.isLookup&&"mt-2"}`,visibleOn:"this.showFieldsFilter"},className:"bg-white"}}async function getObjectListHeaderFieldsFilterBar(e,t,n){return await getObjectFieldsFilterBarSchema(e,n)}const getExportExcelToolbarButtonSchema=()=>({type:"button",icon:"fa fa-download",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",tooltipPlacement:"bottom",visibleOn:"${!isLookup && global.user.is_space_admin}",tooltip:"导出Excel",onEvent:{click:{weight:0,actions:[{args:{api:{url:"${context.rootUrl}/api/record/export/${objectName}",method:"get",messages:{},requestAdaptor:`${requestAdaptor$1()}`,data:{uiSchema:"${uiSchema}",listName:"${listName}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download"}]}}});function requestAdaptor$1(){return'\n // 获取列表视图的属性\n let uiSchema = api.body.uiSchema;\n let list_views = uiSchema.list_views;\n let list_views_name = api.body.listName;\n let col = list_views[list_views_name].columns;\n let sort_test = list_views[list_views_name].sort;\n \n // 获取下载字段\n let select = [];\n _.each(col, (col) => {\n if (col.field == undefined)\n select.push(col);\n else select.push(col.field);\n });\n \n // 获取排序字段\n \n let sort = [];\n _.forEach(sort_test, (sortField) => {\n if (sortField.field_name == undefined)\n sort.push(sortField);\n else sort.push([sortField.field_name, sortField.order]);\n })\n \n let orders = [];\n _.map(sort, (value) => {\n let order_tmp = [];\n if (value[1] == "desc")\n order_tmp = value[0] + \' desc\';\n else\n order_tmp = value[0];\n orders.push(order_tmp);\n });\n let order = orders.join(\',\');\n \n let filename = uiSchema.label + "-" + list_views[list_views_name].label;\n \n url_tmp = api.url.split(\'?\')[0];\n api.url = url_tmp + "?$select=" + select.toString() + "&filename=" + filename;\n \n // 判断sort 和 filters\n if (sort.length > 0) {\n api.url += "&$orderby=" + order;\n }\n let filters = list_views[list_views_name].filters;\n if (filters && filters.length > 0) {\n api.url = api.url + "&filters=" + JSON.stringify(filters);\n }\n return api;\n '}const getNewListviewButtonSchema=()=>({type:"button",label:"新建",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"新建 列表视图",data:{all:"${uiSchema.list_views.all}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",targetObjectName:"${objectName}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",defaultData:{"&":"${list_view}",name:"",label:"",filters:"",shared:!1},fieldsExtend:fieldsExtend$4(),fields:fields$1(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"}]}},messages:{success:"成功",failed:"失败"}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields$1(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared"]}function fieldsExtend$4(){return{label:{is_wide:!0},name:{amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{amis:{visibleOn:"${global.user.is_space_admin}"}}}}const getCopyListviewButtonSchema=()=>({type:"button",label:"复制",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"复制 列表视图",data:{listName:"${listName}",targetObjectName:"${objectName}",list_view:"${uiSchema.list_views[listName]}",appId:"${appId}",global:"${global}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"",mode:"edit",defaultData:{"&":"${list_view}",name:"",label:"${list_view.label} 的副本",shared:!1},fieldsExtend:fieldsExtend$3(),fields:fields(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/listview_${result.data.recordId|lowerCase}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function fields(){return["label","name","object_name","filter_scope","show_count","columns.$.field","columns.$.width","sort.$.field_name","sort.$.order","filters","mobile_columns.$.field","searchable_fields.$.field","is_system","shared"]}function fieldsExtend$3(){return{label:{is_wide:!0},name:{is_wide:!0,amis:{hidden:!0}},object_name:{amis:{hidden:!0}},filter_scope:{amis:{hidden:!0}},columns:{amis:{hidden:!0}},filter_fields:{amis:{hidden:!0}},scrolling_mode:{amis:{hidden:!0}},sort:{amis:{hidden:!0}},show_count:{amis:{hidden:!0}},type:{amis:{hidden:!0}},shared:{amis:{visibleOn:"${global.user.is_space_admin}"}}}}const getRenameListviewButtonSchema=()=>({type:"button",label:"重命名",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"重命名 列表视图",data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["label"],fieldsExtend:'{\n "label":{\n "is_wide": true\n }\n}',onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${name}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}}),getSetListviewShareButtonSchema=()=>({type:"button",label:"共享设置",disabledOn:"!(global.user.is_space_admin && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"共享设置",data:{recordId:"${uiSchema.list_views[listName]._id}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["shared"]}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"md"},actionType:"dialog"}]}}}),getSetListviewFiltersButtonSchema=()=>({type:"button",label:"过滤设置",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"过滤设置",data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fields:["filters"],initApiAdaptor:initApiAdaptor$2(),apiRequestAdaptor:apiRequestAdaptor$2(),fieldsExtend:fieldsExtend$2(),onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}}}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,closeOnEsc:!1,dataMapSwitch:!1,size:"lg"},actionType:"dialog"}]}}});function initApiAdaptor$2(){return"\n const recordId_tmp = api.body.recordId;\n let data_tmp;\n if (recordId_tmp) {\n data_tmp = payload.data;\n // 数据格式转换\n if (data_tmp) {\n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n try {\n data_tmp.filters = JSON.parse(data_tmp.filters);\n } catch (e) { }\n }\n \n if (data_tmp.filters && lodash.isString(data_tmp.filters)) {\n data_tmp._filters_type_controller = 'function';\n } else {\n data_tmp._filters_type_controller = 'conditions'\n }\n \n if (data_tmp._filters_type_controller === 'conditions') {\n data_tmp._filters_conditions = window.amisConvert.filtersToConditions(data_tmp.filters || []);\n data_tmp.filters = data_tmp._filters_conditions;\n } else {\n data_tmp._filters_function = data_tmp.filters;\n }\n }\n }\n for (key in data_tmp) {\n if (data_tmp[key] === null) {\n delete data_tmp[key];\n }\n }\n payload.data = Object.assign(payload.data, data_tmp);\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$2(){return"\n const recordId = api.body.recordId;\n if (formData._filters_type_controller === 'conditions' && formData._filters_conditions) {\n formData.filters = window.amisConvert.conditionsToFilters(formData.filters);\n } else {\n formData.filters = formData._filters_function || null;\n }\n \n delete formData._filters_type_controller;\n delete formData._filters_conditions;\n delete formData._filters_function;\n \n query = 'mutation{record: ' + objectName + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n };\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}function fieldsExtend$2(){return{filters:{visible_on:"true",amis:{type:"condition-builder",label:"条件组件1",source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-listviews/getFilterFields?objectName=${targetObjectName}",dataType:"json",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}const getSetListviewColumnsButtonSchema=()=>({type:"button",label:"显示的列",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{args:{},dialog:{type:"dialog",title:"显示的列",data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",mode:"edit",fieldsExtend:fieldsExtend$1(),initApiAdaptor:initApiAdaptor$1(),apiRequestAdaptor:apiRequestAdaptor$1(),fields:["columns","mobile_columns"],onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}}}],searchable:!0,showCloseButton:!0,showErrorMsg:!0,showLoading:!0,size:"lg"},actionType:"dialog"}]}}});function fieldsExtend$1(){return{columns:{amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}},mobile_columns:{group:"手机端",amis:{type:"transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/fields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor$1(){return"\n const recordId_tmp = api.body.recordId;\n let columns_tmp = {}, mobile_columns_tmp = {};\n if (recordId_tmp) {\n columns_tmp = payload.data.columns;\n mobile_columns_tmp = payload.data.mobile_columns;\n if (columns_tmp) {\n columns_tmp = lodash.map(columns_tmp, 'field');\n }\n if (mobile_columns_tmp) {\n mobile_columns_tmp = lodash.map(mobile_columns_tmp, 'field');\n }\n }\n payload.data.columns = columns_tmp;\n payload.data.mobile_columns = mobile_columns_tmp;\n \n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor$1(){return"\n const formData_tmp = api.body.$;\n const objectName_tmp = api.body.objectName;\n const recordId_tmp = api.body.recordId;\n \n if (typeof formData_tmp.columns == 'string') {\n formData_tmp.columns = formData_tmp.columns?.split(',');\n }\n if (typeof formData_tmp.mobile_columns == 'string') {\n formData_tmp.mobile_columns = formData_tmp.mobile_columns?.split(',');\n }\n \n // 数据格式转换\n formData_tmp.columns = lodash.map(formData_tmp.columns, (item) => {\n return { field: item };\n });\n formData.mobile_columns = lodash.map(formData.mobile_columns, (item) => {\n return { field: item };\n });\n \n let query_tmp = 'mutation{record: ' + objectName_tmp + '__insert(doc: {__saveData}){_id}}';\n if (api.body.recordId) {\n query_tmp = 'mutation{record: ' + objectName_tmp + '__update(id: \"' + recordId_tmp +'\", doc: {__saveData}){_id}}';\n };\n delete formData_tmp._id;\n let __saveData_tmp = JSON.stringify(JSON.stringify(formData_tmp));\n api.data = { query: query_tmp.replace('{__saveData}', __saveData_tmp) };\n \n return api;\n "}const getSetListviewSortButtonSchema=()=>({type:"button",label:"默认排序规则",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",onEvent:{click:{weight:0,actions:[{dialog:{type:"dialog",title:"默认排序规则",data:{targetObjectName:"${objectName}",recordId:"${uiSchema.list_views[listName]._id}",listName:"${listName}",appId:"${appId}",context:"${context}"},body:[{type:"steedos-object-form",label:"对象表单",objectApiName:"object_listviews",recordId:"${recordId}",className:"",id:"u:061f158b4c5a",mode:"edit",fields:["sort","sort.$.field_name","sort.$.order"],onEvent:{submitSucc:{weight:0,actions:[{args:{url:"${context.rootUrl}/app/${appId}/${targetObjectName}/grid/${listName}",blank:!1},actionType:"url"}]}},fieldsExtend:fieldsExtend(),initApiAdaptor:initApiAdaptor(),apiRequestAdaptor:apiRequestAdaptor()}],showCloseButton:!0,showErrorMsg:!0,showLoading:!0,id:"u:d3f6947b6acf",size:"lg"},actionType:"dialog"}]}}});function fieldsExtend(){return{sort:{amis:{type:"tabs-transfer",sortable:!0,searchable:!0,source:{method:"get",url:"${context.rootUrl}/service/api/amis-metadata-objects/objects/${targetObjectName}/sortFields/options",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}}}}function initApiAdaptor(){return"\n let sort;\n if (recordId) {\n sort = payload.data.sort;\n //数据格式转换\n if (sort instanceof Array) {\n sort = lodash.map(sort, (item) => {\n return item.field_name + ':' + (item.order || 'asc')\n });\n }\n }\n payload.data.sort = sort;\n delete payload.extensions;\n return payload;\n "}function apiRequestAdaptor(){return"\n const recordId = api.body.recordId;\n //数据格式转换\n if (typeof formData.sort == 'string') {\n formData.sort = formData.sort?.split(',');\n }\n formData.sort = lodash.map(formData.sort, (item) => {\n const arr = item.split(':');\n return { field_name: arr[0], order: arr[1] };\n });\n if (recordId) {\n query = 'mutation{record: ' + objectName + '__update(id: \"' + recordId + '\", doc: {__saveData}){_id}}';\n }\n __saveData = JSON.stringify(JSON.stringify(formData));\n api.data = { query: query.replace('{__saveData}', __saveData) };\n return api;\n "}const getDeleteListviewButtonSchema=()=>({type:"button",label:"删除",disabledOn:"!((global.user.is_space_admin || global.userId == uiSchema.list_views[listName].owner) && !!uiSchema.list_views[listName].owner)",confirmText:"如果您删除此列表视图,该视图将为所有具备访问权限的用户永久删除。是否确定要删除?",onEvent:{click:{actions:[{actionType:"ajax",args:{api:{url:"${context.rootUrl}/graphql",method:"post",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},data:{"&":"$$",uiSchema:"${uiSchema}",recordId:"${uiSchema.list_views[listName]._id}"},messages:{success:"删除成功"},requestAdaptor:requestAdaptor(),adaptor:adaptor()}}},{actionType:"url",args:{url:"${context.rootUrl}/app/${appId}/${objectName}/grid/all",blank:!1},expression:"data.delete == 1"}]}}});function requestAdaptor(){return"\n const { recordId } = api.body;\n var deleteArray = [];\n if (recordId) { deleteArray.push(`delete:object_listviews__delete(id: \"${recordId}\")`); }\n api.data = { query: `mutation{${deleteArray.join(',')}}` };\n return api;\n "}function adaptor(){return"\n if (payload.errors) {\n payload.status = 2;\n payload.msg = payload.errors[0].message;\n }\n return payload;\n "}const getSettingListviewToolbarButtonSchema=()=>({type:"dropdown-button",trigger:"click",icon:"fa fa-cog",tooltip:"列表视图控制",btnClassName:"antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",align:"right",visibleOn:"${!isLookup}",buttons:[{label:"列表视图控制",children:[getNewListviewButtonSchema(),getCopyListviewButtonSchema(),getRenameListviewButtonSchema(),getSetListviewShareButtonSchema(),getSetListviewFiltersButtonSchema(),getSetListviewColumnsButtonSchema(),getSetListviewSortButtonSchema(),getDeleteListviewButtonSchema()]}]}),getDisplayAsButton=function(e,t){let n=Router.getTabDisplayAs(e);return{type:"dropdown-button",icon:"fa fa-table-columns",tooltip:`显示为 ${"split"===n?"分栏视图":"表格"}`,btnClassName:"antd-Button--iconOnly bg-white p-2 rounded border-gray-300 text-gray-500",align:"right",visibleOn:"${window:innerWidth > 768 && !!!isLookup}",buttons:[{label:"显示为",children:[{type:"button",label:"表格",onClick:'let url = document.location.pathname; var urlSearch = new URLSearchParams(document.location.search); if(urlSearch.get("side_object") && urlSearch.get("side_listview_id")){url=`/app/${props.data.appId}/${urlSearch.get("side_object")}/grid/${urlSearch.get("side_listview_id")}`;}; props.env.jumpTo(url + \'?display=grid\');',rightIcon:"split"!=n?"fa fa-check":null,rightIconClassName:"m-l-sm"},{type:"button",label:"分栏视图",onClick:"const url = document.location.pathname + '?display=split'; props.env.jumpTo(url);",rightIcon:"split"===n?"fa fa-check":null,rightIconClassName:"m-l-sm"}]}]}},onFieldsFilterToggleScript='\nconst scope = event.context.scoped;\nconst filterForm = scope.getComponents().find(function(n){\n return n.props.type === "form";\n});\nconst filterService = filterForm.context.getComponents().find(function(n){\n return n.props.type === "service";\n});\n// filterService.setData({showFieldsFilter: !!!filterService.props.data.showFieldsFilter});\nlet resizeWindow = function(){\n //触发amis crud 高度重算\n setTimeout(()=>{\n window.dispatchEvent(new Event("resize"))\n }, 500);\n}\nlet isMobile = Steedos.isMobile();\nif(filterService.props.data.showFieldsFilter){\n if(isMobile){\n // 手机上只能通过取消按钮来关闭搜索栏\n return;\n }\n let buttonCancel = SteedosUI.getClosestAmisComponentByType(filterForm.context, "button", { \n direction: "down", \n name: "btn_filter_form_cancel" \n });\n buttonCancel.props.dispatchEvent(\'click\', {}).then(function(){\n resizeWindow();\n });\n}\nelse{\n filterService.setData({showFieldsFilter: true});\n resizeWindow();\n if(isMobile){\n // 手机端在显示搜索栏时隐藏刷新按钮\n let crudService = scope.getComponentById("service_listview_" + event.data.objectName);\n crudService && crudService.setData({showFieldsFilter: true});\n }\n}\n';function getObjectHeaderToolbar(e,t,{showDisplayAs:n=!1,hiddenCount:r=!1,headerToolbarItems:a,filterVisible:i=!0}={}){if(window.innerWidth<768&&(n=!1),"SMALL"===t){return[...a||[],r?{}:{type:"tpl",tpl:"${count} 个项目"},{type:"button",align:"right",tooltip:"刷新",className:"bg-white p-2 rounded border-gray-300 text-gray-500",label:"",icon:"fa fa-sync",visibleOn:"${!showFieldsFilter}",onEvent:{click:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleChangePage(1);\n '}]}}},i?{label:"",icon:"fa fa-search",type:"button",tooltip:"搜索",badge:{offset:[-5,1],size:8,animation:!0,visibleOn:"${isFieldsFilterEmpty == false}"},align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}}:{},getDisplayAsButton(e?.name)]}return[...a||[],"bulkActions",{type:"columns-toggler",className:"hidden"},r?{}:{type:"tpl",tpl:"${count} 个项目"},{type:"reload",align:"right",tooltip:"刷新",tooltipPlacement:"bottom",className:"bg-white p-2 rounded border-gray-300 text-gray-500"},getExportExcelToolbarButtonSchema(),i?{label:"",icon:"fa fa-search",tooltip:"搜索",tooltipPlacement:"bottom",type:"button",align:"right",className:"bg-white p-2 rounded border-gray-300 text-gray-500",onEvent:{click:{actions:[{actionType:"custom",script:onFieldsFilterToggleScript}]}}}:{},getSettingListviewToolbarButtonSchema(),getDisplayAsButton(n)]}function getObjectFooterToolbar(e,t){return"SMALL"===t?["load-more"]:["switch-per-page","statistics","pagination"]}async function getObjectFilter(e,t,n){return{title:"",submitText:"",className:"",mode:"normal",wrapWithPanel:!1,body:[await getObjectListHeaderFieldsFilterBar(e,null,n)]}}async function getSource(e,t){const n=t.objectName,r=await getFindQuery({name:n},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"},{name:"children"}],{alias:"options",filters:"{__filters}"});r.query=r.query.replace(/,count\:.+/,"}");const a=await getFindQuery({name:n},null,[{name:t.valueField,alias:"value"},{name:t.labelField,alias:"label"}],{alias:"defaultValueOptions",filters:"{__options_filters}"});a.query=a.query.replace(/,count\:.+/,"}"),r.query=r.query.replace(/}$/,","+a.query.replace(/{(.+)}/,"$1}"));let i=`${e.name}`;e._prefix&&(i=`${e._prefix}${e.name}`),t.fieldNamePrefix&&(i=`${t.fieldNamePrefix}${i}`),r.$value=`$${i}`;const o=`\n var filters = [['parent', '=', null]];\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters));\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${t.valueField}", optionsFiltersOp, []]];\n if (defaultValue) { \n optionsFilters = [["${t.valueField}", optionsFiltersOp, defaultValue]];\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `;return{method:"post",url:getApi$2(),requestAdaptor:o,adaptor:'\n const data = payload.data;\n data.options = data.options.map(function (optionItem) {\n optionItem.defer = !!(optionItem.children && optionItem.children.length);\n delete optionItem.children;\n return optionItem;\n });\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(data.options, defaultValueOptions, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data = data;\n return payload;\n ',data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function getDeferApi(e,t){const n=t.objectName,r=await getFindQuery({name:"{__object_name}"},null,[],{alias:"options",queryOptions:'filters: {__filters}, sort: "{__sort}"'});let a=e.filters;"string"==typeof a&&(a=new Function(`return ${a}`),a=a()),"function"==typeof a&&(a=a(e)),r.query=r.query.replace(/,count\:.+/,"}"),r.query=r.query.replace("{_id}","{{__fields}}");const i=`\n var dep = api.query.dep;\n var term = api.query.term;\n var filters;\n var objectName;\n var fields;\n var sort = "";\n if (dep) {\n objectName = "${n}";\n fields = "_id,value:${t.valueField},label:${t.labelField},children";\n filters = [['parent', '=', dep]];\n sort = "${t.sort}";\n }\n api.data.query = api.data.query.replace(/{__object_name}/g, objectName).replace(/{__fields}/g, fields).replace(/{__filters}/g, JSON.stringify(filters)).replace('{__sort}', sort.trim());\n return api;\n `;return{method:"post",url:getApi$2()+"&dep=${value}",requestAdaptor:i,adaptor:"\n if (api.query.dep) {\n // 展开组织时才需要根据children值设置defer属性\n const data = payload.data;\n data.options = data.options.map(function (option) {\n option.defer = !!(option.children && option.children.length);\n delete option.children;\n return option;\n });\n payload.data = data;\n }\n return payload;\n ",data:r,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}function getRefListViewSort(e){const t=___default__namespace.find(e.list_views,((e,t)=>"all"===t));let n="";return t&&(n=getListViewSort(t)),n}async function lookupToAmisTreeSelect(e,t,n){if(!e)return{};n||(n={});const r={type:getAmisStaticFieldType("tree-select",t)};if(t)r.tpl=await getLookupTpl(e,n);else{const t=await getUISchema(n.objectName);n.sort=getRefListViewSort(t),Object.assign(r,{multiple:e.multiple,searchable:e.searchable,extractValue:!0,hideNodePathLabel:!0,clearable:!0,source:await getSource(e,n),deferApi:await getDeferApi(e,n)}),e.multiple&&Object.assign(r,{joinValues:!1}),"boolean"!=typeof r.searchable&&(r.searchable=!0);const a=e.onEvent;a&&(r.onEvent=a)}return r}const getReferenceTo=async e=>{let t=e.reference_to;if(!t)return;"users"===t&&(t="space_users",e.reference_to_field="user");const n=await getUISchema(t);if(!n)return null;let r=null,a=e.reference_to_field;return a||(a=n.idFieldName||"_id"),r="_id"===a?{name:"_id",label:"ID",type:"text",toggled:!1}:n.fields[a]||{name:a},{objectName:t,valueField:r,labelField:n.fields[n.NAME_FIELD_KEY||"name"],NAME_FIELD_KEY:n.NAME_FIELD_KEY||"name"}};function getLookupSapceUserTreeSchema(){return[{type:"input-tree",className:"",inputClassName:"pl-0",id:"u:7fd77b7915b0",source:{method:"post",url:"${context.rootUrl}/graphql",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"if (payload.data.treeCache == true) {\n return payload;\n }\n const records = payload.data.options;\n const treeRecords = [];\n const getChildren = (records, childrenIds) => {\n if (!childrenIds) {\n return;\n }\n const children = _.filter(records, (record) => {\n return _.includes(childrenIds, record.value)\n });\n _.each(children, (item) => {\n if (item.children) {\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const getRoot = (records) => {\n for (var i = 0; i < records.length; i++){\n records[i].noParent = 0;\n if (!!records[i].parent) {\n biaozhi = 1\n for (var j = 0; j < records.length; j++){\n if (records[i].parent == records[j].value)\n biaozhi = 0;\n }\n if (biaozhi == 1) records[i].noParent = 1;\n } else records[i].noParent = 1;\n }\n }\n getRoot(records);\n console.log(records)\n\n _.each(records, (record) => {\n if (record.noParent ==1) {\n treeRecords.push(Object.assign({}, record, { children: getChildren(records, record.children) }));\n }\n });\n console.log(treeRecords)\n\n payload.data.options = treeRecords;\n payload.data.treeCache = true;\n return payload;\n ",requestAdaptor:"\n ",data:{query:'{options:organizations(filters:["hidden", "!=", true],sort:"sort_no desc"){value:_id label:name,parent,children}}'},messages:{},cache:3e5},onEvent:{change:{actions:[{actionType:"custom",script:'\n const scope = event.context.scoped;\n var filterFormValues={\n "__searchable__organizations_parents":event.data.value.value\n }\n var listView = scope.parent.getComponents().find(function(n){\n return n.props.type === "crud";\n });\n listView.handleFilterSubmit(Object.assign({}, filterFormValues));\n '}]}},label:"",name:"organizations",multiple:!1,joinValues:!1,clearValueOnHidden:!1,fieldName:"organizations",hideRoot:!0,initiallyOpen:!1,extractValue:!0,onlyChildren:!0,treeContainerClassName:"no-border",showIcon:!1,enableNodePath:!1,autoCheckChildren:!1,searchable:!0,searchConfig:{sticky:!0},unfoldedLevel:2,style:{"max-height":"100%",position:"absolute",left:"-200px",width:"190px",bottom:0,top:"-14px",overflow:"auto","min-height":"300px"},originPosition:"left-top"}]}async function lookupToAmisPicker(e,t,n){let r=await getReferenceTo(e);if(!r)return;const a=await getUISchema(r.objectName),i=[];let o=0;const s=[],l=[],c=___default__namespace.find(a.list_views,((e,t)=>"all"===t));c&&c.columns?___default__namespace.each(c.columns,(function(e){___default__namespace.isString(e)&&a.fields[e]?l.push(a.fields[e]):___default__namespace.isObject(e)&&a.fields[e.field]&&l.push(Object.assign({},a.fields[e.field],{width:e.width,wrap:e.wrap}))})):___default__namespace.each(a.fields,((e,t)=>{"_id"==t||e.hidden||(___default__namespace.has(e,"name")||(e.name=t),l.push(e))})),___default__namespace.each(___default__namespace.sortBy(l,"sort_no"),(function(e){o<5&&(___default__namespace.find(i,(function(t){return t.name===e.name}))||(o++,i.push(e),e.searchable&&s.push(e.name)))}));const d={[r.labelField.name]:r.labelField,[r.valueField.name]:r.valueField};___default__namespace.each(i,(e=>{e.hidden||(d[e.name]=e)}));let u="";c&&(u=getListViewSort(c));const p=await getApi$1(a,null,d,{expand:!0,alias:"rows",queryOptions:'filters: {__filters}, top: {__top}, skip: {__skip}, sort: "{__sort}"'});if(p.url&&!n.inFilterForm){const t=[],n=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(p.url=`${p.url}?${t.join("&")}`,p.sendOn=`${n.join(" && ")}`)}p.data.$term="$term",p.data.$self="$$",p.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 10;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n var orderBy = api.data.orderBy || '';\n var orderDir = api.data.orderDir || '';\n var sort = orderBy + ' ' + orderDir;\n sort = orderBy ? sort : "${u}";\n var allowSearchFields = ${JSON.stringify(s)};\n let fieldValue;\n if(api.data.$term){\n filters = [["name", "contains", "'+ api.data.$term +'"]];\n }else if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n fieldValue = selfData.value.split(',');\n filters = [["${r.valueField.name}", "=", fieldValue]];\n }else{\n fieldValue = selfData.value;\n filters = [["${r.valueField.name}", "=", fieldValue]];\n }\n }\n\n var searchableFilter = SteedosUI.getSearchFilter(selfData) || [];\n\n if(searchableFilter.length > 0){\n if(filters.length > 0 ){\n filters = [filters, 'and', searchableFilter];\n }else{\n filters = searchableFilter;\n }\n }\n\n if(allowSearchFields){\n allowSearchFields.forEach(function(key){\n const keyValue = selfData[key];\n if(keyValue){\n filters.push([key, "contains", keyValue]);\n }\n })\n }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n \n const inFilterForm = ${n.inFilterForm};\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$self.__super.__super);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n\n const enable_tree = ${a.enable_tree};\n if(enable_tree){\n pageSize = 10000;\n }\n if(fieldValue && _.isArray(fieldValue) && fieldValue.length > pageSize){\n pageSize = fieldValue.length;\n }\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip).replace('{__sort}', sort.trim());\n return api;\n `,p.adaptor=`\n const enable_tree = ${a.enable_tree};\n const op = api.data.$self.op;\n if(!_.isEmpty(op)){\n // op不为空,表示处于字段初始编辑状态,不是点击后出现弹窗状态。\n const rows = _.map(payload.data.rows, (item)=>{\n return _.pick(item, ["${r.labelField.name}", "${r.valueField.name}"]);\n })\n payload.data.rows = rows;\n return payload;\n }\n if(enable_tree){\n const records = payload.data.rows;\n const treeRecords = [];\n\n const getParentIds = (records)=>{\n const ids = _.map(records, (item)=>{\n return item._id;\n });\n const parents = _.filter(records,(record)=>{\n return !record.parent || !_.includes(ids,record.parent);\n })\n const parentsIds = _.map(parents,(item)=>{\n return item._id;\n })\n return parentsIds;\n }\n const getChildren = (records, childrenIds)=>{\n if(!childrenIds){\n return;\n }\n const children = _.filter(records, (record)=>{\n return _.includes(childrenIds, record._id)\n });\n _.each(children, (item)=>{\n if(item.children){\n item.children = getChildren(records, item.children)\n }\n })\n return children;\n }\n\n const parentIds = getParentIds(records);\n _.each(records, (record)=>{\n if(!record.parent || _.includes(parentIds, record._id)){\n treeRecords.push(Object.assign({}, record, {children: getChildren(records, record.children)}));\n }\n });\n payload.data.rows = treeRecords;\n }\n return payload;\n `,(e.optionsFunction||e._optionsFunction)&&(p.adaptor=`\n payload.data.rows = eval(${e.optionsFunction||e._optionsFunction})(api.data.$self);\n return payload;\n `);let f=20;a.paging&&!1===a.paging.enabled&&(f=1e3);let m=null;if("SMALL"===n.formFactor)m=await getListSchema$1(i,{top:f,...n,actions:!1});else{m=await getTableSchema$1(i,{labelFieldName:a.NAME_FIELD_KEY,top:f,...n}),m.affixHeader=!1;var h=[];const t=window.innerWidth<768;"space_users"!==r.objectName||"user"!==e.reference_to_field||t||(h=getLookupSapceUserTreeSchema(),m.style={"margin-left":"200px","min-height":"300px"}),m.headerToolbar=getObjectHeaderToolbar(a,n.formFactor,{headerToolbarItems:h});if(a.permissions.allowCreate){const e=await getSchema$4(a,{appId:n.appId,objectName:a.name,formFactor:n.formFactor});e.align="right",m.headerToolbar.push(e)}m.footerToolbar=a.enable_tree?[]:getObjectFooterToolbar(),!1!==n.filterVisible&&(m.filter=await getObjectFilter(a,d,{isLookup:!0,...n})),m.data=Object.assign({},m.data,{"&":"$$",objectName:a.name,uiSchema:a,listName:"all",isLookup:!0}),m.onEvent||(m.onEvent={}),m.onEvent[`@data.changed.${a.name}`]={actions:[{actionType:"reload"}]}}const g={type:getAmisStaticFieldType("picker",t),labelField:r.labelField.name,valueField:r.valueField.name,modalMode:"dialog",source:p,size:"lg",pickerSchema:m,joinValues:!1,extractValue:!0};return e.multiple&&(g.multiple=!0,g.extractValue=!0),t&&(g.tpl=await getLookupTpl(e,n)),g}async function lookupToAmisSelect(e,t,n){let r=await getReferenceTo(e);const a=r&&r.valueField?.name||"_id";let i;if(r){const e=await getFindQuery({name:r.objectName},null,[Object.assign({},r.labelField,{alias:"label"}),Object.assign({},r.valueField,{alias:"value"})],{alias:"defaultValueOptions",filters:"{__options_filters}",count:!1});i=await getApi$1({name:r.objectName},null,[Object.assign({},r.labelField,{alias:"label"}),Object.assign({},r.valueField,{alias:"value"})],{expand:!1,alias:"options",queryOptions:'filters: {__filters}, top: {__top}, sort: "{__sort}"',moreQueries:[e.query]}),i.adaptor='\n const data = payload.data;\n var defaultValueOptions = data.defaultValueOptions;\n // 字段值下拉选项合并到options中\n data.options = _.unionWith(defaultValueOptions, data.options, function(a,b){\n return a["value"]=== b["value"];\n });\n delete data.defaultValueOptions;\n payload.data.options = data.options;\n return payload;\n '}else i={method:"post",url:getApi$2(),data:{query:'{objects(filters: ["_id", "=", "-1"]){_id}}',$:"$$"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}};const o=r&&await getUISchema(r.objectName),s=o&&___default__namespace.find(o.list_views,((e,t)=>"all"===t));let l="";if(s&&(l=getListViewSort(s)),i.url&&!n.inFilterForm){const t=[],n=[];___default__namespace.each(e.depend_on,(e=>{t.push(`depend_on_${e}=\${${e}}`),n.push(`this.${e}`)})),t.length>0&&(i.url=`${i.url}?${t.join("&")}`,i.sendOn=`${n.join(" && ")}`)}i.data.$term="$term",i.data.$value=n.isRefToMutiple?`$${e.name}.ids`:`$${e.name}`,___default__namespace.each(e.depend_on,(function(e){i.data[e]=`$${e}`})),i.data.$="$$",i.data.rfield="${object_name}",i.requestAdaptor=`\n var filters = [];\n var top = 10;\n if(api.data.$term){\n filters = [["${r?.NAME_FIELD_KEY||"name"}", "contains", api.data.$term]];\n }\n // else if(api.data.$value){\n // filters = [["_id", "=", api.data.$value]];\n // }\n\n var fieldFilters = ${JSON.stringify(e.filters)};\n if(fieldFilters && fieldFilters.length){\n filters.push(fieldFilters);\n }\n\n const inFilterForm = ${n.inFilterForm};\n const filtersFunction = ${e.filtersFunction||e._filtersFunction};\n\n if(filtersFunction && !inFilterForm){\n const _filters = filtersFunction(filters, api.data.$);\n if(_filters && _filters.length > 0){\n filters.push(_filters);\n }\n }\n var sort = "${l}";\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', top).replace('{__sort}', sort.trim());\n\n var defaultValue = api.data.$value;\n var optionsFiltersOp = "${e.multiple?"in":"="}";\n var optionsFilters = [["${a}", optionsFiltersOp, []]];\n if (defaultValue && !api.data.$term) { \n // 字段值单独请求,没值的时候在请求中返回空\n optionsFilters = [["${a}", optionsFiltersOp, defaultValue]];\n if(filters.length > 0){\n optionsFilters = [filters, optionsFilters];\n }\n }\n api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));\n return api;\n `,r&&r.labelField.name,r&&r.valueField.name,(e.optionsFunction||e._optionsFunction)&&(i.adaptor=`\n var options = eval(${e.optionsFunction||e._optionsFunction})(api.data.$);\n if(api.data.$term){\n options = _.filter(options, function(o) {\n var label = o.label;\n return label.toLowerCase().indexOf(api.data.$term.toLowerCase()) > -1;\n });\n }\n payload.data.options = options;\n return payload;\n `);const c={type:getAmisStaticFieldType("select",t),joinValues:!1,extractValue:!0,clearable:!0,source:i,autoComplete:i,searchable:!0};return c.menuTpl="${icon ? `<span class='flex items-center mt-0.5'>\n <span role='img' aria-label='smile' class='anticon anticon-smile'>\n <span class='slds-icon_container slds-icon-standard-${REPLACE(icon,'_','-')}'>\n <svg class='slds-icon slds-icon_x-small' aria-hidden='true'>\n <use xlink:href='/assets/icons/standard-sprite/svg/symbols.svg#${icon}'></use>\n </svg>\n </span> \n </span>\n <span class='pl-1.5'>${label}</span>\n </span>` : label}",e.multiple&&(c.multiple=!0,c.extractValue=!0),t&&(c.tpl=await getLookupTpl(e,n)),c}async function getApi$1(e,t,n,r){const a=await getFindQuery(e,t,n,r);return{method:"post",url:getApi$2(),data:a,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}}async function lookupToAmis(e,t,n){if(n||(n={}),t)return{type:getAmisStaticFieldType("picker",t),tpl:getRelatedFieldTpl(e,n)};if(e.reference_to&&!___default__namespace.isString(e.reference_to)&&!t)return{type:"steedos-field-lookup",field:e,readonly:t,ctx:{}};let r=await getReferenceTo(e);if(!r)return await lookupToAmisSelect(e,t,n);if("space_users"===r.objectName&&"user"===e.reference_to_field&&(n.idsDependOn||e.amis))return await lookupToAmisIdsPicker(e,t,n);const a=await getUISchema(r.objectName);return 1==a.enable_enhanced_lookup&&___default__namespace.isEmpty(e.depend_on)?await lookupToAmisPicker(e,t,n):a.enable_tree?await lookupToAmisTreeSelect(e,t,Object.assign({},n,{labelField:r.labelField?.name||"name",valueField:r.valueField?.name||"_id",objectName:r.objectName})):await lookupToAmisSelect(e,t,n)}async function lookupToAmisIdsPicker(e,t,n){return getIdsPickerSchema(e,t,n)}async function getIdsPickerSchema(e,t,n){n||(n={});let r=await getReferenceTo(e);if(!r)return;const a=await getUISchema(r.objectName),{idsDependOn:i}=n,o={[r.labelField.name]:r.labelField,[r.valueField.name]:r.valueField},s=[r.labelField],l=await getApi$1(a,null,o,{expand:!0,alias:"rows",queryOptions:"filters: {__filters}, top: {__top}, skip: {__skip}"});l.data.$term="$term",l.data.$self="$$",i&&l.url&&!n.inFilterForm&&(l.sendOn=`\${${i} && ${i}.length}`,l.url=`${l.url}&depend_on_${i}=\${${i}|join}`),l.requestAdaptor=`\n const selfData = JSON.parse(JSON.stringify(api.data.$self));\n var filters = [];\n var pageSize = api.data.pageSize || 1000;\n var pageNo = api.data.pageNo || 1;\n var skip = (pageNo - 1) * pageSize;\n if(selfData.op === 'loadOptions' && selfData.value){\n if(selfData.value?.indexOf(',') > 0){\n filters = [["${r.valueField.name}", "=", selfData.value.split(',')]];\n }else{\n filters = [["${r.valueField.name}", "=", selfData.value]];\n }\n }\n\n var ids;\n var idsDependOn = "${i}";\n if(idsDependOn){\n ids = api.data.$self[idsDependOn];\n }\n if(ids && ids.length){\n filters.push(["${r.valueField.name}", "=", ids]);\n }\n\n api.data.query = api.data.query.replace(/{__filters}/g, JSON.stringify(filters)).replace('{__top}', pageSize).replace('{__skip}', skip);\n return api;\n `;let c=null;"SMALL"===n.formFactor?c=await getListSchema$1(s,{top:1e3,...n,actions:!1}):(c=await getTableSchema$1(s,{labelFieldName:a.NAME_FIELD_KEY,top:1e3,...n}),c.affixHeader=!1);const d={type:getAmisStaticFieldType("picker",t),labelField:r.labelField.name,valueField:r.valueField.name,modalMode:"dialog",source:l,size:"lg",pickerSchema:c,joinValues:!1,extractValue:!0};return e.multiple&&(d.multiple=!0,d.extractValue=!0),n.value&&(d.value=n.value),null!=n.selectFirst&&(d.selectFirst=n.selectFirst),t&&(d.tpl=await getLookupTpl(e,n)),d}const getMarkdownFieldSchema=(e,t,n)=>t?{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}:{type:"group",body:[{type:"editor",name:e.name,language:"markdown"},{type:"markdown",name:e.name,options:{linkify:!0,html:!0,breaks:!0}}]},getHtmlFieldSchema=(e,t,n)=>t?{type:"control",label:e.label,body:{type:"html",name:e.name}}:{type:"input-rich-text",name:e.name},AmisFormInputs=["text","date","file","avatar","image","datetime","time","number","currency","percent","password","url","email"];function getAmisStaticFieldType(e,t,n){return t?___default__namespace.includes(["text","image"],e)?"image"===e&&n&&n.multiple?"static-images":`static-${e}`:"static":___default__namespace.includes(AmisFormInputs,e)?`input-${e}`:e}const getFileTableName=e=>{switch(e.type){case"avatar":return"avatars";case"image":return"images";case"file":return"files"}},getAmisFieldType$1=(e,t)=>getAmisStaticFieldType("avatar"===e.type?"image":e.type,t,{multiple:e.multiple}),getAmisFileReadonlySchema=e=>{const t=e.type,n=getAmisFieldType$1(e,!0);return _.includes(["avatar","image"],t)?{type:n,defaultImage:"",enlargeAble:!0,showToolbar:!0}:"file"===t?{type:n,tpl:`\n <% let fileData = data.${e.name}; if (fileData) { %>\n <% if(!Array.isArray(fileData)){ fileData = [fileData]} %>\n <% fileData.forEach(function(item) { %> \n <a href='<%= item.url %>' target='_self' class='block'><%= item.name %></a> \n <% });} %>`}:void 0},getAmisFileEditSchema=e=>{const t=getFileTableName(e);let n={type:getAmisFieldType$1(e,!1),useChunk:!1,receiver:{method:"post",url:`\${context.rootUrl}/s3/${t}`,data:{$:"$$",context:"${context}"},adaptor:`\n const { context } = api.body; \n var rootUrl = context.rootUrl + "/api/files/${t}/";\n payload = {\n status: response.status == 200 ? 0 : response.status,\n msg: response.statusText,\n data: {\n value: payload._id,\n name: payload.original.name,\n url: rootUrl + payload._id,\n }\n }\n return payload;\n `,headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}};return e.multiple&&(n.multiple=!0,n.joinValues=!1,n.extractValue=!0),n},getAmisFileSchema=(e,t)=>t?getAmisFileReadonlySchema(e):getAmisFileEditSchema(e),OMIT_FIELDS=["created","created_by","modified","modified_by"];function getObjectFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=___default__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`)&&___default__namespace.split(t.name,".").length<3;return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getGridFieldSubFields(e,t){const n=Object.assign({subFields:[]},e),r=___default__namespace.filter(t,(function(t){let n=t.name.startsWith(`${e.name}.`);return n&&(t._prefix=`${e.name}.`),n}));return n.subFields=r,n}function getSelectFieldOptions(e){const t=e.data_type||"text",n=[];return ___default__namespace.each(e.options,(e=>{switch(t){case"number":n.push({label:e.label,value:Number(e.value)});break;case"text":n.push({label:e.label,value:String(e.value)});break;case"boolean":n.push({label:e.label,value:"false"!==e.value})}})),n}async function convertSFieldToAmisField(e,t,n){const r=window.innerWidth<=768;if(___default__namespace.includes(OMIT_FIELDS,e.name)&&1!=n.showSystemFields)return;const a={name:n.fieldNamePrefix?`${n.fieldNamePrefix}${e.name}`:e.name,label:e.label,labelRemark:e.inlineHelpText,required:___default__namespace.has(n,"required")?n.required:e.required};let i={};switch(e.type){case"text":i.type=getAmisStaticFieldType("text",t);break;case"textarea":i.type=getAmisStaticFieldType("textarea",t),i.tpl=`<%=(data.${e.name} || "").split("\\n").join('<br>')%>`;break;case"html":i=getHtmlFieldSchema(e,t);break;case"markdown":i=getMarkdownFieldSchema(e,t);break;case"select":if(t){const t=getSelectMap(e.options);i={type:"static-mapping",name:e.name,label:e.label,map:t}}else i={type:getAmisStaticFieldType("select",t),joinValues:!1,options:getSelectFieldOptions(e),extractValue:!0,clearable:!0,labelField:"label",valueField:"value"},e.multiple&&(i.multiple=!0,i.extractValue=!0);break;case"boolean":i={type:getAmisStaticFieldType("checkbox",t),tpl:t?getSwitchTpl(e):null};break;case"input-date-range":i={type:"input-date-range",inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null,joinValues:!1};break;case"date":i=r&&!t?{type:"native-date",pipeIn:(e,t)=>e?e=moment(e).utc().format("YYYY-MM-DD"):"",pipeOut:(e,t,n)=>e?e=moment(e).format("YYYY-MM-DDT00:00:00.000[Z]"):""}:{type:getAmisStaticFieldType("date",t),inputFormat:"YYYY-MM-DD",format:"YYYY-MM-DDT00:00:00.000[Z]",tpl:t?getDateTpl(e):null};break;case"input-datetime-range":i={type:"input-datetime-range",inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0,joinValues:!1};break;case"datetime":i=r&&!t?{type:"combo",pipeIn:(t,n)=>{let r={};return t&&"Invalid date"!=t?(t=moment(t).format("YYYY-MM-DD HH:mm:ss"),r[e.name+"-native-date"]=t.split(" ")[0],r[e.name+"-native-time"]=t.split(" ")[1]):(r[e.name+"-native-date"]="",r[e.name+"-native-time"]=""),r},pipeOut:(t,n,r)=>{let a="";return t[e.name+"-native-date"]&&t[e.name+"-native-time"]&&(a=t[e.name+"-native-date"]+" "+t[e.name+"-native-time"],a=moment(a).utc().format("YYYY-MM-DDTHH:mm:ss.SSS[Z]")),a},items:[{type:"native-date",name:e.name+"-native-date",className:"steedos-native-date",value:""},{type:"native-time",name:e.name+"-native-time",className:"steedos-native-time",value:""}]}:{type:getAmisStaticFieldType("datetime",t),inputFormat:"YYYY-MM-DD HH:mm",format:"YYYY-MM-DDTHH:mm:ss.SSSZ",tpl:t?getDateTimeTpl(e):null,utc:!0};break;case"input-time-range":i={type:"input-time-range",inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null,joinValues:!1};break;case"time":i=r&&!t?{type:"native-time",pipeIn:(e,t)=>e?e=moment(e).utc().format("HH:mm"):"",pipeOut:(e,t,n)=>e?e=moment("1970-01-01 "+e).format("1970-01-01THH:mm:00.000[Z]"):""}:{type:getAmisStaticFieldType("time",t),inputFormat:"HH:mm",timeFormat:"HH:mm",format:"1970-01-01THH:mm:00.000[Z]",tpl:t?getDateTimeTpl(e):null};break;case"currency":case"number":i=t?{type:"static-tpl",tpl:getNumberTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"input-array":i=Object.assign({},e,a);break;case"input-range":i={type:"input-range",min:e.min,max:e.max,value:[0,0],multiple:!0,showInput:!0};break;case"percent":i=t?{type:"static-tpl",tpl:getUiFieldTpl(e)}:{type:getAmisStaticFieldType("number",t),min:e.min,max:e.max,precision:e.scale};break;case"password":i={type:getAmisStaticFieldType("password",t),tpl:t?getPasswordTpl(e):null};break;case"lookup":case"master_detail":i=await lookupToAmis(e,t,n);break;case"autonumber":t&&(i={type:"static-text"});break;case"url":i={type:getAmisStaticFieldType("url",t,e)},t&&e.show_as_qr&&(i={type:"control",label:e.label,body:{type:"qr-code",codeSize:128,name:e.name}});break;case"email":i={type:getAmisStaticFieldType("email",t)};break;case"avatar":case"image":case"file":i=getAmisFileSchema(e,t);break;case"formula":case"summary":t&&(i={type:"static-tpl",tpl:getUiFieldTpl(e)});break;case"code":i={type:"editor",disabled:!!t,language:e.language,editorDidMount:new Function("editor","monaco",e.editorDidMount)};break;case"toggle":i={type:"switch",name:e.name,label:e.label,width:e.width,toggled:e.toggled,disabled:t};break;case"grid":if(e.subFields){i={type:"input-table",showIndex:!0,columnsTogglable:!1,strictMode:!1,affixHeader:!1,needConfirm:!1,editable:!t,addable:!t,removable:!t,draggable:!t,columns:[]};for(const r of e.subFields){const a=r.name.replace(`${e._prefix||""}${e.name}.$.`,"").replace(`${e.name}.`,""),o=await convertSFieldToAmisField(Object.assign({},r,{name:a,isTableField:!0}),t,n);if(o){delete o.name,delete o.label;const e={name:a,label:r.label,quickEdit:!t&&o};"lookup"===r.type&&(e.type=o.type,e.tpl=o.tpl),i.columns.push(Object.assign({},e,r.amis,{name:a}))}}}break;case"object":if(e.subFields){i={type:"combo",items:[]};for(let r of e.subFields){let a=r.name.replace(`${e.name}.$.`,"").replace(`${e.name}.`,"");"grid"===r.type?r=await getGridFieldSubFields(r,n.__formFields):t&&(a=`${e.name}.${a}`);const o=await convertSFieldToAmisField(Object.assign({},r,{name:a}),t,n);o&&(delete o.name,delete o.label,i.items.push(Object.assign({},o,{label:r.label},r.amis,{name:a})))}}}if(!___default__namespace.isEmpty(i)){e.is_wide||"group"===i.type?i.className="col-span-2 m-1":i.className="m-1",t&&(i.className=`${i.className} md:border-b`),t&&(i.quickEdit=!1);let r=" steedos-"+i.type+(t?"-readonly":"-edit");return i.className?i.className=i.className+r:i.className=r,e.visible_on&&!n.inFilterForm&&(e.visible_on.startsWith("{{")?i.visibleOn=`${e.visible_on.substring(2,e.visible_on.length-2).replace(/formData./g,"data.")}`:i.visibleOn=`${e.visible_on.replace(/formData./g,"data.")}`),___default__namespace.isString(a.required)&&a.required.startsWith("{{")&&(a.requiredOn=`${a.required.substring(2,a.required.length-2).replace(/formData./g,"data.")}`,delete a.required),"group"===i.type?(i.body[0]=Object.assign({},a,i.body[0],{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name}),i):Object.assign({},a,i,{labelClassName:"text-left",clearValueOnHidden:!0,fieldName:e.name},e.amis,{name:a.name})}}async function getFieldSearchable(e,t,n){n||(n={});let r=e;"grid"===r.type?r=await getGridFieldSubFields(e,t):"object"===e.type&&(r=await getObjectFieldSubFields(e,t));let a="__searchable__";if(r.name.indexOf(".")<0){let e=___default.cloneDeep(r);___default.includes(["textarea","html","code","autonumber"],r.type)&&(e.type="text"),___default.includes(["formula","summary"],r.type)?(e.type=r.data_type,e.precision=r.precision,e.scale=r.scale):"select"===r.type&&r.data_type&&"text"!=r.data_type&&(e.type=r.data_type),"number"!==e.type&&"currency"!==e.type||(e.type="input-array",e.inline=!0,e.addable=!1,e.removable=!1,e.value=[null,null],e.items={type:"input-number"},e.is_wide=!0,a=`${a}between__`),"date"===e.type&&(e.type="input-date-range",e.is_wide=!0,a=`${a}between__`),"datetime"===e.type&&(e.type="input-datetime-range",e.is_wide=!0,a=`${a}between__`),"time"===e.type&&(e.type="input-time-range",e.is_wide=!0,a=`${a}between__`),"users"===e.reference_to&&(e.reference_to="space_users",e.reference_to_field="user"),e.readonly=!1,e.disabled=!1,e.multiple=!0,e.is_wide=!1,e.defaultValue=void 0;const t=await convertSFieldToAmisField(e,!1,Object.assign({},n,{fieldNamePrefix:a,required:!1,showSystemFields:!0,inFilterForm:!0}));if(t)return t}}function isFieldTypeSearchable(e){return!___default__namespace.includes(["grid","avatar","image","object","[object]","[Object]","[grid]","[text]","audio","file"],e)}"undefined"!=typeof window&&(window.getFieldSearchable=getFieldSearchable),"undefined"!=typeof window&&(window.isFieldTypeSearchable=isFieldTypeSearchable);var config={listView:{newRecordMode:"modal",editRecordMode:"modal",perPage:20}};async function getTableColumns(e,t){const n=[{name:"_index",type:"text",width:32,placeholder:""}];for(const r of e)if(!r.is_name&&r.name!==t.labelFieldName||"cms_files"!==t.objectName)if("toggle"===r.type)n.push(Object.assign({},{type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap"},r.amis,{name:r.name}));else if("avatar"===r.type||"image"===r.type||"file"===r.type)n.push(Object.assign({},{type:"switch",name:r.name,label:r.label,width:r.width,toggled:r.toggled,disabled:!0,className:"whitespace-nowrap",...getAmisFileReadonlySchema(r)},r.amis,{name:r.name}));else if("select"===r.type){const e=getSelectMap(r.options);n.push(Object.assign({},{type:"mapping",name:r.name,label:r.label,map:e,sortable:r.sortable,width:r.width,toggled:r.toggled,className:"whitespace-nowrap"},r.amis,{name:r.name}))}else{const e=await getFieldTpl(r,t);let a="text";e?a="tpl":"html"===r.type?a="markdown":"url"===r.type&&r.show_as_qr&&(a="qr-code");let i="";"textarea"===r.type&&(i="min-w-56"),!1===r.wrap&&(i+=" whitespace-nowrap"),r.hidden||r.extra||n.push(Object.assign({},{name:r.name,label:r.label,sortable:r.sortable,width:r.width,type:a,tpl:e,toggled:r.toggled,className:i,options:"html"===r.type?{html:!0}:null},r.amis,{name:r.name}))}else{const e=`\n var data = event.data;\n var file_name = data.versions ? data.name : "${r.label}";\n var file_id = data._id;\n SteedosUI.previewFile && SteedosUI.previewFile({file_name, file_id});\n `;n.push({type:"button",label:`<%=data.versions ? data.name : "${r.label}"%>`,className:"whitespace-nowrap",level:"link",onEvent:{click:{actions:[{args:{api:{url:"${context.rootUrl}/api/files/files/${versions[0]}?download=true",method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download",expression:"!!!window?.nw?.require"},{args:{},actionType:"custom",script:e,expression:"!!window?.nw?.require"}]}}})}if(!___default__namespace.some(n,{name:t.labelFieldName})){const e=Router.getObjectDetailPath({...t,formFactor:t.formFactor,appId:"${appId}",objectName:t.objectName||"${objectName}",recordId:`\${${t.idFieldName}}`});n[0].type="tpl",n[0].tpl=`<a href="${e}">\${${n[0].name}}</a>`}return n}function getMobileLines(e){let t=[],n=[],r=!1,a=!0,i="",o="flex items-center justify-between h-[20px]";return e.forEach((function(e){r&&t.length<2&&(t.push({type:"wrapper",body:n,size:"none",className:o}),n=[]),a?(i="steedos-listview-item-left truncate",e.field.is_wide&&(i="steedos-listview-item-wide truncate"),0===t.length&&(i+=" font-bold text-gray-800")):i="steedos-listview-item-right truncate ml-2 flex flex-shrink-0",n.push({type:"tpl",tpl:e.tpl,className:i}),e.field.is_wide?(a=!0,r=!0):(a=!a,r=a)})),n.length&&t.length<2&&t.push({type:"wrapper",body:n,size:"none",className:o}),t}async function getMobileTableColumns(e,t){const n=[];let r={},a=[];for(const n of e){let e="";n.is_name||n.name===t.labelFieldName?(r=n,t.onlyDisplayLabel=!0,e=await getFieldTpl(n,t)):"avatar"===n.type||"image"===n.type||"file"===n.type?e=`\${_display.${n.name}.name}`:("lookup"!==n.type&&"master_detail"!==n.type||(t.onlyDisplayLabel=!0),e=await getFieldTpl(n,t)),e||(e=`\${${n.name}}`),n.hidden||n.extra||a.push({field:n,tpl:e})}const i=getNameTplUrl(r,t),o=getMobileLines(a);let s={name:r.name,label:r.label,sortable:r.sortable,type:"button",level:"link",actionType:"link",link:i,innerClassName:"steedos-listview-item block text-gray-500",body:{type:"wrapper",body:o,size:"none",className:"p-1"}};return"cms_files"===t.objectName&&(s=window.Meteor?.isCordova?{...s,actionType:"",link:"",onEvent:{click:{actions:[{script:'\n let cms_url = "/api/files/files/"+event.data.versions[0]+"?download=true"\n Steedos.cordovaDownload(encodeURI(Steedos.absoluteUrl(cms_url)), event.data.name);\n ',actionType:"custom"}],weight:0}}}:{...s,actionType:"",link:"",onEvent:{click:{actions:[{args:{api:{url:i,method:"get",headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"}}},actionType:"download"}],weight:0}}}),n.push(s),n}function getDefaultParams(e){return{perPage:e.top||e.perPage||config.listView.perPage}}function getButtonVisibleOn(e){let t=e.visible;if(e._visible&&(t=e._visible),___default.isBoolean(t)&&(t=t.toString()),t)return t.trim().startsWith("function")?`${t}(objectName, typeof _id === 'undefined' ? null: _id, typeof record === 'undefined' ? (typeof recordPermissions === 'undefined' ? {} : recordPermissions) : record.recordPermissions, data)`:t;if("amis_button"===e.type){const t=e.amis_schema;if(t&&t.body&&t.body.length>0){return t.body[0].visibleOn}}}async function getTableOperation(e){const t=e.buttons,n=[];if(___default.each(t,(e=>{___default.isBoolean(e.visible)&&(e.visible=e.visible.toString()),n.push({type:"steedos-object-button",name:e.name,objectName:e.objectName,visibleOn:getButtonVisibleOn(e),className:"antd-Button--default"})})),!(n.length<1))return{type:"operation",label:"操作",fixed:"right",labelClassName:"text-center",className:"text-center steedos-listview-operation w-20",buttons:[{type:"steedos-dropdown-button",label:"xxx",buttons:n,placement:"bottomRight",overlayClassName:"shadow !min-w-[160px]",trigger:["click"],id:"u:c2140a365019",onOpenApi:{url:"${context.rootUrl}/service/api/@${objectName}/recordPermissions/${_id}",method:"get",data:{$:"$$",objectName:"${objectName}",listViewId:"${listViewId}",appId:"${appId}",formFactor:"${formFactor}",context:"${context}"},headers:{Authorization:"Bearer ${context.tenantId},${context.authToken}"},adaptor:"\n payload = {\n record: {\n recordPermissions: payload\n }\n };\n return payload;\n "}}]}}async function getTableSchema$1(e,t){t||(t={});let n=[];return"SMALL"===t.formFactor||["split"].indexOf(t.displayAs)>-1?n=await getMobileTableColumns(e,t):(n=await getTableColumns(e,t),n.push(await getTableOperation(t))),{mode:"table",name:"thelist",headerToolbarClassName:"py-2 px-2 border-gray-300 bg-gray-100 border-solid border-b",className:"",draggable:!1,defaultParams:getDefaultParams(t),columns:n,syncLocation:!1,keepItemSelectionOnPageChange:!0,checkOnItemClick:!1,labelTpl:`\${${t.labelFieldName}}`,autoFillHeight:!1,columnsTogglable:!1}}let UI_SCHEMA_CACHE={},UISchemaFunction;"undefined"!=typeof window&&(window.UI_SCHEMA_CACHE||(window.UI_SCHEMA_CACHE=UI_SCHEMA_CACHE),UI_SCHEMA_CACHE=window.UI_SCHEMA_CACHE);const setUISchemaCache=(e,t)=>{UI_SCHEMA_CACHE[e]=t},getUISchemaCache=e=>___default.cloneDeep(UI_SCHEMA_CACHE[e]),hasUISchemaCache=e=>___default.has(UI_SCHEMA_CACHE,e);function getListViewColumns(e,t){let n=[];return n="SMALL"===t?___default.isEmpty(e.mobile_columns)?___default.slice(e.columns,0,4):e.mobile_columns:e.columns,n}function getListViewSort(e){let t="";return e&&e.sort&&e.sort.length&&___default.each(e.sort,(function(e,n){if(___default.isArray(e)){let r=e[0]+" "+(e[1]||"");r=n>0?","+r:r,t+=r}else{let r=e.field_name+" "+e.order;r=n>0?","+r:r,t+=r}})),t}function getListViewFilter(e){if(e)try{const t=getUserId();let n=e.filters;if("mine"===e.filter_scope)if(___default__default.default.isEmpty(n))n=[["owner","=",t]];else{if(___default__default.default.isString(n)&&___default__default.default.startsWith(___default__default.default.trim(n),"function")&&(n=new Function(`return ${n}`),n=n()),!___default__default.default.isArray(n))throw console.debug("listView filters is not array",e),new Error("filters is not array");n.push(["owner","=",t])}return n}catch(e){console.error(e)}}function formatUISchemaCache(objectName,uiSchema){setUISchemaCache(objectName,uiSchema),___default.each(uiSchema.fields,(field=>{try{"lookup"===field.type&&field._reference_to&&___default__default.default.isString(field._reference_to)&&(field.reference_to=eval(`(${field._reference_to})`)())}catch(e){field.reference_to=void 0,console.error(e)}})),___default.each(uiSchema.list_views,((e,t)=>{e.name=t,___default.has(e,"columns")||(e.columns=uiSchema.list_views.all.columns)}))}async function getUISchema(e,t){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let n=null;try{if(UISchemaFunction);else{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;n=await fetchAPI(t,{method:"get"})}if(!n)return;formatUISchemaCache(e,n)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}function getUISchemaSync(e,t){if(!e)return;if(hasUISchemaCache(e)&&!t)return getUISchemaCache(e);let n=null;try{const t=`/service/api/@${e.replace(/\./g,"_")}/uiSchema`;if(n=Steedos.authRequest(t,{type:"GET",async:!1}),!n)return;formatUISchemaCache(e,n)}catch(t){console.error("getUISchema",e,t),setUISchemaCache(e,null)}return getUISchemaCache(e)}async function getListSchema(e,t,n,r={}){const a=await getUISchema(t);if(!a)return{};const i=___default.find(a.list_views,((e,t)=>(n||(n=t),t===n||e._id===n)));if(!i)return{uiSchema:a};if(i.enable_amis_schema&&i.amis_schema){return{uiSchema:a,isCustomAmisSchema:!0,amisSchema:___default.isString(i.amis_schema)?JSON.parse(i.amis_schema):i.amis_schema}}let o=getListViewColumns(i,r.formFactor),s=getListViewSort(i),l=getListViewFilter(i),c=i&&i._filters;if("calendar"===i.type){return{uiSchema:a,isCalendar:!0,amisSchema:{type:"steedos-object-calendar",objectApiName:t,filters:l,filtersFunction:c,sort:s,...i.options}}}const d=r.defaults||{};d.headerSchema=null;try{const e=location.pathname+"/crud/"+r.listViewId;let t=sessionStorage.getItem(e);if(t){t=JSON.parse(t);let e={};t.orderBy&&(e.orderBy=t.orderBy),t.orderDir&&(e.orderDir=t.orderDir),d.listSchema=___default.defaultsDeep({},e,d.listSchema||{})}}catch(e){console.error("本地存储中crud参数解析异常:",e)}r.defaults=d,"recent"==n&&(c='\n function(filters, data) {\n var result = Steedos.authRequest(\'/graphql\', {\n type: \'POST\',\n async: false,\n data: JSON.stringify({\n query: \'{object_recent_viewed(filters: [["record.o","=","\' + data.objectName + \'"],["space","=","\' + data.context.tenantId + \'"],["owner","=","\' + data.context.userId + \'"]],sort:"modified desc",top:50){ _id,record} }\'\n }),\n });\n var _ids = []\n result.data.object_recent_viewed.forEach(function (item) {\n _ids = _ids.concat(item.record.ids)\n })\n return ["_id", "=", _ids];\n }\n ');return{uiSchema:a,amisSchema:{type:"steedos-object-table",objectApiName:t,columns:o,extraColumns:i.extra_columns,filters:l,filtersFunction:c,sort:s,ctx:r,requestAdaptor:i.requestAdaptor,adaptor:i.adaptor,headerToolbarItems:r.headerToolbarItems,filterVisible:r.filterVisible}}}"undefined"!=typeof window&&(window.getUISchema=getUISchema,window.getUISchemaSync=getUISchemaSync,window.getListSchema=getListSchema);var __assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e},__assign.apply(this,arguments)};function createObject(e,t,n){e&&Object.isFrozen(e)&&(e=cloneObject(e));var r=e?Object.create(e,__assign(__assign({},n),{__super:{value:e,writable:!1,enumerable:!1}})):Object.create(Object.prototype,n);return t&&isObject(t)&&Object.keys(t).forEach((function(e){return r[e]=t[e]})),r}function cloneObject(e,t){void 0===t&&(t=!0);var n=e&&e.__super?Object.create(e.__super,{__super:{value:e.__super,writable:!1,enumerable:!1}}):Object.create(Object.prototype);return t&&e&&Object.keys(e).forEach((function(t){return n[t]=e[t]})),n}function isObject(e){var t=typeof e;return e&&"string"!==t&&"number"!==t&&"boolean"!==t&&"function"!==t&&!Array.isArray(e)}var FullCalendar=function(e){var t=e.dispatchEvent,n=e.data,r=__rest(e,["dispatchEvent","data"]),a=function(e,r){return __awaiter(void 0,void 0,void 0,(function(){var a,i;return __generator(this,(function(o){switch(o.label){case 0:return t?[4,t(e,r?createObject(n,r):n)]:[2];case 1:return a=o.sent(),[2,null!==(i=null==a?void 0:a.prevented)&&void 0!==i&&i]}}))}))};return React__default.default.createElement(FullCalendar$1,__assign$1({plugins:[main$3,main$2,main$1,main],headerToolbar:{left:"title",center:"",right:"prev,next today dayGridMonth,timeGridWeek,timeGridDay,listWeek"},locales:_default,locale:"zh-cn",editable:!0,selectable:!0,selectMirror:!0,dayMaxEvents:!0,initialView:"timeGridWeek",events:function(e,t,n){setTimeout((function(){a("getEvents",{fetchInfo:e,successCallback:t,failureCallback:n})}),100)},select:function(e){a("select",e)},eventClick:function(e){a("eventClick",e)},eventsSet:function(e){a("eventsSet",e)},eventAdd:function(e){a("eventAdd",e)},eventChange:function(e){a("eventChange",e)},eventRemove:function(e){a("eventRemove",e)},eventDidMount:function(e){a("eventDidMount",e)},eventWillUnmount:function(e){a("eventWillUnmount",e)},noEventsDidMount:function(e){a("noEventsDidMount",e)},noEventsWillUnmount:function(e){a("noEventsWillUnmount",e)},forceEventDuration:!0,views:{listWeek:{buttonText:"列表"}}},r))};exports.FullCalendar=FullCalendar,Object.defineProperty(exports,"__esModule",{value:!0})}));