1"use strict";(self.webpackChunk_streamlit_app=self.webpackChunk_streamlit_app||[]).push([[6360],{36360:(e,t,s)=>{s.r(t),s.d(t,{default:()=>C});var i=s(58878),r=s(90491),o=s.n(r),a=s(8151),n=s(64942),l=s(754),d=s(41639),m=s(34752),p=s(70474),h=s(78286),u=s(93480),c=s(997),g=s(25571),f=s(90782);const v="YYYY/MM/DD";function b(e){return e.map((e=>new Date(e)))}class y extends i.PureComponent{constructor(){super(...arguments),this.formClearHelper=new m.o,this.state={values:this.initialValue,isRange:this.props.element.isRange,isEmpty:!1},this.commitWidgetValue=e=>{const{widgetMgr:t,element:s,fragmentId:i}=this.props;var r;t.setStringArrayValue(s,(r=this.state.values)?r.map((e=>o()(e).format(v))):[],e,i)},this.onFormCleared=()=>{const e=b(this.props.element.default);this.setState({values:e,isEmpty:!e},(()=>this.commitWidgetValue({fromUi:!0})))},this.handleChange=e=>{let{date:t}=e;if(null===t||void 0===t)return void this.setState({values:[],isEmpty:!0});const s=[];Array.isArray(t)?t.forEach((e=>{e&&s.push(e)})):s.push(t),this.setState({values:s,isEmpty:!s},(()=>{this.state.isEmpty||this.commitWidgetValue({fromUi:!0})}))},this.handleClose=()=>{const{isEmpty:e}=this.state;e&&this.setState(((e,t)=>({values:b(t.element.default),isEmpty:!b(t.element.default)})),(()=>{this.commitWidgetValue({fromUi:!0})}))},this.getMaxDate=()=>{const{element:e}=this.props,t=e.max;return t&&t.length>0?o()(t,v).toDate():void 0}}get initialValue(){const e=this.props.widgetMgr.getStringArrayValue(this.props.element);return b(void 0!==e?e:this.props.element.default||[])}componentDidMount(){this.props.element.setValue?this.updateFromProtobuf():this.commitWidgetValue({fromUi:!1})}componentDidUpdate(){this.maybeUpdateFromProtobuf()}componentWillUnmount(){this.formClearHelper.disconnect()}maybeUpdateFromProtobuf(){const{setValue:e}=this.props.element;e&&this.updateFromProtobuf()}updateFromProtobuf(){const{value:e}=this.props.element;this.props.element.setValue=!1;const t=e.map((e=>new Date(e)));this.setState({values:t,isEmpty:!t},(()=>{this.commitWidgetValue({fromUi:!1})}))}render(){var e;const{width:t,element:s,disabled:i,theme:r,widgetMgr:a}=this.props,{values:m,isRange:b}=this.state,{colors:y,fontSizes:C,lineHeights:W,spacing:D}=r,F={width:t},I=o()(s.min,v).toDate(),L=this.getMaxDate(),x=0===s.default.length&&!i,V=s.format.replaceAll(/[a-zA-Z]/g,"9"),S=s.format.replaceAll("Y","y").replaceAll("D","d");return this.formClearHelper.manageFormClearListener(a,s.formId,this.onFormCleared),(0,f.jsxs)("div",{className:"stDateInput","data-testid":"stDateInput",style:F,children:[(0,f.jsx)(p.L,{label:s.label,disabled:i,labelVisibility:(0,g.yv)(null===(e=s.labelVisibility)||void 0===e?void 0:e.value),children:s.help&&(0,f.jsx)(h.j,{children:(0,f.jsx)(u.A,{content:s.help,placement:c.W.TOP_RIGHT})})}),(0,f.jsx)(n.A,{density:l.fY.high,formatString:S,mask:b?`${V} \u2013 ${V}`:V,placeholder:b?`${s.format} \u2013 ${s.format}`:s.format,disabled:i,onChange:this.handleChange,onClose:this.handleClose,overrides:{Popover:{props:{placement:d.El.bottomLeft,overrides:{Body:{style:{border:`${r.sizes.borderWidth} solid ${y.borderColor}`}}}}},CalendarContainer:{style:{fontSize:C.sm,paddingRight:r.spacing.sm,paddingLeft:r.spacing.sm,paddingBottom:r.spacing.sm,paddingTop:r.spacing.sm}},Week:{style:{fontSize:C.sm}},Day:{style:e=>{let{$pseudoHighlighted:t,$pseudoSelected:s,$selected:i,$isHovered:r}=e;return{fontSize:C.sm,lineHeight:W.base,"::before":{backgroundColor:i||s||t||r?`${y.secondaryBg} !important`:y.transparent},"::after":{borderColor:y.transparent}}}},PrevButton:{style:()=>({display:"flex",alignItems:"center",justifyContent:"center",":active":{backgroundColor:y.transparent},":focus":{backgroundColor:y.transparent,outline:0}})},NextButton:{style:{display:"flex",alignItems:"center",justifyContent:"center",":active":{backgroundColor:y.transparent},":focus":{backgroundColor:y.transparent,outline:0}}},Input:{props:{maskChar:null,overrides:{Root:{style:{borderLeftWidth:r.sizes.borderWidth,borderRightWidth:r.sizes.borderWidth,borderTopWidth:r.sizes.borderWidth,borderBottomWidth:r.sizes.borderWidth}},ClearIcon:{props:{overrides:{Svg:{style:{color:r.colors.darkGray,transform:"scale(1.41)",width:r.spacing.twoXL,marginRight:"-8px",":hover":{fill:r.colors.bodyText}}}}}},Input:{style:{paddingRight:D.sm,paddingLeft:D.sm,paddingBottom:D.sm,paddingTop:D.sm,lineHeight:W.inputWidget},props:{"data-testid":"stDateInputField"}}}}}},value:m,minDate:I,maxDate:L,range:b,clearable:x})]})}}const C=(0,a.b)(y)},34752:(e,t,s)=>{s.d(t,{X:()=>a,o:()=>o});var i=s(58878),r=s(25571);class o{constructor(){this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}manageFormClearListener(e,t,s){(0,r.se)(this.formClearListener)&&this.lastWidgetMgr===e&&this.lastFormId===t||(this.disconnect(),(0,r._L)(t)&&(this.formClearListener=e.addFormClearedListener(t,s),this.lastWidgetMgr=e,this.lastFormId=t))}disconnect(){var e;null===(e=this.formClearListener)||void 0===e||e.disconnect(),this.formClearListener=void 0,this.lastWidgetMgr=void 0,this.lastFormId=void 0}}function a(e){let{element:t,widgetMgr:s,onFormCleared:o}=e;(0,i.useEffect)((()=>
1{if(!(0,r._L)(t.formId))return;const e=s.addFormClearedListener(t.formId,o);return()=>{e.disconnect()}}),[t,s,o])}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.