define("803b4696-0af0-45a3-b621-4c9fda238fcb_0.0.1",["react","react-dom","@microsoft/sp-core-library","@microsoft/sp-property-pane","@microsoft/sp-webpart-base","@microsoft/sp-http"],(e,t,n,a,i,r)=>(()=>{"use strict";var o={676:e=>{e.exports=n},909:e=>{e.exports=r},877:e=>{e.exports=a},642:e=>{e.exports=i},959:t=>{t.exports=e},398:e=>{e.exports=t}},s={};function c(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return o[e](n,n.exports,c),n.exports}c.d=(e,t)=>{for(var n in t)c.o(t,n)&&!c.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var d={};return(()=>{c.r(d),c.d(d,{default:()=>J});var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};function t(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function a(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(a.prototype=n.prototype,new a)}function n(e,t,n,a){return new(n||(n=Promise))(function(i,r){function o(e){try{c(a.next(e))}catch(e){r(e)}}function s(e){try{c(a.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}c((a=a.apply(e,t||[])).next())})}function a(e,t){var n,a,i,r,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function s(r){return function(s){return function(r){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,a&&(i=2&r[0]?a.return:r[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,r[1])).done)return i;switch(a=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return o.label++,{value:r[1],done:!1};case 5:o.label++,a=r[1],r=[0];continue;case 7:r=o.ops.pop(),o.trys.pop();continue;default:if(!((i=(i=o.trys).length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){o=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]n&&t.push({rawString:e.substring(n,i)}),t.push({theme:a[1],defaultValue:a[2]}),n=g.lastIndex}t.push({rawString:e.substring(n)})}return t}(i),t=b.runState,n=t.mode,a=t.buffer,o=t.flushTimer;r||1===n?(a.push(e),o||(b.runState.flushTimer=setTimeout(function(){b.runState.flushTimer=0,y(function(){var e=b.runState.buffer.slice();b.runState.buffer=[];var t=[].concat.apply([],e);t.length>0&&S(t)})},0))):S(e)});const I="errorMsg_80c21215",x="pageBtn_80c21215",C="pageEllipsis_80c21215",O="btnPrimary_80c21215",w="btnSecondary_80c21215",E="modalOverlay_80c21215",A="modal_80c21215",L="modalHeader_80c21215",k="modalBody_80c21215",M="modalFooter_80c21215",P="formGroup_80c21215",T="formGroupFull_80c21215",U="formLabel_80c21215",F="required_80c21215",H="formInput_80c21215";var R=c(909),N=["Заказчик","Поставщик"],B=function(){return s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 20 20",fill:"currentColor"},s.createElement("path",{d:"M4.293 4.293a1 1 0 0 1 1.414 0L10 8.586l4.293-4.293a1 1 0 1 1 1.414 1.414L11.414 10l4.293 4.293a1 1 0 0 1-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 0 1-1.414-1.414L8.586 10 4.293 5.707a1 1 0 0 1 0-1.414z"}))};const j=function(e){function i(t){var i,r,o,s,c,d,l,u,f,p,m=e.call(this,t)||this;m._handleKeyDown=function(e){"Escape"!==e.key||m.state.saving||m.props.onClose()},m._handleSave=function(){return n(m,void 0,void 0,function(){var e,t,n,i,r,o,s,c,d,l,u,f;return a(this,function(a){switch(a.label){case 0:if(e=this.state,t=e.fullName,n=e.name,i=e.contractorType,r=e.bin,o=e.kbe,s=e.oked,c=e.country,d=e.address,l=e.actualAddress,u=e.phone,!n.trim()||!t.trim())return this.setState({error:"Название и полное наименование обязательны для заполнения"}),[2];this.setState({saving:!0,error:null}),a.label=1;case 1:return a.trys.push([1,3,,4]),[4,this.props.onSave({fullName:t.trim(),name:n.trim(),contractorType:i.trim()||null,bin:r.trim()||null,kbe:o.trim()||null,oked:s.trim()||null,country:c.trim()||null,address:d.trim()||null,actualAddress:l.trim()||null,phone:u.trim()||null})];case 2:return a.sent(),[3,4];case 3:return f=a.sent(),this.setState({saving:!1,error:f.message}),[3,4];case 4:return[2]}})})};var _=t.contractor;return m.state={fullName:null!==(i=null==_?void 0:_.fullName)&&void 0!==i?i:"",name:null!==(r=null==_?void 0:_.name)&&void 0!==r?r:"",contractorType:null!==(o=null==_?void 0:_.contractorType)&&void 0!==o?o:"",bin:null!==(s=null==_?void 0:_.bin)&&void 0!==s?s:"",kbe:null!==(c=null==_?void 0:_.kbe)&&void 0!==c?c:"",oked:null!==(d=null==_?void 0:_.oked)&&void 0!==d?d:"",country:null!==(l=null==_?void 0:_.country)&&void 0!==l?l:"",address:null!==(u=null==_?void 0:_.address)&&void 0!==u?u:"",actualAddress:null!==(f=null==_?void 0:_.actualAddress)&&void 0!==f?f:"",phone:null!==(p=null==_?void 0:_.phone)&&void 0!==p?p:"",saving:!1,error:null},m}return t(i,e),i.prototype.componentDidMount=function(){document.addEventListener("keydown",this._handleKeyDown)},i.prototype.componentWillUnmount=function(){document.removeEventListener("keydown",this._handleKeyDown)},i.prototype.render=function(){var e=this,t=this.props,n=t.contractor,a=t.onClose,i=this.state,r=i.fullName,o=i.name,c=i.contractorType,d=i.bin,l=i.kbe,u=i.oked,f=i.country,p=i.address,m=i.actualAddress,_=i.phone,h=i.saving,b=i.error,g=!!n;return s.createElement("div",{className:E},s.createElement("div",{className:A,onClick:function(e){return e.stopPropagation()},role:"dialog","aria-modal":"true"},s.createElement("div",{className:L},s.createElement("h3",{className:"modalTitle_80c21215"},g?"Редактировать контрагента":"Новый контрагент"),s.createElement("button",{className:"modalCloseBtn_80c21215",onClick:a,disabled:h,title:"Закрыть"},s.createElement(B,null))),s.createElement("div",{className:k},b&&s.createElement("div",{className:I},b),s.createElement("div",{className:P},s.createElement("label",{className:U},"Название ",s.createElement("span",{className:F},"*")),s.createElement("input",{type:"text",className:H,value:o,onChange:function(t){return e.setState({name:t.target.value,error:null})},placeholder:"Например: Arx Minerals (Аркс Минералс) ТОО",autoFocus:!0})),s.createElement("div",{className:P},s.createElement("label",{className:U},"Полное наименование ",s.createElement("span",{className:F},"*")),s.createElement("textarea",{className:"formTextarea_80c21215",value:r,onChange:function(t){return e.setState({fullName:t.target.value,error:null})},placeholder:'Например: ТОО "Arx Minerals (Аркс Минералс)"',rows:2})),s.createElement("div",{className:"formGrid_80c21215"},s.createElement("div",{className:P},s.createElement("label",{className:U},"БИН"),s.createElement("input",{type:"text",className:H,value:d,onChange:function(t){return e.setState({bin:t.target.value.replace(/\D/g,"").slice(0,12)})},placeholder:"121140000288",inputMode:"numeric",maxLength:12})),s.createElement("div",{className:P},s.createElement("label",{className:U},"Тип контрагента"),s.createElement("select",{className:H,value:c,onChange:function(t){return e.setState({contractorType:t.target.value})}},s.createElement("option",{value:""},"— Не выбрано —"),N.map(function(e){return s.createElement("option",{key:e,value:e},e)}))),s.createElement("div",{className:P},s.createElement("label",{className:U},"КБЕ"),s.createElement("input",{type:"text",className:H,value:l,onChange:function(t){return e.setState({kbe:t.target.value})}})),s.createElement("div",{className:P},s.createElement("label",{className:U},"ОКЭД"),s.createElement("input",{type:"text",className:H,value:u,onChange:function(t){return e.setState({oked:t.target.value})}})),s.createElement("div",{className:P},s.createElement("label",{className:U},"Страна"),s.createElement("input",{type:"text",className:H,value:f,onChange:function(t){return e.setState({country:t.target.value})}})),s.createElement("div",{className:P},s.createElement("label",{className:U},"Телефон"),s.createElement("input",{type:"text",className:H,value:_,onChange:function(t){return e.setState({phone:t.target.value})}})),s.createElement("div",{className:"".concat(P," ").concat(T)},s.createElement("label",{className:U},"Адрес"),s.createElement("input",{type:"text",className:H,value:p,onChange:function(t){return e.setState({address:t.target.value})}})),s.createElement("div",{className:"".concat(P," ").concat(T)},s.createElement("label",{className:U},"Фактический адрес"),s.createElement("input",{type:"text",className:H,value:m,onChange:function(t){return e.setState({actualAddress:t.target.value})}})))),s.createElement("div",{className:M},s.createElement("button",{className:w,onClick:a,disabled:h},"Отмена"),s.createElement("button",{className:O,onClick:this._handleSave,disabled:h},h?"Сохранение...":g?"Сохранить":"Создать"))))},i}(s.Component);var V=function(){return s.createElement("svg",{width:"24",height:"24",viewBox:"0 0 20 20",fill:"currentColor"},s.createElement("path",{fillRule:"evenodd",d:"M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 6a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 10 6zm0 9a1 1 0 1 0 0-2 1 1 0 0 0 0 2z",clipRule:"evenodd"}))};const z=function(e){function i(t){var i=e.call(this,t)||this;return i._handleKeyDown=function(e){"Escape"!==e.key||i.state.deleting||i.props.onClose(),"Enter"!==e.key||i.state.deleting||i._handleConfirm()},i._handleConfirm=function(){return n(i,void 0,void 0,function(){var e;return a(this,function(t){switch(t.label){case 0:this.setState({deleting:!0,error:null}),t.label=1;case 1:return t.trys.push([1,3,,4]),[4,this.props.onConfirm()];case 2:return t.sent(),[3,4];case 3:return e=t.sent(),this.setState({deleting:!1,error:e.message}),[3,4];case 4:return[2]}})})},i.state={deleting:!1,error:null},i}return t(i,e),i.prototype.componentDidMount=function(){document.addEventListener("keydown",this._handleKeyDown)},i.prototype.componentWillUnmount=function(){document.removeEventListener("keydown",this._handleKeyDown)},i.prototype.render=function(){var e=this.props,t=e.contractorName,n=e.onClose,a=this.state,i=a.deleting,r=a.error;return s.createElement("div",{className:E,onClick:i?void 0:n},s.createElement("div",{className:"".concat(A," ").concat("modalSm_80c21215"),onClick:function(e){return e.stopPropagation()},role:"dialog","aria-modal":"true"},s.createElement("div",{className:L},s.createElement("div",{className:"modalTitleDanger_80c21215"},s.createElement("span",{className:"warningIcon_80c21215"},s.createElement(V,null)),"Удалить контрагента")),s.createElement("div",{className:k},r&&s.createElement("div",{className:I},r),s.createElement("p",{className:"deleteText_80c21215"},"Вы уверены, что хотите удалить контрагента"," ",s.createElement("strong",null,"«",t,"»"),"?"),s.createElement("p",{className:"deleteHint_80c21215"},"Контрагент будет удалён из справочника.")),s.createElement("div",{className:M},s.createElement("button",{className:w,onClick:n,disabled:i},"Отмена"),s.createElement("button",{className:"btnDanger_80c21215",onClick:this._handleConfirm,disabled:i},i?"Удаление...":"Удалить"))))},i}(s.Component);var G=function(){return s.createElement("svg",{width:"16",height:"16",viewBox:"0 0 20 20",fill:"currentColor"},s.createElement("path",{d:"M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"}))},K=function(){return s.createElement("svg",{width:"14",height:"14",viewBox:"0 0 20 20",fill:"currentColor"},s.createElement("path",{d:"M10 3a1 1 0 0 1 1 1v5h5a1 1 0 1 1 0 2h-5v5a1 1 0 1 1-2 0v-5H4a1 1 0 1 1 0-2h5V4a1 1 0 0 1 1-1z"}))},W=function(){return s.createElement("svg",{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},s.createElement("rect",{x:"8",y:"18",width:"32",height:"24",rx:"1"}),s.createElement("path",{d:"M4 20L24 6L44 20"}),s.createElement("rect",{x:"19",y:"30",width:"10",height:"12",rx:"1"}),s.createElement("rect",{x:"12",y:"24",width:"6",height:"6",rx:"1"}),s.createElement("rect",{x:"30",y:"24",width:"6",height:"6",rx:"1"}))},q=function(){return s.createElement("svg",{width:"13",height:"13",viewBox:"0 0 20 20",fill:"currentColor"},s.createElement("path",{d:"M17.04 2.96a3.28 3.28 0 0 0-4.64 0L3.29 12.07a1 1 0 0 0-.27.51l-1 5a1 1 0 0 0 1.18 1.18l5-1a1 1 0 0 0 .51-.27l9.11-9.11a3.28 3.28 0 0 0 0-4.64zm-3.23 1.41a1.28 1.28 0 0 1 1.82 1.82l-1.28 1.28-1.82-1.82 1.28-1.28zM4.9 13.17l7.18-7.18 1.82 1.82-7.18 7.18-3.18.64.64-3.18z"}))},Q=function(){return s.createElement("svg",{width:"13",height:"13",viewBox:"0 0 20 20",fill:"currentColor"},s.createElement("path",{d:"M8.5 3a1 1 0 0 0-1 1H5a1 1 0 0 0 0 2h10a1 1 0 1 0 0-2h-2.5a1 1 0 0 0-1-1h-3zM5 7v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V7H5zm3 2a.75.75 0 0 1 .75.75v5.5a.75.75 0 0 1-1.5 0v-5.5A.75.75 0 0 1 8 9zm4 0a.75.75 0 0 1 .75.75v5.5a.75.75 0 0 1-1.5 0v-5.5A.75.75 0 0 1 12 9z"}))};const Y=function(e){function i(t){var i=e.call(this,t)||this;return i._searchTimeout=null,i._handleSearchInput=function(e){var t=e.target.value;i.setState({searchInput:t,page:1}),i._searchTimeout&&clearTimeout(i._searchTimeout),i._searchTimeout=setTimeout(function(){i._loadContractors(1,t)},400)},i._handlePageChange=function(e){i.setState({page:e}),i._loadContractors(e,i.state.searchInput)},i._handleModalSave=function(e){return n(i,void 0,void 0,function(){var t,n,i,r,o,s;return a(this,function(a){switch(a.label){case 0:return t=this.props,n=t.httpClient,i=t.apiBaseUrl,(r=this.state.editingContractor)?[4,n.fetch("".concat(i,"/Contractors/").concat(r.id),R.AadHttpClient.configurations.v1,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})]:[3,2];case 1:return s=a.sent(),[3,4];case 2:return[4,n.fetch("".concat(i,"/Contractors"),R.AadHttpClient.configurations.v1,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})];case 3:s=a.sent(),a.label=4;case 4:if(!(o=s).ok)throw new Error("Ошибка ".concat(o.status,": ").concat(o.statusText));return this.setState({showModal:!1,editingContractor:null,page:1}),[4,this._loadContractors(1,this.state.searchInput)];case 5:return a.sent(),[2]}})})},i._handleDeleteConfirm=function(){return n(i,void 0,void 0,function(){var e,t,n,i,r,o,s,c;return a(this,function(a){switch(a.label){case 0:return e=this.props,t=e.httpClient,n=e.apiBaseUrl,i=this.state,r=i.deletingContractor,o=i.page,s=i.searchInput,r?[4,t.fetch("".concat(n,"/Contractors/").concat(r.id),R.AadHttpClient.configurations.v1,{method:"DELETE"})]:[2];case 1:if(!(c=a.sent()).ok)throw new Error("Ошибка ".concat(c.status,": ").concat(c.statusText));return this.setState({deletingContractor:null}),[4,this._loadContractors(o,s)];case 2:return a.sent(),[2]}})})},i.state={contractors:[],totalCount:0,totalPages:1,page:1,loading:!0,error:null,searchInput:"",showModal:!1,editingContractor:null,deletingContractor:null},i}return t(i,e),i.prototype.componentDidMount=function(){this._loadContractors(1,"")},i.prototype._loadContractors=function(e,t){return n(this,void 0,void 0,function(){var n,i,r,o,s,c,d,l;return a(this,function(a){switch(a.label){case 0:n=this.props,i=n.httpClient,r=n.apiBaseUrl,this.setState({loading:!0,error:null}),a.label=1;case 1:return a.trys.push([1,4,,5]),o=t?"&name=".concat(encodeURIComponent(t)):"",s="".concat(r,"/Contractors?page=").concat(e,"&pageSize=").concat(20).concat(o),[4,i.get(s,R.AadHttpClient.configurations.v1)];case 2:if(!(c=a.sent()).ok)throw new Error("Ошибка ".concat(c.status,": ").concat(c.statusText));return[4,c.json()];case 3:return d=a.sent(),this.setState({contractors:d.items,totalCount:d.totalCount,totalPages:d.totalPages,loading:!1}),[3,5];case 4:return l=a.sent(),this.setState({loading:!1,error:l.message}),[3,5];case 5:return[2]}})})},i.prototype._renderPageNumbers=function(e,t){var n=this,a=function(t){return s.createElement("button",{key:t,className:"".concat(x," ").concat(t===e?"pageBtnActive_80c21215":""),onClick:function(){return n._handlePageChange(t)}},t)};if(t<=7)return Array.from({length:t},function(e,t){return a(t+1)});var i=[a(1)];e>3&&i.push(s.createElement("span",{key:"e1",className:C},"…"));for(var r=Math.max(2,e-1),o=Math.min(t-1,e+1),c=r;c<=o;c++)i.push(a(c));return e0&&s.createElement("div",{className:"tableWrapper_80c21215"},s.createElement("table",{className:"table_80c21215"},s.createElement("thead",{className:"tableHead_80c21215"},s.createElement("tr",null,s.createElement("th",null,"Название"),s.createElement("th",{className:"binCol_80c21215"},"БИН"),s.createElement("th",{className:"tableActionsCol_80c21215"},"Действия"))),s.createElement("tbody",null,a.map(function(t){return s.createElement("tr",{key:t.id,className:"tableRow_80c21215"},s.createElement("td",null,s.createElement("div",{className:"contractorName_80c21215"},t.name),s.createElement("div",{className:"contractorFullName_80c21215"},t.fullName)),s.createElement("td",null,t.bin?s.createElement("span",{className:"binValue_80c21215"},t.bin):s.createElement("span",{className:"binEmpty_80c21215"},"—")),s.createElement("td",null,s.createElement("div",{className:"tableActions_80c21215"},s.createElement("button",{className:"btnEdit_80c21215",title:"Редактировать",onClick:function(){return e.setState({showModal:!0,editingContractor:t})}},s.createElement(q,null)),s.createElement("button",{className:"btnDeleteCard_80c21215",title:"Удалить",onClick:function(){return e.setState({deletingContractor:t})}},s.createElement(Q,null)))))})))),!c&&i>0&&s.createElement("div",{className:"pagination_80c21215"},s.createElement("span",{className:"paginationInfo_80c21215"},_,"–",h," из ",i),r>1&&s.createElement("div",{className:"paginationControls_80c21215"},s.createElement("button",{className:x,disabled:1===m,onClick:function(){return e._handlePageChange(m-1)}},"‹"),this._renderPageNumbers(m,r),s.createElement("button",{className:x,disabled:m===r,onClick:function(){return e._handlePageChange(m+1)}},"›"))),u&&s.createElement(j,{contractor:f,onSave:this._handleModalSave,onClose:function(){return e.setState({showModal:!1,editingContractor:null})}}),p&&s.createElement(z,{contractorName:p.name,onConfirm:this._handleDeleteConfirm,onClose:function(){return e.setState({deletingContractor:null})}}))},i}(s.Component),J=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t._isDarkTheme=!1,t}return t(i,e),i.prototype.onInit=function(){return n(this,void 0,void 0,function(){var t,n;return a(this,function(a){switch(a.label){case 0:return[4,e.prototype.onInit.call(this)];case 1:return a.sent(),t=this.properties.apiClientId||"9232d9e2-9807-4753-808f-07250e5474b0",n=this,[4,this.context.aadHttpClientFactory.getClient(t)];case 2:return n._httpClient=a.sent(),[2]}})})},i.prototype.render=function(){var e=s.createElement(Y,{isDarkTheme:this._isDarkTheme,httpClient:this._httpClient,apiBaseUrl:this.properties.apiBaseUrl||"https://api.tnsu.kz"});l.render(e,this.domElement)},i.prototype.onThemeChanged=function(e){if(e){this._isDarkTheme=!!e.isInverted;var t=e.semanticColors;t&&(this.domElement.style.setProperty("--bodyText",t.bodyText||null),this.domElement.style.setProperty("--link",t.link||null),this.domElement.style.setProperty("--linkHovered",t.linkHovered||null))}},i.prototype.onDispose=function(){l.unmountComponentAtNode(this.domElement)},Object.defineProperty(i.prototype,"dataVersion",{get:function(){return u.Version.parse("1.0")},enumerable:!1,configurable:!0}),i.prototype.getPropertyPaneConfiguration=function(){return{pages:[{header:{description:"Настройки веб-части"},groups:[{groupName:"API",groupFields:[(0,f.PropertyPaneTextField)("apiClientId",{label:"API Client ID (Azure AD)",placeholder:"9232d9e2-9807-4753-808f-07250e5474b0"}),(0,f.PropertyPaneTextField)("apiBaseUrl",{label:"Базовый URL API",placeholder:"https://api.tnsu.kz"})]}]}]}},i}(p.BaseClientSideWebPart)})(),d})());